@{
|
ViewBag.Title = "盘点单管理";
|
Layout = "~/Views/Shared/_LayoutVue.cshtml";
|
}
|
@section head
|
{
|
<style type="text/css">
|
.block {
|
text-align: right;
|
}
|
.el-table .warning-row {
|
background: #ed7388;
|
}
|
|
.el-table .success-row {
|
background: #f0f9eb;
|
}
|
</style>
|
|
}
|
<div id="inList" v-cloak>
|
<el-card class="box-card">
|
<el-form v-bind:model="formData" style="margin-top:5px;" label-width="85px" class="demo-ruleForm" v-bind:inline="true">
|
<el-form-item label="盘点单号:">
|
<el-input v-model="formData.CN_S_OP_NO" size="mini" onkeyup="this.value = this.value.replace(/\'|’|‘/g, '')"></el-input>
|
</el-form-item>
|
|
@*<el-form-item label="盘点类型:">
|
<hh-select-url v-model="formData.CN_S_TYPE" url="/Basic/Common/GetDictionary?dictName=盘点类型"
|
valuefield="NAME"
|
textfield="NAME"></hh-select-url>
|
</el-form-item>*@
|
<el-form-item label="仓 库:">
|
<hh-select-url v-model="formData.CN_S_STOCK_CODE" url="/Basic/Common/StockList"
|
valuefield="CN_S_STOCK_CODE"
|
textfield="CN_S_STOCK_NAME"
|
datafield="Data"></hh-select-url>
|
</el-form-item>
|
<el-form-item label="创建日期:" style="width:350px">
|
<el-date-picker v-model="formData.date"
|
type="daterange"
|
align="right"
|
unlink-panels
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
value-format="yyyy-MM-dd"
|
v-on:change="selectTime"
|
v-bind:picker-options="pickerOptions2" size="mini" style="width:255px">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="状 态:">
|
<hh-select-url v-model="formData.CN_S_STATE" url="/Basic/Common/GetDictionary?dictName=盘点状态"
|
valuefield="NAME"
|
textfield="NAME"></hh-select-url>
|
</el-form-item>
|
|
<el-button style="margin-top:2px;" size="mini" type="primary" v-on:click="search">查 询</el-button>
|
</el-form>
|
<el-row style="padding-left:10px;margin-top:7px;">
|
<el-button size="mini" type="primary" v-on:click="add" v-if="checkAuditOrgDto.isFirstLevelOrg">新 增</el-button>
|
<el-button size="mini" type="primary" v-on:click="edit(false)" v-if="checkAuditOrgDto.isFirstLevelOrg">编 辑</el-button>
|
<el-button size="mini" type="warning" v-on:click="submit" v-if="checkAuditOrgDto.isFirstLevelOrg">提 交</el-button>
|
<el-button size="mini" type="warning" v-on:click="audit" v-if="!checkAuditOrgDto.isFirstLevelOrg">审 核</el-button>
|
|
<el-button size="mini" type="danger" v-on:click="del" v-if="checkAuditOrgDto.isFirstLevelOrg">删 除</el-button>
|
</el-row>
|
</el-card>
|
<hh-table v-bind:coloptions="InCols"
|
v-bind:paging="true"
|
v-bind:single="true"
|
v-bind:url="'@Url.Action("GetCheckMst")'"
|
v-bind:check="true"
|
v-on:clickrow="clickRow"
|
v-bind:rowstyle="tableRowClassName"
|
ref="checkmstlist"
|
v-bind:dh="tableHeight"></hh-table>
|
|
<el-tabs type="border-card" tab-position="left" v-bind:style="'height:'+tabHeight+'px'">
|
<hh-table v-bind:coloptions="checkDtlCols"
|
v-bind:single="true"
|
v-bind:url="dtlUrl"
|
ref="DtlList"
|
v-bind:dh="tabTableHeight"
|
v-bind:rowno="false"></hh-table>
|
</el-tabs>
|
</div>
|
@section scripts{
|
<script src="~/Content/js/linq.js_ver2.2.0.2/linq.js"></script>
|
<script>
|
var para = {
|
url: {
|
add: "@Url.Action("Add")",
|
submit: "@Url.Action("SubmitCheck")",
|
del: "@Url.Action("DeleteCheck")",
|
audit: "@Url.Action("Audit")",
|
getCheckDtl: "@Url.Action("GetCheckDtl")",
|
getCheckList: "@Url.Action("GetCheckList")",
|
getLoginOrg: "@Url.Action("GetLoginOrg")"
|
}
|
};
|
|
new Vue({
|
mixins: [useAutoHeight],
|
computed: {
|
tableHeight: function () {
|
return (this.autoHeight + 100) / 2;
|
},
|
tabHeight: function () {
|
return (this.autoHeight - 200) / 2;
|
},
|
tabTableHeight: function () {
|
return (this.autoHeight + 80) / 2 + 70;
|
}
|
},
|
data: {//数据
|
formData: {
|
CN_S_OP_NO: "",
|
CN_S_TYPE: "",
|
CN_S_STATE: "",
|
CN_S_STOCK_CODE: "",
|
STARTTIME: "",
|
ENDTIME: "",
|
date: "",
|
valueDate: ""
|
},
|
stockCode: "",//临时记录选中的单据的仓库
|
InCols: [],
|
checkDtlCols: [
|
{ f: 'CN_N_ROW_NO', n: '行号', w: '45' },
|
{ f: 'CN_S_TYPE', n: '状态', w: '60' },
|
{ f: 'CN_S_AREA_NAME', n: '库区名称', w: '100' },
|
{ f: 'CN_S_LOCATION_CODE', n: '货位', w: "120" },
|
{ f: 'CN_S_TRAY_CODE', n: '托盘号', w: "100" },
|
{ f: 'CN_S_PACK_CODE', n: '料箱码', w: "100" },
|
{ f: "CN_S_LOT_NO", n: "指令批号", w: "100" },
|
{ f: "CN_S_FIGURE_NO", n: "工单号", w: "100" },
|
{ f: 'CN_S_ITEM_CODE', n: '物料编码', hidden: true },
|
{ f: 'CN_S_ITEM_NAME', n: '物料名称' },
|
{ f: 'CN_F_QUANTITY', n: '数量', w: '70' },
|
{ f: 'CN_F_WEIGHT', n: '重量', w: '70' },
|
{ f: 'CN_S_MEASURE_UNIT', n: '单位', w: '70', hidden: true },
|
{ f: 'CN_GUID', n: 'GUID', hidden: true },
|
{ f: 'CN_S_CHECK_RESULT', n: '盘点类型', hidden: true },
|
],
|
checkListCols: [],
|
dtlUrl: "",
|
cklistUrl: "",
|
locationCheckCols: [
|
{
|
f: 'CN_S_STOCK_CODE', n: '仓库名称', format: function (row, column)
|
{
|
return $this.stockCode;
|
}
|
},
|
{ f: 'CN_S_STOCK_AREA', n: '库区名称' },
|
{ f: 'CN_S_LOCATION_CODE', n: '货位' }
|
],
|
itemCheckCols: [
|
{ f: 'CN_S_ITEM_CODE', n: '物料编码' },
|
{ f: 'CN_S_ITEM_NAME', n: '物料名称' },
|
{ f: 'CN_S_ITEM_STATE', n: '物料状态' },
|
{ f: 'CN_S_MODEL', n: '物料规格' },
|
{ f: 'CN_S_FIGURE_NO', n: '物料图号' },
|
{ f: 'CN_S_OWNER', n: '货主' },
|
{ f: 'CN_F_QUANTITY', n: '库存量' },
|
{ f: 'CN_S_MEASURE_UNIT', n: '计量单位' }
|
],
|
checkAuditOrgDto: {},
|
},
|
|
methods: {//方法
|
search: function () {
|
var $this = this;
|
regEn = /\'|’|‘/g;
|
//去除上引号
|
for (var n in $this.formData) {
|
if (regEn.test($this.formData[n])) {
|
$this.formData[n] = $this.formData[n].replace("'", '');
|
}
|
};
|
$this.$refs.checkmstlist.loadData($this.formData);
|
|
},
|
add: function () {
|
var currentTitle = parent.$(".layui-tab-title li[class='layui-this'] cite").text();
|
var $this = this;
|
var title = "盘点单据新建";
|
parent.tab.tabAdd({
|
title: title,
|
href: para.url.add + '?currentTitle=' + wms.currentTitle
|
});
|
},
|
edit: function (read) {
|
var $this = this;
|
this.selectSingleRowEvent(function (row) {
|
if (!read && (row.CN_S_STATE != '新建' && row.CN_S_STATE != '驳回')) {
|
wms.warning("请选择状态为新建或驳回的单据编辑");
|
return;
|
}
|
var currentTitle = wms.currentTitle;
|
var title = "盘点单据修改";
|
parent.tab.tabAdd({
|
title: title,
|
href: para.url.add + '?opNo=' + row.CN_S_OP_NO + '&type=1' + '&state=' + row.CN_S_TYPE + '¤tTitle=' + currentTitle
|
});
|
})
|
},
|
submit: function () {
|
var $this = this;
|
|
|
|
var selectRow = this.$refs.checkmstlist.selections;
|
if (selectRow.length == 0) {
|
wms.warning("请选择记录!");
|
return;
|
}
|
var opNo = "";
|
//var type = "";
|
for (var i = 0; i < selectRow.length; i++) {
|
if (selectRow[i].CN_S_STATE != "新建") {
|
wms.warning("请选择状态为新建的单据提交!")
|
return false;
|
}
|
opNo += selectRow[i].CN_S_OP_NO + ",";
|
//type += selectRow[i].CN_S_TYPE + ",";
|
}
|
opNo = opNo.substring(0, opNo.length - 1);
|
//type = type.substring(0, type.length - 1);
|
var obj = { opNo: opNo };
|
|
this.$prompt("请输入提交说明", '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
inputErrorMessage: '数据不正确'
|
}).then(function (data) {
|
console.log(data);
|
if (data.value == null || data.value.trim() == "") {
|
wms.error("盘点说明为必填项!");
|
return;
|
}
|
|
ajaxManage({
|
url: para.url.submit + "?opNo=" + opNo + "¬e=" + data.value,
|
traditional: true,
|
success: function (data) {
|
if (data.Success) {
|
wms.success("提交成功");
|
//$this.$refs.checkmstlist.loadData();
|
//$this.$refs.ckList.loadData();
|
parent.Reload();
|
} else {
|
wms.error(data.Msg);
|
}
|
}
|
});
|
}).catch(function () {
|
|
});
|
|
//wms.confirm("确认提交?", function () {
|
//});
|
|
},
|
del: function () {
|
var $this = this;
|
var opNo = "";
|
var selectRow = this.$refs.checkmstlist.selections;
|
if (selectRow.length == 0) {
|
wms.warning("请选择记录!");
|
return;
|
}
|
for (var i = 0; i < selectRow.length; i++) {
|
opNo += selectRow[i].CN_S_OP_NO + "','";
|
if (selectRow[i].CN_S_STATE != "新建" && selectRow[i].CN_S_STATE != "驳回") {
|
wms.warning("请选择状态为新建或驳回的单据操作!");
|
return false;
|
}
|
}
|
opNo = opNo.substring(0, opNo.length - 3);
|
wms.confirm("确认删除?", function () {
|
ajaxManage({
|
url: para.url.del + "?opNo=" + opNo,
|
traditional: true,
|
success: function (data) {
|
console.log(data);
|
if (data.Success) {
|
wms.success("删除成功");
|
parent.Reload();
|
//$this.$refs.checkmstlist.loadData();
|
} else {
|
wms.error(data.Msg);
|
}
|
}
|
});
|
});
|
},
|
clickRow: function (row, event, column) {
|
$this = this;
|
$this.opNo = row.CN_S_OP_NO;
|
$this.stockCode = row.CN_S_STOCK_CODE;
|
$this.dtlUrl = para.url.getCheckDtl + "?opNo=" + $this.opNo;
|
$this.cklistUrl = para.url.getCheckList + "?opNo=" + $this.opNo;
|
},
|
selectSingleRowEvent: function (callBack) {
|
var selectRow = this.$refs.checkmstlist.selections;
|
if (selectRow.length <= 0) {
|
wms.warning("请选择一条记录!");
|
return;
|
}
|
if (callBack)
|
callBack(selectRow[0]);
|
},
|
selectTime: function (val) {
|
$this = this;
|
if (val != null)
|
$this.formData.valueDate = JSON.stringify(val);
|
else
|
$this.formData.valueDate = "";
|
},
|
pickerOptions2: function () {
|
shortcuts: [{
|
text: '最近一周',
|
onClick: function onClick(picker) {
|
var end = new Date();
|
var start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
picker.$emit('pick', [start, end]);
|
}
|
}, {
|
text: '最近一个月',
|
onClick: function onClick(picker) {
|
var end = new Date();
|
var start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
picker.$emit('pick', [start, end]);
|
}
|
}, {
|
text: '最近三个月',
|
onClick: function onClick(picker) {
|
var end = new Date();
|
var start = new Date();
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
picker.$emit('pick', [start, end]);
|
}
|
}]
|
},
|
audit: function () {
|
var $this = this;
|
this.selectSingleRowEvent(function (row) {
|
console.log(row);
|
if (row.CN_S_STATE != '已提交' && row.CN_S_STATE != '审核中') {
|
wms.warning("请选择状态为已提交或审核中的单据!");
|
return;
|
}
|
if ($this.checkAuditOrgDto.currentOrgCode != row.CN_S_NEXT_ORG_CODE) {
|
wms.warning("数据已进入下一个流程,当前禁止操作!");
|
return;
|
}
|
var currentTitle = parent.$(".layui-tab-title li[class='layui-this'] cite").text();
|
var title = "盘点单据审核";
|
parent.tab.tabAdd({
|
title: title,
|
href: para.url.audit + '?opNo=' + row.CN_S_OP_NO + "¤tTitle=" + wms.currentTitle
|
});
|
});
|
},
|
getOrgInfo: function () {
|
var $this = this;
|
ajaxManage({
|
url: para.url.getLoginOrg,
|
traditional: true,
|
success: function (data) {
|
$this.checkAuditOrgDto = data;
|
|
console.log("$this.checkAuditOrgDto");
|
console.log($this.checkAuditOrgDto);
|
//if (data.Success) {
|
// wms.success("提交成功");
|
// $this.$refs.checkmstlist.loadData();
|
// $this.$refs.ckList.loadData();
|
//} else {
|
// wms.error(data.Msg);
|
//}
|
}
|
});
|
},
|
tableRowClassName: function (data, rowIndex) {
|
console.log("data");
|
console.log(data);
|
if (data.row.CN_S_STATE === '驳回') {
|
return 'warning-row';
|
}
|
//else if (data.row.CN_S_STATE === '已审核') {
|
// return 'success-row';
|
//}
|
return '';
|
},
|
handleClose: function (confirmMsg, then, catchEvent) {
|
this.$confirm('确认关闭?').then(function () {
|
if (then)
|
then();
|
}).catch(function () {
|
if (catchEvent)
|
catchEvent();
|
});
|
},
|
},
|
mounted: function () {
|
var $this = this;
|
|
funcType = $this.formData.CN_S_STOCK_CODE;
|
$this.InCols = [
|
{ f: "CN_S_OP_NO", n: "盘点单号", w: "120" },
|
{ f: "CN_S_TYPE", n: "盘点类型", w: "150", hidden: true },
|
{ f: "CN_S_STOCK_NAME", n: "仓库名称", w: "150" },
|
{ f: "CN_S_CREATOR_BY", n: "制单人", w: "90" },
|
{ f: "CN_T_CREATE", n: "创建日期", w: "150" },
|
{ f: "CN_S_STATE", n: "状 态", w: "150" },
|
{ f:"CN_S_NOTE", n: "备注", w: "120" },
|
//{ f: "CN_S_CURR_ORG_NAME", n: "审核部门", w: "120" },
|
{ f: "CN_S_CURR_ORG_CODE", n: "审核部门编码", hidden: true },
|
{ f: "CN_S_AUDIT_CONTENT", n: "审核意见", w: "180" },
|
{ f: "CN_S_NEXT_ORG_NAME", n: "待审核部门", w: "120" },
|
{ f: "CN_S_NEXT_ORG_CODE", n: "待审核部门编码", hidden: true },
|
{ f: "CN_S_OPERATOER_NAME", n: "盘点人", w: "150" },
|
//{ f: "CN_T_OP_TIME", n: "盘点日期", w: "150" },
|
//{ f: "CN_S_OPERATOER_NAME", n: "盘点人", w: "100" },
|
];
|
|
|
$this.checkListCols = [
|
{ f: "CN_S_ITEM_CODE", n: "物料编码" },
|
{ f: "CN_S_ITEM_NAME", n: "物料名称" },
|
{ f: "CN_S_STOCK_AREA", n: "库区名称" },
|
{ f: "CN_S_LOCATION_CODE", n: "货位编码" },
|
{ f: "CN_S_TRAY_CODE", n: "托盘编码" },
|
{ f: "CN_S_MODEL", n: "规格型号" },
|
{ f: "CN_S_FIGURE_NO", n: "物料图号" },
|
{ f: "CN_F_QUANTITY", n: "库存数量", w: "80" },
|
{ f: "CN_F_CHECK_QTY", n: "盘点数量", w: "80" },
|
{
|
f: "BREAKQUANTITY", n: "盈亏数量", w: "80", format: function (row, column) {
|
return (parseFloat(row.CN_F_CHECK_QTY) - parseFloat(row.CN_F_QUANTITY));
|
}
|
},
|
{ f: "CN_S_MEASURE_UNIT", n: "计量单位", w: "80" }
|
];
|
|
$this.getOrgInfo();
|
},
|
el: '#inList'
|
|
});
|
function JsonDateFormat(jsondate) {
|
jsondate = jsondate.replace("/Date(", "").replace(")/", "");
|
if (jsondate == 0 || jsondate == "0") {
|
return "";
|
}
|
if (jsondate.indexOf("T") > 0) {
|
jsondate = jsondate.substring(0, jsondate.indexOf("T"));
|
} else {
|
return jsondate;
|
}
|
return jsondate;
|
}
|
|
</script>
|
}
|