<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="set_CheckBill(0, form)"
|
:disabled="CheckBillDisabled"
|
>审 核</el-button
|
>
|
<el-button type="primary" @click="close">退 出</el-button>
|
</div>
|
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
|
<el-tabs v-model="activeName" type="card">
|
<el-tab-pane label="基本信息" name="first">
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="仓库代码" prop="HNumber">
|
<el-input v-model="form.HNumber" placeholder="请输入仓库代码" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="仓库名称" prop="HName">
|
<el-input v-model="form.HName" placeholder="请输入仓库名称" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="助记码" prop="HHelpCode">
|
<el-input v-model="form.HHelpCode" placeholder="请输入助记码"> </el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="仓库地址" prop="HAddress">
|
<el-input v-model="form.HAddress" placeholder="请输入仓库地址" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="联系电话" prop="HPhone">
|
<el-input v-model="form.HPhone" placeholder="请输入联系电话" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="仓库类型" prop="HWarehouseType">
|
<el-select v-model="form.HWarehouseType" placeholder="请选择仓库类型">
|
<el-option
|
v-for="item in [
|
{
|
label: '生产仓库',
|
value: '生产仓库',
|
},
|
{
|
label: '模具仓库',
|
value: '模具仓库',
|
},
|
]"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="禁用标志" prop="HStopflag">
|
<el-checkbox v-model="form.HStopflag" disabled>是否禁用</el-checkbox>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="启用仓位" prop="HSPFlag">
|
<el-checkbox v-model="form.HSPFlag">是否启用</el-checkbox>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="负库存控制标记" prop="HStockCtrlFlag">
|
<el-checkbox v-model="form.HStockCtrlFlag">是否启用</el-checkbox>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="组织" prop="HUSEORGID">
|
<el-select
|
v-model="form.HUSEORGID"
|
placeholder="请选择组织"
|
:disabled="zzSelDis"
|
>
|
<el-option
|
v-for="(item, index) in organizationList"
|
:key="index"
|
:label="item.Name"
|
:value="item.ID.toString()"
|
>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-tab-pane>
|
<el-tab-pane label="其他信息" name="second">
|
<el-row>
|
<el-col :span="16">
|
<el-form-item class="form-inline" label="备注" prop="HRemark">
|
<el-input v-model="form.HRemark" placeholder="请输入备注..."></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item class="form-inline" label="仓库管理员" prop="HEmpName">
|
<el-input v-model="form.HEmpName" placeholder="请选择仓库管理员">
|
<el-button
|
slot="append"
|
icon="el-icon-search"
|
@click="openDataDialog(1)"
|
></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-tab-pane>
|
<el-tab-pane label="制单信息" name="third">
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="创建人" prop="HMakeEmp">
|
<el-input v-model="form.HMakeEmp" placeholder="请输入创建人" disabled />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="禁用人" prop="HStopEmp">
|
<el-input v-model="form.HStopEmp" placeholder="请输入禁用人" disabled />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="审核人" prop="HCheckEmp">
|
<el-input v-model="form.HCheckEmp" placeholder="请输入审核人" disabled />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<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="8">
|
<el-form-item label="禁用日期" prop="HStopTime">
|
<el-date-picker
|
v-model="form.HStopTime"
|
type="date"
|
placeholder="选择禁用日期"
|
disabled
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="审核日期" prop="HCheckTime">
|
<el-date-picker
|
v-model="form.HCheckTime"
|
type="date"
|
placeholder="选择审核日期"
|
disabled
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-tab-pane>
|
</el-tabs>
|
</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" />
|
<GyWorkCenter @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="workCenterShow" />
|
<Employee
|
@deptEmitDb="dbEmitData"
|
@deptEmit="emitData"
|
v-if="employeeShow"
|
></Employee>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="deptClickSub">确 定</el-button>
|
<el-button @click="deptClose">取 消</el-button>
|
</div>
|
</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 GyWorkCenter from "@/views/component/gyWorkCenter";
|
import Employee from "@/views/component/employee";
|
import moment from "moment";
|
import dayjs from "dayjs";
|
|
export default {
|
name: "gyWarehouse_Edit",
|
components: { Dept, Warehouse, Material, RowSettings, GyWorkCenter, Employee },
|
props: {
|
OperationType: { type: Number },
|
linterid: { type: Number },
|
HSouceBillType: { type: String },
|
copyType: { type: Number },
|
},
|
data() {
|
return {
|
formShow: false,
|
temp: undefined,
|
formLoading: true,
|
zzSelDis: false,
|
rowHideShow: false,
|
openRowHide: false,
|
workCenterShow: false,
|
sWhere: "",
|
sTime: "",
|
eTime: "",
|
zbIndex: null,
|
dialogTypeNum: null, //部门弹窗1,仓库弹窗2
|
deptShow: false, //部门数据组件
|
warehouseShow: false, //仓库数据组件
|
materialShow: false, //物料数据组件
|
employeeShow: false, // 仓库管理员组件
|
deptform: {}, //弹窗选中数据
|
openData: false, //数据弹窗
|
dialogTitle: "",
|
zuzhiId: 0,
|
organizationList: [], //组织列表
|
subDisabled: false, //编辑页面保存按钮是否禁用(true禁用,false可用)
|
CheckBillDisabled: true,
|
// OperationType: this.$route.query.OperationType,//保存类型(新增1修改3)
|
HInterID: null,
|
baseURL: process.env.VUE_APP_BASE_API,
|
user: "admin",
|
currentRow: [],
|
lastSelectedRowIndex: null, // 用于记录上次点击的行索引
|
lastSelectedRow: null, // 上一次选中的行
|
selectedRow: null, // 当前选中的行
|
rowForm: {},
|
checkedSysZb: [],
|
editData: [], //子表
|
editBtData: [], //子表表头
|
activeName: "first",
|
searchOpen: false,
|
// 弹出层标题
|
title: "",
|
// 是否显示弹出层
|
open: false,
|
// 显示搜索条件
|
showSearch: true,
|
// 选中数组
|
ids: [],
|
|
// 表单参数
|
form: {},
|
// 表单校验
|
rules: {
|
HNumber: [{ required: true, message: "仓库代码不能为空", trigger: "blur" }],
|
HName: [{ required: true, message: "仓库名称名称不能为空", trigger: "blur" }],
|
},
|
};
|
},
|
created() {
|
this.reset();
|
this.fetchData();
|
},
|
activated() {
|
this.reset();
|
this.fetchData();
|
},
|
methods: {
|
fetchData() {
|
//登录用户信息
|
this.zuzhiId = sessionStorage["OrganizationID"]; //根据登录用户获取默认的组织ID
|
this.user = sessionStorage["HUserName"];
|
axios
|
.get(this.baseURL + "/Web/GetOrganizations", {})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.organizationList = response.data.data; //组织列表
|
this.getdata();
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
getdata() {
|
this.reset();
|
if (this.OperationType != 1) {
|
this.zzSelDis = true;
|
axios
|
.get(this.baseURL + "/Gy_Warehouse/cx", {
|
params: {
|
HInterID: this.linterid,
|
},
|
})
|
.then((response) => {
|
console.log(response);
|
let result = response.data;
|
if (result.code == 1) {
|
// 说明验证成功了,
|
var data = result.data[0];
|
// 使用 Object.assign 丢失响应式 改为使用 this.form = {...{}}
|
this.form = {
|
...{
|
HNumber: data.仓库代码,
|
HItemID: data.HItemID,
|
HParentID: data.HParentID,
|
HShortNumber: data.HNumber,
|
HName: data.仓库名称,
|
HHelpCode: data.HHelpCode,
|
HEmpID: data.HEmpID,
|
HEmpName: data.HEmpName,
|
HAddress: data.仓库地址,
|
HPhone: data.联系电话,
|
HStopflag: data.禁用标记 == "true",
|
HStockCtrlFlag: data.负库存控制标记 == "true",
|
HSPFlag: data.启用仓位 == "Y" ? true : false,
|
HRemark: data.HRemark,
|
HWarehouseType: data.仓库类型,
|
//, "HItemID": data.条码编号
|
HBarCode: data.HBarCode,
|
HUSEORGID: data.HUSEORGID,
|
//, "HCreator": data.创建人
|
//, "lngBillKey": data.lngBillKey
|
//, "lngBillSubKey": data.lngBillSubKey
|
//, "HMaker": data.HMaker
|
//, "HCreateDate": data.创建日期
|
HUpDater: sessionStorage["HUserName"],
|
HMakeEmp: data["创建人"],
|
HMakeDate:
|
data["创建日期"] == null
|
? ""
|
: dayjs(new Date(data["创建日期"])).format("yyyy-MM-dd"),
|
HCheckEmp: data["审核人"],
|
HCheckDate:
|
data["审核日期"] == null
|
? ""
|
: dayjs(new Date(data["审核日期"])).format("yyyy-MM-dd"),
|
HStopEmp: data["禁用人"],
|
HStopDate:
|
data["禁用日期"] == null
|
? ""
|
: dayjs(new Date(data["禁用日期"])).format("yyyy-MM-dd"),
|
},
|
};
|
if (!data.HCheckEmp) {
|
this.CheckBillDisabled = false;
|
}
|
}
|
|
if (this.OperationType == 2) {
|
// 复制
|
Object.assign(this.form, {
|
HItemID: 0,
|
HMakeEmp: sessionStorage["HUserName"],
|
HMakeDate: dayjs(new Date()).format("YYYY-MM-DD"),
|
HCheckEmp: "",
|
HCheckDate: "",
|
HStopEmp: "",
|
HStopDate: "",
|
});
|
}
|
|
this.$nextTick(() => {
|
this.formShow = true;
|
this.formLoading = false;
|
});
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
} else if (this.OperationType == 1) {
|
let date = new Date();
|
this.form.HMakeDate = moment(date).format("YYYY-MM-DDTHH:mm:ss");
|
this.$nextTick(() => {
|
this.formShow = true;
|
this.formLoading = false;
|
});
|
}
|
},
|
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) {
|
console.log(deptRow, num);
|
// num=1 仓库管理员
|
if (num == 1) {
|
this.form.HEmpID = deptRow.HItemID;
|
this.form.HEmpName = 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 = {
|
HNumber: null,
|
HItemID: 0,
|
HName: null,
|
HHelpCode: null,
|
HWorkTimes: "0",
|
HMaxWorkTimes: "0",
|
HRelationID: "0",
|
HMinAdd: "0",
|
HClassCount: "0",
|
HOverTimes: "0",
|
HCenter: null,
|
HCenterID: null,
|
HGroup: null,
|
HGroupID: 0,
|
HDeptName: null,
|
HDeptID: 0,
|
HProcName: null,
|
HProcID: 0,
|
HProcNumber: null,
|
HStopflag: false,
|
HType: null,
|
HRemark: null,
|
HUseFlag: "未检测",
|
HUSEORGID: this.zuzhiId,
|
HCREATEORGID: this.zuzhiId,
|
HMacAddr: null,
|
HEmpID: 0,
|
HEmpName: null,
|
HMakeEmp: this.user,
|
HMakeTime: null,
|
HStopEmp: null,
|
HStopTime: null,
|
HCheckEmp: null,
|
HCheckTime: null,
|
HPrimarySourceID: 0,
|
HPrimarySourceName: null,
|
HParentID: 0,
|
HCubicleQty: "1",
|
HProdLinePeopleNum: "0",
|
};
|
this.editData = [];
|
this.editBtData = [];
|
this.ids = [];
|
this.formShow = false;
|
this.subDisabled = false;
|
this.formLoading = true;
|
this.CheckBillDisabled = true;
|
this.activeName = "first";
|
this.resetForm("form");
|
},
|
//退出
|
close() {
|
this.reset();
|
this.formShow = false;
|
// console.log()
|
this.$emit("editCloseGy", 0);
|
},
|
// 编辑提交保存
|
submitForm() {
|
this.$refs["form"].validate((valid) => {
|
if (valid) {
|
let fhck = false;
|
this.$nextTick(() => {
|
if (!fhck) {
|
console.log(4);
|
var sMainStr = JSON.stringify(this.form);
|
// var sSubStr = JSON.stringify(this.editData);
|
var sMainSub = sMainStr + ";" + this.user;
|
axios({
|
method: "post",
|
url: this.baseURL + "/Gy_Warehouse/ModifyByID",
|
data: {
|
oMain: sMainSub,
|
},
|
})
|
.then((response) => {
|
console.log(response);
|
if (response.data.count == 1) {
|
this.subDisabled = true; //设置保存按钮不可用
|
this.CheckBillDisabled = false;
|
this.$modal.msgSuccess(response.data.Message);
|
} else {
|
this.$modal.msgError(response.data.Message);
|
this.CheckBillDisabled = false;
|
this.subDisabled = false; //设置保存按钮可用
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
}
|
});
|
}
|
});
|
},
|
|
/** 删除按钮操作 */
|
handleDelete() {
|
this.$modal
|
.confirm("确认要删除吗,删除后不能恢复")
|
.then(() => {
|
if (this.rowForm.状态 == "创建") {
|
axios
|
.get(this.baseURL + "/Kf_SellOutBill/DeltetSellOutBill", {
|
params: { HInterID: this.rowForm.hmainid.toString(), user: this.user },
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.$modal.msgSuccess("删除成功");
|
} else {
|
this.$modal.msgError("错误:" + result.code + result.Message);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
} else {
|
this.$modal.msgError("此条数据不是创建状态,无法删除!");
|
}
|
})
|
.catch(() => {});
|
},
|
// 反审核/审核数据
|
set_CheckBill(num, form) {
|
var InterID = form.HItemID || form.HInterID;
|
//逻辑审核方法
|
axios
|
.get(this.baseURL + "/Gy_Warehouse/AuditGy_Warehouse", {
|
params: { HInterID: InterID, IsAudit: num, CurUserName: this.user },
|
})
|
.then((response) => {
|
let result = response.data;
|
if (result.code == 1) {
|
this.$modal.msgSuccess("操作成功");
|
this.CheckBillDisabled = true;
|
} else {
|
this.$modal.msgError("错误:" + result.code + result.Message);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
showReset() {
|
this.deptShow = false;
|
this.warehouseShow = false;
|
this.materialShow = false;
|
this.workCenterShow = false;
|
},
|
// 打开数据列表弹窗
|
openDataDialog(num, row) {
|
if (row) {
|
this.zbIndex = row.index - 1;
|
}
|
this.showReset();
|
if (num == 1) {
|
this.dialogTitle = "仓库管理员列表";
|
this.employeeShow = true;
|
this.openData = true;
|
}
|
},
|
},
|
};
|
</script>
|
<style>
|
.xsckdBox .el-date-editor.el-input {
|
width: 100%;
|
}
|
|
.form-inline > .el-form-item__content {
|
display: flex;
|
flex-direction: row;
|
}
|
</style>
|