qq_41295110
2025-12-05 b711b21f88e2c1a1aae00874276f5d343975434f
器具现有模块添加下推,选源单以及各页面接口调整
3个文件已添加
10个文件已修改
4546 ■■■■ 已修改文件
.env.development 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ICMO/ScICMOBillList.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldInRequestBillEdit.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldInRequestBillList.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldMoveStockRequestBillList.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldOutRequestBillEdit.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldOutRequestBillList.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldProdBackBillEdit.vue 673 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldProdMoveBillEdit.vue 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldProdOutBillEdit.vue 684 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/component/Sc_MouldInRequestBill.vue 959 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/component/Sc_MouldMoveStockRequestBill.vue 920 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/component/Sc_MouldOutRequestBill.vue 965 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -6,8 +6,8 @@
# 智云迈思L-MOM管理系统/开发环境
# VUE_APP_BASE_API = 'http://localhost:81/API/'
# VUE_APP_BASE_API = 'http://47.96.97.237/API/'
VUE_APP_BASE_API = 'http://220.189.218.155:9010/API/'
VUE_APP_BASE_API = 'http://localhost:8082/LuBaoAPI/'
VUE_APP_BASE_API = 'http://47.96.97.237/API/'
# VUE_APP_BASE_API = 'http://220.189.218.155:9010/API/'
# VUE_APP_BASE_API = 'http://localhost:8082/LuBaoAPI/'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
src/views/ICMO/ScICMOBillList.vue
@@ -1,5 +1,5 @@
<template>
  <div style="padding: 10px">
  <div style="padding: 10px; position: relative;">
    <el-form
      :model="queryParams"
      ref="queryForm"
@@ -738,6 +738,7 @@
      iframeUrl: "",
      activeSeach: "",
      HModName: "Sc_ICMOBillList",
      rowList:[],
      editShow: false,
      openEdit: false,
      totalNameList: [],
@@ -1343,6 +1344,9 @@
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', this.rowList, 10)
      }
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
@@ -1358,6 +1362,7 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.rowList=selection
      this.ids = selection.map((item) => item.hmainid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
src/views/scMould/warehouse/Sc_MouldInRequestBillEdit.vue
@@ -3,7 +3,7 @@
    <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
      <!-- <el-button type="primary" @click="handleAdd(OperationType = 1)" v-if="addBtnShow">新增</el-button> -->
      <el-button type="primary" @click="submitForm" :disabled="subDisabled">保 存</el-button>
      <!-- <el-button type="primary" @click="set_CheckBill(1, form)">审 核</el-button> -->
      <el-button type="primary" @click="set_CheckBill(1, form)">审 核</el-button>
      <el-button type="primary" @click="close">退 出</el-button>
      <!-- <el-button @click="cancel">取 消</el-button> -->
    </div>
@@ -697,7 +697,7 @@
                    , "HMaterNumber": result.data[i].HMaterNumber
                    , "HMaterName": result.data[i].HMaterName
                    , "HMaterModel": result.data[i].HMaterModel
                    , "HPropertyID": result.data[i].HProcID
                    , "HPropertyID": result.data[i].HPropertyID
                    , "HSecUnitID": result.data[i].HSecUnitID
                    , "HSecUnitRate": result.data[i].HSecUnitRate
                    , "HUnitID": result.data[i].HUnitID
@@ -932,12 +932,13 @@
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldProdMoveBill/AuditMouldProdMoveBill", {
        params: { "HInterID": InterID, "flag": num, "user": sessionStorage["HUserName"] }
      axios.get(this.baseURL + "/Sc_MouldInRequestBillController/GetSc_MouldInRequestBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"]  }
      }).then(response => {
        let result = response.data
        if (result.code == 1) {
          this.$modal.msgSuccess('操作成功');
          this.close()
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
src/views/scMould/warehouse/Sc_MouldInRequestBillList.vue
@@ -136,6 +136,10 @@
          @click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">复制</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-tickets" size="mini"
          @click="handlePush(row = rowForm, OperationType = 4)">下推(器具领用退库单)</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
        </el-button>
      </el-col>
@@ -199,6 +203,11 @@
        <edit :OperationType=OperationType :linterid=this.rowForm.hmainid :HSouceBillType=this.rowForm.HSourceBillType
          :copyType="copyType" @editClose="editClose" v-if="editShow" />
      </el-dialog>
      <!-- 下推 -->
      <el-dialog title="下推器具领用退库单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox" @close="close">
        <push :OperationType='4' :propsData='pushData' :HSouceBillType=BillType
         @editClose="pushClose" v-if="pushShow" />
      </el-dialog>
      <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
        <PrintList :linterid=this.rowForm.hmainid :MyMsg=this.rowForm.hmainid :Type='HModName'
          :HModName='HModName' @rowEditClose="rowSetClose" v-if="printListShow" />
@@ -212,18 +221,27 @@
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import Edit from '@/views/scMould/warehouse/Sc_MouldInRequestBillEdit'
import Push from '@/views/scMould/warehouse/Sc_MouldProdBackBillEdit'
import PrintList from '@/views/component/printList'
import moment from 'moment';
export default {
  name: 'Sc_MouldInRequestBillList',
  components: { RowSettings, Edit, PrintList },
  components: { RowSettings, Edit, Push,PrintList },
  props: {
    openPage: { type: String, },
    HOrgID: { type: String, },
  },
  data() {
    return {
      HModName: "Sc_MouldInRequestBillList",
      rowList:[],
      activeSeach: '',
      editShow: false,
      openEdit: false,
      pushShow: false,
      openPush: false,
      pushData:'',
      totalNameList: [],
      tableShow: true,
      openPrintList: false,
@@ -312,10 +330,14 @@
      page: 1,
      pageSize: 0,
      total: 0,
      BillType:'3851',
    };
  },
  created() {
    // this.fetchData()
    if(this.openPage && this.HOrgID){
      this.queryParams.HStockOrgID = this.HOrgID
    }
    this.riqiChange()
    this.getList();
  },
@@ -397,7 +419,7 @@
          "user": sessionStorage["HUserName"],
          "page": this.page,
          "size": this.pageSize,
          "Type": '3851'
          "Type": this.BillType,
        },
      }).then(response => {
        this.tyResList = response.data.data//总数据
@@ -583,10 +605,13 @@
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', this.rowList, this.BillType)
      }
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.hmainid)) {
      if (this.ids.includes(row.sorderid)) {
        return { "background": "#ecf5ff" }
      }
    },
@@ -598,7 +623,8 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.ids = selection.map(item => item.hmainid)
      this.rowList=selection
      this.ids = selection.map(item => item.sorderid)
      this.single = selection.length != 1
      this.multiple = !selection.length
      if (!this.single) {
@@ -743,6 +769,8 @@
      this.tableShow = true
      this.openEdit = false
      this.editShow = false
      this.openPush = false
      this.pushShow = false
      this.clearData()
      this.getList()
    },
