陈婷婷
2026-01-21 e2568e90ce2c0995e24f41bcf2231cf287f27c0e
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI
2个文件已添加
6个文件已修改
1831 ■■■■■ 已修改文件
.env.development 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/permission.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/logistics/WayBillPaymentBill/YF_PayMentOtherBillTranEdit.vue 918 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/logistics/WayBillPaymentBill/YF_PayMentOtherBillTranList.vue 835 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldProdBackBillEdit.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scMould/warehouse/Sc_MouldProdOutBillEdit.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/barcodeMaster/Gy_BarCodeBill_JinLong_AutoLogin.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -5,16 +5,19 @@
ENV = 'development'
# 智云迈思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://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_INNER = 'http://192.168.1.11/API/'
# VUE_APP_BASE_API = http://61.174.29.234:8880/API/
# # VUE_APP_BASE_API_INNER = 'http://192.168.1.11/API/'
# # VUE_APP_BASE_API = http://61.174.29.234:8880/API/
# 宁波 四维尔
# VUE_APP_BASE_API_INNER = http://192.168.0.236:9010/API/
# VUE_APP_BASE_API = http://220.189.218.155:9010/API/
#杜贺
# VUE_APP_BASE_API = http://localhost:8082/API/
# 内网地址测试
# VUE_APP_BASE_API_INNER = http://192.168.1.11/API/
VUE_APP_BASE_API_INNER = http://192.168.1.11/API/
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
src/router/index.js
@@ -1811,6 +1811,26 @@
  //#region 物流管理
  //#region 运输定位
  //#region 运单费用结算单列表
  {
    path: "/logistics/WayBillPaymentBill/YFPayMentOtherBillTranList",
    component: Layout,
    hidden: true,
    redirect: "noredirect",
    meta: {
      breadcrumb: false, // 如果设置为false,则不会在breadcrumb面包屑中显示
      activeMenu: "/logistics/WayBillPaymentBill", // 当路由设置了该属性,则会高亮相对应的侧边栏。
    },
    children: [
      {
        path: "/logistics/WayBillPaymentBill/YFPayMentOtherBillTranList",
        component: () => import("@/views/logistics/WayBillPaymentBill/YF_PayMentOtherBillTranList.vue"),
        name: "yfPayMentOtherBillTranList",
        meta: { title: "运单费用结算单", activeMenu: "/logistics/WayBillPaymentBill" },
      },
    ],
  },
  //#endregion
  //#region 运单列表
  {
    path: "logistics/transportGPS/WL_YayBill",
src/store/modules/permission.js
@@ -74,21 +74,35 @@
                    name: "WL_YayBill",
                    path: "WL_YayBill",
                  },
                  // {
                  //   meta: {
                  //     icon: "build",
                  //     link: null,
                  //     noCache: false,
                  //     title: "运单编辑",
                  //   },
                  //   component: () =>
                  //     import("@/views/logistics/transportGPS/Add_Edit_WL_YayBill.vue"),
                  //   hidden: false,
                  //   name: "Add_Edit_WL_YayBill",
                  //   path: "Add_Edit_WL_YayBill",
                  // },
                ],
              },
              {
                meta: {
                  icon: "build",
                  link: null,
                  noCache: false,
                  title: "运输定位",
                },
                hidden: false,
                name: "WayBillPaymentBill",
                path: "WayBillPaymentBill",
                redirect: "noRedirect",
                component: "Layout",
                children: [{
                  meta: {
                    icon: "build",
                    link: null,
                    noCache: false,
                    title: "运单费用结算单",
                  },
                  component: () =>
                    import("@/views/logistics/WayBillPaymentBill/YF_PayMentOtherBillTranList.vue"),
                  hidden: false,
                  name: "yfPayMentOtherBillTranList",
                  path: "YFPayMentOtherBillTranList",
                }
                ]
              }
            ],
          },
          {
src/views/logistics/WayBillPaymentBill/YF_PayMentOtherBillTranEdit.vue
New file
@@ -0,0 +1,918 @@
<template>
    <div v-loading="formLoading" v-if="formShow">
        <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
            <el-button type="primary" @click="submitForm" :disabled="subDisabled">保 存</el-button>
            <el-button type="primary" @click="close">退 出</el-button>
            <!-- <el-button @click="cancel">取 消</el-button> -->
        </div>
        <div style="margin: 10px; font-size: 28px; font-weight: bold; text-align: center;">出库申请单</div>
        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
            <el-tabs v-model="activeName" type="card">
                <el-tab-pane label="基本信息" name="first">
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="单据编号" prop="HBillNo">
                                <el-input v-model="form.HBillNo" placeholder="请输入单据编号" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="日期" prop="HDate">
                                <el-date-picker v-model="form.HDate" type="date" placeholder="选择日期"
                                    value-format="yyyy-MM-ddT">
                                </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="HEmpName">
                                <el-input v-model="form.HEmpName" placeholder="请输入业务员" disabled>
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(4, zhiyuanType = 'yewuyuan')"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <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, zhiyuanType = 'baoguanyuan')"></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, zhiyuanType = 'zhuguan')"></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, zhiyuanType = 'yanshou')"></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, ckType = 'form')"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <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)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="往来单位" prop="HSupName">
                                <el-input v-model="form.HSupName" placeholder="请输入往来单位" disabled>
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(6)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="12">
                            <el-form-item label="备注" prop="HRemark">
                                <el-input v-model="form.HRemark" placeholder="请输入备注" />
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-tab-pane>
                <el-tab-pane label="制单信息" name="third">
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="制单人" prop="HMaker">
                                <el-input v-model="form.HMaker" placeholder="请输入制单人" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="修改人" prop="HUpDater">
                                <el-input v-model="form.HUpDater" placeholder="请输入修改人" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="审核人" prop="HChecker">
                                <el-input v-model="form.HChecker" placeholder="请输入审核人" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="关闭人" prop="HCloseMan">
                                <el-input v-model="form.HCloseMan" placeholder="请输入关闭人" disabled />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="制单日期" prop="HMakeDate">
                                <el-date-picker v-model="form.HMakeDate" type="date" placeholder="选择制单日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="修改日期" prop="HUpDateDate">
                                <el-date-picker v-model="form.HUpDateDate" type="date" placeholder="选择审核日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="审核日期" prop="HCheckDate">
                                <el-date-picker v-model="form.HCheckDate" type="date" placeholder="选择审核日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="关闭日期" prop="HCloseDate">
                                <el-date-picker v-model="form.HCloseDate" type="date" placeholder="选择关闭日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="作废人" prop="HDeleteMan">
                                <el-input v-model="form.HDeleteMan" placeholder="请输入作废人" disabled />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="作废日期" prop="HDeleteDate">
                                <el-date-picker v-model="form.HDeleteDate" type="date" placeholder="选择作废日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-tab-pane>
            </el-tabs>
            <div style="margin-bottom: 10px;">
                <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb()"
                    size="mini">增加一行</el-button>
                <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb(zbIndex, 1)"
                    size="mini">插入一行</el-button>
                <el-button type="success" plain icon="el-icon-plus" @click="handleCopyZbRow"
                    size="mini">复制一行</el-button>
                <el-button type="success" plain icon="el-icon-arrow-up" @click="handleMoveRowUp(zbSelForm)"
                    size="mini">上移</el-button>
                <el-button type="success" plain icon="el-icon-arrow-down" @click="handleMoveRowDown(zbSelForm)"
                    size="mini">下移</el-button>
            </div>
            <el-table :data="editData" style="width: 100%" height="300" width="100%" ref="zbTable"
                @selection-change="handleTableZbEdit" :row-class-name="rowSysZbIndex" show-summary border>
                <el-table-column type="selection" width="55" align="center" />
                <el-table-column align="center" label="序号" type="index" width="80" />
                <el-table-column align="center" label="物料代码" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.物料代码" placeholder="请输入物料代码"
                            @keyup.native.f7="openDataDialog(3, scope.row)"
                            @dblclick.native="openDataDialog(3, scope.row)" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="物料名称" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.物料名称 }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="规格型号" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.规格型号 }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="计量单位" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.计量单位" placeholder="请输入计量单位"
                            @keyup.native.f7="openDataDialog('单位页面还没有', scope.row, dwType = 'jldw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'jldw')" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="仓库" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.仓库" placeholder="请输入仓库"
                            @keyup.native.f7="openDataDialog(2, scope.row, ckType = 'zb')"
                            @dblclick.native="openDataDialog(2, scope.row, ckType = 'zb')" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="仓位" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.仓位" placeholder="请输入仓位"
                            @keyup.native.f7="openDataDialog(9, scope.row)"
                            @dblclick.native="openDataDialog(9, scope.row)" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="库存辅单位" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.库存辅单位" placeholder="请输入库存辅单位"
                            @keyup.native.f7="openDataDialog('单位页面还没有', scope.row, dwType = 'kcfdw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'kcfdw')" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="基本单位" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.基本单位" placeholder="请输入基本单位"
                            @keyup.native.f7="openDataDialog('单位页面还没有', scope.row, dwType = 'jbdw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'jbdw')" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="辅单位" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.辅单位" placeholder="请输入辅单位"
                            @keyup.native.f7="openDataDialog('单位页面还没有', scope.row, dwType = 'fdw')"
                            @dblclick.native="openDataDialog('单位页面还没有', scope.row, dwType = 'fdw')" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="应收数量" width="120">
                    <template slot-scope="scope">
                        <el-input-number v-model="scope.row.HQtyMust" :min="1" style="width: 90px;"
                            controls-position="right"></el-input-number>
                    </template>
                </el-table-column>
                <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">
                    <template slot-scope="scope">
                        <el-input-number v-model="scope.row.HPrice" :min="0" style="width: 90px;"
                            controls-position="right"></el-input-number>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="金额" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMoney }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="操作" width="55" fixed="right">
                    <template slot-scope="scope">
                        <el-button type="danger" icon="el-icon-delete" size="mini" circle
                            @click="handleDeleteSysZb(scope.row)"></el-button>
                    </template>
                </el-table-column>
            </el-table>
        </el-form>
        <!-- 部门弹窗 -->
        <el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
            <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="deptShow" />
            <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="warehouseShow" />
            <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="materialShow" />
            <GyEmployee @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyEmployeeShow" />
            <GySupplier @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gySupplierShow" />
            <GyStockPlace @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyStockPlaceShow" />
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="deptClickSub">确 定</el-button>
                <el-button @click="deptClose">取 消</el-button>
            </div>
        </el-dialog>
        <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
            <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
        </el-dialog>
    </div>
