@{
|
ViewBag.Title = "盘点新增";
|
Layout = "~/Views/Shared/_LayoutVue.cshtml";
|
}
|
@section head
|
{
|
<style type="text/css">
|
.block {
|
text-align: right;
|
}
|
</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="盘点单号:" v-if="!isAdd">
|
<el-input v-model="opNo" v-bind:disabled="true" size="mini" onkeyup="this.value = this.value.replace(/\'|’|‘/g, '')"></el-input>
|
</el-form-item>
|
@*<el-form-item label="盘点类型:">
|
<hh-select-url v-model="formData.checkType"
|
url="/Basic/Common/GetDictionary?dictName=盘点类型"
|
v-bind:disabled="readOnly"
|
valuefield="NAME"
|
textfield="NAME"
|
v-bind:usedefault="false"
|
v-on:change="changeType"></hh-select-url>
|
</el-form-item>*@
|
<el-form-item label="仓 库:">
|
<hh-select-url v-model="formData.stockCode"
|
url="/Basic/Common/StockList"
|
valuefield="CN_S_STOCK_CODE"
|
textfield="CN_S_STOCK_NAME"
|
datafield="Data"
|
v-on:success="stockSuccess"
|
v-bind:usedefault="false"></hh-select-url>
|
</el-form-item>
|
<el-form-item label="库 区:">
|
<hh-select-url v-model="formData.stockArea"
|
v-bind:url="areaUrl"
|
valuefield="CN_S_AREA_CODE"
|
textfield="CN_S_AREA_NAME"
|
datafield="Data"></hh-select-url>
|
</el-form-item>
|
<el-form-item label="货 位:" v-if="showlocation">
|
<el-input v-model="formData.locationCode" size="mini" onkeyup="this.value = this.value.replace(/\'|’|‘/g, '')"></el-input>
|
</el-form-item>
|
|
<el-form-item label="货 主:" v-if="showOwner">
|
<el-input v-model="formData.owner" size="mini" onkeyup="this.value = this.value.replace(/\'|’|‘/g, '')"></el-input>
|
</el-form-item>
|
<el-form-item label="物料编码:" v-if="showItemCode" prop="CN_S_ITEM_CODE">
|
<el-input v-model="formData.itemCode" onkeyup="this.value = this.value.replace(/\'|’|‘/g, '')" size="mini">
|
<i class="el-icon-more el-input__icon"
|
slot="suffix"
|
v-on:click="selectItem">
|
</i>
|
</el-input>
|
</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="save">保 存</el-button>
|
@*<el-button size="mini" type="primary" v-on:click="reset">重 置</el-button>
|
<el-button size="mini" type="primary" v-on:click="diy" v-show="readonlydiy">自定义盘点</el-button>*@
|
|
</el-row>
|
</el-card>
|
<hh-table v-bind:coloptions="checkListCols"
|
v-bind:paging="true"
|
v-bind:notfirstload="false"
|
v-bind:url="getCheckListUrl"
|
v-bind:check="true"
|
v-on:loaded="loaded"
|
v-bind:single="false"
|
ref="CheckMstList"
|
v-bind:rowno="true"
|
v-bind:dh="120"></hh-table>
|
|
@*<el-tabs type="border-card" tab-position="left">
|
<hh-table v-bind:coloptions="checkDtlCols"
|
v-bind:single="true"
|
v-bind:data="checkdtlDate"
|
ref="CheckDtlList"
|
v-bind:dh="tabTableHeight"
|
v-bind:rowno="true"
|
v-on:dbclickrow="doubleRowclick"></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("AddCheck")",
|
update: "@Url.Action("UpdateCheck")",
|
getCheckListByOpNo: "@Url.Action("GetCheckListByOpNo")",
|
getCheckList: function () {
|
var url = "@Url.Action("GetCheckList")";
|
if (GetUrlParam("opNo").length > 0) {
|
return url + "?opNo=" + GetUrlParam("opNo");
|
} else {
|
return url;
|
}
|
}
|
}
|
};
|
|
new Vue({
|
mixins: [useAutoHeight],
|
data: {//数据
|
formData: {
|
checkType: "",
|
stockCode: "",
|
itemCode: "",
|
stockArea: "",
|
locationCode: "",
|
owner: "",
|
|
},
|
getCheckListUrl: para.url.getCheckList(),
|
showlocation: true,
|
showOwner: false,
|
showItemCode: false,
|
readOnly: false,
|
readonlydiy: true,
|
checkDtlCols: [
|
//{ f: 'CN_GUID', n: 'guid', w: '120', hidden: true },
|
{ f: 'CN_S_STOCK_NAME', n: '仓库名称', w: '200' },
|
{ f: 'CN_S_STOCK_CODE', n: '仓库编码', w: '120' },
|
{ f: 'CN_S_AREA_NAME', n: '库区名称', w: '200' },
|
{ f: 'CN_S_STOCK_AREA', n: '库区编码', w: '120' },
|
{ f: 'CN_S_LOCATION_CODE', n: '货位', w: '200' },
|
{ f: 'CN_S_TRAY_CODE', n: '托盘号', w: '200' },
|
//{ f: 'CN_S_PACK_CODE', n: '料箱码' },
|
//{ 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 },
|
],
|
dtlUrl: "",
|
cklistUrl: "",
|
checkListCols: [
|
//{
|
// f: 'CN_S_CHECK_DES', n: '盘点类型', w: '70', format: function (row) {
|
// if (row.CN_S_CHECK_RESULT == "A") {
|
// return "增加";
|
// } else if (row.CN_S_CHECK_RESULT == "E") {
|
// return "修改";
|
// } else if (row.CN_S_CHECK_RESULT == "Y") {
|
// return "正确";
|
// } else if (row.CN_S_CHECK_RESULT == "D") {
|
// return "删除";
|
// }
|
// }
|
//},
|
{ f: 'CN_S_STOCK_NAME', n: '仓库名称', w: '200' },
|
{ f: 'CN_S_STOCK_CODE', n: '仓库编码', w: '120' },
|
{ f: 'CN_S_AREA_NAME', n: '库区名称', w: '200' },
|
{ f: 'CN_S_STOCK_AREA', n: '库区编码', w: '120' },
|
{ f: 'CN_S_LOCATION_CODE', n: '货位', w: '200' },
|
{ f: 'CN_S_TRAY_CODE', n: '托盘号', w: '200' },
|
//{ f: 'CN_GUID', n: 'guid', w: '120', hidden: true },
|
//{ f: 'CN_S_PACK_CODE', n: '料箱码' },
|
//{ f: 'CN_S_ITEM_CODE', n: '物料编码' },
|
//{ 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' },
|
//{ f: 'CN_GUID', n: 'GUID', hidden: true },
|
//{ f: 'CN_S_CHECK_RESULT', n: '盘点类型', hidden: true },
|
],
|
|
itemCols: [
|
{ f: 'CN_S_ITEM_CODE', n: '物料编码' },
|
{ f: 'CN_S_ITEM_NAME', n: '物料名称' },
|
{ f: 'CN_S_MODEL', n: '规格型号' },
|
{ f: 'CN_S_FIGURE_NO', n: '图号' },
|
{ f: 'CN_C_IS_WARRNTY_PARTS', n: '是否质保件' },
|
{ f: 'CN_F_WARRNTY_PARTS', n: '质保期' },
|
{ f: 'CN_S_MEASURE_UNIT', n: '计量单位' }
|
],
|
locationCheckCols: [
|
{ f: 'CN_S_STOCK_CODE', n: '仓库名称' },
|
{ f: 'CN_S_AREA_CODE', 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: '计量单位' }
|
],
|
checkdtlDate: [], //盘点单子表行记录
|
currentTitle: parent.$(".layui-tab-title li[class='layui-this'] cite").text(),
|
|
opNo: GetUrlParam("opNo"),
|
isAdd: GetUrlParam("opNo") == "",
|
},
|
|
methods: {
|
search: function () {
|
var $this = this;
|
$this.$refs.CheckMstList.loadData($this.formData);
|
},
|
selectRowsEvent: function (callBack) {
|
var selectRow = this.$refs.CheckMstList.selections;
|
if (selectRow.length <= 0) {
|
wms.warning("请至少选择一条记录!");
|
return;
|
}
|
if (callBack)
|
callBack(selectRow);
|
},
|
stockSuccess: function (data) {
|
if (data.length == 1 && !this.formData.stockCode) {
|
this.formData.stockCode = data[0];
|
}
|
},
|
save: function () {
|
var errorMsg = null;
|
|
var type = $this.formData.checkType;
|
var stockCode = $this.formData.stockCode;
|
var obj = "";
|
var urls = "";
|
if ($this.formData.checkType == "") {
|
wms.warning("请选择盘点类型");
|
return false;
|
}
|
if ($this.formData.stockCode == "") {
|
wms.warning("请选择仓库");
|
return false;
|
}
|
|
this.selectRowsEvent(function (rows) {
|
|
//$.each($this.checkdtlDate, function (i, r) {
|
// r.CN_S_STOCK_AREA = r.CN_S_AREA_CODE;
|
//});
|
//新增
|
if (GetUrlParam("opNo") == "") {
|
obj = { "type": type, "rows": rows, stockcode: stockCode, state: "新建" };
|
urls = para.url.add;
|
}
|
else //修改
|
{
|
obj = { opNo: GetUrlParam("opNo"), "rows": rows };
|
urls = para.url.update;
|
}
|
//保存数据
|
ajaxManage({
|
url: urls,
|
data: JSON.stringify(obj),
|
traditional: true,
|
success: function (data) {
|
wms.showMsg(data, function () {
|
if (data.Success) {
|
wms.success("保存成功");
|
parent.tab.tabDeleteRefresh(wms.currentTitle, GetUrlParam("currentTitle"));
|
} else {
|
wms.error(data.Msg);
|
}
|
});
|
}
|
});
|
});
|
},
|
reset: function ()//重置
|
{
|
var $this = this;
|
$this.checkdtlDate = [];
|
},
|
loaded: function () {
|
$this = this;
|
$this.checkdtlDate
|
$.each($this.checkdtlDate, function (index, row) {
|
$.each($this.$refs.CheckMstList.datas, function (i, r) {
|
if ($this.formData.checkType == "货位盘点") {
|
if (r.CN_S_LOCATION_CODE == row.CN_S_LOCATION_CODE) {
|
$this.$nextTick(function () {
|
$this.$refs.CheckMstList.toggleRowSelection($this.$refs.CheckMstList.datas[i]);
|
});
|
}
|
}
|
else if (($this.formData.checkType == "物料盘点")) {
|
if (r.CN_S_ITEM_CODE == row.CN_S_ITEM_CODE
|
&& r.CN_S_ITEM_STATE == row.CN_S_ITEM_STATE
|
&& r.CN_S_OWNER == row.CN_S_OWNER) {
|
$this.$nextTick(function () {
|
$this.$refs.CheckMstList.toggleRowSelection($this.$refs.CheckMstList.datas[i]);
|
});
|
}
|
}
|
});
|
});
|
},
|
doubleRowcheckMst: function (row, event) {
|
var $this = this;
|
var checkInfo =
|
{
|
//CN_S_STOCK_NAME: row.CN_S_STOCK_NAME,
|
CN_S_AREA_NAME: row.CN_S_AREA_NAME,
|
CN_S_STOCK_CODE: $.trim(row.CN_S_STOCK_CODE),
|
CN_S_STOCK_AREA: $.trim(row.CN_S_STOCK_AREA),
|
CN_S_ITEM_CODE: row.CN_S_ITEM_CODE,
|
CN_S_ITEM_NAME: row.CN_S_ITEM_NAME,
|
CN_S_ITEM_STATE: row.CN_S_ITEM_STATE,
|
CN_S_MODEL: row.CN_S_MODEL,
|
CN_S_FIGURE_NO: row.CN_S_FIGURE_NO,
|
CN_S_OWNER: row.CN_S_OWNER,
|
CN_S_LOT_NO: row.CN_S_LOT_NO,
|
CN_S_LOCATION_CODE: row.CN_S_LOCATION_CODE,
|
CN_F_QUANTITY: row.CN_F_QUANTITY,
|
CN_S_MEASURE_UNIT: row.CN_S_MEASURE_UNIT,
|
}
|
//删除选中行
|
$this.checkdtlDate.splice($this.checkdtlDate.indexOf(checkInfo), 1);
|
},
|
//双击行删除
|
doubleRowclick: function (row, event) {
|
var $this = this;
|
for (var i = 0; i < $this.checkdtlDate.length; i++) {//判断是否重复 选择物料
|
if ($this.checkdtlDate[i].CN_S_STOCK_CODE == $.trim(row.CN_S_STOCK_CODE)
|
//&& $this.checkdtlDate[i].CN_S_STOCK_AREA == $.trim(row.CN_S_STOCK_AREA)
|
&& $this.checkdtlDate[i].CN_S_ITEM_CODE == row.CN_S_ITEM_CODE
|
&& $this.checkdtlDate[i].CN_S_ITEM_NAME == row.CN_S_ITEM_NAME
|
&& $this.checkdtlDate[i].CN_S_ITEM_STATE == row.CN_S_ITEM_STATE
|
&& $this.checkdtlDate[i].CN_S_MODEL == row.CN_S_MODEL
|
&& $this.checkdtlDate[i].CN_S_FIGURE_NO == row.CN_S_FIGURE_NO
|
&& $this.checkdtlDate[i].CN_S_OWNER == row.CN_S_OWNER
|
&& $this.checkdtlDate[i].CN_S_LOCATION_CODE == row.CN_S_LOCATION_CODE
|
&& $this.checkdtlDate[i].CN_F_QUANTITY == row.CN_F_QUANTITY
|
&& $this.checkdtlDate[i].CN_S_MEASURE_UNIT == row.CN_S_MEASURE_UNIT
|
&& $this.checkdtlDate[i].CN_S_LOT_NO == row.CN_S_LOT_NO) {
|
|
//删除选中行
|
$this.checkdtlDate.splice(i, 1);
|
return false;
|
}
|
}
|
},
|
selectItem: function () {
|
var $this = this;
|
wms.showDialogList({
|
title: '选择物料',
|
show: true,
|
itemCols: $this.itemCols,
|
condition: 'item',
|
url: '/Basic/Common/ItemList',
|
btnSure: function (checkedItems) {
|
$this.formData.itemCode = checkedItems[0].CN_S_ITEM_CODE;
|
}
|
});
|
},
|
diy: function () {
|
wms.showDialogFrame({
|
title: '自定义新增',
|
dh: 380,
|
width: "400px",
|
btn: false,
|
callBack: function (frame) {
|
$this.$refs.CheckMstList.loadData();
|
},
|
url: "@Url.Action("Batch")"
|
});
|
},
|
changeType: function () {
|
var $this = this;
|
}
|
},
|
mounted: function () {
|
var $this = this;
|
|
|
var opNo = GetUrlParam("opNo");
|
if (opNo == "") {
|
$this.formData.checkType = "货位盘点";
|
}
|
else {
|
$this.formData.checkType = "货位盘点";
|
//修改
|
//$this.readOnly = true;
|
//$this.readonlydiy = false;
|
|
ajaxManage({
|
url: para.url.getCheckListByOpNo + "?opNo=" + opNo,
|
type: "GET",
|
success: function (data) {
|
console.log(data);
|
if (data.Success) {
|
$this.checkdtlDate = data.Data;
|
console.log($this.$refs.CheckMstList.datas);
|
console.log(data.Data);
|
|
//$.each(data.Data, function (index, value) {
|
|
// $this.checkdtlDate.push(row);
|
//});
|
|
//$this.$refs.CheckMstList.datas.push(data.Data);
|
}
|
else {
|
wms.error(data.Msg);
|
}
|
}
|
});
|
}
|
},
|
computed: {
|
tableHeight: function () {
|
return (this.autoHeight + 100) / 2;
|
},
|
tabHeight: function () {
|
return (this.autoHeight - 200) / 2;
|
},
|
tabTableHeight: function () {
|
return (this.autoHeight + 80) / 2;
|
},
|
areaUrl: function () {
|
if (this.formData.stockCode) {
|
this.formData.stockArea = "";
|
return '/Basic/Common/AreaList?stockCode=' + this.formData.stockCode + '&include=1';
|
} else {
|
this.formData.stockArea = "";
|
}
|
return '';
|
}
|
},
|
el: '#inList'
|
});
|
|
</script>
|
}
|