<template>
|
<div v-loading="formLoading" v-if="formShow" style="padding: 20px">
|
<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(0, form)">审 核</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="请输入单据编号" />
|
</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="HEmpName">
|
<el-input v-model="form.HEmpName" placeholder="请选择业务员" disabled>
|
<el-button slot="append" icon="el-icon-search"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="业务员" prop="HCusName">
|
<el-input v-model="form.HCusName" placeholder="请选择客户" disabled>
|
<el-button slot="append" icon="el-icon-search"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="主管" prop="HManagerName">
|
<el-input v-model="form.HWHName" placeholder="请选择主管" disabled>
|
<el-button
|
slot="append"
|
icon="el-icon-search"
|
></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="结算方式" prop="HSSName">
|
<el-input v-model="form.HDeptName" placeholder="请选择结算方式" disabled>
|
<el-button slot="append" icon="el-icon-search"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="币别" prop="HCurName">
|
<el-input v-model="form.HManagerName" placeholder="请选择币别" disabled>
|
<el-button slot="append" icon="el-icon-search"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="汇率" prop="HExRate">
|
<el-input v-model="form.HLinkMan" placeholder="请输入汇率" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<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"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="客户" prop="HCusName">
|
<el-input v-model="form.HCusName" placeholder="请选择客户" disabled>
|
<el-button slot="append" icon="el-icon-search"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="交货地点" prop="HAddress">
|
<el-input v-model="form.HAddress" placeholder="请输入备注" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="备注" prop="HRemark">
|
<el-input v-model="form.HRemark" placeholder="">
|
</el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="摘要" prop="HExplanation">
|
<el-input v-model="form.HExplanation"> </el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="源单类型" prop="HSourceBillType">
|
<el-select v-model="form.HSourceBillType" placeholder="请选择">
|
<el-option
|
v-for="(item, index) in HSourceBillTypeList"
|
:key="index"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="选单号" prop="XDHList">
|
<el-input v-model="form.XDHList" disabled> </el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="项目代码" prop="HProjectNumber">
|
<el-input v-model="form.HProjectNumber" placeholder="请选择项目代码" disabled>
|
<el-button slot="append" icon="el-icon-search"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="项目名称" prop="HProjectName">
|
<el-input v-model="form.HProjectName" disabled> </el-input>
|
</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">
|
<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['收货仓库']"
|
style="width: 90px"
|
controls-position="right"
|
></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column align="center" label="数量" width="120">
|
<template slot-scope="scope">
|
<span>{{ scope.row.HQty }}</span>
|
</template>
|
</el-table-column>
|
|
<el-table-column align="center" label="单价" width="120">
|
<template slot-scope="scope">
|
<span>{{ scope.row.HPrice }}</span>
|
</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="120">
|
<template slot-scope="scope">
|
<span>{{ scope.row.HSeOrderBillNo }}</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="请输入备注" />
|
</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" v-if="deptShow" />
|
<Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="warehouseShow" />
|
<Material @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="materialShow" />
|
<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="Kf_SellOutBillList"
|
@rowEditClose="rowSetClose"
|
v-if="rowHideShow"
|
/>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import axios from "axios";
|
import Dept from "@/views/component/dept";
|
import Warehouse from "@/views/component/warehouse";
|
import Material from "@/views/component/material";
|
import RowSettings from "@/views/component/rowSettings";
|
import moment from "moment";
|
import dayjs from "dayjs";
|
|
export default {
|
name: "XsSeOutStockBackBillEdit",
|
components: { Dept, Warehouse, Material, RowSettings },
|
props: {
|
OperationType: { type: Number },
|
linterid: { type: Number },
|
HSouceBillType: { type: String },
|
propsData: { type: String },
|
copyType: { type: Number },
|
},
|
data() {
|
return {
|
iframeUrl: "",
|
OperationType2: 1,
|
HInterID2: 0,
|
CopyType2: 1,
|
formShow: false,
|
temp: undefined,
|
formLoading: true,
|
zzSelDis: false,
|
rowHideShow: false,
|
openRowHide: false,
|
hPriceTypeList: ["成本价", "结算价"],
|
HSourceBillTypeList: [],
|
addBtnShow: false,
|
zbIndex: null,
|
zbSelForm: {}, //子表选中数据
|
dialogTypeNum: null, //部门弹窗1,仓库弹窗2
|
deptShow: false, //部门数据组件
|
warehouseShow: false, //仓库数据组件
|
materialShow: 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: {
|
HSupName: [{ required: true, message: "客户不能为空", trigger: "blur" }],
|
HDate: [{ required: true, message: "日期不能为空", trigger: "blur" }],
|
HExRate: [{ required: true, message: "汇率不能为空", trigger: "blur" }],
|
},
|
};
|
},
|
created() {
|
this.fetchData();
|
this.getdata();
|
this.getHSourceBillType();
|
},
|
beforeDestroy() {
|
if (window.top != window.this) {
|
console.log(window.parent);
|
} else {
|
this.$destroy();
|
}
|
},
|
methods: {
|
getHSourceBillType() {
|
axios
|
.get(this.baseURL + "/Web/GetHSourceBillType", {
|
params: { HName: "退货通知单", Num: 2 },
|
})
|
.then((res) => {
|
this.HSourceBillTypeList = res.data.data.map((e) => {
|
return {
|
label: e.HSourceBillTypeName,
|
value: e.HSourceBillType,
|
};
|
});
|
})
|
.error((err) => {
|
this.$modal.msgError(`获取源单错误: ${err}`);
|
});
|
},
|
fetchData() {
|
axios
|
.get(this.baseURL + "/Web/GetOrganizations", {})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.organizationList = response.data.data.map((item) => {
|
return {
|
label: item.Name,
|
value: item.ID,
|
};
|
}); //组织列表
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
getdata() {
|
this.HInterID2 = this.$route.query.HInterID || this.linterid || 0;
|
this.OperationType2 = this.$route.query.OperationType || this.OperationType || 1;
|
this.CopyType2 = this.$route.query.copyType || this.copyType || -1;
|
console.log(this.CopyType2, this.OperationType2, this.HInterID2);
|
this.formShow = false;
|
this.formLoading = true;
|
|
if (this.OperationType2 == 4) {
|
this.zzSelDis = true;
|
this.handleAdd();
|
var data = [{ hmainid: this.HInterID2 }];
|
var dataArray = [];
|
for (var i = 0; i < data.length; i++) {
|
// this.getPushSourceBillInit(data[i].hmainid, data[i].hsubid);
|
axios
|
.get(this.baseURL + "/Xs_SeOutStockBill/cx", {
|
params: {
|
HInterID: data[i].hmainid,
|
},
|
})
|
.then((response) => {
|
let result = response.data;
|
if (result.code == 1) {
|
// 说明验证成功了,
|
this.temp = result.data[0];
|
} else {
|
this.temp = result.data;
|
}
|
if (this.temp) {
|
dataArray.push(this.temp);
|
this.form.HDeptID = dataArray[0].HDeptID;
|
this.form.HDeptName = dataArray[0].部门;
|
this.form.HEmpID = dataArray[0].HEmpID;
|
this.form.HEmpName = dataArray[0].业务员;
|
this.form.HManagerID = dataArray[0].HManagerID;
|
this.form.HManagerName = dataArray[0].主管;
|
this.form.HMainSourceInterID = "0";
|
this.form.HMainSourceEntryID = "0";
|
this.form.HMainSourceBillNo = "";
|
this.form.HMainSourceBillType = dataArray[0].HBillType;
|
this.form.HSupID = dataArray[0].HCusID;
|
this.form.HSupName = dataArray[0].客户;
|
this.form.HLinkMan = dataArray[0].联系人;
|
this.form.HLinkPhone = dataArray[0].联系电话;
|
this.form.HSellSID = dataArray[0].HSellSID;
|
this.form.HSellSName = dataArray[0].销售方式;
|
this.form.HCurID = dataArray[0].HCurID;
|
this.form.HCurName = dataArray[0].币别;
|
this.form.HExRate = dataArray[0].汇率;
|
for (var i = 0; i < dataArray.length; i++) {
|
this.editData.push({
|
HMaterID: dataArray[i].HMaterID,
|
物料代码: dataArray[i].物料代码,
|
物料名称: dataArray[i].物料名称,
|
规格型号: dataArray[i].规格型号,
|
HUnitID: dataArray[i].HUnitID,
|
计量单位: dataArray[i].计量单位,
|
HQtyMust: dataArray[i].数量.toFixed(6),
|
HQty: dataArray[i].数量.toFixed(6),
|
HPieceQty: "0",
|
HPrice: dataArray[i].单价.toFixed(4),
|
HTaxPrice: dataArray[i].实际含税单价.toFixed(4),
|
HTaxRate: dataArray[i].税率,
|
HMoney: dataArray[i].金额.toFixed(2),
|
HTaxMoney: dataArray[i].价税合计.toFixed(2),
|
HWHID: dataArray[i].HWHID,
|
发货仓库: dataArray[i].HWHName,
|
HRemark: "",
|
HQty_Full: "0",
|
HQty_Empty: "0",
|
HQty_Back: "0",
|
HCostPrice: "0",
|
HCostMoney: "0",
|
HSalePrice: "0",
|
HSeOrderInterID: dataArray[i].hmainid,
|
HSeOrderEntryID: dataArray[i].hsubid,
|
HSeOrderBillNo: dataArray[i].单据号,
|
HSourceInterID: dataArray[i].hmainid,
|
HSourceEntryID: dataArray[i].hsubid,
|
HSourceBillNo: dataArray[i].单据号,
|
HSourceBillType: dataArray[i].HBillType,
|
HRelationQty: "0",
|
HRelationMoney: "0",
|
HSPID: "0",
|
HSPName: "",
|
HSPGroupID: "0",
|
HSPGroupName: "",
|
HSCWHID: "0",
|
HSCWHName: "",
|
HSCSPID: "0",
|
HSCSPName: "",
|
HBatchNo: "",
|
HPOOrderInterID: "0",
|
HPOOrderEntryID: "0",
|
HPOOrderBillNo: "",
|
HPropertyID: "0",
|
HPropertyName: "",
|
HSecUnitID: "0",
|
HSecUnitName: "",
|
HSecUnitRate: "0",
|
HEngineNum: "",
|
HUnderPanNum: "",
|
HLeaveFactCard: "",
|
HReqBuyQty: "0",
|
HReqOutQty: "0",
|
HCurrentInventory: "0",
|
});
|
}
|
}
|
|
this.$nextTick(() => {
|
this.formShow = true;
|
this.formLoading = false;
|
});
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
}
|
} else if (
|
(this.OperationType2 == 1 && this.CopyType2 != 1) ||
|
(!this.OperationType2 && !this.CopyType2)
|
) {
|
this.handleAdd();
|
} else if (this.OperationType2 == 3 || this.CopyType2 == 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;
|
this.$destroy();
|
},
|
|
organizationChange(val) {
|
// let options=undefined
|
// this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
|
},
|
//部门弹窗赋值
|
dbEmitData(deptRow, num) {
|
// num=1部门 num=2出库仓库
|
if (num == 1) {
|
this.form.HDeptName = deptRow.部门名称;
|
this.form.HDeptID = deptRow.HItemID;
|
this.form.HEmpID = deptRow.HEmpID;
|
this.form.HManagerName = deptRow.负责人;
|
this.openData = false;
|
} else if (num == 2) {
|
this.editData[this.zbIndex].HWHID = deptRow.HItemID;
|
this.editData[this.zbIndex].发货仓库 = deptRow.仓库名称;
|
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.openData = false;
|
}
|
},
|
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 = {
|
BillType: "1401",
|
HBillNo: "",
|
HInterID: "",
|
HBillSubType: "0",
|
HDate: new Date(),
|
HMainSourceInterID: 0,
|
HMainSourceEntryID: 0,
|
HMainSourceBillType: "",
|
HMainSourceBillNo: "",
|
HEmpName: "",
|
HEmpID: 0,
|
HDeptName: "",
|
HDeptID: 0,
|
HManagerName: "",
|
HManagerID: 0,
|
HSupName: sessionStorage["HSupName"],
|
HSupID: sessionStorage["HSupID"],
|
HLinkMan: "",
|
HLinkPhone: "",
|
HSecManagerName: "",
|
HSecManagerID: 0,
|
HKeeperName: "",
|
HKeeperID: 0,
|
HRemark: "",
|
HProjectNumber: "",
|
HProjectID: 0,
|
HProjectName: "",
|
HGroupName: "",
|
HGroupID: 0,
|
HWHName: "",
|
HWHID: 0,
|
HConveyCompName: "",
|
HConveyCompID: 0,
|
HConveyTypeName: "",
|
HConveyTypeID: 0,
|
HConveyMoney: "0",
|
HCarriage: "0",
|
HSTOCKORGID: sessionStorage["OrganizationID"] - 0, //组织id
|
HOWNERID: sessionStorage["OrganizationID"] - 0,
|
HSCWHName: "",
|
HSCWHID: 0,
|
HCheckStatusMan: "",
|
HExplanation: "",
|
HInnerBillNo: "",
|
HCurName: "人民币",
|
HCurID: 1,
|
HExRate: "1",
|
HSellSName: "",
|
HSellSID: 0,
|
HCusBalance: "0",
|
HCreditRating_Now: "0",
|
HAvailableBalance: "0",
|
HPriceType: "成本价",
|
HOrgID: sessionStorage["OrganizationID"] - 0,
|
HMaker: "",
|
HUpDater: "",
|
HChecker: "",
|
HMakeDate: new Date(),
|
HUpDateDate: "",
|
HCheckDate: "",
|
HCloseMan: "",
|
HDeleteMan: "",
|
HCloseDate: "",
|
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 (window.top != window.self) {
|
// iframe 页面 调用父页面的函数关闭弹窗
|
window.parent.editGyClose();
|
} else if (!this.OperationType2 && !this.copyType) {
|
// this.$router.back()
|
window.close();
|
} 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();
|
let date = new Date();
|
this.form.HDate = moment(date).format("YYYY-MM-DDTHH:mm:ss");
|
if (this.OperationType2 == 1) {
|
this.handleAddSysZb();
|
}
|
this.$nextTick(() => {
|
this.formShow = true;
|
this.formLoading = false;
|
});
|
},
|
getHBillNo() {
|
axios
|
.get(this.baseURL + "/WEBSController/GetMaxBillNoAndID_Json", {
|
params: {
|
HBillType: "1402",
|
},
|
})
|
.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("接口请求失败!");
|
});
|
},
|
//获取销售出库单对应的条码明细
|
getBarCodeNoteBySellOutBill(rowHmainid) {
|
axios
|
.get(this.baseURL + "/Kf_SellOutBill/BarCodeNote", {
|
params: { HInterID: rowHmainid },
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
if (response.data.data[2].length > 0) {
|
this.$modal.msgError("当前单据由扫码生成,不可以编辑!");
|
this.subDisabled = true;
|
}
|
} else {
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//#region 根据客户获取客户余额
|
getCustomerBalance(HCusID) {
|
axios
|
.get(this.baseURL + "/Xs_CusRatingChangeBill/getCustomerBalance", {
|
params: { HCusID: HCusID, CurUserName: sessionStorage["HUserName"] },
|
})
|
.then((response) => {
|
var data = response.data.data[0];
|
this.form.HCusBalance = data.HCusBalance;
|
this.form.HCreditRating_Now = data.HCreditRating_Now;
|
this.form.HAvailableBalance = data.HAvailableBalance;
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
/** 修改按钮操作 */
|
handleUpdate() {
|
this.reset();
|
let rowHmainid = this.HInterID2;
|
axios
|
.get(this.baseURL + "/Xs_SeOutStockBackBill/cx", {
|
params: { HInterID: rowHmainid },
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
var result = response.data;
|
var data = response.data.data[0];
|
this.form.BillType = data.HSourceBillType;
|
this.form = {
|
...{
|
HBillNo: data.单据号,
|
HDate: dayjs(data.日期).format("YYYY-MM-DD"),
|
HInnerBillNo: data.销售订单号,
|
HDeptID: data.HDeptID,
|
HDeptName: data.部门,
|
HEmpID: data.HEmpID,
|
HEmpName: data.业务员,
|
HManagerID: data.HManagerID,
|
HManagerName: data.主管,
|
HSSID: data.HSSID,
|
HSSName: data.结算方式,
|
HCurID: data.HCurID,
|
HCurName: data.币别,
|
HExRate: data.汇率,
|
HWHID: data.HWHID_Main,
|
HWHName: data.仓库,
|
HCusID: data.HCusID,
|
HCusName: data.客户,
|
HAddress: data.交货地点,
|
HProjectID: data.HProjectID,
|
HProjectNumber: data.项目编码,
|
HProjectName: data.项目名称,
|
HRemark: data.表头备注,
|
HExplanation: data.摘要,
|
HSourceBillType: data.源单类型,
|
HMaker: data.制单人,
|
HChecker: data.审核人,
|
HCloseMan: data.关闭人,
|
HMakeDate: data.制单日期,
|
HCheckDate: data.审核日期,
|
HCloseDate: data.关闭日期,
|
HUpDateDate: data.修改日期,
|
HDeleteDate: 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.单据号;
|
this.form.HInterID = data.hmainid;
|
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.getCustomerByCusID(response.data.data[0].HCusID); //根据客户获取联系人,联系人电话
|
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].计量单位,
|
HWHID: result.data[i].HWHID,
|
收货仓库: result.data[i].收货仓库,
|
HQty: result.data[i].数量,
|
HPrice: result.data[i].单价,
|
HMoney: result.data[i].金额,
|
HSeOrderInterID: result.data[i].HSeOrderInterID,
|
HSeOrderEntryID: result.data[i].HSeOrderEntryID,
|
HSeOrderBillNo: result.data[i].销售订单号,
|
HRemark: result.data[i].表体备注,
|
});
|
}
|
if (data.状态 != "创建" && this.copyType != 1) {
|
this.$modal.msgError("此条数据不是创建状态,不能修改");
|
this.subDisabled = true;
|
}
|
this.formShow = true;
|
this.formLoading = false;
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败! ");
|
console.error(error);
|
});
|
},
|
//根据客户带出联系人、联系电话
|
getCustomerByCusID(HCusID) {
|
axios
|
.get(this.baseURL + "/Xs_SeOrderBill/getCustomerByCusID", {
|
params: {
|
HCusID: HCusID,
|
},
|
})
|
.then((response) => {
|
this.form.联系人 = response.data.data[0].HLinkMan;
|
this.form.联系电话 = response.data.data[0].HLinkPhone;
|
// this.form = response.data.data[0]
|
})
|
.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,
|
计量单位: "",
|
HQtyMust: 1,
|
HQty: 1,
|
HPieceQty: 0,
|
HPrice: 0,
|
HTaxPrice: 0,
|
HTaxRate: 0,
|
HMoney: 0,
|
HTaxMoney: 0,
|
HWHID: 0,
|
发货仓库: "",
|
HRemark: "",
|
HQty_Full: 0,
|
HQty_Empty: 0,
|
HQty_Back: 0,
|
HCostPrice: 0,
|
HCostMoney: 0,
|
HSalePrice: 0,
|
HSeOrderInterID: 741,
|
HSeOrderEntryID: 18,
|
HSeOrderBillNo: "XSFH00000747",
|
HSourceInterID: 741,
|
HSourceEntryID: 18,
|
HSourceBillNo: "XSFH00000747",
|
HSourceBillType: 1402,
|
HRelationQty: 0,
|
HRelationMoney: 0,
|
HSPID: 0,
|
HSPName: "",
|
HSPGroupID: 0,
|
HSPGroupName: "",
|
HSCWHID: 0,
|
HSCWHName: "",
|
HSCSPID: 0,
|
HSCSPName: "",
|
HBatchNo: "",
|
HPOOrderInterID: 0,
|
HPOOrderEntryID: 0,
|
HPOOrderBillNo: "",
|
HPropertyID: 0,
|
HPropertyName: "",
|
HSecUnitID: 0,
|
HSecUnitName: "",
|
HSecUnitRate: 0,
|
HEngineNum: "",
|
HUnderPanNum: "",
|
HLeaveFactCard: "",
|
HReqBuyQty: 0,
|
HReqOutQty: 0,
|
HCurrentInventory: 0,
|
};
|
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); //设置这一行取消选中
|
}
|
},
|
//获取最大单据号_任务类(Type为0时只获取不新增流水号,为1时新增且获取流水号)
|
get_MAXNum_Task(Type) {
|
var sql = `exec h_p_Xt_GetMaxBillNo_SubType '1205','${this.form.HDate}',0,0,0,'${Type}','${this.form.HDeptID}'`;
|
axios({
|
method: "get",
|
url: this.baseURL + "/CommonModel/searchMethod",
|
params: { sql: sql, user: sessionStorage["HUserName"], ModRightNameCheck: "" },
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.form.HBillNo = response.data.data[0].HBillNo;
|
} else {
|
this.$modal.msgError(response.data.code + response.data.Message);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
// 编辑提交保存
|
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 sMainSub =
|
sMainStr +
|
";" +
|
sSubStr +
|
";" +
|
sessionStorage["HUserName"] +
|
";" +
|
this.OperationType;
|
axios({
|
method: "post",
|
url: this.baseURL + "/Kf_SellOutBill/SaveSellOutBillList",
|
data: {
|
msg: sMainSub,
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.subDisabled = true; //设置保存按钮不可用
|
this.$modal.msgSuccess(response.data.Message);
|
this.get_MAXNum_Task(1); //设置流水号增加
|
if (response.data.Verify == "Y") {
|
//自动审核
|
this.set_CheckBill(0, this.form); //审核
|
}
|
this.addBtnShow = true;
|
}
|
})
|
.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;
|
},
|
// 打开数据列表弹窗
|
openDataDialog(num, row) {
|
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;
|
}
|
},
|
},
|
};
|
</script>
|
<style>
|
.xsckdBox .el-date-editor.el-input {
|
width: 100%;
|
}
|
</style>
|