</template>
<script>
import axios from 'axios'
import RowSettings from '@/views/component/rowSettings'
import Dept from '@/views/basic/gy/gyDepartment.vue'
import Warehouse from '@/views/basic/gyWarehouse/gyWarehouse.vue'
import Material from '@/views/gyMaterial/GyMaterial.vue'
import GyEmployee from '@/views/basic/gyEmployee/gyEmployee.vue'
import GySupplier from '@/views/basic/gy/gySupplier.vue'
import GyStockPlace from '@/views/basic/gyStockPlace/gyStockPlace.vue'
import moment from 'moment';
export default {
    name: 'Kf_StockOutRequestBill',
    components: { Dept, Warehouse, Material, RowSettings, GyEmployee, GySupplier, GyStockPlace },
    props: {
        OperationType: { type: Number, },
        linterid: { type: Number, },
        HSouceBillType: { type: String, },
        propsData: { type: String, },
        copyType: { type: Number, },
    },
    data() {
        return {
            HModName: "Kf_StockOutRequestBill",
            allVal: undefined,
            zhiyuanType: '',
            ckType: '',
            formShow: false,
            temp: undefined,
            formLoading: true,
            zzSelDis: false,
            rowHideShow: false,
            openRowHide: false,
            hPriceTypeList: ['成本价', '结算价'],
            addBtnShow: false,
            zbIndex: null,
            zbSelForm: {},//子表选中数据
            dialogTypeNum: null,//部门弹窗1,仓库弹窗2
            deptShow: false,//部门数据组件
            warehouseShow: false,//仓库数据组件
            materialShow: false,//物料数据组件
            gyEmployeeShow: false,//销售员数据组件
            gySupplierShow: false,
            gyStockPlaceShow: false,
            deptform: {},//弹窗选中数据
            openData: false,//数据弹窗
            dialogTitle: '',
            organizationList: [],//组织列表
            subDisabled: false,//编辑页面保存按钮是否禁用(true禁用,false可用)
            // OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
            HInterID: null,
            baseURL: process.env.VUE_APP_BASE_API,
            checkedSysZb: [],
            editData: [],//销售出库单子表
            editBtData: [],//子表表头
            activeName: 'first',
            // 弹出层标题
            title: "",
            // 是否显示弹出层
            open: false,
            // 日期范围
            dateRange: [],
            // 查询参数
            queryParams: {
                HBillNo: '',
                HInitTimeCycle: 29,
                HProjectNumber: '',
                HCusID: null,
                HMaterNumber: '',
                HMaterName: '',
                ColName1: '',
                ColName2: '',
                ColName: '',
                Comparator1: '',
                Comparator2: '',
                Comparator: '',
                ColContent1: '',
                ColContent2: '',
                ColContent: '',
            },
            // 显示搜索条件
            showSearch: true,
            // 选中数组
            ids: [],
            // 非单个禁用
            single: true,
            // 非多个禁用
            multiple: true,
            // 遮罩层
            loading: true,
            btResList: [],
            // 表单参数
            form: {},
            // 表单校验
            rules: {
                HDate: [
                    { required: true, message: "日期不能为空", trigger: "blur" }
                ],
                HExRate: [
                    { required: true, message: "汇率不能为空", trigger: "blur" }
                ]
            }
        };
    },
    created() {
        this.fetchData()
        this.getdata()
    },
    methods: {
        fetchData() {
            axios.get(this.$baseUrl + "/Web/GetOrganizations", {
            }).then(response => {
                if (response.data.count == 1) {
                    this.organizationList = response.data.data;//组织列表
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        getdata() {
            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) {
                this.handleUpdate()
            }
        },
        // 获取参数_传递的JSON格式参数
        getUrlVars_JSON() {
            var datajson;
            var str = this.propsData; //获取链接中传递的参数
            var arr = str.substring(str.lastIndexOf("=") + 1);
            datajson = JSON.parse(decodeURI(arr));
            return datajson;
        },
        //根据主内码与子内码获取源单销售订单数据
        getPushSourceBillInit(HSourceInterID, HSourceEntryID) {
            axios.get(this.$baseUrl + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
                params: {
                    "HInterID": HSourceInterID
                    , "HSubID": HSourceEntryID
                },
            }).then(response => {
                let result = response.data
                if (result.code == 1) { // 说明验证成功了,
                    this.temp = result.data[0];
                } else {
                    this.temp = result.data;
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        handleRowHide() {
            this.rowHideShow = true
            this.openRowHide = true
        },
        rowSetClose(val) {
            this.rowHideShow = false
            this.openRowHide = val
        },
        organizationChange(val) {
            // let options=undefined
            //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
        },
        //部门弹窗赋值
        dbEmitData(deptRow, num) {
            // num=1部门 num=2出库仓库
            if (deptRow.HItemID) {
                if (num == 1) {
                    this.form.HDeptName = deptRow.部门名称
                    this.form.HDeptID = deptRow.HItemID
                    this.deptShow = false
                    this.openData = false
                } else if (num == 2) {
                    if (this.ckType == 'form') {
                        this.form.HWHID = deptRow.HItemID;
                        this.form.HWHName = deptRow.仓库名称;
                    } else if (this.ckType == 'zb') {
                        this.editData[this.zbIndex].HWHID = deptRow.HItemID;
                        this.editData[this.zbIndex].仓库 = deptRow.仓库名称;
                    }
                    this.warehouseShow = false
                    this.openData = false
                } else if (num == 3) {
                    this.editData[this.zbIndex].HMaterID = deptRow.HItemID;
                    this.editData[this.zbIndex].物料代码 = deptRow.物料代码;
                    this.editData[this.zbIndex].物料名称 = deptRow.物料名称;
                    this.editData[this.zbIndex].HUnitID = deptRow.HUnitID;
                    this.editData[this.zbIndex].规格型号 = deptRow.规格型号
                    this.editData[this.zbIndex].计量单位 = deptRow.计量单位名称
                    this.editData[this.zbIndex].HTaxPrice = deptRow.含税成本价
                    this.editData[this.zbIndex].HTaxRate = deptRow.默认税率
                    this.materialShow = false
                    this.openData = false
                } else if (num == 4) {
                    if (this.zhiyuanType == 'yewuyuan') {
                        this.form.HEmpName = deptRow.职员名称
                        this.form.HEmpID = deptRow.HItemID
                    } else if (this.zhiyuanType == 'baoguanyuan') {
                        this.form.HKeeperName = deptRow.职员名称
                        this.form.HKeeperID = deptRow.HItemID
                    } else if (this.zhiyuanType == 'zhuguan') {
                        this.form.HMangerName = deptRow.职员名称
                        this.form.HMangerID = deptRow.HItemID
                    } else if (this.zhiyuanType == 'yanshou') {
                        this.form.HSecManagerName = deptRow.职员名称
                        this.form.HSecManagerID = 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 == 9) {
                    this.editData[this.zbIndex].HSPID = deptRow.HMainID;
                    this.editData[this.zbIndex].仓位 = deptRow.仓位名称;
                    this.gyStockPlaceShow = false
                    this.openData = false
                }
            } else {
                this.$modal.msgError("请选择单条数据!");
            }
        },
        emitData(deptRow, num) {
            this.dialogTypeNum = num
            this.deptform = deptRow
        },
        deptClickSub() {
            this.dbEmitData(this.deptform, this.dialogTypeNum)
            this.deptform = {}
        },
        deptClose() {
            this.deptform = {}
            this.openData = false
        },
        //销售出库单新增编辑表单初始化
        reset() {
            this.form = {
                HBillNo:'',
                HDate: moment(new Date()).format('YYYY-MM-DD'),
                HSSDate:moment(new Date()).format('YYYY-MM-DD'),
                HAddress:'',
                HDeptName:'',
                HDeptID:0,
                HSupID:0,
                HSupName:'',
                HEmpID:0,
                HEmpName:'',
                HCurID:0,
                HCurName:'',
                HExRate:'',
                HManagerName:'',
                HManagerID:0,
                HPSStyleID:0,
                HPSStyleName:'',
                HSSID:0,
                HSSName:'',
                HLinkMan:'',
                HLinkPhone:'',
                HInnerBillNo:'',
                HRemark:'',
                HMaker:sessionStorage["HSupName"],
                HChecker:'',
                HCloseMan:'',
                HMakeDate:'',
                HCheckDate:'',
                HCloseDate:'',
                HUpDateDate:'',
                HDeleteDate:'',
            }
            this.editData = []
            this.editBtData = []
            this.ids = []
            this.subDisabled = false
            this.addBtnShow = false
            // this.$refs.tableData.clearSelection()
            this.activeName = 'first'
            this.resetForm("form");
        },
        //退出
        close() {
            this.reset()
            if (!this.OperationType && !this.copyType) {
                const obj = { fullPath: this.$route.path, path: this.$route.path, name: this.$route.name, };
                this.$tab.closePage(obj).then(res => {
                    const latestView = res.visitedViews.slice(-1)[0]
                    if (latestView) {
                        this.$router.push(latestView.fullPath)
                    } else {
                        if (obj.name === 'Dashboard') {
                            this.$router.replace({ path: '/redirect' + obj.fullPath })
                        } else {
                            this.$router.push('/')
                        }
                    }
                });
            } else {
                this.formShow = false
                this.$emit('editClose', false)
            }
        },
        //根据用户获取对应职员、部门、销售主管
        getCzyglByUser() {
            axios.get(this.$baseUrl + '/Xs_SeOrderBill/getCzyglByUser', {
                params: { "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let dataForm = response.data.data[0]
                this.form.HDeptID = dataForm.HDeptID
                this.form.HDeptName = dataForm.HDeptName
                this.form.HEmpID = dataForm.HEmpID
                this.form.HEmpName = dataForm.HEmpName
                this.form.HManagerID = dataForm.HManagerID
                this.form.HManagerName = dataForm.HManagerName
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        /** 新增按钮操作 */
        handleAdd() {
            this.reset()
            //新增获取单据号
            this.getHBillNo()
            this.form.HDate = moment(new Date()).format('YYYY-MM-DDTHH:mm:ss')
            if (this.OperationType == 1) {
                this.handleAddSysZb()
            }
            this.$nextTick(() => {
                this.formShow = true
                this.formLoading = false
            })
        },
        getHBillNo() {
            axios.get(this.$baseUrl + "/Web/GetMAXNum", {
                params: {
                    HBillType: '1242'
                }
            }).then(response => {
                this.form.HMaker = sessionStorage["HUserName"]
                this.form.HBillNo = response.data.data[0].HBillNo
                this.form.HInterID = response.data.data[0].HInterID
                // this.copyType = 0
                // this.getCzyglByUser()
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        /** 修改按钮操作 */
        handleUpdate() {
            this.reset()
            let rowHmainid = this.linterid
            axios.get(this.$baseUrl + "/Kf_StockOutRequestBill/cx", {
                params: { 'HInterID': rowHmainid }
            }).then(response => {
                if (response.data.count == 1) {
                    var result = response.data
                    var data = response.data.data[0]
                    this.allVal = data
                    this.form.BillType = data.HSourceBillType
                    if (this.copyType == 1) {
                        this.getHBillNo()
                        let date = new Date()
                        this.form.HDate = moment(date).format('YYYY-MM-DD')
                    } else {
                        this.form.HBillNo = data.单据号
                        // this.form.HInterID = data.HInterID
                        this.form.HDate = data.日期
                        this.form.HMaker = data.制单人
                        this.form.HUpDater = data.修改人
                        this.form.HChecker = data.审核人
                        this.form.HMakeDate = data.制单日期
                        this.form.HUpDateDate = data.修改日期
                        this.form.HCheckDate = data.审核日期
                        this.form.HCloseMan = data.关闭人
                        this.form.HDeleteMan = data.作废人
                        this.form.HCloseDate = data.关闭日期
                        this.form.HDeleteDate = data.作废日期
                    }
                    this.form.HAddress = data.交货地点
                    this.form.HDeptName = data.部门
                    this.form.HDeptID = data.HDeptID
                    this.form.HSupID = data.HSupID
                    this.form.HSupName = data.供应商
                    this.form.HEmpID = data.HEmpID
                    this.form.HEmpName = data.业务员
                    this.form.HCurID = data.HCurID
                    this.form.HCurName = data.币别
                    this.form.HExRate = data.汇率
                    this.form.HManagerName = data.主管
                    this.form.HManagerID = data.HManagerID
                    this.form.HPSStyleID = data.HPSStyleID
                    this.form.HPSStyleName = data.采购方式
                    this.form.HSSID = data.HSSID
                    this.form.HSSName = data.结算方式
                    this.form.HLinkMan = data.联系人
                    this.form.HLinkPhone = data.联系电话
                    this.form.HInnerBillNo = data.辅助字段
                    this.form.HRemark = data.表头备注
                    this.form.HWHName = data['仓库']
                    this.form.HWHID = data['HWHID']
                    for (var i = 0; i < result.data.length; i++) {
                        this.editData.push(
                            {
                                "HMaterID": result.data[i].HMaterID,
                                "物料代码": result.data[i].物料代码,
                                "物料名称": result.data[i].物料名称,
                                "规格型号": result.data[i].规格型号,
                                "HUnitID": result.data[i].HUnitID,
                                "计量单位": result.data[i].计量单位,
                                "HQty": result.data[i].数量,
                                "HRemark": result.data[i].表体备注,
                                "HPrice": result.data[i].单价,
                                "HMoney": result.data[i].金额,
                                "HTaxRate": result.data[i].税率,
                                "HTaxMoney": result.data[i].金额 * result.data[i].税率,
                                "HlineTotal": result.data[i].金额 + result.data[i].税额,
                                "HlineTotalBB": (result.data[i].金额 + result.data[i].税额) * result.data[i].汇率, "HTaxPrice": result.data[i].含税单价,
                                "HDiscountRate": result.data[i].折扣率,
                                "HRelTaxPrice": data.实际含税单价,
                                "仓库":  data.仓库,
                                "HDate": moment(result.data[i].交货日期).format('YYYY-MM-DD'),
                                "HQtyMust": data.实收数量,
                                "HQty": data.应收数量
                            }
                        );
                    }
                    this.formShow = true
                    this.formLoading = false
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        /** 子表明细序号 */
        rowSysZbIndex({ row, rowIndex }) {
            row.index = rowIndex + 1;
        },
        /** 编辑页子表添加按钮操作 */
        handleAddSysZb(index, num) {
            if (num == 1 && !index) {
                this.$modal.msgError("请选择一行数据编辑!");
            } else {
                let obj = {
                    "HMaterID": 0, "物料代码": "", "物料名称": "", "规格型号": "", "HUnitID": 0, "计量单位": "", "HWHID": 0, "仓库": "",
                    "HSPID": 0, "仓位": "", "HSecUnitID": 0, "库存辅单位": "", "HBASEUNITID": 0, "基本单位": "",
                    "HEXTAUXUNITID": 0, "辅单位": "", "HQtyMust": 0, "HQty": 0, "HPrice": 0, "HMoney": 0, "HRemark": ""
                }
                if (index) {
                    this.editData.splice(index, 0, obj);
                    this.$set(this.editData, index, obj)
                } else {
                    this.editData.push(obj);
                }
            }
        },
        handleCopyZbRow() {
            if (!this.zbIndex) {
                this.$modal.msgError("请选择一行数据")
            } else {
                let copyRow = JSON.parse(JSON.stringify(this.zbSelForm))
                this.editData.push(copyRow);
            }
        },
        handleMoveRowUp(zbSelForm) {
            if (!this.zbIndex) {
                this.$modal.msgError("请选择一行数据")
            } else {
                if (zbSelForm.index == 1) {
                    this.$modal.msgError("第一行数据无法上移");
                } else { // 确保不是第一行
                    let num = zbSelForm.index - 1
                    const record = this.editData.splice(num, 1)[0];
                    this.editData.splice(num - 1, 0, record);
                }
            }
        },
        handleMoveRowDown(zbSelForm) {
            if (!this.zbIndex) {
                this.$modal.msgError("请选择一行数据")
            } else {
                if (zbSelForm.index == this.editData.length) {
                    this.$modal.msgError("最后一行数据无法下移");
                } else { // 确保不是第一行
                    let num = zbSelForm.index - 1
                    const record = this.editData.splice(num, 1)[0];
                    this.editData.splice(num + 1, 0, record);
                }
            }
        },
        /** 编辑页子表删除按钮操作 */
        handleDeleteSysZb(row) {
            this.checkedSysZb = []
            this.checkedSysZb.push(row.index)
            if (this.checkedSysZb.length == 0) {
                this.$modal.msgError("请先选择要删除的商品订单明细数据");
            } else {
                const editData = this.editData;
                const checkedSysZb = this.checkedSysZb;
                this.editData = editData.filter(function (item) {
                    return checkedSysZb.indexOf(item.index) == -1
                });
            }
        },
        /** 编辑页子表复选框选中数据 */
        handleTableZbEdit(selection) {
            this.checkedSysZb = selection.map(item => item.index)
            this.zbSelForm = selection[0]
            this.zbIndex = this.checkedSysZb[0]
            if (selection.length > 1) {
                const del_row = selection.shift()
                this.$refs.zbTable.toggleRowSelection(del_row, false) //设置这一行取消选中
            }
        },
        // 编辑提交保存
        submitForm() {
            this.$refs["form"].validate(valid => {
                if (valid) {
                    let fhck = false
                    this.editData.map((item, index) => {
                        if (!item.仓库) {
                            fhck = true
                            this.$modal.msgError("第" + (index + 1) + "行:仓库未选择!");
                        }
                    })
                    this.$nextTick(() => {
                        if (!fhck) {
                            var sMainStr = JSON.stringify(this.form);
                            var sSubStr = JSON.stringify(this.editData);
                            var sAllStr = JSON.stringify(this.allVal)
                            var sMainSub = sMainStr + ';' + sSubStr + ';' + this.OperationType + ";" + sessionStorage["HUserName"] + ';' + sAllStr;
                            axios({
                                method: 'post',
                                url: this.$baseUrl + "/Kf_StockOutRequestBill/StockOutRequestBillEdit",
                                data: {
                                    'sMainSub': sMainSub
                                },
                            }).then(response => {
                                if (response.data.count == 1) {
                                    this.subDisabled = true//设置保存按钮不可用
                                    this.$modal.msgSuccess(response.data.Message);
                                    this.close()
                                } else {
                                    this.$modal.msgError(response.data.Message);
                                }
                            }).catch(error => {
                                this.$modal.msgError("接口请求失败!");
                            });
                        }
                    })
                }
            });
        },
        // 反审核/审核数据
        set_CheckBill(num, form) {
            var InterID = form.hmainid || form.HInterID
            //逻辑审核方法
            axios.get(this.$baseUrl + "/Kf_SellOutBill/AuditKf_SellOutBill", {
                params: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
                if (result.code == 1) {
                    this.$modal.msgSuccess('操作成功');
                }
                else {
                    this.$modal.msgError("错误:" + result.code + result.Message,);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
        },
        showReset() {
            this.deptShow = false
            this.warehouseShow = false
            this.materialShow = false
            this.gyEmployeeShow = false
            this.gySupplierShow = false
            this.gyStockPlaceShow = false
        },
        //  打开数据列表弹窗
        openDataDialog(num, row) {
            //num1部门,2出库仓库,3物料,4销售员
            if (row) {
                this.zbIndex = row.index - 1
            }
            this.showReset()
            if (num == 1) {
                this.dialogTitle = '部门列表'
                this.deptShow = true
                this.openData = true
            } else if (num == 2) {
                this.dialogTitle = '出库仓库列表'
                this.warehouseShow = true
                this.openData = true
            } else if (num == 3) {
                this.dialogTitle = '物料列表'
                this.materialShow = true
                this.openData = true
            } else if (num == 4) {
                this.dialogTitle = '职员列表'
                this.gyEmployeeShow = true
                this.openData = true
            } else if (num == 6) {
                this.dialogTitle = '往来单位列表'
                this.gySupplierShow = true
                this.openData = true
            } else if (num == 9) {
                this.dialogTitle = '往来单位列表'
                this.gyStockPlaceShow = true
                this.openData = true
            }
        },
    }
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
    width: 100%;
}
</style>
src/views/logistics/WayBillPaymentBill/YF_PayMentOtherBillTranList.vue
New file
@@ -0,0 +1,835 @@
<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="单据号" prop="HBillNo" style="margin-left: 100px">
                <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery" />
            </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="开始日期">
                <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-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="HDepartName">
                            <el-input v-model="queryParams.HDepartName" placeholder="请输入部门名称"
                                @keyup.enter.native="HDepartName" />
                        </el-form-item>
                        <el-form-item label="物料代码" prop="HMaterNumber">
                            <el-input v-model="queryParams.HMaterNumber" placeholder="请输入物料代码"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="物料名称" prop="HMaterName">
                            <el-input v-model="queryParams.HMaterName" placeholder="请输入物料名称"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="仓库" prop="HWHID">
                            <el-input v-model="queryParams.HWHID" 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="7">
                                            <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="11">
                                            <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="7">
                                            <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">
                                                <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="11">
                                            <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="7">
                                        <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="11">
                                        <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 = 3))">编辑</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-date" size="mini" @click="handleRowHide">隐藏列设置</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 = 3))"
                                    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>
        </div>
    </div>
</template>
<script>
import axios from "axios";
import RowSettings from "@/views/component/rowSettings";
import Edit from "@/views/warehouse/shipment/Kf_StockOutRequestBill.vue";
import PrintList from "@/views/component/printList";
import BarCodeDetail from '@/views/component/BarCodeDetail'               //条码明细组件
import moment from "moment";
export default {
    name: "Kf_StockOutRequestBillList",
    components: { RowSettings, Edit, PrintList, BarCodeDetail },
    data() {
        return {
            activeSeach: "",
            HModName: "Kf_StockOutRequestBillList",
            editShow: false,
            openEdit: false,
            totalNameList: [],
            tableShow: true,
            openPrintList: false,
            printListShow: false,
            barCodeDetailShow: 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 },
            ],
            hPriceTypeList: ["成本价", "结算价"],
            addBtnShow: false,
            dialogTitle: "",
            OperationType: null, //保存类型(新增1修改3)
            HInterID: null,
            baseURL: process.env.VUE_APP_BASE_API,
            lastSelectedRowIndex: null, // 用于记录上次点击的行索引
            lastSelectedRow: null, // 上一次选中的行
            selectedRow: null, // 当前选中的行
            rowForm: {},
            // 弹出层标题
            title: "",
            // 是否显示弹出层
            open: false,
            // 查询参数
            queryParams: {
                HBillNo: "",
                HInitTimeCycle: 29,
                HDepartName: "",
                HWHID: null,
                HMaterNumber: "",
                HMaterName: "",
                ColName1: "",
                ColName2: "",
                ColName: "",
                Comparator1: "",
                Comparator2: "",
                Comparator: "",
                ColContent1: "",
                ColContent2: "",
                ColContent: "",
            },
            // 选中数组
            ids: [],
            // 非单个禁用
            single: true,
            // 非多个禁用
            multiple: true,
            // 遮罩层
            loading: true,
            tyResList: [], //销售出库列表(接口数据)
            btList: [], //销售出库表头列表显示
            btResList: [],
            tableData: [], //销售出库列表(分页显示)
            dataList: [],
            titleData: [
                "hmainid",
                "hsupid",
                "HEmpID",
                "hmanagerid",
                "hsecmanagerid",
                "发货人",
                "hkeeperid",
                "保管员",
                "HDeptID",
                "销售方式",
                "hsubid",
                "hmaterid",
                "hunitid",
                "HWHID",
            ], //不需要显示的字段 可扩展
            pageSizes: [50, 100, 500, 5000, 50000],
            page: 1,
            pageSize: 0,
            total: 0,
        };
    },
    created() {
        // this.fetchData()
        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.sWhere = ''
            this.pageSize = 50;
            this.tableShow = false;
            this.loading = true;
            if (this.sTime) {
                this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.sTime + "'";
                this.sWhere += " and CONVERT(varchar(100),日期, 23) <= '" + this.eTime + "'";
            }
            if (this.pageSize == 0) {
                this.pageSize = 50;
            }
            // 列表
            axios
                .get(this.$baseUrl + "/YF_PayMentOtherBillTran/YF_PayMentOtherBillMainList", {
                    params: {
                        sWhere: this.sWhere,
                        user: sessionStorage["HUserName"],
                        // Organization: sessionStorage["Organization"],
                        // page: this.page,
                        // size: this.pageSize,
                    },
                })
                .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,
                            }); //从每个对象中提取数据
                        }
                        //在列表左边添加勾选框
                        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];
                        this.dataList = option;
                        option.data = data1.data;
                        var result = data1.data;
                        var temp = "";
                        for (var i = 0; i < result.length; i++) {
                            if (temp != result[i]["hmainid"]) {
                                temp = result[i]["hmainid"];
                            } else {
                                result[i].日期 = null;
                                result[i].单据号 = "";
                                /*result[i].状态 = "";*/
                                result[i].红蓝单标记 = "";
                                result[i].hsupid = "";
                                result[i].客户 = "";
                                result[i].HEmpID = "";
                                result[i].业务员 = "";
                                result[i].hmanagerid = "";
                                result[i].主管 = "";
                                result[i].hsecmanagerid = "";
                                result[i].发货人 = "";
                                result[i].hkeeperid = "";
                                result[i].保管员 = "";
                                result[i].HDeptID = "";
                                result[i].部门 = "";
                                result[i].销售方式 = "";
                            }
                        }
                        option.data = result;
                        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);
        },
        //选中行高亮样式
        rowStyle({ row, rowIndex }) {
            if (this.ids.includes(row.hmainid)) {
                return { background: "#ecf5ff" };
            }
        },
        //双击行
        handleDblclick(row, column, cell, event) {
            this.OperationType = 3;
            this.handleEdit();
        },
        // 多选框选中数据
        handleSelectionChange(selection) {
            // this.rowForm = {}
            this.ids = selection.map((item) => item.hmainid);
            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.sTime) {
                this.sTime = moment(this.sTime).format("YYYY-MM-DD");
                this.eTime = moment(this.eTime).format("YYYY-MM-DD");
                console.log(this.sTime, this.eTime);
                this.sWhere +=
                    " and CONVERT(varchar(100),日期, 23) >= '" +
                    this.sTime +
                    "'" +
                    " and CONVERT(varchar(100),日期, 23) <= '" +
                    this.eTime +
                    "'";
            }
            if (this.queryParams.HBillNo) {
                this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
            }
            if (this.queryParams.HDepartName) {
                this.sWhere += " and 部门名称 like '%" + this.queryParams.HDepartName + "%'";
            }
            if (this.queryParams.HWHID) {
                this.sWhere += " and 仓库 like '%" + this.queryParams.HWHID + "%'";
            }
            if (this.queryParams.HMaterNumber) {
                this.sWhere += " and 物料代码 like '%" + this.queryParams.HMaterNumber + "%'";
            }
            if (this.queryParams.HMaterName) {
                this.sWhere += " and 物料名称 like '%" + this.queryParams.HMaterName + "%'";
            }
            this.getList();
        },
        /** 重置按钮操作 */
        resetQuery() {
            this.sWhere = "";
            this.queryParams = {
                HBillNo: "",
                HInitTimeCycle: 29,
                HProjectNumber: "",
                HCusID: null,
                HMaterNumber: "",
                HMaterName: "",
                ColName1: "",
                ColName2: "",
                ColName: "",
                Comparator1: "",
                Comparator2: "",
                Comparator: "",
                ColContent1: "",
                ColContent2: "",
                ColContent: "",
            };
            this.riqiChange();
            this.resetForm("queryForm");
            this.getList();
        },
        //退出
        close() {
            // this.reset()
            this.tableShow = true;
            this.openEdit = false;
            this.editShow = false;
            this.getList();
        },
        //打开新增组件弹窗
        handleAddEdit() {
            this.rowForm.hmainid = 0;
            this.editShow = true;
            this.openEdit = true;
        },
        //打开修改组件弹窗
        handleEdit(row) {
            this.rowForm = row;
            this.editShow = true;
            this.openEdit = true;
        },
        //关闭编辑页面
        editClose(val) {
            this.open = val;
            this.editShow = false;
            this.openEdit = val;
            this.getList();
        },
        /** 删除按钮操作 */
        handleDelete() {
            this.$modal.confirm("确认要删除吗,删除后不能恢复").then(() => {
                axios.get(this.$baseUrl + "/Kf_StockOutRequestBill/DeltetKf_StockOutRequestBill", {
                    params: {
                        HInterID: this.rowForm.hmainid.toString(),
                        user: 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(() => { });
        },
    },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
    width: 100%;
}
</style>
src/views/scMould/warehouse/Sc_MouldProdBackBillEdit.vue
@@ -755,7 +755,7 @@
            this.gyMouldShow = false
            this.openData = false
          } else if (num == 9){
            this.editData[this.zbIndex].HSPID = deptRow.HMainID
            this.editData[this.zbIndex].HSPID = deptRow.HItemID
            this.editData[this.zbIndex].HSPNumber = deptRow.仓位代码
            this.editData[this.zbIndex].HSPName = deptRow.仓位名称
            this.gyStockPlaceShow = false
src/views/scMould/warehouse/Sc_MouldProdOutBillEdit.vue
@@ -754,7 +754,7 @@
            this.gyMouldShow = false
            this.openData = false
          } else if (num == 9){
            this.editData[this.zbIndex].HSPID = deptRow.HMainID
            this.editData[this.zbIndex].HSPID = deptRow.HItemID
            this.editData[this.zbIndex].HSPNumber = deptRow.仓位代码
            this.editData[this.zbIndex].HSPName = deptRow.仓位名称
            this.gyStockPlaceShow = false
src/views/warehouse/barcodeMaster/Gy_BarCodeBill_JinLong_AutoLogin.vue
@@ -726,7 +726,6 @@
            var HPwdWord = params[params[6]];               //登录密码
            var HOrgID = params[params[7]];                 //组织id
            var HOrgName = "";
            console.log("HOrgID", HOrgID);
            
            if (HOrgID == 0) {
                //判断是否登录 未登录则跳到登录页