@@ -758,6 +786,41 @@
      this.editShow = true
      this.openEdit = true
    },
    //打开下推组件弹窗
    handlePush() {
      if (this.rowList && this.rowList.length > 0) {
        var dataArray = [];
        var HSupTypeID_Temp = this.rowList[0].HSupTypeID
        for (var i = 0; i < this.rowList.length; i++) {
            if (this.rowList[i].单据状态 != "已审核") {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                return;
            }
            if (this.rowList[i].HQtyMust <= 0) {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                return;
            }
            if (this.rowList[i].HSupTypeID != HSupTypeID_Temp) {
                this.$modal.msgError("下推失败!所选单据对应往来类型必须一致!")
                return;
            }
            var temp = {
                "hmainid": this.rowList[i].hmainid
                , "hsubid": this.rowList[i].hsubid
                , "HBillType": this.rowList[i].HBillType
            }
            dataArray.push(temp);
        }
        var datajson = {
            "data": dataArray
        };
        this.pushData = JSON.stringify(datajson)
        this.pushShow = true
        this.openPush = true
      } else {
          this.$modal.msgError("请选择数据下推!")
      }
    },
    //关闭编辑页面
    editClose(val) {
      this.open = val
@@ -766,6 +829,14 @@
      this.clearData()
      this.getList()
    },
    //关闭下推页面
    pushClose(val) {
      this.open = val
      this.pushShow = false
      this.openPush = val
      this.clearData()
      this.getList()
    },
    //清除选中数据的缓存
    clearData(){
      this.ids = []
src/views/scMould/warehouse/Sc_MouldMoveStockRequestBillList.vue
@@ -136,8 +136,8 @@
          @click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">复制</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-tickets" size="mini" :disabled="single"
          @click="handleMove(row = rowForm, OperationType = 4)">下推(器具直接调拨单)</el-button>
        <el-button type="primary" icon="el-icon-tickets" size="mini"
          @click="handlePush(row = rowForm, OperationType = 4)">下推(器具直接调拨单)</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
@@ -194,9 +194,9 @@
          :copyType="copyType" @editClose="editClose" v-if="editShow" />
      </el-dialog>
      <!-- 下推 -->
      <el-dialog title="下推器具直接调拨单" :visible.sync="openMove" width="1480px" append-to-body class="xsckdBox" @close="close">
        <move :OperationType='4' :propsData='moveData' :HSouceBillType=BillType
         @editClose="moveClose" v-if="moveShow" />
      <el-dialog title="下推器具直接调拨单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox" @close="close">
        <push :OperationType='4' :propsData='pushData' :HSouceBillType=BillType
         @editClose="pushClose" v-if="pushShow" />
      </el-dialog>
      <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
        <PrintList :linterid=this.rowForm.hmainid :MyMsg=this.rowForm.hmainid :Type='HModName'
@@ -211,13 +211,13 @@
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import Edit from '@/views/scMould/warehouse/Sc_MouldMoveStockRequestBillEdit'
import Move from '@/views/scMould/warehouse/Sc_MouldProdMoveBillEdit'
import Push from '@/views/scMould/warehouse/Sc_MouldProdMoveBillEdit'
import PrintList from '@/views/component/printList'
import moment from 'moment';
export default {
  name: 'Sc_MouldMoveStockRequestBillList',
  components: { RowSettings, Edit, Move,PrintList },
  components: { RowSettings, Edit, Push,PrintList },
  props: {
    openPage: { type: String, },
    HOrgID: { type: String, },
@@ -229,9 +229,9 @@
      activeSeach: '',
      editShow: false,
      openEdit: false,
      moveShow: false,
      openMove: false,
      moveData:'',
      pushShow: false,
      openPush: false,
      pushData:'',
      totalNameList: [],
      tableShow: true,
      openPrintList: false,
@@ -759,6 +759,8 @@
      this.tableShow = true
      this.openEdit = false
      this.editShow = false
      this.openPush = false
      this.pushShow = false
      this.clearData()
      this.getList()
    },
@@ -775,26 +777,26 @@
      this.openEdit = true
    },
    //打开下推组件弹窗
    handleMove() {
      if (this.rowList.length > 0) {
    handlePush() {
      if (this.rowList && this.rowList.length > 0) {
        var dataArray = [];
        var HSupTypeID_Temp = this.rowList[0].HSupTypeID
        var HStockInOrgID_Temp = this.rowList[0].HSTOCKORGINID
        for (var i = 0; i < this.rowList.length; i++) {
            if (this.rowList[i].单据状态 != "已审核") {
                this.$modal.msgSuccess("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                return;
            }
            if (this.rowList[i].HQtyMust <= 0) {
                this.$modal.msgSuccess("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                return;
            }
            if (this.rowList[i].HSupTypeID != HSupTypeID_Temp) {
                this.$modal.msgSuccess("下推失败!所选单据对应往来类型必须一致!")
                this.$modal.msgError("下推失败!所选单据对应往来类型必须一致!")
                return;
            }
            if (this.rowList[i].HSTOCKORGINID != HStockInOrgID_Temp) {
                this.$modal.msgSuccess("下推失败!所选单据对应调入组织必须一致!")
                this.$modal.msgError("下推失败!所选单据对应调入组织必须一致!")
                return;
            }
            var temp = {
@@ -807,11 +809,11 @@
        var datajson = {
            "data": dataArray
        };
        this.moveData = JSON.stringify(datajson)
        this.moveShow = true
        this.openMove = true
        this.pushData = JSON.stringify(datajson)
        this.pushShow = true
        this.openPush = true
      } else {
          layer.msg('请选择数据下推!');
          this.$modal.msgError("请选择数据下推!")
      }
    },
    //关闭编辑页面
@@ -823,10 +825,10 @@
      this.getList()
    },
    //关闭下推页面
    moveClose(val) {
    pushClose(val) {
      this.open = val
      this.editShow = false
      this.openEdit = val
      this.pushShow = false
      this.openPush = val
      this.clearData()
      this.getList()
    },
src/views/scMould/warehouse/Sc_MouldOutRequestBillEdit.vue
@@ -3,7 +3,7 @@
    <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
      <!-- <el-button type="primary" @click="handleAdd(OperationType = 1)" v-if="addBtnShow">新增</el-button> -->
      <el-button type="primary" @click="submitForm" :disabled="subDisabled">保 存</el-button>
      <!-- <el-button type="primary" @click="set_CheckBill(1, form)">审 核</el-button> -->
      <el-button type="primary" @click="set_CheckBill(1, form)">审 核</el-button>
      <el-button type="primary" @click="close">退 出</el-button>
      <!-- <el-button @click="cancel">取 消</el-button> -->
    </div>
@@ -788,7 +788,7 @@
                    , "HMaterNumber": result.data[i].HMaterNumber
                    , "HMaterName": result.data[i].HMaterName
                    , "HMaterModel": result.data[i].HMaterModel
                    , "HPropertyID": result.data[i].HProcID
                    , "HPropertyID": result.data[i].HPropertyID
                    , "HSecUnitID": result.data[i].HSecUnitID
                    , "HSecUnitRate": result.data[i].HSecUnitRate
                    , "HUnitID": result.data[i].HUnitID
@@ -1023,12 +1023,13 @@
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldProdMoveBill/AuditMouldProdMoveBill", {
        params: { "HInterID": InterID, "flag": num, "user": sessionStorage["HUserName"] }
      axios.get(this.baseURL + "/Sc_MouldOutRequestBillController/GetSc_MouldOutRequestBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"]  }
      }).then(response => {
        let result = response.data
        if (result.code == 1) {
          this.$modal.msgSuccess('操作成功');
          this.close()
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
src/views/scMould/warehouse/Sc_MouldOutRequestBillList.vue
@@ -136,6 +136,10 @@
          @click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">复制</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-tickets" size="mini"
          @click="handlePush(row = rowForm, OperationType = 4)">下推(器具领用出库单)</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
        </el-button>
      </el-col>
@@ -199,6 +203,11 @@
        <edit :OperationType=OperationType :linterid=this.rowForm.hmainid :HSouceBillType=this.rowForm.HSourceBillType
          :copyType="copyType" @editClose="editClose" v-if="editShow" />
      </el-dialog>
      <!-- 下推 -->
      <el-dialog title="下推器具领用出库单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox" @close="close">
        <push :OperationType='4' :propsData='pushData' :HSouceBillType=BillType
         @editClose="pushClose" v-if="pushShow" />
      </el-dialog>
      <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
        <PrintList :linterid=this.rowForm.hmainid :MyMsg=this.rowForm.hmainid :Type='HModName'
          :HModName='HModName' @rowEditClose="rowSetClose" v-if="printListShow" />
@@ -212,18 +221,27 @@
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import Edit from '@/views/scMould/warehouse/Sc_MouldOutRequestBillEdit'
import Push from '@/views/scMould/warehouse/Sc_MouldProdOutBillEdit'
import PrintList from '@/views/component/printList'
import moment from 'moment';
export default {
  name: 'Sc_MouldOutRequestBillList',
  components: { RowSettings, Edit, PrintList },
  components: { RowSettings, Edit,Push, PrintList },
  props: {
    openPage: { type: String, },
    HOrgID: { type: String, },
  },
  data() {
    return {
      HModName: "Sc_MouldOutRequestBillList",
      rowList:[],
      activeSeach: '',
      editShow: false,
      openEdit: false,
      pushShow: false,
      openPush: false,
      pushData:'',
      totalNameList: [],
      tableShow: true,
      openPrintList: false,
@@ -312,10 +330,14 @@
      page: 1,
      pageSize: 0,
      total: 0,
      BillType:'3849',
    };
  },
  created() {
    // this.fetchData()
    if(this.openPage && this.HOrgID){
      this.queryParams.HStockOrgID = this.HOrgID
    }
    this.riqiChange()
    this.getList();
  },
@@ -397,7 +419,7 @@
          "user": sessionStorage["HUserName"],
          "page": this.page,
          "size": this.pageSize,
          "Type":"3849",
          "Type": this.BillType,
        },
      }).then(response => {
        this.tyResList = response.data.data//总数据
@@ -583,10 +605,13 @@
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', this.rowList, this.BillType)
      }
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.hmainid)) {
      if (this.ids.includes(row.sorderid)) {
        return { "background": "#ecf5ff" }
      }
    },
@@ -598,7 +623,8 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.ids = selection.map(item => item.hmainid)
      this.rowList=selection
      this.ids = selection.map(item => item.sorderid)
      this.single = selection.length != 1
      this.multiple = !selection.length
      if (!this.single) {
@@ -743,6 +769,8 @@
      this.tableShow = true
      this.openEdit = false
      this.editShow = false
      this.openPush = false
      this.pushShow = false
      this.clearData()
      this.getList()
    },
@@ -758,6 +786,41 @@
      this.editShow = true
      this.openEdit = true
    },
    //打开下推组件弹窗
    handlePush() {
      if (this.rowList && this.rowList.length > 0) {
        var dataArray = [];
        var HSupTypeID_Temp = this.rowList[0].HSupTypeID
        for (var i = 0; i < this.rowList.length; i++) {
            if (this.rowList[i].单据状态 != "已审核") {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                return;
            }
            if (this.rowList[i].HQtyMust <= 0) {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                return;
            }
            if (this.rowList[i].HSupTypeID != HSupTypeID_Temp) {
                this.$modal.msgError("下推失败!所选单据对应往来类型必须一致!")
                return;
            }
            var temp = {
                "hmainid": this.rowList[i].hmainid
                , "hsubid": this.rowList[i].hsubid
                , "HBillType": this.rowList[i].HBillType
            }
            dataArray.push(temp);
        }
        var datajson = {
            "data": dataArray
        };
        this.pushData = JSON.stringify(datajson)
        this.pushShow = true
        this.openPush = true
      } else {
          this.$modal.msgError("请选择数据下推!")
      }
    },
    //关闭编辑页面
    editClose(val) {
      this.open = val
@@ -766,6 +829,14 @@
      this.clearData()
      this.getList()
    },
    //关闭下推页面
    pushClose(val) {
      this.open = val
      this.pushShow = false
      this.openPush = val
      this.clearData()
      this.getList()
    },
    //清除选中数据的缓存
    clearData(){
      this.ids = []
src/views/scMould/warehouse/Sc_MouldProdBackBillEdit.vue
@@ -23,39 +23,12 @@
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="内部单据号" prop="HInnerBillNo">
                <el-input v-model="form.HInnerBillNo" placeholder="请输入内部单据号" />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="器具仓库" prop="HWHName">
                <el-input v-model="form.HWHName" placeholder="请选择器具仓库" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(2,eHWHType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="验收员" prop="HSecManagerName">
                <el-input v-model="form.HSecManagerName" placeholder="请选择验收员" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="保管员" prop="HKeeperName">
                <el-input v-model="form.HKeeperName" placeholder="请选择保管员" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=2)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="部门" prop="HDeptName">
                <el-input v-model="form.HDeptName" placeholder="请选择部门" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(1,deptType=1)"></el-button>
                </el-input>
            <el-col :span="12">
              <el-form-item label="组织" prop="HStockOrgID">
                <el-select v-model="form.HStockOrgID" placeholder="请选择组织" :disabled="ifOrganizationEdit">
                  <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>
@@ -76,16 +49,69 @@
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="部门" prop="HDeptName">
                <el-input v-model="form.HDeptName" placeholder="请选择部门" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(1,deptType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="仓库" prop="HWHName">
                <el-input v-model="form.HWHName" placeholder="请选择仓库" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(2,eHWHType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="业务员" prop="HEmpName">
                <el-input v-model="form.HEmpName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="负责人" prop="HMangerName">
                <el-input v-model="form.HMangerName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=2)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="验收员" prop="HSecManagerName">
                <el-input v-model="form.HSecManagerName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=3)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="保管员" prop="HKeeperName">
                <el-input v-model="form.HKeeperName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=4)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="源单类型" prop="HSourceBillType">
                <el-select v-model="form.HSourceBillType" placeholder="请选择">
                  <el-option label="生产任务单" value="生产任务单" />
                  <el-option label="手工录入" value="手工录入" />
                  <el-option v-for="(item, index) in HSourceBillTypes" :key="index" :label="item.HSourceBillTypeName" :value="item.HSourceBillType">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="选单号" prop="XDH">
                <el-input v-model="form.XDH" placeholder="请输入选单号" />
              <el-form-item label="源单单号" prop="HSourceBillNo">
                <el-input placeholder="请选择源单单号" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="get_checkMainSource()"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="内部单据号" prop="HInnerBillNo">
                <el-input v-model="form.HInnerBillNo" placeholder="请输入" />
              </el-form-item>
            </el-col>
          </el-row>
@@ -211,24 +237,24 @@
                <span>{{ scope.row.HUnitName }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="应发数量" width="120">
            <el-table-column align="center" label="应收数量" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HQtyMust }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="实发数量" width="120">
            <el-table-column align="center" label="实收数量" width="120">
              <template slot-scope="scope">
                <el-input-number v-model="scope.row.HQty" :min="1" style="width: 90px;"
                  controls-position="right"></el-input-number>
              </template>
            </el-table-column>
            <el-table-column align="center" label="发料仓库代码" width="120">
            <el-table-column align="center" label="仓库代码" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HWHCode" placeholder="请输入" @keyup.native.f7="openDataDialog(2, scope.row ,eHWHType=2)"
                  @dblclick.native="openDataDialog(2, scope.row ,eHWHType=2)" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="发料仓库" width="120">
            <el-table-column align="center" label="仓库名称" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HWHName }}</span>
              </template>
@@ -239,9 +265,14 @@
                  @dblclick.native="openDataDialog(9, scope.row)" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="仓位" width="120">
            <el-table-column align="center" label="仓位名称" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HSPName }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="源单单号" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HSourceBillNo }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="备注" width="120">
@@ -321,6 +352,7 @@
      <GyCustomer @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCustomerShow" />
      <GyMould @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyMouldShow" />
      <GyStockPlace @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyStockPlaceShow" />
      <scMouldIn @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" :HOrgID="form.HStockOutOrgID" v-if="scMouldInShow" />
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="deptClickSub">确 定</el-button>
        <el-button @click="deptClose">取 消</el-button>
@@ -342,11 +374,12 @@
import GyCustomer from '@/views/GyCustomer'
import GyMould from '@/views/scMould/basicModeling/Gy_MouldFileList.vue'
import GyStockPlace from '@/views/basic/gyStockPlace/gyStockPlace.vue'
import scMouldIn from '@/views/scMould/warehouse/component/Sc_MouldInRequestBill.vue'
import moment from 'moment';
export default {
  name: 'Sc_MouldProdBackBillEdit',
  components: { Dept, Warehouse, RowSettings, GyEmployee,GySupplier,GyCustomer,GyMould,GyStockPlace },
  components: { Dept, Warehouse, RowSettings, GyEmployee,GySupplier,GyCustomer,GyMould,GyStockPlace,scMouldIn },
  props: {
    OperationType: { type: Number, },
    linterid: { type: Number, },
@@ -364,6 +397,7 @@
      rowHideShow: false,
      openRowHide: false,
      hSupTypeList: [{name:'供应商',id:1,},{name:'客户',id:2},{name:'车间部门',id:3}],
      HSourceBillTypes:[],
      addBtnShow: false,
      zbIndex: null,
      zbSelForm: {},//子表选中数据
@@ -375,6 +409,7 @@
      gyCustomerShow: false,//客户数据组件
      gyMouldShow: false,//器具数据组件
      gyStockPlaceShow: false,//仓位数据组件
      scMouldInShow:false,//源单组件
      eHWHType:1,//仓库弹窗区分标志
      empType:1,//职员弹窗区分标志
      deptType:1,//部门弹窗区分标志
@@ -382,6 +417,7 @@
      openData: false,//数据弹窗
      dialogTitle: '',
      organizationList: [],//组织列表
      ifOrganizationEdit: false,
      subDisabled: false,//编辑页面保存按钮是否禁用(true禁用,false可用)
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
      HInterID: 0,
@@ -431,26 +467,27 @@
      form: {},
      // 表单校验
      rules: {
        HBillNo: [
          { required: true, message: "单据号不能为空", trigger: "blur" }
        ],
        HDate: [
          { required: true, message: "日期不能为空", trigger: "blur" }
        ],
        HWHName: [
          { required: true, message: "器具仓库不能为空", trigger: "blur" }
        HStockOrgID: [
          { required: true, message: "组织不能为空", trigger: "blur" }
        ],
        HSecManagerName: [
          { required: true, message: "验收员不能为空", trigger: "blur" }
        ],
        HKeeperName: [
          { required: true, message: "保管员不能为空", trigger: "blur" }
        ],
        HDeptName: [
          { required: true, message: "部门不能为空", trigger: "blur" }
        ]
      }
    };
  },
  created() {
    this.fetchData()
    this.SourceBillType()
    this.getdata()
  },
  methods: {
@@ -464,14 +501,29 @@
        this.$modal.msgError("接口请求失败!");
      });
    },
    SourceBillType(){
      axios.get(this.baseURL + "/Web/GetHSourceBillType", {
        params: { "HName": '器具领用退库单', "Num": 2 }//0蓝单 1红单 2不分红蓝单
      }).then(response => {
        if (response.data.count == 1) {
          this.HSourceBillTypes = response.data.data
          this.form.HSourceBillType = this.HSourceBillTypes[0].HSourceBillType
          this.form.HSourceBillTypeName = this.HSourceBillTypes[0].HSourceBillTypeName
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    getdata() {
      console.log(this.copyType, this.OperationType)
      this.formShow = false
      this.formLoading = true
      if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
        this.handleAdd()
      } else if (this.OperationType == 3 || this.copyType == 1) {
      } else if (this.OperationType == 2 || this.copyType == 1) {
        this.handleUpdate()
      } else if (this.OperationType == 4) {
        this.handleMove()
      }
    },
    // 获取参数_传递的JSON格式参数
@@ -495,74 +547,203 @@
      // let options=undefined
      //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
    },
    //获取源单数据
    GetSourceBillList(HSourceInterID, HSourceEntryID, HSourceBillType) {
        return new Promise((resolve, reject) => {
            axios.get(this.baseURL + "/Sc_MouldProdBackBillController/GetSourceBill_MouldProdBack_Json", {
                params: { "HInterID": HSourceInterID, "HEntryID": HSourceEntryID, "HBillType": HSourceBillType }
            }).then(response => {
                if (response.data.count == 1) {
                    resolve(response.data.data[0]);
                } else {
                    this.$modal.msgError("未查询到数据!");
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        });
    },
    //写入源单数据
    setInitBySourceBill(dataArray){
      var data = dataArray[0]
      this.form.HSupTypeID = data.HSupTypeID
      this.form.HSupID = data.HSupID
      this.form.HSupName = data.HSupName
      this.form.HDeptID = data.HDeptID
      this.form.HDeptName = data.HDeptName
      this.form.HStockOrgID = data.HStockOrgID == null ? 0 : data.HStockOrgID
      this.ifOrganizationEdit = true
      //子表  赋值
      var rowdata = [];
      for (let i = 0; i < dataArray.length; i++) {
          rowdata.push(
              {
                "HMaterID": dataArray[i].HMaterID == null ? 0 : dataArray[i].HMaterID
                , "HMaterNumber": dataArray[i].HMaterNumber == null ? "" : dataArray[i].HMaterNumber
                , "HMaterName": dataArray[i].HMaterName == null ? "" : dataArray[i].HMaterName
                , "HMaterModel": dataArray[i].HMaterModel == null ? "" : dataArray[i].HMaterModel
                , "HUnitID": dataArray[i].HUnitID == null ? 0 : dataArray[i].HUnitID
                , "HUnitNumber": dataArray[i].HUnitNumber == null ? "" : dataArray[i].HUnitNumber
                , "HUnitName": dataArray[i].HUnitName == null ? "" : dataArray[i].HUnitName
                , "HBatchNo": ""
                , "HQty": dataArray[i].HQty == null ? 0 : dataArray[i].HQty
                , "HWHID": dataArray[i].HWHID == null ? 0 : dataArray[i].HWHID
                , "HWHNumber": dataArray[i].HWHNumber == null ? "" : dataArray[i].HWHNumber
                , "HWHName": dataArray[i].HWHName == null ? "" : dataArray[i].HWHName
                , "HSPID": "0"
                , "HSPNumber": ""
                , "HSPName": ""
                , "HSCWHID": "0"
                , "HSCWHNumber": ""
                , "HSCWHName": ""
                , "HSCSPID": "0"
                , "HSCSPNumber": ""
                , "HSCSPName": ""
                , "HSourceInterID": dataArray[i].HInterID == null ? 0 : dataArray[i].HInterID
                , "HSourceEntryID": dataArray[i].HEntryID == null ? 0 : dataArray[i].HEntryID
                , "HSourceBillType": dataArray[i].HBillType == null ? "" : dataArray[i].HBillType
                , "HSourceBillNo": dataArray[i].HBillNo == null ? "" : dataArray[i].HBillNo
                , "HRelationQty": "0"
                , "HRelationMoney": "0"
                , "HRemark": ""
                , "HPropertyID": "0"
                , "HSecUnitID": "0"
                , "HSecUnitRate": "0"
                , "HQtyMust": dataArray[i].HQty == null ? 0 : dataArray[i].HQty
                , "HPrice": "0"
                , "HMoney": "0"
                , "HDesignLife": "0"
                , "HLeaveLife": "0"
                , "HPOOrderInterID": "0"
                , "HPOOrderEntryID": "0"
                , "HPOOrderBillNo": ""
                , "HSeOrderInterID": "0"
                , "HSeOrderEntryID": "0"
                , "HSeOrderBillNo": ""
                , "HSTOCKORGID": dataArray[i].HStockOrgID == null ? 0 : dataArray[i].HStockOrgID
                , "HOtherOrgID": dataArray[i].HStockOrgID == null ? 0 : dataArray[i].HStockOrgID
                , "HOWNERID": dataArray[i].HStockOrgID == null ? 0 : dataArray[i].HStockOrgID
                , "HOWNERTYPEID": ""
                , "HUseLife": "0"
                , "HUseLifeQty": "0"
                , "HNewLifeQty": "0"
                , "HQtyRel": "0"
                , "HSPGroupID": "0"
                , "HNewModel": ""
                , "HWallThickness": ""
                , "HHardness": ""
                , "HLastProdModel": ""
                , "HDiameter": ""
                , "HBackFlag": ""
                , "HBarCode": ""
                , "HMouldType": "0"
                , "HInitModel": ""
                , "HInitDesignLife": "0"
                , "HLifeUnitID": "0"
                , "HNowModel": ""
                , "HNowLife": "0"
                , "HCorrespondentTypeID": "0"
                , "HCorrespondentID": "0"
              }
          )
      }
      this.editData = rowdata
    },
    //弹窗赋值
    dbEmitData(deptRow, num) {
      // num=1部门 num=2仓库
      console.log(deptRow)
      if (deptRow.HItemID || deptRow.hmainid) {
        if (num == 1) {
          if(this.deptType == 1){
            this.form.HDeptName = deptRow.部门名称
            this.form.HDeptID = deptRow.HItemID
          }else{
            this.form.HSupName = deptRow.部门名称
            this.form.HSupID = deptRow.HItemID
      if(num == 3851){
        if (deptRow.length > 0) {
          var HSupTypeID_Temp = deptRow[0].HSupTypeID
          for (var i = 0; i < deptRow.length; i++) {
            if (deptRow[i].HSupTypeID != HSupTypeID_Temp) {
              this.$modal.msgError("所选单据对应往来类型必须一致!");
              this.deptClose()
              return;
            }
          }
          this.deptShow = false
          this.processSourceBills(deptRow)
          this.scMouldInShow = false
          this.openData = false
        } else if (num == 2) {
          if(this.eHWHType == 1){
            this.form.HWHName = deptRow.仓库名称
            this.form.HWHID = deptRow.HItemID
            this.form.HWHNumber = deptRow.仓库代码
          }else{
            this.editData[this.zbIndex].HWHID = deptRow.HItemID
            this.editData[this.zbIndex].HWHCode = deptRow.仓库代码
            this.editData[this.zbIndex].HWHName = deptRow.仓库名称
          }
          this.warehouseShow = false
          this.openData = false
        } else if (num == 4) {
          if(this.empType == 1){
            this.form.HSecManagerName = deptRow.职员名称
            this.form.HSecManagerID = deptRow.HItemID
          }else{
            this.form.HKeeperName = deptRow.职员名称
            this.form.HKeeperID = deptRow.HItemID
          }
          this.gyEmployeeShow = false
          this.openData = false
        } else if (num == 6) {
          this.form.HSupName = deptRow.供应商名称
          this.form.HSupID = deptRow.HItemID
          this.gySupplierShow = false
          this.openData = false
        } else if (num == 7) {
          this.form.HSupName = deptRow.客户名称
          this.form.HSupID = deptRow.HItemID
          this.gyCustomerShow = false
          this.openData = false
        } else if (num == 8){
          this.editData[this.zbIndex].HMaterID = deptRow.hmainid
          this.editData[this.zbIndex].HMaterCode = deptRow.模具编号
          this.editData[this.zbIndex].HMaterName = deptRow.模具名称
          this.editData[this.zbIndex].HMaterSpec = deptRow.模具型号
          this.editData[this.zbIndex].HUnitID = deptRow.HUnitID
          this.editData[this.zbIndex].HUnitCode = deptRow.计量单位代码
          this.editData[this.zbIndex].HUnitName = deptRow.计量单位
          this.gyMouldShow = false
          this.openData = false
        } else if (num == 9){
          this.editData[this.zbIndex].HSPID = deptRow.HMainID
          this.editData[this.zbIndex].HSPCode = deptRow.仓位代码
          this.editData[this.zbIndex].HSPName = deptRow.仓位名称
          this.gyStockPlaceShow = false
          this.openData = false
        } else {
          this.$modal.msgError("请选择数据!");
        }
      } else {
        this.$modal.msgError("请选择单条数据!");
      }else{
        if (deptRow.HItemID || deptRow.hmainid) {
          if (num == 1) {
            if(this.deptType == 1){
              this.form.HDeptName = deptRow.部门名称
              this.form.HDeptID = deptRow.HItemID
            }else{
              this.form.HSupName = deptRow.部门名称
              this.form.HSupID = deptRow.HItemID
            }
            this.deptShow = false
            this.openData = false
          } else if (num == 2) {
            if(this.eHWHType == 1){
              this.form.HWHName = deptRow.仓库名称
              this.form.HWHID = deptRow.HItemID
              this.form.HWHNumber = deptRow.仓库代码
            }else{
              this.editData[this.zbIndex].HWHID = deptRow.HItemID
              this.editData[this.zbIndex].HWHCode = deptRow.仓库代码
              this.editData[this.zbIndex].HWHName = deptRow.仓库名称
            }
            this.warehouseShow = false
            this.openData = false
          } else if (num == 4) {
            if(this.empType == 1){
              this.form.HEmpName = deptRow.职员名称
              this.form.HEmpID = deptRow.HItemID
            }else if(this.empType == 2){
              this.form.HMangerName = deptRow.职员名称
              this.form.HMangerID = deptRow.HItemID
            }else if(this.empType == 3){
              this.form.HSecManagerName = deptRow.职员名称
              this.form.HSecManagerID = deptRow.HItemID
            }else if(this.empType == 4){
              this.form.HKeeperName = deptRow.职员名称
              this.form.HKeeperID = deptRow.HItemID
            }else
            this.gyEmployeeShow = false
            this.openData = false
          } else if (num == 6) {
            this.form.HSupName = deptRow.供应商名称
            this.form.HSupID = deptRow.HItemID
            this.gySupplierShow = false
            this.openData = false
          } else if (num == 7) {
            this.form.HSupName = deptRow.客户名称
            this.form.HSupID = deptRow.HItemID
            this.gyCustomerShow = false
            this.openData = false
          } else if (num == 8){
            this.editData[this.zbIndex].HMaterID = deptRow.hmainid
            this.editData[this.zbIndex].HMaterNumber = deptRow.模具编号
            this.editData[this.zbIndex].HMaterName = deptRow.模具名称
            this.editData[this.zbIndex].HMaterModel = deptRow.模具型号
            this.editData[this.zbIndex].HUnitID = deptRow.HUnitID
            this.editData[this.zbIndex].HUnitNumber = deptRow.计量单位代码
            this.editData[this.zbIndex].HUnitName = deptRow.计量单位
            this.editData[this.zbIndex].HQty = 1
            this.editData[this.zbIndex].HDesignLife = 0
            this.editData[this.zbIndex].HLeaveLife = 0
            this.editData[this.zbIndex].HMoney = 0
            this.gyMouldShow = false
            this.openData = false
          } else if (num == 9){
            this.editData[this.zbIndex].HSPID = deptRow.HMainID
            this.editData[this.zbIndex].HSPCode = deptRow.仓位代码
            this.editData[this.zbIndex].HSPName = deptRow.仓位名称
            this.gyStockPlaceShow = false
            this.openData = false
          }
        } else {
          this.$modal.msgError("请选择单条数据!");
        }
      }
    },
    emitData(deptRow, num) {
      this.dialogTypeNum = num
@@ -583,21 +764,25 @@
        HBillNo: '',
        HInterID: 0,
        HDate: new Date(),
        HInnerBillNo:'',
        HStockOrgID:sessionStorage["OrganizationID"] - 0,
        HSupTypeID: 1,
        HSupName:'',
        HSupID:0,
        HDeptName: '',
        HDeptID: 0,
        HWHName:'',
        HWHNumber:'',
        HWHID:0,
        HEmpName:'',
        HEmpID:0,
        HManagerName:'',
        HManagerID:0,
        HSecManagerName:'',
        HSecManagerID:0,
        HKeeperName:'',
        HKeeperID:0,
        HDeptName: '',
        HDeptID: 0,
        HSupTypeID: 1,
        HSupName:'',
        HSupID:0,
        HSourceBillType:'',
        XDH:'',
        HInnerBillNo:'',
        HExplanation:'',
        HRemark:'',
@@ -677,7 +862,7 @@
      })
    },
    getHBillNo() {
      axios.get(this.baseURL + "/Web/GetMAXNum", {
      axios.get(this.baseURL + "/WEBSController/GetMaxBillNo_Json", {
        params: {
          HBillType: '3803'
        }
@@ -691,71 +876,95 @@
        this.$modal.msgError("接口请求失败!");
      });
    },
    /** 下推打开 */
    handleMove() {
      this.reset()
      //新增获取单据号
      this.getHBillNo()
      let date = new Date()
      this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
      //设置源单类型
      this.form.HSourceBillType = this.HSouceBillType
      //获取源单数据
      var data = this.getUrlVars_JSON().data;
      this.processSourceBills(data)
      this.$nextTick(() => {
        this.formShow = true
        this.formLoading = false
      })
    },
    async processSourceBills(data) {
        const dataArray = [];
        try {
            for (var i = 0; i < data.length; i++) {
                const result = await this.GetSourceBillList(data[i].hmainid, data[i].hsubid, data[i].HBillType);
                dataArray.push(result);
            }
            // 所有异步操作完成后执行
            this.setInitBySourceBill(dataArray);
        } catch (error) {
            console.error("处理出错:", error);
        }
    },
    /** 修改按钮操作 */
    handleUpdate() {
      this.reset()
      let rowHmainid = this.linterid
      console.log(this.linterid)
      //主表
      axios.get(this.baseURL + "/Sc_MouldProdBackBill/Sc_MouldProdBackBillListCheckDetai", {
        params: { 'HID': rowHmainid }
      axios.get(this.baseURL + "/Sc_MouldStockBillController/GetSc_MouldStockBill_Json", {
        params: { 'HInterID': rowHmainid,"HMaker": sessionStorage["HUserName"]}
      }).then(response => {
        if (response.data.code == 1) {
          var data = response.data.data.h_v_Sc_MouldProdBackBill_Edit[0]
        if (response.data.count == 1) {
          var data = response.data.data[0]
          console.log(data)
          if (this.copyType == 1) {
            this.getHBillNo()
            let date = new Date()
            this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
          } else {
            this.form = {
                  "HBillNo": data.单据号
                , "HDate": data.日期
                , "HInnerBillNo": data.内部单据号
                , "HWHID": data.HWHID                    //仓库ID
                , "HWHName": data.仓库                   //仓库名称
                , "HSecManagerID": data.hsecmanagerid    //验收员ID
                , "HSecManagerName": data.领料人         //验收员名称
                , "HKeeperID": data.hkeeperid            //保管员ID
                , "HKeeperName": data.发料人            //保管员名称
                , "HDeptID": data.HDeptID                 //部门ID
                , "HDeptName": data.部门                //部门名称
                , "HSourceBillType": ""                   //源单类型
                , "XDH": ""                               //选单号
                , "HExplanation": data.摘要              //摘要
                , "HRemark": data.表头备注                    //备注
                , "HSupTypeID": data.往来类型                             //选单号
                , "HSupName": data.往来单位
                , "HSupID": data.HSupID
                , "HMaker": data.制单人
                , "HMakeDate": data.制单日期 == null ? "" : data.制单日期
                , "HChecker": data.审核人
                , "HCheckDate": data.审核日期 == null ? "" : data.审核日期
                , "HUpDater": data.修改人
                , "HUpDateDate": data.修改日期 == null ? "" : data.修改日期
                , "HCloseMan": data.关闭人
                , "HCloseDate": data.关闭日期 == null ? "" : data.关闭日期
                , "HDeleteMan": data.作废人
                , "HDeleteDate": data.作废日期 == null ? "" : data.作废日期
            if (data[0].HSourceInterID != "0") {
              this.ifOrganizationEdit = true
            }
            this.form = {
                "HBillNo": data[0].单据号
                , "HDate": data[0].日期
                , "HSupTypeID": data[0].HSupTypeID
                , "HSupID": data[0].HSupID
                , "HSupName": data[0].往来单位
                , "HDeptID": data[0].HDeptID
                , "HDeptName": data[0].部门
                , "HWHID": data[0].HMainWHID
                , "HWHName": data[0].调入仓库
                , "HEmpID": data[0].HEmpID
                , "HEmpName": data[0].业务员
                , "HManagerID": data[0].HManagerID
                , "HManagerName": data[0].负责人
                , "HSecManagerID": data[0].HSecManagerID
                , "HSecManagerName": data[0].验收员
                , "HKeeperID": data[0].HKeeperID
                , "HKeeperName": data[0].保管员
                , "HExplanation": data[0].摘要
                , "HRemark": data[0].表头备注
                , "HInnerBillNo": data[0].内部单据号
                , "HStockOrgID": data[0].HMainStockOrgID
                , "HMaker": data[0].制单人
                , "HChecker": data[0].审核人
                , "HCloseMan": data[0].关闭人
                , "HUpDater": data[0].修改人
                , "HDeleteMan": data[0].作废人
                , "HMakeDate": data[0].制单日期 == null ? "" : data[0].制单日期
                , "HCheckDate": data[0].审核日期 == null ? "" : data[0].审核日期
                , "HCloseDate": data[0].关闭日期 == null ? "" : data[0].关闭日期
                , "HUpDateDate": data[0].修改日期 == null ? "" : data[0].修改日期
                , "HDeleteDate": data[0].作废日期 == null ? "" : data[0].作废日期
            }
            this.form.HStockOrgID = data[0].HMainStockOrgID == null ? 0 : data[0].HMainStockOrgID;
            //子表  赋值
            this.editData = response.data.data[0];
            this.editData1 = response.data.data[1];
          }
          this.formShow = true
          this.formLoading = false
        }
      }).catch(error => {
        console.log(error)
        this.$modal.msgError("接口请求失败!");
      });
      //子表
      axios.get(this.baseURL + "/Sc_MouldProdBackBill/Sc_MouldProdBackBillListProjectDetai", {
        params: { 'sqlWhere': "and hmainid=" + rowHmainid }
      }).then(response => {
        if (response.data.count == 1) {
          var data = response.data
          console.log(data)
          this.editData = data.list[0]
          this.editData1 = data.list[1]
          this.formShow = true
          this.formLoading = false
        }
@@ -774,29 +983,72 @@
        this.$modal.msgError("请选择一行数据编辑!");
      } else {
        let obj = {
          HBatchNo: "",
          HDesignLife: 0,
          HLeaveLife: 0,
          HMaterCode:"",
          HMaterID:0,
          HMaterName:"",
          HMaterSpec:"",
          HMoney:0,
          HPrice:0,
          HQty:0,
          HQtyMust:0,
          HSPCode:"",
          HSPID:0,
          HSPName:"",
          HStockOrgID:sessionStorage["OrganizationID"] - 0,//组织id
          HUnitCode:"",
          HUnitID:0,
          HUnitName:"",
          HUseLife:0,
          HWHCode:"",
          HWHID:0,
          HWHName:"",
          HRemark:"",
         "HMaterID": "0"
          , "HMaterNumber": ""
          , "HMaterName": ""
          , "HMaterModel": ""
          , "HUnitID": "0"
          , "HUnitNumber": ""
          , "HUnitName": ""
          , "HBatchNo": ""
          , "HQty": "0"
          , "HWHID": "0"
          , "HWHNumber": ""
          , "HWHName": ""
          , "HSPID": "0"
          , "HSPNumber": ""
          , "HSPName": ""
          , "HSCWHID": "0"
          , "HSCWHNumber": ""
          , "HSCWHName": ""
          , "HSCSPID": "0"
          , "HSCSPNumber": ""
          , "HSCSPName": ""
          , "HSourceInterID": "0"
          , "HSourceEntryID": "0"
          , "HSourceBillType": ""
          , "HSourceBillNo": ""
          , "HRelationQty": "0"
          , "HRelationMoney": "0"
          , "HRemark": ""
          , "HPropertyID": "0"
          , "HSecUnitID": "0"
          , "HSecUnitRate": "0"
          , "HQtyMust": "0"
          , "HPrice": "0"
          , "HMoney": "0"
          , "HDesignLife": "0"
          , "HLeaveLife": "0"
          , "HPOOrderInterID": "0"
          , "HPOOrderEntryID": "0"
          , "HPOOrderBillNo": ""
          , "HSeOrderInterID": "0"
          , "HSeOrderEntryID": "0"
          , "HSeOrderBillNo": ""
          , "HSTOCKORGID": sessionStorage["OrganizationID"] - 0
          , "HOtherOrgID": sessionStorage["OrganizationID"] - 0
          , "HOWNERID": sessionStorage["OrganizationID"] - 0
          , "HOWNERTYPEID": ""
          , "HUseLife": "0"
          , "HUseLifeQty": "0"
          , "HNewLifeQty": "0"
          , "HQtyRel": "0"
          , "HSPGroupID": "0"
          , "HNewModel": ""
          , "HWallThickness": ""
          , "HHardness": ""
          , "HLastProdModel": ""
          , "HDiameter": ""
          , "HBackFlag": ""
          , "HBarCode": ""
          , "HMouldType": "0"
          , "HInitModel": ""
          , "HInitDesignLife": "0"
          , "HLifeUnitID": "0"
          , "HNowModel": ""
          , "HNowLife": "0"
          , "HCorrespondentTypeID": "0"
          , "HCorrespondentID": "0"
        }
        if (index) {
          this.editData.splice(index, 0, obj);
@@ -879,23 +1131,32 @@
              this.$modal.msgError("第" + (index + 1) + "行:器具未选择!");
            }else if(!item.HWHID){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:仓库未选择!");
              this.$modal.msgError("第" + (index + 1) + "行:调入仓库未选择!");
            }else if(!item.HUnitID){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:计量单位为空!");
            }else if(item.HQty == 0){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:产品入库记录未扫码(实发数量为0)");
              this.$modal.msgError("第" + (index + 1) + "行:数量不能为0!");
            }
          })
          this.$nextTick(() => {
            if (!fhck) {
              if(this.OperationType == 3){
                this.form.HInterID = this.linterid
              var Operation = null
              if(!this.OperationType || this.OperationType == 4){
                Operation = 1
              }else{
                Operation = this.OperationType
                if(Operation == 2){
                  this.form.HInterID = this.linterid
                }
              }
              var sMainStr = JSON.stringify(this.form);
              var sSubStr = JSON.stringify(this.editData);
              var sMainSub = sMainStr + ';' + sSubStr + ';' + sessionStorage["HUserName"];
              var sMainSub = sMainStr + ';' + sSubStr + ';' + Operation + ";" + sessionStorage["HUserName"];
              axios({
                method: 'post',
                url: this.baseURL + "/Sc_MouldProdBackBill/SaveGetMouldProdBackBillList",
                url: this.baseURL + "/Sc_MouldProdBackBillController/GetSc_MouldProdBackBill_Save_Json",
                data: {
                  'msg': sMainSub
                },
@@ -924,12 +1185,13 @@
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldProdBackBill/AuditMouldProdBackBill", {
        params: { "HInterID": InterID, "flag": num, "user": sessionStorage["HUserName"] }
      axios.get(this.baseURL + "/Sc_MouldProdBackBillController/GetSc_MouldProdBackBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data
        if (result.code == 1) {
          this.$modal.msgSuccess('操作成功');
          this.close()
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
@@ -946,6 +1208,7 @@
      this.gyCustomerShow = false
      this.gyMouldShow = false
      this.gyStockPlaceShow = false
      this.scMouldInShow = false
    },
    //  打开数据列表弹窗
    openDataDialog(num, row) {
@@ -986,6 +1249,10 @@
        this.dialogTitle = '仓位列表'
        this.gyStockPlaceShow = true
        this.openData = true
      }  else if (num == 3851) {
        this.dialogTitle = '器具入库申请单列表'
        this.scMouldInShow = true
        this.openData = true
      } 
    },
    //根据往来类型判断往来单位
@@ -998,7 +1265,15 @@
        this.deptType = 2
        this.openDataDialog(1)
      }
    }
    },
    //选择源单
    get_checkMainSource(){
      if(this.form.HSourceBillType == "3851"){
        this.openDataDialog(3851)
      }else{
        this.$modal.msgError("未查询到所选源单类型相关单据信息!");
      }
    },
  }
};
</script>
src/views/scMould/warehouse/Sc_MouldProdMoveBillEdit.vue
@@ -309,6 +309,11 @@
                <span>{{ scope.row.HSCSPName }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="源单单号" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HSourceBillNo }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="备注" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HRemark" placeholder="请输入备注" />
@@ -408,7 +413,7 @@
import GyCustomer from '@/views/GyCustomer'
import GyMould from '@/views/scMould/basicModeling/Gy_MouldFileList.vue'
import GyStockPlace from '@/views/basic/gyStockPlace/gyStockPlace.vue'
import ScMouldMove from '@/views/scMould/warehouse/Sc_MouldMoveStockRequestBillList.vue'
import ScMouldMove from '@/views/scMould/warehouse/component/Sc_MouldMoveStockRequestBill.vue'
import moment from 'moment';
export default {
@@ -589,20 +594,20 @@
      //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
    },
    //获取源单数据
    GetSourceBillList(HSourceInterID, HSourceEntryID, HSourceBillType) {
        var res = "none"
        axios.get(this.baseURL + "/Sc_MouldProdMoveBillController/GetSourceBill_MouldProdMove_Json", {
          params: { "HInterID": HSourceInterID, "HEntryID": HSourceEntryID, "HBillType": HSourceBillType }
        }).then(response => {
          if (response.data.count == 1) {
            res = response.data.data[0]
          }else {
            res = "none";
          }
        }).catch(error => {
          this.$modal.msgError("接口请求失败!");
    GetSourceBillList(HSourceInterID, HSourceEntryID, HSourceBillType) {
        return new Promise((resolve, reject) => {
            axios.get(this.baseURL + "/Sc_MouldProdMoveBillController/GetSourceBill_MouldProdMove_Json", {
                params: { "HInterID": HSourceInterID, "HEntryID": HSourceEntryID, "HBillType": HSourceBillType }
            }).then(response => {
                if (response.data.count == 1) {
                    resolve(response.data.data[0]);
                } else {
                    this.$modal.msgError("未查询到数据!");
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        });
        return res;
    },
    //写入源单数据
    setInitBySourceBill(dataArray){
@@ -612,8 +617,6 @@
      this.form.HSupName = data.HSupName
      this.form.HDeptID = data.HDeptID
      this.form.HDeptName = data.HDeptName
      this.form.HStockInOrgID = data.HStockInOrgID
      this.form.HStockOutOrgID = data.HStockOutOrgID
      this.form.HStockOrgID = data.HStockOutOrgID
      this.form.HStockInOrgID = data.HStockInOrgID == null ? 0 : data.HStockInOrgID
      this.form.HStockOutOrgID = data.HStockOutOrgID == null ? 0 : data.HStockOutOrgID
@@ -705,24 +708,16 @@
          for (var i = 0; i < deptRow.length; i++) {
            if (deptRow[i].HSupTypeID != HSupTypeID_Temp) {
              this.$modal.msgError("所选单据对应往来类型必须一致!");
              this.deptClose()
              return;
            }
            if (deptRow[i].HStockInOrgID != HStockInOrgID_Temp) {
              this.$modal.msgError("所选单据对应调入组织必须一致!");
              this.deptClose()
              return;
            }
          }
          var dataArray = [];
          for (var i = 0; i < deptRow.length; i++) {
              var temp = this.GetSourceBillList(deptRow[i].hmainid, deptRow[i].hsubid, deptRow[i].HBillType)
              console.log(718,temp)
              if (temp != "none") {
                  dataArray.push(temp);
              } else {
                this.$modal.msgError("未查询到源单信息,请刷新源单列表后重新选择对应源单!");
              }
          }
          this.setInitBySourceBill(dataArray)
          this.processSourceBills(deptRow)
          this.scMouldMoveShow = false
          this.openData = false
        } else {
@@ -829,6 +824,7 @@
    deptClose() {
      this.deptform = {}
      this.openData = false
      this.showReset()
    },
    //表单初始化
@@ -837,20 +833,27 @@
        HBillNo: '',
        HInterID: 0,
        HDate: new Date(),
        HInnerBillNo:'',
        HStockInOrgID:sessionStorage["OrganizationID"] - 0,
        HSupTypeID:1,
        HSupName:'',
        HSupID:0,
        HStockOutOrgID:sessionStorage["OrganizationID"] - 0,
        HDeptName: '',
        HDeptID: 0,
        HWHName:'',
        HWHNumber:'',
        HWHID:0,
        HSCWHName:'',
        HSCWHNumber:'',
        HSCWHID:0,
        HEmpName:'',
        HEmpID:'',
        HMangerName:'',
        HMangerID:'',
        HSecManagerName:'',
        HSecManagerID:0,
        HSecManagerID:'',
        HKeeperName:'',
        HKeeperID:0,
        HDeptName: '',
        HDeptID: 0,
        HStockStyle:'同组织调拨',
        HOrgID:sessionStorage["OrganizationID"] - 0,
        HSourceBillType:'',
        XDH:'',
        HKeeperID:'',
        HExplanation:'',
        HRemark:'',
@@ -956,23 +959,24 @@
      this.form.HSourceBillType = this.HSouceBillType
      //获取源单数据
      var data = this.getUrlVars_JSON().data;
      var dataArray = [];
      for (var i = 0; i < data.length; i++) {
          var temp = this.GetSourceBillList(data[i].hmainid, data[i].hsubid, data[i].HBillType)
          console.log(temp)
          if (temp != "none") {
              dataArray.push(temp);
          } else {
              this.$modal.msgError("未查询到单据可下推数据,请刷新单据列表后重新选择单据下推!");
              return;
          }
      }
      this.processSourceBills(data)
      this.$nextTick(() => {
        this.setInitBySourceBill(dataArray);
        this.OperationType = 1;
        this.formShow = true
        this.formLoading = false
      })
    },
    async processSourceBills(data) {
        const dataArray = [];
        try {
            for (var i = 0; i < data.length; i++) {
                const result = await this.GetSourceBillList(data[i].hmainid, data[i].hsubid, data[i].HBillType);
                dataArray.push(result);
            }
            // 所有异步操作完成后执行
            this.setInitBySourceBill(dataArray);
        } catch (error) {
            console.error("处理出错:", error);
        }
    },
    /** 修改按钮操作 */
    handleUpdate() {
@@ -1217,7 +1221,7 @@
          this.$nextTick(() => {
            if (!fhck) {
              var Operation = null
              if(!this.OperationType){
              if(!this.OperationType || this.OperationType == 4){
                Operation = 1
              }else{
                Operation = this.OperationType
src/views/scMould/warehouse/Sc_MouldProdOutBillEdit.vue
@@ -23,47 +23,12 @@
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="内部单据号" prop="HInnerBillNo">
                <el-input v-model="form.HInnerBillNo" placeholder="请输入内部单据号" />
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="器具仓库" prop="HWHName">
                <el-input v-model="form.HWHName" placeholder="请选择器具仓库" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(2,eHWHType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="组织" prop="HOrgID">
                <el-select v-model="form.HOrgID" placeholder="请选择组织" @change="organizationChange" :disabled="zzSelDis">
            <el-col :span="12">
              <el-form-item label="组织" prop="HStockOrgID">
                <el-select v-model="form.HStockOrgID" placeholder="请选择组织" :disabled="ifOrganizationEdit">
                  <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="验收员" prop="HSecManagerName">
                <el-input v-model="form.HSecManagerName" placeholder="请选择验收员" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="保管员" prop="HKeeperName">
                <el-input v-model="form.HKeeperName" placeholder="请选择保管员" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=2)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="部门" prop="HDeptName">
                <el-input v-model="form.HDeptName" placeholder="请选择部门" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(1,deptType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
@@ -83,16 +48,74 @@
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="部门" prop="HDeptName">
                <el-input v-model="form.HDeptName" placeholder="请选择部门" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(1,deptType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="仓库" prop="HWHName">
                <el-input v-model="form.HWHName" placeholder="请选择仓库" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(2,eHWHType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <!-- <el-col :span="6">
              <el-form-item label="源单类型" prop="BillType">
                <el-select v-model="form.BillType" placeholder="请选择">
                  <el-option label="销售订单" value="1401" />
                  <el-option label="发货通知单" value="1402" />
            <el-col :span="6">
              <el-form-item label="业务员" prop="HEmpName">
                <el-input v-model="form.HEmpName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=1)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="负责人" prop="HMangerName">
                <el-input v-model="form.HMangerName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=2)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="验收员" prop="HSecManagerName">
                <el-input v-model="form.HSecManagerName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=3)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="保管员" prop="HKeeperName">
                <el-input v-model="form.HKeeperName" placeholder="请选择" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4,empType=4)"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="源单类型" prop="HSourceBillType">
                <el-select v-model="form.HSourceBillType" placeholder="请选择">
                  <el-option v-for="(item, index) in HSourceBillTypes" :key="index" :label="item.HSourceBillTypeName" :value="item.HSourceBillType">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col> -->
            </el-col>
            <el-col :span="6">
              <el-form-item label="源单单号" prop="HSourceBillNo">
                <el-input placeholder="请选择源单单号" disabled>
                  <el-button slot="append" icon="el-icon-search" @click="get_checkMainSource()"></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="内部单据号" prop="HInnerBillNo">
                <el-input v-model="form.HInnerBillNo" placeholder="请输入" />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="12">
              <el-form-item label="摘要" prop="HExplanation">
                <el-input v-model="form.HExplanation" placeholder="请输入摘要" />
@@ -225,13 +248,13 @@
                  controls-position="right"></el-input-number>
              </template>
            </el-table-column>
            <el-table-column align="center" label="发料仓库代码" width="120">
            <el-table-column align="center" label="仓库代码" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.HWHCode" placeholder="请输入" @keyup.native.f7="openDataDialog(2, scope.row ,eHWHType=2)"
                  @dblclick.native="openDataDialog(2, scope.row ,eHWHType=2)" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="发料仓库" width="120">
            <el-table-column align="center" label="仓库名称" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HWHName }}</span>
              </template>
@@ -242,9 +265,14 @@
                  @dblclick.native="openDataDialog(9, scope.row)" />
              </template>
            </el-table-column>
            <el-table-column align="center" label="仓位" width="120">
            <el-table-column align="center" label="仓位名称" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HSPName }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="源单单号" width="120">
              <template slot-scope="scope">
                <span>{{ scope.row.HSourceBillNo }}</span>
              </template>
            </el-table-column>
            <el-table-column align="center" label="备注" width="120">
@@ -324,6 +352,7 @@
      <GyCustomer @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCustomerShow" />
      <GyMould @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyMouldShow" />
      <GyStockPlace @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyStockPlaceShow" />
      <ScMouldOut @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" :HOrgID="form.HStockOutOrgID" v-if="scMouldOutShow" />
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="deptClickSub">确 定</el-button>
        <el-button @click="deptClose">取 消</el-button>
@@ -345,11 +374,12 @@
import GyCustomer from '@/views/GyCustomer'
import GyMould from '@/views/scMould/basicModeling/Gy_MouldFileList.vue'
import GyStockPlace from '@/views/basic/gyStockPlace/gyStockPlace.vue'
import ScMouldOut from '@/views/scMould/warehouse/component/Sc_MouldOutRequestBill.vue'
import moment from 'moment';
export default {
  name: 'Sc_MouldProdOutBillEdit',
  components: { Dept, Warehouse, RowSettings, GyEmployee,GySupplier,GyCustomer,GyMould,GyStockPlace },
  components: { Dept, Warehouse, RowSettings, GyEmployee,GySupplier,GyCustomer,GyMould,GyStockPlace,ScMouldOut },
  props: {
    OperationType: { type: Number, },
    linterid: { type: Number, },
@@ -367,6 +397,7 @@
      rowHideShow: false,
      openRowHide: false,
      hSupTypeList: [{name:'供应商',id:1,},{name:'客户',id:2},{name:'车间部门',id:3}],
      HSourceBillTypes:[],
      addBtnShow: false,
      zbIndex: null,
      zbSelForm: {},//子表选中数据
@@ -378,6 +409,7 @@
      gyCustomerShow: false,//客户数据组件
      gyMouldShow: false,//器具数据组件
      gyStockPlaceShow: false,//仓位数据组件
      scMouldOutShow:false,//源单组件
      eHWHType:1,//仓库弹窗区分标志
      empType:1,//职员弹窗区分标志
      deptType:1,//部门弹窗区分标志
@@ -385,8 +417,9 @@
      openData: false,//数据弹窗
      dialogTitle: '',
      organizationList: [],//组织列表
      ifOrganizationEdit: false,
      subDisabled: false,//编辑页面保存按钮是否禁用(true禁用,false可用)
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
      // OperationType: this.$route.query.OperationType,//保存类型(新增1修改2)
      HInterID: 0,
      baseURL: process.env.VUE_APP_BASE_API,
      checkedSysZb: [],
@@ -434,26 +467,27 @@
      form: {},
      // 表单校验
      rules: {
        HBillNo: [
          { required: true, message: "单据号不能为空", trigger: "blur" }
        ],
        HDate: [
          { required: true, message: "日期不能为空", trigger: "blur" }
        ],
        HWHName: [
          { required: true, message: "器具仓库不能为空", trigger: "blur" }
        HStockOrgID: [
          { required: true, message: "组织不能为空", trigger: "blur" }
        ],
        HSecManagerName: [
          { required: true, message: "验收员不能为空", trigger: "blur" }
        ],
        HKeeperName: [
          { required: true, message: "保管员不能为空", trigger: "blur" }
        ],
        HDeptName: [
          { required: true, message: "部门不能为空", trigger: "blur" }
        ]
      }
    };
  },
  created() {
    this.fetchData()
    this.SourceBillType()
    this.getdata()
  },
  methods: {
@@ -467,14 +501,29 @@
        this.$modal.msgError("接口请求失败!");
      });
    },
    SourceBillType(){
      axios.get(this.baseURL + "/Web/GetHSourceBillType", {
        params: { "HName": '器具领用出库单', "Num": 2 }//0蓝单 1红单 2不分红蓝单
      }).then(response => {
        if (response.data.count == 1) {
          this.HSourceBillTypes = response.data.data
          this.form.HSourceBillType = this.HSourceBillTypes[0].HSourceBillType
          this.form.HSourceBillTypeName = this.HSourceBillTypes[0].HSourceBillTypeName
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    getdata() {
      console.log(this.copyType, this.OperationType)
      this.formShow = false
      this.formLoading = true
      if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
        this.handleAdd()
      } else if (this.OperationType == 3 || this.copyType == 1) {
      } else if (this.OperationType == 2 || this.copyType == 1) {
        this.handleUpdate()
      } else if (this.OperationType == 4) {
        this.handleMove()
      }
    },
    // 获取参数_传递的JSON格式参数
@@ -498,74 +547,203 @@
      // let options=undefined
      //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
    },
    //获取源单数据
    GetSourceBillList(HSourceInterID, HSourceEntryID, HSourceBillType) {
        return new Promise((resolve, reject) => {
            axios.get(this.baseURL + "/Sc_MouldProdOutBillController/GetSourceBill_MouldProdOut_Json", {
                params: { "HInterID": HSourceInterID, "HEntryID": HSourceEntryID, "HBillType": HSourceBillType }
            }).then(response => {
                if (response.data.count == 1) {
                    resolve(response.data.data[0]);
                } else {
                    this.$modal.msgError("未查询到数据!");
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        });
    },
    //写入源单数据
    setInitBySourceBill(dataArray){
      var data = dataArray[0]
      this.form.HSupTypeID = data.HSupTypeID
      this.form.HSupID = data.HSupID
      this.form.HSupName = data.HSupName
      this.form.HDeptID = data.HDeptID
      this.form.HDeptName = data.HDeptName
      this.form.HStockOrgID = data.HStockOrgID == null ? 0 : data.HStockOrgID
      this.ifOrganizationEdit = true
      //子表  赋值
      var rowdata = [];
      for (let i = 0; i < dataArray.length; i++) {
          rowdata.push(
              {
                "HMaterID": dataArray[i].HMaterID == null ? 0 : dataArray[i].HMaterID
                , "HMaterNumber": dataArray[i].HMaterNumber == null ? "" : dataArray[i].HMaterNumber
                , "HMaterName": dataArray[i].HMaterName == null ? "" : dataArray[i].HMaterName
                , "HMaterModel": dataArray[i].HMaterModel == null ? "" : dataArray[i].HMaterModel
                , "HUnitID": dataArray[i].HUnitID == null ? 0 : dataArray[i].HUnitID
                , "HUnitNumber": dataArray[i].HUnitNumber == null ? "" : dataArray[i].HUnitNumber
                , "HUnitName": dataArray[i].HUnitName == null ? "" : dataArray[i].HUnitName
                , "HBatchNo": ""
                , "HQty": dataArray[i].HQty == null ? 0 : dataArray[i].HQty
                , "HWHID": dataArray[i].HWHID == null ? 0 : dataArray[i].HWHID
                , "HWHNumber": dataArray[i].HWHNumber == null ? "" : dataArray[i].HWHNumber
                , "HWHName": dataArray[i].HWHName == null ? "" : dataArray[i].HWHName
                , "HSPID": "0"
                , "HSPNumber": ""
                , "HSPName": ""
                , "HSCWHID": "0"
                , "HSCWHNumber": ""
                , "HSCWHName": ""
                , "HSCSPID": "0"
                , "HSCSPNumber": ""
                , "HSCSPName": ""
                , "HSourceInterID": dataArray[i].HInterID == null ? 0 : dataArray[i].HInterID
                , "HSourceEntryID": dataArray[i].HEntryID == null ? 0 : dataArray[i].HEntryID
                , "HSourceBillType": dataArray[i].HBillType == null ? "" : dataArray[i].HBillType
                , "HSourceBillNo": dataArray[i].HBillNo == null ? "" : dataArray[i].HBillNo
                , "HRelationQty": "0"
                , "HRelationMoney": "0"
                , "HRemark": ""
                , "HPropertyID": "0"
                , "HSecUnitID": "0"
                , "HSecUnitRate": "0"
                , "HQtyMust": dataArray[i].HQty == null ? 0 : dataArray[i].HQty
                , "HPrice": "0"
                , "HMoney": "0"
                , "HDesignLife": "0"
                , "HLeaveLife": "0"
                , "HPOOrderInterID": "0"
                , "HPOOrderEntryID": "0"
                , "HPOOrderBillNo": ""
                , "HSeOrderInterID": "0"
                , "HSeOrderEntryID": "0"
                , "HSeOrderBillNo": ""
                , "HSTOCKORGID": dataArray[i].HStockOrgID == null ? 0 : dataArray[i].HStockOrgID
                , "HOtherOrgID": dataArray[i].HStockOrgID == null ? 0 : dataArray[i].HStockOrgID
                , "HOWNERID": dataArray[i].HStockOrgID == null ? 0 : dataArray[i].HStockOrgID
                , "HOWNERTYPEID": ""
                , "HUseLife": "0"
                , "HUseLifeQty": "0"
                , "HNewLifeQty": "0"
                , "HQtyRel": "0"
                , "HSPGroupID": "0"
                , "HNewModel": ""
                , "HWallThickness": ""
                , "HHardness": ""
                , "HLastProdModel": ""
                , "HDiameter": ""
                , "HBackFlag": ""
                , "HBarCode": ""
                , "HMouldType": "0"
                , "HInitModel": ""
                , "HInitDesignLife": "0"
                , "HLifeUnitID": "0"
                , "HNowModel": ""
                , "HNowLife": "0"
                , "HCorrespondentTypeID": "0"
                , "HCorrespondentID": "0"
              }
          )
      }
      this.editData = rowdata
    },
    //弹窗赋值
    dbEmitData(deptRow, num) {
      // num=1部门 num=2仓库
      console.log(deptRow)
      if (deptRow.HItemID || deptRow.hmainid) {
        if (num == 1) {
          if(this.deptType == 1){
            this.form.HDeptName = deptRow.部门名称
            this.form.HDeptID = deptRow.HItemID
          }else{
            this.form.HSupName = deptRow.部门名称
            this.form.HSupID = deptRow.HItemID
      if(num == 3849){
        if (deptRow.length > 0) {
          var HSupTypeID_Temp = deptRow[0].HSupTypeID
          for (var i = 0; i < deptRow.length; i++) {
            if (deptRow[i].HSupTypeID != HSupTypeID_Temp) {
              this.$modal.msgError("所选单据对应往来类型必须一致!");
              this.deptClose()
              return;
            }
          }
          this.deptShow = false
          this.processSourceBills(deptRow)
          this.scMouldOutShow = false
          this.openData = false
        } else if (num == 2) {
          if(this.eHWHType == 1){
            this.form.HWHName = deptRow.仓库名称
            this.form.HWHID = deptRow.HItemID
            this.form.HWHNumber = deptRow.仓库代码
          }else{
            this.editData[this.zbIndex].HWHID = deptRow.HItemID
            this.editData[this.zbIndex].HWHCode = deptRow.仓库代码
            this.editData[this.zbIndex].HWHName = deptRow.仓库名称
          }
          this.warehouseShow = false
          this.openData = false
        } else if (num == 4) {
          if(this.empType == 1){
            this.form.HSecManagerName = deptRow.职员名称
            this.form.HSecManagerID = deptRow.HItemID
          }else{
            this.form.HKeeperName = deptRow.职员名称
            this.form.HKeeperID = deptRow.HItemID
          }
          this.gyEmployeeShow = false
          this.openData = false
        } else if (num == 6) {
          this.form.HSupName = deptRow.供应商名称
          this.form.HSupID = deptRow.HItemID
          this.gySupplierShow = false
          this.openData = false
        } else if (num == 7) {
          this.form.HSupName = deptRow.客户名称
          this.form.HSupID = deptRow.HItemID
          this.gyCustomerShow = false
          this.openData = false
        } else if (num == 8){
          this.editData[this.zbIndex].HMaterID = deptRow.hmainid
          this.editData[this.zbIndex].HMaterCode = deptRow.模具编号
          this.editData[this.zbIndex].HMaterName = deptRow.模具名称
          this.editData[this.zbIndex].HMaterSpec = deptRow.模具型号
          this.editData[this.zbIndex].HUnitID = deptRow.HUnitID
          this.editData[this.zbIndex].HUnitCode = deptRow.计量单位代码
          this.editData[this.zbIndex].HUnitName = deptRow.计量单位
          this.gyMouldShow = false
          this.openData = false
        } else if (num == 9){
          this.editData[this.zbIndex].HSPID = deptRow.HMainID
          this.editData[this.zbIndex].HSPCode = deptRow.仓位代码
          this.editData[this.zbIndex].HSPName = deptRow.仓位名称
          this.gyStockPlaceShow = false
          this.openData = false
        } else {
          this.$modal.msgError("请选择数据!");
        }
      } else {
        this.$modal.msgError("请选择单条数据!");
      }else{
        if (deptRow.HItemID || deptRow.hmainid) {
          if (num == 1) {
            if(this.deptType == 1){
              this.form.HDeptName = deptRow.部门名称
              this.form.HDeptID = deptRow.HItemID
            }else{
              this.form.HSupName = deptRow.部门名称
              this.form.HSupID = deptRow.HItemID
            }
            this.deptShow = false
            this.openData = false
          } else if (num == 2) {
            if(this.eHWHType == 1){
              this.form.HWHName = deptRow.仓库名称
              this.form.HWHID = deptRow.HItemID
              this.form.HWHNumber = deptRow.仓库代码
            }else{
              this.editData[this.zbIndex].HWHID = deptRow.HItemID
              this.editData[this.zbIndex].HWHCode = deptRow.仓库代码
              this.editData[this.zbIndex].HWHName = deptRow.仓库名称
            }
            this.warehouseShow = false
            this.openData = false
          } else if (num == 4) {
            if(this.empType == 1){
              this.form.HEmpName = deptRow.职员名称
              this.form.HEmpID = deptRow.HItemID
            }else if(this.empType == 2){
              this.form.HMangerName = deptRow.职员名称
              this.form.HMangerID = deptRow.HItemID
            }else if(this.empType == 3){
              this.form.HSecManagerName = deptRow.职员名称
              this.form.HSecManagerID = deptRow.HItemID
            }else if(this.empType == 4){
              this.form.HKeeperName = deptRow.职员名称
              this.form.HKeeperID = deptRow.HItemID
            }else
            this.gyEmployeeShow = false
            this.openData = false
          } else if (num == 6) {
            this.form.HSupName = deptRow.供应商名称
            this.form.HSupID = deptRow.HItemID
            this.gySupplierShow = false
            this.openData = false
          } else if (num == 7) {
            this.form.HSupName = deptRow.客户名称
            this.form.HSupID = deptRow.HItemID
            this.gyCustomerShow = false
            this.openData = false
          } else if (num == 8){
            this.editData[this.zbIndex].HMaterID = deptRow.hmainid
            this.editData[this.zbIndex].HMaterNumber = deptRow.模具编号
            this.editData[this.zbIndex].HMaterName = deptRow.模具名称
            this.editData[this.zbIndex].HMaterModel = deptRow.模具型号
            this.editData[this.zbIndex].HUnitID = deptRow.HUnitID
            this.editData[this.zbIndex].HUnitNumber = deptRow.计量单位代码
            this.editData[this.zbIndex].HUnitName = deptRow.计量单位
            this.editData[this.zbIndex].HQty = 1
            this.editData[this.zbIndex].HDesignLife = 0
            this.editData[this.zbIndex].HLeaveLife = 0
            this.editData[this.zbIndex].HMoney = 0
            this.gyMouldShow = false
            this.openData = false
          } else if (num == 9){
            this.editData[this.zbIndex].HSPID = deptRow.HMainID
            this.editData[this.zbIndex].HSPCode = deptRow.仓位代码
            this.editData[this.zbIndex].HSPName = deptRow.仓位名称
            this.gyStockPlaceShow = false
            this.openData = false
          }
        } else {
          this.$modal.msgError("请选择单条数据!");
        }
      }
    },
    emitData(deptRow, num) {
      this.dialogTypeNum = num
@@ -586,25 +764,27 @@
        HBillNo: '',
        HInterID: 0,
        HDate: new Date(),
        HInnerBillNo:'',
        HStockOrgID:sessionStorage["OrganizationID"] - 0,
        HSupTypeID: 1,
        HSupName:'',
        HSupID:0,
        HDeptName: '',
        HDeptID: 0,
        HWHName:'',
        HWHNumber:'',
        HWHID:0,
        HOrgID:sessionStorage["OrganizationID"] - 0,
        HEmpName:'',
        HEmpID:0,
        HManagerName:'',
        HManagerID:0,
        HSecManagerName:'',
        HSecManagerID:0,
        HKeeperName:'',
        HKeeperID:0,
        HDeptName: '',
        HDeptID: 0,
        HSupTypeID: 1,
        HSupName:'',
        HSupID:0,
        HSourceBillType:'',
        XDH:'',
        HInnerBillNo:'',
        HExplanation:'',
        HRemark:'',
        HMaker: '',
        HUpDater: '',
        HChecker: '',
@@ -681,7 +861,7 @@
      })
    },
    getHBillNo() {
      axios.get(this.baseURL + "/Web/GetMAXNum", {
      axios.get(this.baseURL + "/WEBSController/GetMaxBillNo_Json", {
        params: {
          HBillType: '3802'
        }
@@ -695,71 +875,95 @@
        this.$modal.msgError("接口请求失败!");
      });
    },
    /** 下推打开 */
    handleMove() {
      this.reset()
      //新增获取单据号
      this.getHBillNo()
      let date = new Date()
      this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
      //设置源单类型
      this.form.HSourceBillType = this.HSouceBillType
      //获取源单数据
      var data = this.getUrlVars_JSON().data;
      this.processSourceBills(data)
      this.$nextTick(() => {
        this.formShow = true
        this.formLoading = false
      })
    },
    async processSourceBills(data) {
        const dataArray = [];
        try {
            for (var i = 0; i < data.length; i++) {
                const result = await this.GetSourceBillList(data[i].hmainid, data[i].hsubid, data[i].HBillType);
                dataArray.push(result);
            }
            // 所有异步操作完成后执行
            this.setInitBySourceBill(dataArray);
        } catch (error) {
            console.error("处理出错:", error);
        }
    },
    /** 修改按钮操作 */
    handleUpdate() {
      this.reset()
      let rowHmainid = this.linterid
      console.log(this.linterid)
      //主表
      axios.get(this.baseURL + "/Sc_MouldProdOutBill/Sc_MouldProdOutBillListCheckDetai", {
        params: { 'HID': rowHmainid }
      axios.get(this.baseURL + "/Sc_MouldStockBillController/GetSc_MouldStockBill_Json", {
        params: { 'HInterID': rowHmainid,"HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        if (response.data.code == 1) {
          var data = response.data.data.h_v_Sc_MouldProdOutHouseBill_Edit[0]
        if (response.data.count == 1) {
          var data = response.data.data[0]
          console.log(data)
          if (this.copyType == 1) {
            this.getHBillNo()
            let date = new Date()
            this.form.HDate = moment(date).format('YYYY-MM-DDTHH:mm:ss')
          } else {
            this.form = {
                  "HBillNo": data.单据号
                , "HDate": data.日期
                , "HInnerBillNo": data.内部单据号
                , "HWHID": data.HWHID                    //仓库ID
                , "HWHName": data.仓库                   //仓库名称
                , "HSecManagerID": data.hsecmanagerid    //验收员ID
                , "HSecManagerName": data.领料人         //验收员名称
                , "HKeeperID": data.hkeeperid            //保管员ID
                , "HKeeperName": data.发料人            //保管员名称
                , "HDeptID": data.HDeptID                 //部门ID
                , "HDeptName": data.部门                //部门名称
                , "HSourceBillType": ""                   //源单类型
                , "XDH": ""                               //选单号
                , "HExplanation": data.摘要              //摘要
                , "HRemark": data.表头备注                    //备注
                , "HSupTypeID": data.往来类型                             //选单号
                , "HSupName": data.往来单位
                , "HSupID": data.HSupID
                , "HMaker": data.制单人
                , "HMakeDate": data.制单日期 == null ? "" : data.制单日期
                , "HChecker": data.审核人
                , "HCheckDate": data.审核日期 == null ? "" : data.审核日期
                , "HUpDater": data.修改人
                , "HUpDateDate": data.修改日期 == null ? "" : data.修改日期
                , "HCloseMan": data.关闭人
                , "HCloseDate": data.关闭日期 == null ? "" : data.关闭日期
                , "HDeleteMan": data.作废人
                , "HDeleteDate": data.作废日期 == null ? "" : data.作废日期
            if (data[0].HSourceInterID != "0") {
              this.ifOrganizationEdit = true
            }
            this.form = {
                "HBillNo": data[0].单据号
                , "HDate": data[0].日期
                , "HSupTypeID": data[0].HSupTypeID
                , "HSupID": data[0].HSupID
                , "HSupName": data[0].往来单位
                , "HDeptID": data[0].HDeptID
                , "HDeptName": data[0].部门
                , "HWHID": data[0].HMainWHID
                , "HWHName": data[0].调入仓库
                , "HEmpID": data[0].HEmpID
                , "HEmpName": data[0].业务员
                , "HManagerID": data[0].HManagerID
                , "HManagerName": data[0].负责人
                , "HSecManagerID": data[0].HSecManagerID
                , "HSecManagerName": data[0].验收员
                , "HKeeperID": data[0].HKeeperID
                , "HKeeperName": data[0].保管员
                , "HExplanation": data[0].摘要
                , "HRemark": data[0].表头备注
                , "HInnerBillNo": data[0].内部单据号
                , "HStockOrgID": data[0].HMainStockOrgID
                , "HMaker": data[0].制单人
                , "HChecker": data[0].审核人
                , "HCloseMan": data[0].关闭人
                , "HUpDater": data[0].修改人
                , "HDeleteMan": data[0].作废人
                , "HMakeDate": data[0].制单日期 == null ? "" : data[0].制单日期
                , "HCheckDate": data[0].审核日期 == null ? "" : data[0].审核日期
                , "HCloseDate": data[0].关闭日期 == null ? "" : data[0].关闭日期
                , "HUpDateDate": data[0].修改日期 == null ? "" : data[0].修改日期
                , "HDeleteDate": data[0].作废日期 == null ? "" : data[0].作废日期
            }
            this.form.HStockOrgID = data[0].HMainStockOrgID == null ? 0 : data[0].HMainStockOrgID;
            //子表  赋值
            this.editData = response.data.data[0];
            this.editData1 = response.data.data[1];
          }
          this.formShow = true
          this.formLoading = false
        }
      }).catch(error => {
        console.log(error)
        this.$modal.msgError("接口请求失败!");
      });
      //子表
      axios.get(this.baseURL + "/Sc_MouldProdOutBill/Sc_MouldProdOutBillListProjectDetai", {
        params: { 'sqlWhere': "and hmainid=" + rowHmainid }
      }).then(response => {
        if (response.data.count == 1) {
          var data = response.data
          console.log(data)
          this.editData = data.list[0]
          this.editData1 = data.list[1]
          this.formShow = true
          this.formLoading = false
        }
@@ -778,29 +982,72 @@
        this.$modal.msgError("请选择一行数据编辑!");
      } else {
        let obj = {
          HBatchNo: "",
          HDesignLife: 0,
          HLeaveLife: 0,
          HMaterCode:"",
          HMaterID:0,
          HMaterName:"",
          HMaterSpec:"",
          HMoney:0,
          HPrice:0,
          HQty:0,
          HQtyMust:0,
          HSPCode:"",
          HSPID:0,
          HSPName:"",
          HStockOrgID:sessionStorage["OrganizationID"] - 0,//组织id
          HUnitCode:"",
          HUnitID:0,
          HUnitName:"",
          HUseLife:0,
          HWHCode:"",
          HWHID:0,
          HWHName:"",
          HRemark:"",
          "HMaterID": "0"
          , "HMaterNumber": ""
          , "HMaterName": ""
          , "HMaterModel": ""
          , "HUnitID": "0"
          , "HUnitNumber": ""
          , "HUnitName": ""
          , "HBatchNo": ""
          , "HQty": "0"
          , "HWHID": "0"
          , "HWHNumber": ""
          , "HWHName": ""
          , "HSPID": "0"
          , "HSPNumber": ""
          , "HSPName": ""
          , "HSCWHID": "0"
          , "HSCWHNumber": ""
          , "HSCWHName": ""
          , "HSCSPID": "0"
          , "HSCSPNumber": ""
          , "HSCSPName": ""
          , "HSourceInterID": "0"
          , "HSourceEntryID": "0"
          , "HSourceBillType": ""
          , "HSourceBillNo": ""
          , "HRelationQty": "0"
          , "HRelationMoney": "0"
          , "HRemark": ""
          , "HPropertyID": "0"
          , "HSecUnitID": "0"
          , "HSecUnitRate": "0"
          , "HQtyMust": "0"
          , "HPrice": "0"
          , "HMoney": "0"
          , "HDesignLife": "0"
          , "HLeaveLife": "0"
          , "HPOOrderInterID": "0"
          , "HPOOrderEntryID": "0"
          , "HPOOrderBillNo": ""
          , "HSeOrderInterID": "0"
          , "HSeOrderEntryID": "0"
          , "HSeOrderBillNo": ""
          , "HSTOCKORGID": sessionStorage["OrganizationID"] - 0
          , "HOtherOrgID": sessionStorage["OrganizationID"] - 0
          , "HOWNERID": sessionStorage["OrganizationID"] - 0
          , "HOWNERTYPEID": ""
          , "HUseLife": "0"
          , "HUseLifeQty": "0"
          , "HNewLifeQty": "0"
          , "HQtyRel": "0"
          , "HSPGroupID": "0"
          , "HNewModel": ""
          , "HWallThickness": ""
          , "HHardness": ""
          , "HLastProdModel": ""
          , "HDiameter": ""
          , "HBackFlag": ""
          , "HBarCode": ""
          , "HMouldType": "0"
          , "HInitModel": ""
          , "HInitDesignLife": "0"
          , "HLifeUnitID": "0"
          , "HNowModel": ""
          , "HNowLife": "0"
          , "HCorrespondentTypeID": "0"
          , "HCorrespondentID": "0"
        }
        if (index) {
          this.editData.splice(index, 0, obj);
@@ -883,23 +1130,32 @@
              this.$modal.msgError("第" + (index + 1) + "行:器具未选择!");
            }else if(!item.HWHID){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:仓库未选择!");
              this.$modal.msgError("第" + (index + 1) + "行:调入仓库未选择!");
            }else if(!item.HUnitID){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:计量单位为空!");
            }else if(item.HQty == 0){
              fhck = true
              this.$modal.msgError("第" + (index + 1) + "行:产品入库记录未扫码(实发数量为0)");
              this.$modal.msgError("第" + (index + 1) + "行:数量不能为0!");
            }
          })
          this.$nextTick(() => {
            if (!fhck) {
              if(this.OperationType == 3){
                this.form.HInterID = this.linterid
              var Operation = null
              if(!this.OperationType || this.OperationType == 4){
                Operation = 1
              }else{
                Operation = this.OperationType
                if(Operation == 2){
                  this.form.HInterID = this.linterid
                }
              }
              var sMainStr = JSON.stringify(this.form);
              var sSubStr = JSON.stringify(this.editData);
              var sMainSub = sMainStr + ';' + sSubStr + ';' + sessionStorage["HUserName"];
              var sMainSub = sMainStr + ';' + sSubStr + ';' + Operation + ";" + sessionStorage["HUserName"];
              axios({
                method: 'post',
                url: this.baseURL + "/Sc_MouldProdOutBill/SaveGetMouldProdOutBillList",
                url: this.baseURL + "/Sc_MouldProdOutBillController/GetSc_MouldProdOutBill_Save_Json",
                data: {
                  'msg': sMainSub
                },
@@ -928,12 +1184,13 @@
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldProdOutBill/AuditMouldProdOutBill", {
        params: { "HInterID": InterID, "flag": num, "user": sessionStorage["HUserName"] }
      axios.get(this.baseURL + "/Sc_MouldProdOutBillController/GetSc_MouldProdOutBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data
        if (result.code == 1) {
          this.$modal.msgSuccess('操作成功');
          this.close()
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
@@ -950,6 +1207,7 @@
      this.gyCustomerShow = false
      this.gyMouldShow = false
      this.gyStockPlaceShow = false
      this.scMouldOutShow = false
    },
    //  打开数据列表弹窗
    openDataDialog(num, row) {
@@ -990,6 +1248,10 @@
        this.dialogTitle = '仓位列表'
        this.gyStockPlaceShow = true
        this.openData = true
      } else if (num == 3849) {
        this.dialogTitle = '器具领用出库单列表'
        this.scMouldOutShow = true
        this.openData = true
      } 
    },
    //根据往来类型判断往来单位
@@ -1002,7 +1264,15 @@
        this.deptType = 2
        this.openDataDialog(1)
      }
    }
    },
    //选择源单
    get_checkMainSource(){
      if(this.form.HSourceBillType == "3849"){
        this.openDataDialog(3849)
      }else{
        this.$modal.msgError("未查询到所选源单类型相关单据信息!");
      }
    },
  }
};
</script>
src/views/scMould/warehouse/component/Sc_MouldInRequestBill.vue
New file
@@ -0,0 +1,959 @@
<template>
  <div style="padding: 10px; position: relative;">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
      <el-form-item label="开始日期" style="margin-left: 100px;">
        <el-date-picker v-model="sTime" type="date" placeholder="开始日期" style="width: 150px;">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="结束日期">
        <el-date-picker v-model="eTime" type="date" placeholder="结束日期" style="width: 150px;">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="日期间隔">
        <el-select v-model="queryParams.HInitTimeCycle" placeholder="请选择" @change="riqiChange" style="width: 150px;">
          <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="单据号" prop="HBillNo">
        <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label-width="78px">
        <el-button type="primary" icon="el-icon-search" @click="handleQuery"> 搜 索</el-button>
        <el-button icon="el-icon-circle-close" @click="resetQuery">重 置</el-button>
      </el-form-item>
      <el-collapse v-model="activeSeach">
        <el-collapse-item title="更多" name="1">
          <el-card class="box-card">
            <el-form-item label="状态" prop="HStatus">
              <el-select v-model="queryParams.HStatus" placeholder="请选择状态">
                <el-option v-for="(item, index) in HStatusList" :key="index" :label="item.name" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="组织">
              <el-select v-model="queryParams.HStockOrgID" placeholder="请选择">
                <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="部门信息" prop="HDept">
              <el-input v-model="queryParams.HDept" placeholder="请输入部门信息" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="器具代码" prop="HModelNumber">
              <el-input v-model="queryParams.HModelNumber" placeholder="请输入器具代码" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="往来单位" prop="HSupName">
              <el-input v-model="queryParams.HSupName" placeholder="请输入往来单位" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <div slot="header" class="clearfix"><span>其他条件</span></div>
            <div>
              <el-row>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="2"><span>过滤</span></el-col>
                    <el-col :span="6">
                      <el-select v-model="queryParams.ColName1" placeholder="请选择" @change="riqiChange">
                        <span v-for="(item, index) in btList" :key="index">
                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        </span>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px;">
                      <el-select v-model="queryParams.Comparator1" placeholder="请选择" @change="riqiChange">
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="10">
                      <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
              </el-row>
              <el-row>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="2"><span>过滤</span></el-col>
                    <el-col :span="6">
                      <el-select v-model="queryParams.ColName2" placeholder="请选择" @change="riqiChange">
                        <span v-for="(item, index) in btList" :key="index">
                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        </span>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px;">
                      <el-select v-model="queryParams.Comparator2" placeholder="请选择" @change="riqiChange">
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="10">
                      <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
              </el-row>
              <el-form-item label-width="0">
                <el-row>
                  <el-col :span="2"><span>过滤</span></el-col>
                  <el-col :span="6">
                    <el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange">
                      <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
                        :value="item.field"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px;">
                    <el-select v-model="queryParams.Comparator" placeholder="请选择" @change="riqiChange">
                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                        :value="item.value"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="10">
                    <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" />
                  </el-col>
                </el-row>
              </el-form-item>
            </div>
          </el-card>
        </el-collapse-item>
      </el-collapse>
    </el-form>
    <el-row :gutter="10" class="mb8" style="margin-top: 10px;">
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)"
          id="btn-Add">新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit(row = rowForm, OperationType = 2)">编辑</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-document-copy" size="mini" :disabled="single"
          @click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">复制</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-tickets" size="mini"
          @click="handlePush(row = rowForm, OperationType = 4)">下推(器具领用退库单)</el-button>
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
          @click="set_CheckBill(1, form = rowForm)">审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
          @click="set_CheckBill(2, form = rowForm)">返审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="multiple"
          @click="set_CheckBillAll(1, ids)">审核(批量)</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="multiple"
          @click="set_CheckBillAll(2, ids)">返审核(批量)</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">打印</el-button>
      </el-col> -->
    </el-row>
    <div class="tableBox" v-loading="loading">
      <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
        @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle"
        @cell-dblclick="handleDblclick" v-if="tableShow">
        <template v-for="(item, index) in btList">
          <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'"
            :key="index" />
          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width" :key="item.id"
            v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort" show-overflow-tooltip
            :fixed="item.fixed">
            <template slot-scope="{row,  column }">
              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
              <div :style="item.style">
                <span v-if="column.property.includes('日期')">{{ parseTime(row[column.property], '{y}-{m}-{d}') }}</span>
                <el-button type="text" @click="handleEdit(row, OperationType = 2)"
                  v-else-if="column.property == '单据号'">{{
                    row.单据号
                  }}</el-button>
                <span v-else>{{ row[column.label] }}</span>
              </div>
            </template>
          </el-table-column>
        </template>
      </el-table>
      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes" @pagination="getList" />
      <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
        <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose"
          v-if="rowHideShow" />
      </el-dialog>
      <!-- 编辑 -->
      <el-dialog title="编辑器具入库申请单" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox" @close="close">
        <edit :OperationType=OperationType :linterid=this.rowForm.hmainid :HSouceBillType=this.rowForm.HSourceBillType
          :copyType="copyType" @editClose="editClose" v-if="editShow" />
      </el-dialog>
      <!-- 下推 -->
      <el-dialog title="下推器具领用退库单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox" @close="close">
        <push :OperationType='4' :propsData='pushData' :HSouceBillType=BillType
         @editClose="pushClose" v-if="pushShow" />
      </el-dialog>
      <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
        <PrintList :linterid=this.rowForm.hmainid :MyMsg=this.rowForm.hmainid :Type='HModName'
          :HModName='HModName' @rowEditClose="rowSetClose" v-if="printListShow" />
        <!-- <div>111</div> -->
      </el-dialog>
    </div>
  </div>
</template>
<script>
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import Edit from '@/views/scMould/warehouse/Sc_MouldInRequestBillEdit'
import Push from '@/views/scMould/warehouse/Sc_MouldProdBackBillEdit'
import PrintList from '@/views/component/printList'
import moment from 'moment';
export default {
  name: 'Sc_MouldInRequestBill',
  components: { RowSettings, Edit, Push,PrintList },
  props: {
    openPage: { type: String, },
    HOrgID: { type: String, },
  },
  data() {
    return {
      HModName: "Sc_MouldInRequestBill",
      rowList:[],
      activeSeach: '',
      editShow: false,
      openEdit: false,
      pushShow: false,
      openPush: false,
      pushData:'',
      totalNameList: [],
      tableShow: true,
      openPrintList: false,
      printListShow: false,
      openBtnHide: false,
      btnHideShow: false,
      rowHideShow: false,
      openRowHide: false,
      copyType: 0,
      comparatorList: [
        { label: '=', value: '=' },
        { label: '>=', value: '>=' },
        { label: '>', value: '>' },
        { label: '<=', value: '<=' },
        { label: '<', value: '<' },
        { label: '<>', value: '<>' },
        { label: '包含', value: '7' },
        { label: '左包含', value: '8' },
        { label: '右包含', value: '9' },
        { label: '不包含', value: '10' },
      ],
      sWhere: '',
      sTime: '',
      eTime: '',
      rqsgList: [
        { label: '今天', value: 0 },
        { label: '近两天', value: 1 },
        { label: '近三天', value: 2 },
        { label: '近四天', value: 3 },
        { label: '近五天', value: 4 },
        { label: '近六天', value: 5 },
        { label: '近七天', value: 6 },
        { label: '近30天', value: 29 },
        { label: '近半年', value: 180 },
        { label: '近一年', value: 365 },
      ],
      organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//组织列表
      HStatusList: [{name:'全部',value:'-1'},{name:'未审核',value:'0'},{name:'已审核',value:'1'},{name:'已关闭',value:'2'}],
      addBtnShow: false,
      dialogTitle: '',
      OperationType: null,//保存类型(新增1修改2)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API,
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 查询参数
      queryParams: {
        HBillNo: '',
        HInitTimeCycle: 29,
        HStockOrgID: sessionStorage["OrganizationID"] - 0,
        HStatus:'-1',
        HDept:'',
        HModelNumber:'',
        HSupName:'',
        ColName1: '',
        ColName2: '',
        ColName: '',
        Comparator1: '',
        Comparator2: '',
        Comparator: '',
        ColContent1: '',
        ColContent2: '',
        ColContent: '',
      },
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],//列表(接口数据)
      btList: [],//表头列表显示
      btResList: [],
      tableData: [],//列表(分页显示)
      dataList: [],
      titleData: [],//不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 0,
      total: 0,
      BillType:'3851',
    };
  },
  created() {
    // this.fetchData()
    if(this.openPage && this.HOrgID){
      this.queryParams.HStockOrgID = this.HOrgID
    }
    this.riqiChange()
    this.getList();
  },
  methods: {
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '合计';
          return;
        }
        const values = data.map(item => Number(item[column.property]));
        if (this.totalNameList[index].totalRow) {
          if (!values.every(value => isNaN(value))) {
            sums[index] = values.reduce((prev, curr) => {
              const value = Number(curr);
              if (!isNaN(value)) {
                return prev + curr;
              } else {
                return prev;
              }
            }, 0)
          } else {
            sums[index] = '';
          }
        }
      }, 1000);
      return sums;
    },
    handleBtnHide() {
      this.btnHideShow = true
      this.openBtnHide = true
    },
    handleRowHide() {
      this.rowHideShow = true
      this.openRowHide = true
    },
    rowSetClose(val) {
      this.rowHideShow = false
      this.tableShow = true
      this.openRowHide = val
      this.getList()
    },
    riqiChange() {
      const end = new Date();
      const start = new Date();
      start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
      const yyyyS = start.getFullYear();
      const mmS = String(start.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
      const ddS = String(start.getDate()).padStart(2, '0');
      const yyyyE = end.getFullYear();
      const mmE = String(end.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
      const ddE = String(end.getDate()).padStart(2, '0');
      this.sTime = yyyyS + '-' + mmS + '-' + ddS
      this.eTime = yyyyE + '-' + mmE + '-' + ddE
    },
    getList() {
      this.pageSize = 50
      this.tableShow = false
      this.loading = true
      if (this.sTime && !this.sWhere) {
        this.sTime = moment(this.sTime).format('YYYY-MM-DD')
        this.eTime = moment(this.eTime).format('YYYY-MM-DD')
        this.sWhere += " and 日期 >= '" + this.sTime + "'";
        this.sWhere += " and 日期 <= '" + this.eTime + "'";
      }
      this.sWhere += " and HSTOCKORGID=" + this.queryParams.HStockOrgID;
      if (this.pageSize == 0) {
        this.pageSize = 50
      }
      // 销售出库单列表
      axios.get(this.baseURL + '/Sc_MouldInRequestBillController/page', {
        params: {
          "sWhere": this.sWhere,
          "user": sessionStorage["HUserName"],
          "page": this.page,
          "size": this.pageSize,
          "Type": this.BillType,
        },
      }).then(response => {
        this.tyResList = response.data.data//总数据
        let data1 = response.data
        let option = []
        if (data1.code == 1) {
          this.btResList = data1.list//销售出库单接口表头数据
          this.total = data1.count;
          var data = [];//列字段数据
          var col = [];
          var totalArray = ["件数"];
          //给空的数组赋值
          for (var key in data1.list) {//循序遍历数组
            data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据
            //获取不需要显示的列(H开头的列不显示)
            var patrn = new RegExp(/^h/i);
            if (patrn.test(data1.list[key].ColmCols)) {
                this.titleData[key] = data1.list[key].ColmCols;
            }
          }
          //在列表左边添加勾选框
          col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
          for (var i = 0; i < data.length; i++) {//遍历data数组重的数据
            if (this.titleData.indexOf(data[i].name) > -1) {//检查data【i】.name是否在数组中  //计算列
              col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
            } else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //计算列
              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
            }
            else {
              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
            }
          }
          option.cols = [col]
          option.data = data1.data
          this.dataList = option
          this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    DisPlay_HideColumn(HModName, user, option, dataOption) {
      this.totalNameList = []
      axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', {
        params: {
          "HModName": HModName,
          "user": user,
        },
      }).then(res => {
        let data1 = res.data
        if (data1.data.length != 0) {
          var dataCol = [];//数据库查询出的列数据
          var newCols = [[]];//对应数据库列顺序col
          newCols[0].push(option.cols[0][0]);//放入第一个checkbox
          dataCol = data1.data[0].HGridString.split(',');
          //列设置列数与页面列数是否一致
          if (dataCol.length == option.cols[0].length - 1) {
            //遍历寻找列设置对应列按顺序插入
            for (var j = 0; j < option.cols[0].length - 1; j++) {
              for (var i = 0; i < option.cols[0].length - 1; i++) {
                var dataCols = dataCol[j].split('|');
                //选择与datacols相应列进行修改
                if (option.cols[0][i + 1]["field"] == dataCols[5]) {
                  //隐藏列
                  if (dataCols[1] == 1) {
                    option.cols[0][i + 1]["hide"] = true;
                  }
                  //设置列宽
                  if (dataCols[3] > 0) {
                    option.cols[0][i + 1]["width"] = dataCols[3];
                  }
                  //设置内容字体大小
                  if (data1.data[0].HFontSize != 0) {
                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                  } else {
                    option.cols[0][i + 1]["style"] = "font-size:100%";
                  }
                  //显示列
                  if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) {
                    option.cols[0][i + 1]["hide"] = false;
                  }
                  //统计列
                  if (dataCols[6] == 1) {
                    option.cols[0][i + 1]["totalRow"] = true;
                  } else {
                    option.cols[0][i + 1]["totalRow"] = false;
                  }
                  //字体所在位置(左 居中 右)
                  switch (dataCols[2]) {
                    case "L":
                      option.cols[0][i + 1]["align"] = "left";
                      break;
                    case "M":
                      option.cols[0][i + 1]["align"] = "center";
                      break;
                    case "R":
                      option.cols[0][i + 1]["align"] = "right";
                      break;
                  }
                  //设置表格title属性显示别名
                  if (dataCols[4] != null && dataCols[4] != "") {
                    option.cols[0][i + 1]["title"] = dataCols[4];
                  }
                  newCols[0].push(option.cols[0][i + 1]);
                  break;
                }
              }
            }
            //遍历循环后判断对应列数是否一致
            if (dataCol.length == newCols[0].length - 1) {
              option.cols = newCols;
              //取消冻结列
              for (var i = 1; i < option.cols[0].length - 1; i++) {
                if (option.cols[0][i + 1]["fixed"] != null) {
                  option.cols[0][i + 1]["fixed"] = null;
                }
                else {
                  break;
                }
              }
              //冻结列
              if (data1.data[0].HFixCols != 0) {
                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                  if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) {
                    data1.data[0].HFixCols += 1;
                  }
                  option.cols[0][i + 1]["fixed"] = "left";
                }
              }
              //设置列排序
              for (var i = 1; i < option.cols[0].length; i++) {
                if (data1.data[0].HSortFlag == "是") {
                  option.cols[0][i]["sort"] = true;
                }
                else {
                  option.cols[0][i]["sort"] = false;
                }
              }
            }
          }
          this.btList = option.cols[0]
          this.btList.map(item => {
            if (!item.hide) {
              this.totalNameList.push(item)
            }
          })
          if (data1.data[0].HPageSize == 0) {
            this.pageSize = 50
          } else {
            this.pageSize = data1.data[0].HPageSize
          }
          this.tableData = option.data
          this.tableShow = true
          this.loading = false
        } else {
          this.btList = dataOption.cols[0]
          this.btList.map(item => {
            if (!item.hide) {
              this.totalNameList.push(item)
            }
          })
          this.tableData = dataOption.data
          this.tableShow = true
          this.loading = false
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    renderHeader(h, { column, $index }) {// 新建一个 span
      let span = document.createElement(span)// 设置表头名称
      span.innerText = column.label
      //临时插入 document
      document.body.appendChild(span)// 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span)
      return h(span, column.label)
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', this.rowList, this.BillType)
      }
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.sorderid)) {
        return { "background": "#ecf5ff" }
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.OperationType = 2
      this.handleEdit(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.rowList=selection
      this.ids = selection.map(item => item.sorderid)
      this.single = selection.length != 1
      this.multiple = !selection.length
      if (!this.single) {
        this.rowForm = selection[0]
      }
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.sWhere = ''
      if (this.queryParams.ColName && this.queryParams.Comparator) {
        var com = "";
        switch (this.queryParams.Comparator) {
          case "7":
            com = "like'%" + this.queryParams.ColContent + "%'";
            break;
          case "8":
            com = "like'%" + this.queryParams.ColContent + "'";
            break;
          case "9":
            com = "like'" + this.queryParams.ColContent + "%'";
            break;
          case "10":
            com = "not like'%" + this.queryParams.ColContent + "%'";
            break;
          default:
            com = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName + " " + com;
      }
      if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
        var com1 = "";
        switch (this.queryParams.Comparator1) {
          case "7":
            com1 = "like'%" + this.queryParams.ColContent1 + "%'";
            break;
          case "8":
            com1 = "like'%" + this.queryParams.ColContent1 + "'";
            break;
          case "9":
            com1 = "like'" + this.queryParams.ColContent1 + "%'";
            break;
          case "10":
            com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
            break;
          default:
            com1 = "" + this.queryParams.Comparator1 + "'" + this.queryParams.ColContent1 + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
      }
      if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
        var com2 = "";
        switch (this.queryParams.Comparator2) {
          case "7":
            com2 = "like'%" + this.queryParams.ColContent2 + "%'";
            break;
          case "8":
            com2 = "like'%" + this.queryParams.ColContent2 + "'";
            break;
          case "9":
            com2 = "like'" + this.queryParams.ColContent2 + "%'";
            break;
          case "10":
            com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
            break;
          default:
            com2 = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
      }
      if (this.queryParams.HStatus) {
          switch (this.queryParams.HStatus) {
              case '-1':   //全部
                  this.sWhere += "";
                  break;
              case '0':    //未审核
                  this.sWhere += " and 审核人=''";
                  break;
              case '1':    //已审核
                  this.sWhere += " and 审核人<>''";
                  break;
              case '2':    //已关闭
                  this.sWhere += " and 关闭人<>''";
              default:
          }
      }
      if (this.sTime) {
          this.sTime = moment(this.sTime).format('YYYY-MM-DD')
          this.sWhere += " and 日期 >= '" + this.sTime + "'";
      }
      if (this.eTime) {
          this.eTime = moment(this.eTime).format('YYYY-MM-DD')
          this.sWhere += " and 日期 <= '" + this.eTime + "'";
      }
      if (this.queryParams.HBillNo) {
        this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
      }
      if (this.queryParams.HDept) {
          this.sWhere += " and 部门 like '%" + this.queryParams.HDept + "%'";
      }
      if (this.queryParams.HModelNumber) {
          this.sWhere += " and 模具代码 like '%" + this.queryParams.HModelNumber + "%'";
      }
      if (this.queryParams.HSupName) {
          this.sWhere += " and 往来单位 like '%" + this.queryParams.HSupName + "%'";
      }
      this.clearData()
      this.getList()
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.sWhere = ''
      this.queryParams = {
        HBillNo: '',
        HInitTimeCycle: 29,
        HStockOrgID: sessionStorage["OrganizationID"] - 0,
        HStatus:'-1',
        HDept:'',
        HModelNumber:'',
        HSupName:'',
        ColName1: '',
        ColName2: '',
        ColName: '',
        Comparator1: '',
        Comparator2: '',
        Comparator: '',
        ColContent1: '',
        ColContent2: '',
        ColContent: '',
      }
      this.riqiChange()
      this.resetForm("queryForm")
      this.clearData()
      this.getList()
    },
    //退出
    close() {
      // this.reset()
      this.tableShow = true
      this.openEdit = false
      this.editShow = false
      this.openPush = false
      this.pushShow = false
      this.clearData()
      this.getList()
    },
    //打开新增组件弹窗
    handleAddEdit() {
      this.rowForm.hmainid = 0
      this.editShow = true
      this.openEdit = true
    },
    //打开修改组件弹窗
    handleEdit(row) {
      this.rowForm = row
      this.editShow = true
      this.openEdit = true
    },
    //打开下推组件弹窗
    handlePush() {
      if (this.rowList && this.rowList.length > 0) {
        var dataArray = [];
        var HSupTypeID_Temp = this.rowList[0].HSupTypeID
        for (var i = 0; i < this.rowList.length; i++) {
            if (this.rowList[i].单据状态 != "已审核") {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                return;
            }
            if (this.rowList[i].HQtyMust <= 0) {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                return;
            }
            if (this.rowList[i].HSupTypeID != HSupTypeID_Temp) {
                this.$modal.msgError("下推失败!所选单据对应往来类型必须一致!")
                return;
            }
            var temp = {
                "hmainid": this.rowList[i].hmainid
                , "hsubid": this.rowList[i].hsubid
                , "HBillType": this.rowList[i].HBillType
            }
            dataArray.push(temp);
        }
        var datajson = {
            "data": dataArray
        };
        this.pushData = JSON.stringify(datajson)
        this.pushShow = true
        this.openPush = true
      } else {
          this.$modal.msgError("请选择数据下推!")
      }
    },
    //关闭编辑页面
    editClose(val) {
      this.open = val
      this.editShow = false
      this.openEdit = val
      this.clearData()
      this.getList()
    },
    //关闭下推页面
    pushClose(val) {
      this.open = val
      this.pushShow = false
      this.openPush = val
      this.clearData()
      this.getList()
    },
    //清除选中数据的缓存
    clearData(){
      this.ids = []
      this.multiple = true
      this.single = true
      this.OperationType = 0
      this.copyType = 0
    },
    /** 删除按钮操作 */
    handleDelete() {
      this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => {
        axios.get(this.baseURL + "/Sc_MouldInRequestBillController/GetSc_MouldInRequestBill_Delete_Json", {
            params: { 'HInterID': this.rowForm.hmainid.toString(), 'HMaker': sessionStorage["HUserName"] }
          }).then(response => {
            if (response.data.count == 1) {
              this.getList()
              this.$modal.msgSuccess("删除成功")
            } else {
              this.$modal.msgError("错误:" + result.code + result.Message);
            }
          }).catch(error => {
            this.$modal.msgError("接口请求失败!");
          });
      }).catch(() => { })
    },
    // 反审核/审核数据
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldInRequestBillController/GetSc_MouldInRequestBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data
        if (result.count == 1) {
          this.$modal.msgSuccess('操作成功');
          this.clearData()
          this.getList();
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    // 批量反审核/审核数据
    set_CheckBillAll(num, ids) {
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldInRequestBillController/CheckAll", {
        params: { "ids": ids, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data
        if (result.count == 1) {
          this.$modal.msgSuccess('操作成功');
          this.getList();
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    //导出
    handleExport() {
      const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表
      const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿
      this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1"
      this.$XLSX.writeFile(wb, `sellOutBill_${new Date().getTime()}.xlsx`); // 导出文件
    },
    //打印
    get_PrintReport() {
      if (this.ids.length != 1) {
        this.$modal.msgError("请选择一行数据")
      } else if (this.rowForm.状态 != "已审核" && !this.defaintOperationByCompanyName()) {
        this.$modal.msgError("打印失败!原因:单据状态不为'已审核'状态!!");
      } else {
        axios.get(this.baseURL + "/Kf_SellOutBill/CheckSellOutBill_IsExist", {
          params: { "HInterID": this.rowForm.hmainid }
        }).then(response => {
          var result = response.data
          if (result.count == 1) {
            this.printListShow = true
            this.openPrintList = true
            // this.$router.push({ path:'/printList', query: { linterid: this.rowForm.hmainid,MyMsg:this.rowForm.hmainid,Type:'Kf_SellOutBillList' }})
          } else {
            this.$modal.msgError(result.code + result.Message)
          }
        }).catch(error => {
          this.$modal.msgError("接口请求失败!");
        });
      }
      //  var content= ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=Kf_SellOutBillList', 'yes']
    },
    //#region 获取公司名,根据公司进行定制化开发
    defaintOperationByCompanyName() {
      var result = false;
      axios.get(this.baseURL + '/Xt_getInfo/getCompanyName').then(response => {
        var data1 = response.data
        if (data1.count == 1) {
          if (data1.data == "水务") {
            result = true;
          }
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
      return result;
    },
  }
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/scMould/warehouse/component/Sc_MouldMoveStockRequestBill.vue
New file
@@ -0,0 +1,920 @@
<template>
  <div style="padding: 10px; position: relative;">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
      <el-form-item label="开始日期" style="margin-left: 100px;">
        <el-date-picker v-model="sTime" type="date" placeholder="开始日期" style="width: 150px;">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="结束日期">
        <el-date-picker v-model="eTime" type="date" placeholder="结束日期" style="width: 150px;">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="日期间隔">
        <el-select v-model="queryParams.HInitTimeCycle" placeholder="请选择" @change="riqiChange" style="width: 150px;">
          <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="单据号" prop="HBillNo">
        <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label-width="78px">
        <el-button type="primary" icon="el-icon-search" @click="handleQuery"> 搜 索</el-button>
        <el-button icon="el-icon-circle-close" @click="resetQuery">重 置</el-button>
      </el-form-item>
      <el-collapse v-model="activeSeach">
        <el-collapse-item title="更多" name="1">
          <el-card class="box-card">
            <el-form-item label="状态" prop="HStatus">
              <el-select v-model="queryParams.HStatus" placeholder="请选择状态">
                <el-option v-for="(item, index) in HStatusList" :key="index" :label="item.name" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="调出组织">
              <el-select v-model="queryParams.HStockOutOrgID" placeholder="请选择">
                <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="部门信息" prop="HDept">
              <el-input v-model="queryParams.HDept" placeholder="请输入部门信息" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="器具代码" prop="HModelNumber">
              <el-input v-model="queryParams.HModelNumber" placeholder="请输入器具代码" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="往来单位" prop="HSupName">
              <el-input v-model="queryParams.HSupName" placeholder="请输入往来单位" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <div slot="header" class="clearfix"><span>其他条件</span></div>
            <div>
              <el-row>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="2"><span>过滤</span></el-col>
                    <el-col :span="6">
                      <el-select v-model="queryParams.ColName1" placeholder="请选择" @change="riqiChange">
                        <span v-for="(item, index) in btList" :key="index">
                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        </span>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px;">
                      <el-select v-model="queryParams.Comparator1" placeholder="请选择" @change="riqiChange">
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="10">
                      <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
              </el-row>
              <el-row>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="2"><span>过滤</span></el-col>
                    <el-col :span="6">
                      <el-select v-model="queryParams.ColName2" placeholder="请选择" @change="riqiChange">
                        <span v-for="(item, index) in btList" :key="index">
                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        </span>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px;">
                      <el-select v-model="queryParams.Comparator2" placeholder="请选择" @change="riqiChange">
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="10">
                      <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
              </el-row>
              <el-form-item label-width="0">
                <el-row>
                  <el-col :span="2"><span>过滤</span></el-col>
                  <el-col :span="6">
                    <el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange">
                      <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
                        :value="item.field"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px;">
                    <el-select v-model="queryParams.Comparator" placeholder="请选择" @change="riqiChange">
                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                        :value="item.value"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="10">
                    <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" />
                  </el-col>
                </el-row>
              </el-form-item>
            </div>
          </el-card>
        </el-collapse-item>
      </el-collapse>
    </el-form>
    <el-row :gutter="10" class="mb8" style="margin-top: 10px;">
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)"
          id="btn-Add">新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit(row = rowForm, OperationType = 2)">编辑</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-document-copy" size="mini" :disabled="single"
          @click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">复制</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-tickets" size="mini"
          @click="handleMove(row = rowForm, OperationType = 4)">下推(器具直接调拨单)</el-button>
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
          @click="set_CheckBill(1, form = rowForm)">审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
          @click="set_CheckBill(2, form = rowForm)">返审核</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">打印</el-button>
      </el-col> -->
    </el-row>
    <div class="tableBox" v-loading="loading">
      <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
        @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle"
        @cell-dblclick="handleDblclick" v-if="tableShow">
        <template v-for="(item, index) in btList">
          <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'"
            :key="index" />
          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width" :key="item.id"
            v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort" show-overflow-tooltip
            :fixed="item.fixed">
            <template slot-scope="{row,  column }">
              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
              <div :style="item.style">
                <span v-if="column.property.includes('日期')">{{ parseTime(row[column.property], '{y}-{m}-{d}') }}</span>
                <el-button type="text" @click="handleEdit(row, OperationType = 2)"
                  v-else-if="column.property == '单据号'">{{row.单据号}}</el-button>
                <span v-else>{{ row[column.label] }}</span>
              </div>
            </template>
          </el-table-column>
        </template>
      </el-table>
      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes" @pagination="getList" />
      <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
        <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose"
          v-if="rowHideShow" />
      </el-dialog>
      <!-- 编辑 -->
      <el-dialog title="编辑器具调拨申请单" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox" @close="close">
        <edit :OperationType=OperationType :linterid=this.rowForm.hmainid :HSouceBillType=this.rowForm.HSourceBillType
          :copyType="copyType" @editClose="editClose" v-if="editShow" />
      </el-dialog>
      <!-- 下推 -->
      <!-- <el-dialog title="下推器具直接调拨单" :visible.sync="openMove" width="1480px" append-to-body class="xsckdBox" @close="close">
        <move :OperationType='4' :propsData='moveData' :HSouceBillType=BillType
         @editClose="moveClose" v-if="moveShow" />
      </el-dialog> -->
      <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
        <PrintList :linterid=this.rowForm.hmainid :MyMsg=this.rowForm.hmainid :Type='HModName'
          :HModName='HModName' @rowEditClose="rowSetClose" v-if="printListShow" />
        <!-- <div>111</div> -->
      </el-dialog>
    </div>
  </div>
</template>
<script>
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import Edit from '@/views/scMould/warehouse/Sc_MouldMoveStockRequestBillEdit'
// import Move from '@/views/scMould/warehouse/Sc_MouldProdMoveBillEdit'
import PrintList from '@/views/component/printList'
import moment from 'moment';
export default {
  name: 'Sc_MouldMoveStockRequestBill',
  components: { RowSettings, Edit,PrintList },
  props: {
    openPage: { type: String, },
    HOrgID: { type: Number, },
  },
  data() {
    return {
      HModName: "Sc_MouldMoveStockRequestBill",
      rowList:[],
      activeSeach: '',
      editShow: false,
      openEdit: false,
      moveShow: false,
      openMove: false,
      moveData:'',
      totalNameList: [],
      tableShow: true,
      openPrintList: false,
      printListShow: false,
      openBtnHide: false,
      btnHideShow: false,
      rowHideShow: false,
      openRowHide: false,
      copyType: 0,
      comparatorList: [
        { label: '=', value: '=' },
        { label: '>=', value: '>=' },
        { label: '>', value: '>' },
        { label: '<=', value: '<=' },
        { label: '<', value: '<' },
        { label: '<>', value: '<>' },
        { label: '包含', value: '7' },
        { label: '左包含', value: '8' },
        { label: '右包含', value: '9' },
        { label: '不包含', value: '10' },
      ],
      sWhere: '',
      sTime: '',
      eTime: '',
      rqsgList: [
        { label: '今天', value: 0 },
        { label: '近两天', value: 1 },
        { label: '近三天', value: 2 },
        { label: '近四天', value: 3 },
        { label: '近五天', value: 4 },
        { label: '近六天', value: 5 },
        { label: '近七天', value: 6 },
        { label: '近30天', value: 29 },
        { label: '近半年', value: 180 },
        { label: '近一年', value: 365 },
      ],
      organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//组织列表
      HStatusList: [{name:'全部',value:'-1'},{name:'未审核',value:'0'},{name:'已审核',value:'1'},{name:'已关闭',value:'2'}],
      addBtnShow: false,
      dialogTitle: '',
      OperationType: null,//保存类型(新增1修改2)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API,
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 查询参数
      queryParams: {
        HBillNo: '',
        HInitTimeCycle: 29,
        HStockOutOrgID: sessionStorage["OrganizationID"] - 0,
        HStatus:'-1',
        HDept:'',
        HModelNumber:'',
        HSupName:'',
        ColName1: '',
        ColName2: '',
        ColName: '',
        Comparator1: '',
        Comparator2: '',
        Comparator: '',
        ColContent1: '',
        ColContent2: '',
        ColContent: '',
      },
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],//列表(接口数据)
      btList: [],//表头列表显示
      btResList: [],
      tableData: [],//列表(分页显示)
      dataList: [],
      titleData: [],//不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 0,
      total: 0,
      BillType:'3850',
    };
  },
  created() {
    // this.fetchData()
    if(this.openPage && this.HOrgID){
      this.queryParams.HStockOutOrgID = this.HOrgID
    }
    this.riqiChange()
    this.getList();
  },
  methods: {
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '合计';
          return;
        }
        const values = data.map(item => Number(item[column.property]));
        if (this.totalNameList[index].totalRow) {
          if (!values.every(value => isNaN(value))) {
            sums[index] = values.reduce((prev, curr) => {
              const value = Number(curr);
              if (!isNaN(value)) {
                return prev + curr;
              } else {
                return prev;
              }
            }, 0)
          } else {
            sums[index] = '';
          }
        }
      }, 1000);
      return sums;
    },
    handleBtnHide() {
      this.btnHideShow = true
      this.openBtnHide = true
    },
    handleRowHide() {
      this.rowHideShow = true
      this.openRowHide = true
    },
    rowSetClose(val) {
      this.rowHideShow = false
      this.tableShow = true
      this.openRowHide = val
      this.getList()
    },
    riqiChange() {
      const end = new Date();
      const start = new Date();
      start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
      const yyyyS = start.getFullYear();
      const mmS = String(start.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
      const ddS = String(start.getDate()).padStart(2, '0');
      const yyyyE = end.getFullYear();
      const mmE = String(end.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
      const ddE = String(end.getDate()).padStart(2, '0');
      this.sTime = yyyyS + '-' + mmS + '-' + ddS
      this.eTime = yyyyE + '-' + mmE + '-' + ddE
    },
    getList() {
      this.pageSize = 50
      this.tableShow = false
      this.loading = true
      if (this.sTime && !this.sWhere) {
        this.sTime = moment(this.sTime).format('YYYY-MM-DD')
        this.eTime = moment(this.eTime).format('YYYY-MM-DD')
        this.sWhere += " and 日期 >= '" + this.sTime + "'";
        this.sWhere += " and 日期 <= '" + this.eTime + "'";
      }
      this.sWhere += " and HSTOCKORGID=" + this.queryParams.HStockOutOrgID;
      if (this.pageSize == 0) {
        this.pageSize = 50
      }
      // 列表
      axios.get(this.baseURL + '/Sc_MouldMoveStockRequestBillController/page', {
        params: {
          "sWhere": this.sWhere,
          "user": sessionStorage["HUserName"],
          "page": this.page,
          "size": this.pageSize,
          "Type": this.BillType,
        },
      }).then(response => {
        this.tyResList = response.data.data//总数据
        let data1 = response.data
        let option = []
        if (data1.code == 1) {
          this.btResList = data1.list//销售出库单接口表头数据
          this.total = data1.count;
          var data = [];//列字段数据
          var col = [];
          var totalArray = ["件数"];
          //给空的数组赋值
          for (var key in data1.list) {//循序遍历数组
            data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据
            //获取不需要显示的列(H开头的列不显示)
            var patrn = new RegExp(/^h/i);
            if (patrn.test(data1.list[key].ColmCols)) {
                this.titleData[key] = data1.list[key].ColmCols;
            }
          }
          //在列表左边添加勾选框
          col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
          for (var i = 0; i < data.length; i++) {//遍历data数组重的数据
            if (this.titleData.indexOf(data[i].name) > -1) {//检查data【i】.name是否在数组中  //计算列
              col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
            } else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //计算列
              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
            }
            else {
              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
            }
          }
          option.cols = [col]
          option.data = data1.data
          this.dataList = option
          this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    DisPlay_HideColumn(HModName, user, option, dataOption) {
      this.totalNameList = []
      axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', {
        params: {
          "HModName": HModName,
          "user": user,
        },
      }).then(res => {
        let data1 = res.data
        if (data1.data.length != 0) {
          var dataCol = [];//数据库查询出的列数据
          var newCols = [[]];//对应数据库列顺序col
          newCols[0].push(option.cols[0][0]);//放入第一个checkbox
          dataCol = data1.data[0].HGridString.split(',');
          //列设置列数与页面列数是否一致
          if (dataCol.length == option.cols[0].length - 1) {
            //遍历寻找列设置对应列按顺序插入
            for (var j = 0; j < option.cols[0].length - 1; j++) {
              for (var i = 0; i < option.cols[0].length - 1; i++) {
                var dataCols = dataCol[j].split('|');
                //选择与datacols相应列进行修改
                if (option.cols[0][i + 1]["field"] == dataCols[5]) {
                  //隐藏列
                  if (dataCols[1] == 1) {
                    option.cols[0][i + 1]["hide"] = true;
                  }
                  //设置列宽
                  if (dataCols[3] > 0) {
                    option.cols[0][i + 1]["width"] = dataCols[3];
                  }
                  //设置内容字体大小
                  if (data1.data[0].HFontSize != 0) {
                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                  } else {
                    option.cols[0][i + 1]["style"] = "font-size:100%";
                  }
                  //显示列
                  if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) {
                    option.cols[0][i + 1]["hide"] = false;
                  }
                  //统计列
                  if (dataCols[6] == 1) {
                    option.cols[0][i + 1]["totalRow"] = true;
                  } else {
                    option.cols[0][i + 1]["totalRow"] = false;
                  }
                  //字体所在位置(左 居中 右)
                  switch (dataCols[2]) {
                    case "L":
                      option.cols[0][i + 1]["align"] = "left";
                      break;
                    case "M":
                      option.cols[0][i + 1]["align"] = "center";
                      break;
                    case "R":
                      option.cols[0][i + 1]["align"] = "right";
                      break;
                  }
                  //设置表格title属性显示别名
                  if (dataCols[4] != null && dataCols[4] != "") {
                    option.cols[0][i + 1]["title"] = dataCols[4];
                  }
                  newCols[0].push(option.cols[0][i + 1]);
                  break;
                }
              }
            }
            //遍历循环后判断对应列数是否一致
            if (dataCol.length == newCols[0].length - 1) {
              option.cols = newCols;
              //取消冻结列
              for (var i = 1; i < option.cols[0].length - 1; i++) {
                if (option.cols[0][i + 1]["fixed"] != null) {
                  option.cols[0][i + 1]["fixed"] = null;
                }
                else {
                  break;
                }
              }
              //冻结列
              if (data1.data[0].HFixCols != 0) {
                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                  if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) {
                    data1.data[0].HFixCols += 1;
                  }
                  option.cols[0][i + 1]["fixed"] = "left";
                }
              }
              //设置列排序
              for (var i = 1; i < option.cols[0].length; i++) {
                if (data1.data[0].HSortFlag == "是") {
                  option.cols[0][i]["sort"] = true;
                }
                else {
                  option.cols[0][i]["sort"] = false;
                }
              }
            }
          }
          this.btList = option.cols[0]
          this.btList.map(item => {
            if (!item.hide) {
              this.totalNameList.push(item)
            }
          })
          if (data1.data[0].HPageSize == 0) {
            this.pageSize = 50
          } else {
            this.pageSize = data1.data[0].HPageSize
          }
          this.tableData = option.data
          this.tableShow = true
          this.loading = false
        } else {
          this.btList = dataOption.cols[0]
          this.btList.map(item => {
            if (!item.hide) {
              this.totalNameList.push(item)
            }
          })
          this.tableData = dataOption.data
          this.tableShow = true
          this.loading = false
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    renderHeader(h, { column, $index }) {// 新建一个 span
      let span = document.createElement(span)// 设置表头名称
      span.innerText = column.label
      //临时插入 document
      document.body.appendChild(span)// 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span)
      return h(span, column.label)
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', this.rowList, this.BillType)
      }
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.sorderid)) {
        return { "background": "#ecf5ff" }
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.OperationType = 2
      this.handleEdit(row);
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.rowList=selection
      this.ids = selection.map(item => item.sorderid)
      this.single = selection.length != 1
      this.multiple = !selection.length
      if (!this.single) {
        this.rowForm = selection[0]
      }
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.sWhere = ''
      if (this.queryParams.ColName && this.queryParams.Comparator) {
        var com = "";
        switch (this.queryParams.Comparator) {
          case "7":
            com = "like'%" + this.queryParams.ColContent + "%'";
            break;
          case "8":
            com = "like'%" + this.queryParams.ColContent + "'";
            break;
          case "9":
            com = "like'" + this.queryParams.ColContent + "%'";
            break;
          case "10":
            com = "not like'%" + this.queryParams.ColContent + "%'";
            break;
          default:
            com = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName + " " + com;
      }
      if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
        var com1 = "";
        switch (this.queryParams.Comparator1) {
          case "7":
            com1 = "like'%" + this.queryParams.ColContent1 + "%'";
            break;
          case "8":
            com1 = "like'%" + this.queryParams.ColContent1 + "'";
            break;
          case "9":
            com1 = "like'" + this.queryParams.ColContent1 + "%'";
            break;
          case "10":
            com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
            break;
          default:
            com1 = "" + this.queryParams.Comparator1 + "'" + this.queryParams.ColContent1 + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
      }
      if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
        var com2 = "";
        switch (this.queryParams.Comparator2) {
          case "7":
            com2 = "like'%" + this.queryParams.ColContent2 + "%'";
            break;
          case "8":
            com2 = "like'%" + this.queryParams.ColContent2 + "'";
            break;
          case "9":
            com2 = "like'" + this.queryParams.ColContent2 + "%'";
            break;
          case "10":
            com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
            break;
          default:
            com2 = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
      }
      if (this.queryParams.HStatus) {
          switch (this.queryParams.HStatus) {
              case '-1':   //全部
                  this.sWhere += "";
                  break;
              case '0':    //未审核
                  this.sWhere += " and 审核人=''";
                  break;
              case '1':    //已审核
                  this.sWhere += " and 审核人<>''";
                  break;
              case '2':    //已关闭
                  this.sWhere += " and 关闭人<>''";
              default:
          }
      }
      if (this.sTime) {
          this.sTime = moment(this.sTime).format('YYYY-MM-DD')
          this.sWhere += " and 日期 >= '" + this.sTime + "'";
      }
      if (this.eTime) {
          this.eTime = moment(this.eTime).format('YYYY-MM-DD')
          this.sWhere += " and 日期 <= '" + this.eTime + "'";
      }
      if (this.queryParams.HBillNo) {
        this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
      }
      if (this.queryParams.HDept) {
          this.sWhere += " and 部门 like '%" + this.queryParams.HDept + "%'";
      }
      if (this.queryParams.HModelNumber) {
          this.sWhere += " and 器具代码 like '%" + this.queryParams.HModelNumber + "%'";
      }
      if (this.queryParams.HSupName) {
          this.sWhere += " and 往来单位 like '%" + this.queryParams.HSupName + "%'";
      }
      this.clearData()
      this.getList()
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.sWhere = ''
      this.queryParams = {
        HBillNo: '',
        HInitTimeCycle: 29,
        HStockOutOrgID: sessionStorage["OrganizationID"] - 0,
        HStatus:'-1',
        HDept:'',
        HModelNumber:'',
        HSupName:'',
        ColName1: '',
        ColName2: '',
        ColName: '',
        Comparator1: '',
        Comparator2: '',
        Comparator: '',
        ColContent1: '',
        ColContent2: '',
        ColContent: '',
      }
      this.clearData()
      this.riqiChange()
      this.resetForm("queryForm")
      this.getList()
    },
    //退出
    close() {
      // this.reset()
      this.tableShow = true
      this.openEdit = false
      this.editShow = false
      this.openMove = false
      this.moveShow = false
      this.clearData()
      this.getList()
    },
    //打开新增组件弹窗
    handleAddEdit() {
      this.rowForm.hmainid = 0
      this.editShow = true
      this.openEdit = true
    },
    //打开修改组件弹窗
    handleEdit(row) {
      this.rowForm = row
      this.editShow = true
      this.openEdit = true
    },
    //打开下推组件弹窗
    handleMove() {
      if (this.rowList && this.rowList.length > 0) {
        var dataArray = [];
        var HSupTypeID_Temp = this.rowList[0].HSupTypeID
        var HStockInOrgID_Temp = this.rowList[0].HSTOCKORGINID
        for (var i = 0; i < this.rowList.length; i++) {
            if (this.rowList[i].单据状态 != "已审核") {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                return;
            }
            if (this.rowList[i].HQtyMust <= 0) {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                return;
            }
            if (this.rowList[i].HSupTypeID != HSupTypeID_Temp) {
                this.$modal.msgError("下推失败!所选单据对应往来类型必须一致!")
                return;
            }
            if (this.rowList[i].HSTOCKORGINID != HStockInOrgID_Temp) {
                this.$modal.msgError("下推失败!所选单据对应调入组织必须一致!")
                return;
            }
            var temp = {
                "hmainid": this.rowList[i].hmainid
                , "hsubid": this.rowList[i].hsubid
                , "HBillType": this.rowList[i].HBillType
            }
            dataArray.push(temp);
        }
        var datajson = {
            "data": dataArray
        };
        this.moveData = JSON.stringify(datajson)
        this.moveShow = true
        this.openMove = true
      } else {
          this.$modal.msgError("请选择数据下推!")
      }
    },
    //关闭编辑页面
    editClose(val) {
      this.open = val
      this.editShow = false
      this.openEdit = val
      this.clearData()
      this.getList()
    },
    //关闭下推页面
    moveClose(val) {
      this.open = val
      this.moveShow = false
      this.openMove = val
      this.clearData()
      this.getList()
    },
    //清除选中数据的缓存
    clearData(){
      this.ids = []
      this.multiple = true
      this.single = true
      this.OperationType = 0
      this.copyType = 0
    },
    /** 删除按钮操作 */
    handleDelete() {
      this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => {
        axios.get(this.baseURL + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Delete_Json", {
            params: { 'HInterID': this.rowForm.hmainid.toString(), 'HMaker': sessionStorage["HUserName"] }
          }).then(response => {
            if (response.data.count == 1) {
              this.getList()
              this.$modal.msgSuccess("删除成功")
            } else {
              this.$modal.msgError("错误:" + result.code + result.Message);
            }
          }).catch(error => {
            this.$modal.msgError("接口请求失败!");
          });
      }).catch(() => { })
    },
    // 反审核/审核数据
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldMoveStockRequestBillController/GetSc_MouldMoveStockRequestBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data
        if (result.count == 1) {
          this.$modal.msgSuccess('操作成功');
          this.clearData()
          this.getList();
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    //导出
    handleExport() {
      const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表
      const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿
      this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1"
      this.$XLSX.writeFile(wb, `sellOutBill_${new Date().getTime()}.xlsx`); // 导出文件
    },
    //打印
    get_PrintReport() {
      if (this.ids.length != 1) {
        this.$modal.msgError("请选择一行数据")
      } else if (this.rowForm.状态 != "已审核" && !this.defaintOperationByCompanyName()) {
        this.$modal.msgError("打印失败!原因:单据状态不为'已审核'状态!!");
      } else {
        axios.get(this.baseURL + "/Kf_SellOutBill/CheckSellOutBill_IsExist", {
          params: { "HInterID": this.rowForm.hmainid }
        }).then(response => {
          var result = response.data
          if (result.count == 1) {
            this.printListShow = true
            this.openPrintList = true
            // this.$router.push({ path:'/printList', query: { linterid: this.rowForm.hmainid,MyMsg:this.rowForm.hmainid,Type:'Kf_SellOutBillList' }})
          } else {
            this.$modal.msgError(result.code + result.Message)
          }
        }).catch(error => {
          this.$modal.msgError("接口请求失败!");
        });
      }
      //  var content= ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=Kf_SellOutBillList', 'yes']
    },
  }
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>
src/views/scMould/warehouse/component/Sc_MouldOutRequestBill.vue
New file
@@ -0,0 +1,965 @@
<template>
  <div style="padding: 10px; position: relative;">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
      <el-form-item label="开始日期" style="margin-left: 100px;">
        <el-date-picker v-model="sTime" type="date" placeholder="开始日期" style="width: 150px;">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="结束日期">
        <el-date-picker v-model="eTime" type="date" placeholder="结束日期" style="width: 150px;">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="日期间隔">
        <el-select v-model="queryParams.HInitTimeCycle" placeholder="请选择" @change="riqiChange" style="width: 150px;">
          <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="单据号" prop="HBillNo">
        <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label-width="78px">
        <el-button type="primary" icon="el-icon-search" @click="handleQuery"> 搜 索</el-button>
        <el-button icon="el-icon-circle-close" @click="resetQuery">重 置</el-button>
      </el-form-item>
      <el-collapse v-model="activeSeach">
        <el-collapse-item title="更多" name="1">
          <el-card class="box-card">
            <el-form-item label="状态" prop="HStatus">
              <el-select v-model="queryParams.HStatus" placeholder="请选择状态">
                <el-option v-for="(item, index) in HStatusList" :key="index" :label="item.name" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="组织">
              <el-select v-model="queryParams.HStockOrgID" placeholder="请选择">
                <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="部门信息" prop="HDept">
              <el-input v-model="queryParams.HDept" placeholder="请输入部门信息" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="器具代码" prop="HModelNumber">
              <el-input v-model="queryParams.HModelNumber" placeholder="请输入器具代码" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="往来单位" prop="HSupName">
              <el-input v-model="queryParams.HSupName" placeholder="请输入往来单位" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <div slot="header" class="clearfix"><span>其他条件</span></div>
            <div>
              <el-row>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="2"><span>过滤</span></el-col>
                    <el-col :span="6">
                      <el-select v-model="queryParams.ColName1" placeholder="请选择" @change="riqiChange">
                        <span v-for="(item, index) in btList" :key="index">
                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        </span>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px;">
                      <el-select v-model="queryParams.Comparator1" placeholder="请选择" @change="riqiChange">
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="10">
                      <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
              </el-row>
              <el-row>
                <el-form-item label-width="0">
                  <el-row>
                    <el-col :span="2"><span>过滤</span></el-col>
                    <el-col :span="6">
                      <el-select v-model="queryParams.ColName2" placeholder="请选择" @change="riqiChange">
                        <span v-for="(item, index) in btList" :key="index">
                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                        </span>
                      </el-select>
                    </el-col>
                    <el-col :span="6" style="padding: 0 10px;">
                      <el-select v-model="queryParams.Comparator2" placeholder="请选择" @change="riqiChange">
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                    </el-col>
                    <el-col :span="10">
                      <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
                        @keyup.enter.native="handleQuery" />
                    </el-col>
                  </el-row>
                </el-form-item>
              </el-row>
              <el-form-item label-width="0">
                <el-row>
                  <el-col :span="2"><span>过滤</span></el-col>
                  <el-col :span="6">
                    <el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange">
                      <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
                        :value="item.field"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px;">
                    <el-select v-model="queryParams.Comparator" placeholder="请选择" @change="riqiChange">
                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                        :value="item.value"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="10">
                    <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" />
                  </el-col>
                </el-row>
              </el-form-item>
            </div>
          </el-card>
        </el-collapse-item>
      </el-collapse>
    </el-form>
    <el-row :gutter="10" class="mb8" style="margin-top: 10px;">
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)"
          id="btn-Add">新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit(row = rowForm, OperationType = 2)">编辑</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-document-copy" size="mini" :disabled="single"
          @click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">复制</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-tickets" size="mini"
          @click="handlePush(row = rowForm, OperationType = 4)">下推(器具领用出库单)</el-button>
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
          @click="set_CheckBill(1, form = rowForm)">审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
          @click="set_CheckBill(2, form = rowForm)">返审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="multiple"
          @click="set_CheckBillAll(1, ids)">审核(批量)</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="multiple"
          @click="set_CheckBillAll(2, ids)">返审核(批量)</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
      </el-col> -->
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">打印</el-button>
      </el-col> -->
    </el-row>
    <div class="tableBox" v-loading="loading">
      <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
        @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle"
        @cell-dblclick="handleDblclick" v-if="tableShow">
        <template v-for="(item, index) in btList">
          <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'"
            :key="index" />
          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width" :key="item.id"
            v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort" show-overflow-tooltip
            :fixed="item.fixed">
            <template slot-scope="{row,  column }">
              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
              <div :style="item.style">
                <span v-if="column.property.includes('日期')">{{ parseTime(row[column.property], '{y}-{m}-{d}') }}</span>
                <el-button type="text" @click="handleEdit(row, OperationType = 2)"
                  v-else-if="column.property == '单据号'">{{
                    row.单据号
                  }}</el-button>
                <span v-else>{{ row[column.label] }}</span>
              </div>
            </template>
          </el-table-column>
        </template>
      </el-table>
      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes" @pagination="getList" />
      <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
        <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose"
          v-if="rowHideShow" />
      </el-dialog>
      <!-- 编辑 -->
      <el-dialog title="编辑器具领用申请单" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox" @close="close">
        <edit :OperationType=OperationType :linterid=this.rowForm.hmainid :HSouceBillType=this.rowForm.HSourceBillType
          :copyType="copyType" @editClose="editClose" v-if="editShow" />
      </el-dialog>
      <!-- 下推 -->
      <el-dialog title="下推器具领用出库单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox" @close="close">
        <push :OperationType='4' :propsData='pushData' :HSouceBillType=BillType
         @editClose="pushClose" v-if="pushShow" />
      </el-dialog>
      <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
        <PrintList :linterid=this.rowForm.hmainid :MyMsg=this.rowForm.hmainid :Type='HModName'
          :HModName='HModName' @rowEditClose="rowSetClose" v-if="printListShow" />
        <!-- <div>111</div> -->
      </el-dialog>
    </div>
  </div>
</template>
<script>
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import Edit from '@/views/scMould/warehouse/Sc_MouldOutRequestBillEdit'
import Push from '@/views/scMould/warehouse/Sc_MouldProdOutBillEdit'
import PrintList from '@/views/component/printList'
import moment from 'moment';
export default {
  name: 'Sc_MouldOutRequestBill',
  components: { RowSettings, Edit,Push, PrintList },
  props: {
    openPage: { type: String, },
    HOrgID: { type: String, },
  },
  data() {
    return {
      HModName: "Sc_MouldOutRequestBill",
      rowList:[],
      activeSeach: '',
      editShow: false,
      openEdit: false,
      pushShow: false,
      openPush: false,
      pushData:'',
      totalNameList: [],
      tableShow: true,
      openPrintList: false,
      printListShow: false,
      openBtnHide: false,
      btnHideShow: false,
      rowHideShow: false,
      openRowHide: false,
      copyType: 0,
      comparatorList: [
        { label: '=', value: '=' },
        { label: '>=', value: '>=' },
        { label: '>', value: '>' },
        { label: '<=', value: '<=' },
        { label: '<', value: '<' },
        { label: '<>', value: '<>' },
        { label: '包含', value: '7' },
        { label: '左包含', value: '8' },
        { label: '右包含', value: '9' },
        { label: '不包含', value: '10' },
      ],
      sWhere: '',
      sTime: '',
      eTime: '',
      rqsgList: [
        { label: '今天', value: 0 },
        { label: '近两天', value: 1 },
        { label: '近三天', value: 2 },
        { label: '近四天', value: 3 },
        { label: '近五天', value: 4 },
        { label: '近六天', value: 5 },
        { label: '近七天', value: 6 },
        { label: '近30天', value: 29 },
        { label: '近半年', value: 180 },
        { label: '近一年', value: 365 },
      ],
      organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//组织列表
      HStatusList: [{name:'全部',value:'-1'},{name:'未审核',value:'0'},{name:'已审核',value:'1'},{name:'已关闭',value:'2'}],
      addBtnShow: false,
      dialogTitle: '',
      OperationType: null,//保存类型(新增1修改2)
      HInterID: null,
      baseURL: process.env.VUE_APP_BASE_API,
      lastSelectedRowIndex: null, // 用于记录上次点击的行索引
      lastSelectedRow: null, // 上一次选中的行
      selectedRow: null, // 当前选中的行
      rowForm: {},
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 查询参数
      queryParams: {
        HBillNo: '',
        HInitTimeCycle: 29,
        HStockOrgID: sessionStorage["OrganizationID"] - 0,
        HStatus:'-1',
        HDept:'',
        HModelNumber:'',
        HSupName:'',
        ColName1: '',
        ColName2: '',
        ColName: '',
        Comparator1: '',
        Comparator2: '',
        Comparator: '',
        ColContent1: '',
        ColContent2: '',
        ColContent: '',
      },
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 遮罩层
      loading: true,
      tyResList: [],//列表(接口数据)
      btList: [],//表头列表显示
      btResList: [],
      tableData: [],//列表(分页显示)
      dataList: [],
      titleData: [],//不需要显示的字段 可扩展
      pageSizes: [50, 100, 500, 5000, 50000],
      page: 1,
      pageSize: 0,
      total: 0,
      BillType:'3849',
    };
  },
  created() {
    // this.fetchData()
    if(this.openPage && this.HOrgID){
      this.queryParams.HStockOrgID = this.HOrgID
    }
    this.riqiChange()
    this.getList();
  },
  methods: {
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '合计';
          return;
        }
        const values = data.map(item => Number(item[column.property]));
        if (this.totalNameList[index].totalRow) {
          if (!values.every(value => isNaN(value))) {
            sums[index] = values.reduce((prev, curr) => {
              const value = Number(curr);
              if (!isNaN(value)) {
                return prev + curr;
              } else {
                return prev;
              }
            }, 0)
          } else {
            sums[index] = '';
          }
        }
      }, 1000);
      return sums;
    },
    handleBtnHide() {
      this.btnHideShow = true
      this.openBtnHide = true
    },
    handleRowHide() {
      this.rowHideShow = true
      this.openRowHide = true
    },
    rowSetClose(val) {
      this.rowHideShow = false
      this.tableShow = true
      this.openRowHide = val
      this.getList()
    },
    riqiChange() {
      const end = new Date();
      const start = new Date();
      start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
      const yyyyS = start.getFullYear();
      const mmS = String(start.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
      const ddS = String(start.getDate()).padStart(2, '0');
      const yyyyE = end.getFullYear();
      const mmE = String(end.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
      const ddE = String(end.getDate()).padStart(2, '0');
      this.sTime = yyyyS + '-' + mmS + '-' + ddS
      this.eTime = yyyyE + '-' + mmE + '-' + ddE
    },
    getList() {
      this.pageSize = 50
      this.tableShow = false
      this.loading = true
      if (this.sTime && !this.sWhere) {
        this.sTime = moment(this.sTime).format('YYYY-MM-DD')
        this.eTime = moment(this.eTime).format('YYYY-MM-DD')
        this.sWhere += " and 日期 >= '" + this.sTime + "'";
        this.sWhere += " and 日期 <= '" + this.eTime + "'";
      }
      this.sWhere += " and HSTOCKORGID=" + this.queryParams.HStockOrgID;
      if (this.pageSize == 0) {
        this.pageSize = 50
      }
      // 销售出库单列表
      axios.get(this.baseURL + '/Sc_MouldOutRequestBillController/page', {
        params: {
          "sWhere": this.sWhere,
          "user": sessionStorage["HUserName"],
          "page": this.page,
          "size": this.pageSize,
          "Type": this.BillType,
        },
      }).then(response => {
        this.tyResList = response.data.data//总数据
        let data1 = response.data
        let option = []
        if (data1.code == 1) {
          this.btResList = data1.list//销售出库单接口表头数据
          this.total = data1.count;
          var data = [];//列字段数据
          var col = [];
          var totalArray = ["件数"];
          //给空的数组赋值
          for (var key in data1.list) {//循序遍历数组
            data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据
            //获取不需要显示的列(H开头的列不显示)
            var patrn = new RegExp(/^h/i);
            if (patrn.test(data1.list[key].ColmCols)) {
                this.titleData[key] = data1.list[key].ColmCols;
            }
          }
          //在列表左边添加勾选框
          col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
          for (var i = 0; i < data.length; i++) {//遍历data数组重的数据
            if (this.titleData.indexOf(data[i].name) > -1) {//检查data【i】.name是否在数组中  //计算列
              col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
            } else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //计算列
              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
            }
            else {
              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
            }
          }
          option.cols = [col]
          option.data = data1.data
          this.dataList = option
          this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    DisPlay_HideColumn(HModName, user, option, dataOption) {
      this.totalNameList = []
      axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', {
        params: {
          "HModName": HModName,
          "user": user,
        },
      }).then(res => {
        let data1 = res.data
        if (data1.data.length != 0) {
          var dataCol = [];//数据库查询出的列数据
          var newCols = [[]];//对应数据库列顺序col
          newCols[0].push(option.cols[0][0]);//放入第一个checkbox
          dataCol = data1.data[0].HGridString.split(',');
          //列设置列数与页面列数是否一致
          if (dataCol.length == option.cols[0].length - 1) {
            //遍历寻找列设置对应列按顺序插入
            for (var j = 0; j < option.cols[0].length - 1; j++) {
              for (var i = 0; i < option.cols[0].length - 1; i++) {
                var dataCols = dataCol[j].split('|');
                //选择与datacols相应列进行修改
                if (option.cols[0][i + 1]["field"] == dataCols[5]) {
                  //隐藏列
                  if (dataCols[1] == 1) {
                    option.cols[0][i + 1]["hide"] = true;
                  }
                  //设置列宽
                  if (dataCols[3] > 0) {
                    option.cols[0][i + 1]["width"] = dataCols[3];
                  }
                  //设置内容字体大小
                  if (data1.data[0].HFontSize != 0) {
                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                  } else {
                    option.cols[0][i + 1]["style"] = "font-size:100%";
                  }
                  //显示列
                  if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) {
                    option.cols[0][i + 1]["hide"] = false;
                  }
                  //统计列
                  if (dataCols[6] == 1) {
                    option.cols[0][i + 1]["totalRow"] = true;
                  } else {
                    option.cols[0][i + 1]["totalRow"] = false;
                  }
                  //字体所在位置(左 居中 右)
                  switch (dataCols[2]) {
                    case "L":
                      option.cols[0][i + 1]["align"] = "left";
                      break;
                    case "M":
                      option.cols[0][i + 1]["align"] = "center";
                      break;
                    case "R":
                      option.cols[0][i + 1]["align"] = "right";
                      break;
                  }
                  //设置表格title属性显示别名
                  if (dataCols[4] != null && dataCols[4] != "") {
                    option.cols[0][i + 1]["title"] = dataCols[4];
                  }
                  newCols[0].push(option.cols[0][i + 1]);
                  break;
                }
              }
            }
            //遍历循环后判断对应列数是否一致
            if (dataCol.length == newCols[0].length - 1) {
              option.cols = newCols;
              //取消冻结列
              for (var i = 1; i < option.cols[0].length - 1; i++) {
                if (option.cols[0][i + 1]["fixed"] != null) {
                  option.cols[0][i + 1]["fixed"] = null;
                }
                else {
                  break;
                }
              }
              //冻结列
              if (data1.data[0].HFixCols != 0) {
                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                  if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) {
                    data1.data[0].HFixCols += 1;
                  }
                  option.cols[0][i + 1]["fixed"] = "left";
                }
              }
              //设置列排序
              for (var i = 1; i < option.cols[0].length; i++) {
                if (data1.data[0].HSortFlag == "是") {
                  option.cols[0][i]["sort"] = true;
                }
                else {
                  option.cols[0][i]["sort"] = false;
                }
              }
            }
          }
          this.btList = option.cols[0]
          this.btList.map(item => {
            if (!item.hide) {
              this.totalNameList.push(item)
            }
          })
          if (data1.data[0].HPageSize == 0) {
            this.pageSize = 50
          } else {
            this.pageSize = data1.data[0].HPageSize
          }
          this.tableData = option.data
          this.tableShow = true
          this.loading = false
        } else {
          this.btList = dataOption.cols[0]
          this.btList.map(item => {
            if (!item.hide) {
              this.totalNameList.push(item)
            }
          })
          this.tableData = dataOption.data
          this.tableShow = true
          this.loading = false
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    renderHeader(h, { column, $index }) {// 新建一个 span
      let span = document.createElement(span)// 设置表头名称
      span.innerText = column.label
      //临时插入 document
      document.body.appendChild(span)// 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
      document.body.removeChild(span)
      return h(span, column.label)
    },
    //点击行
    handleRowClick(row, column, event) {
      this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
      this.selectedRow = row; // 记录当前选中的行
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', this.rowList, this.BillType)
      }
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
      if (this.ids.includes(row.sorderid)) {
        return { "background": "#ecf5ff" }
      }
    },
    //双击行
    handleDblclick(row, column, cell, event) {
      this.OperationType = 2
      this.handleEdit(row)
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      // this.rowForm = {}
      this.rowList=selection
      this.ids = selection.map(item => item.sorderid)
      this.single = selection.length != 1
      this.multiple = !selection.length
      if (!this.single) {
        this.rowForm = selection[0]
      }
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.sWhere = ''
      if (this.queryParams.ColName && this.queryParams.Comparator) {
        var com = "";
        switch (this.queryParams.Comparator) {
          case "7":
            com = "like'%" + this.queryParams.ColContent + "%'";
            break;
          case "8":
            com = "like'%" + this.queryParams.ColContent + "'";
            break;
          case "9":
            com = "like'" + this.queryParams.ColContent + "%'";
            break;
          case "10":
            com = "not like'%" + this.queryParams.ColContent + "%'";
            break;
          default:
            com = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName + " " + com;
      }
      if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
        var com1 = "";
        switch (this.queryParams.Comparator1) {
          case "7":
            com1 = "like'%" + this.queryParams.ColContent1 + "%'";
            break;
          case "8":
            com1 = "like'%" + this.queryParams.ColContent1 + "'";
            break;
          case "9":
            com1 = "like'" + this.queryParams.ColContent1 + "%'";
            break;
          case "10":
            com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
            break;
          default:
            com1 = "" + this.queryParams.Comparator1 + "'" + this.queryParams.ColContent1 + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
      }
      if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
        var com2 = "";
        switch (this.queryParams.Comparator2) {
          case "7":
            com2 = "like'%" + this.queryParams.ColContent2 + "%'";
            break;
          case "8":
            com2 = "like'%" + this.queryParams.ColContent2 + "'";
            break;
          case "9":
            com2 = "like'" + this.queryParams.ColContent2 + "%'";
            break;
          case "10":
            com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
            break;
          default:
            com2 = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
            break;
        }
        this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
      }
      if (this.queryParams.HStatus) {
          switch (this.queryParams.HStatus) {
              case '-1':   //全部
                  this.sWhere += "";
                  break;
              case '0':    //未审核
                  this.sWhere += " and 审核人=''";
                  break;
              case '1':    //已审核
                  this.sWhere += " and 审核人<>''";
                  break;
              case '2':    //已关闭
                  this.sWhere += " and 关闭人<>''";
              default:
          }
      }
      if (this.sTime) {
        this.sTime = moment(this.sTime).format('YYYY-MM-DD')
        this.sWhere += " and 日期 >= '" + this.sTime + "'";
      }
      if (this.eTime) {
        this.eTime = moment(this.eTime).format('YYYY-MM-DD')
        this.sWhere += " and 日期 <= '" + this.eTime + "'";
      }
      if (this.queryParams.HBillNo) {
        this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
      }
      if (this.queryParams.HDept) {
        this.sWhere += " and 部门 like '%" + this.queryParams.HDept + "%'";
      }
      if (this.queryParams.HModelNumber) {
        this.sWhere += " and 器具代码 like '%" + this.queryParams.HModelNumber + "%'";
      }
      if (this.queryParams.HSupName) {
        this.sWhere += " and 往来单位 like '%" + this.queryParams.HSupName + "%'";
      }
      this.clearData()
      this.getList()
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.sWhere = ''
      this.queryParams = {
        HBillNo: '',
        HInitTimeCycle: 29,
        HStockOrgID: sessionStorage["OrganizationID"] - 0,
        HStatus:'-1',
        HDept:'',
        HModelNumber:'',
        HSupName:'',
        ColName1: '',
        ColName2: '',
        ColName: '',
        Comparator1: '',
        Comparator2: '',
        Comparator: '',
        ColContent1: '',
        ColContent2: '',
        ColContent: '',
      }
      this.riqiChange()
      this.resetForm("queryForm")
      this.clearData()
      this.getList()
    },
    //退出
    close() {
      // this.reset()
      this.tableShow = true
      this.openEdit = false
      this.editShow = false
      this.openPush = false
      this.pushShow = false
      this.clearData()
      this.getList()
    },
    //打开新增组件弹窗
    handleAddEdit() {
      this.rowForm.hmainid = 0
      this.editShow = true
      this.openEdit = true
    },
    //打开修改组件弹窗
    handleEdit(row) {
      this.rowForm = row
      this.editShow = true
      this.openEdit = true
    },
    //打开修改组件弹窗
    handleEdit(row) {
      this.rowForm = row
      this.editShow = true
      this.openEdit = true
    },
    //打开下推组件弹窗
    handlePush() {
      if (this.rowList && this.rowList.length > 0) {
        var dataArray = [];
        var HSupTypeID_Temp = this.rowList[0].HSupTypeID
        for (var i = 0; i < this.rowList.length; i++) {
            if (this.rowList[i].单据状态 != "已审核") {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                return;
            }
            if (this.rowList[i].HQtyMust <= 0) {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                return;
            }
            if (this.rowList[i].HSupTypeID != HSupTypeID_Temp) {
                this.$modal.msgError("下推失败!所选单据对应往来类型必须一致!")
                return;
            }
            var temp = {
                "hmainid": this.rowList[i].hmainid
                , "hsubid": this.rowList[i].hsubid
                , "HBillType": this.rowList[i].HBillType
            }
            dataArray.push(temp);
        }
        var datajson = {
            "data": dataArray
        };
        this.pushData = JSON.stringify(datajson)
        this.pushShow = true
        this.openPush = true
      } else {
          this.$modal.msgError("请选择数据下推!")
      }
    },
    //关闭编辑页面
    editClose(val) {
      this.open = val
      this.editShow = false
      this.openEdit = val
      this.clearData()
      this.getList()
    },
    //关闭下推页面
    pushClose(val) {
      this.open = val
      this.pushShow = false
      this.openPush = val
      this.clearData()
      this.getList()
    },
    //清除选中数据的缓存
    clearData(){
      this.ids = []
      this.multiple = true
      this.single = true
      this.OperationType = 0
      this.copyType = 0
    },
    /** 删除按钮操作 */
    handleDelete() {
      this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => {
        axios.get(this.baseURL + "/Sc_MouldOutRequestBillController/GetSc_MouldOutRequestBill_Delete_Json", {
            params: { 'HInterID': this.rowForm.hmainid.toString(), 'HMaker': sessionStorage["HUserName"] }
          }).then(response => {
            if (response.data.count == 1) {
              this.getList()
              this.$modal.msgSuccess("删除成功")
            } else {
              this.$modal.msgError("错误:" + result.code + result.Message);
            }
          }).catch(error => {
            this.$modal.msgError("接口请求失败!");
          });
      }).catch(() => { })
    },
    // 反审核/审核数据
    set_CheckBill(num, form) {
      var InterID = form.hmainid || form.HInterID
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldOutRequestBillController/GetSc_MouldOutRequestBill_Check_Json", {
        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data
        if (result.count == 1) {
          this.$modal.msgSuccess('操作成功');
          this.clearData()
          this.getList();
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    // 批量反审核/审核数据
    set_CheckBillAll(num, ids) {
      //逻辑审核方法
      axios.get(this.baseURL + "/Sc_MouldOutRequestBillController/CheckAll", {
        params: { "ids": ids, "Type": num, "HMaker": sessionStorage["HUserName"] }
      }).then(response => {
        let result = response.data
        if (result.count == 1) {
          this.$modal.msgSuccess('操作成功');
          this.getList();
        }
        else {
          this.$modal.msgError("错误:" + result.code + result.Message,);
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
    },
    //导出
    handleExport() {
      const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表
      const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿
      this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1"
      this.$XLSX.writeFile(wb, `sellOutBill_${new Date().getTime()}.xlsx`); // 导出文件
    },
    //打印
    get_PrintReport() {
      if (this.ids.length != 1) {
        this.$modal.msgError("请选择一行数据")
      } else if (this.rowForm.状态 != "已审核" && !this.defaintOperationByCompanyName()) {
        this.$modal.msgError("打印失败!原因:单据状态不为'已审核'状态!!");
      } else {
        axios.get(this.baseURL + "/Kf_SellOutBill/CheckSellOutBill_IsExist", {
          params: { "HInterID": this.rowForm.hmainid }
        }).then(response => {
          var result = response.data
          if (result.count == 1) {
            this.printListShow = true
            this.openPrintList = true
            // this.$router.push({ path:'/printList', query: { linterid: this.rowForm.hmainid,MyMsg:this.rowForm.hmainid,Type:'Kf_SellOutBillList' }})
          } else {
            this.$modal.msgError(result.code + result.Message)
          }
        }).catch(error => {
          this.$modal.msgError("接口请求失败!");
        });
      }
      //  var content= ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=Kf_SellOutBillList', 'yes']
    },
    //#region 获取公司名,根据公司进行定制化开发
    defaintOperationByCompanyName() {
      var result = false;
      axios.get(this.baseURL + '/Xt_getInfo/getCompanyName').then(response => {
        var data1 = response.data
        if (data1.count == 1) {
          if (data1.data == "水务") {
            result = true;
          }
        }
      }).catch(error => {
        this.$modal.msgError("接口请求失败!");
      });
      return result;
    },
  }
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
  width: 100%;
}
</style>