@{
|
Layout = "~/Views/Shared/_LayoutVue.cshtml";
|
ViewBag.Title = "WaveList";
|
}
|
<div id="outList" v-cloak>
|
<el-card class="box-card">
|
<el-form label-width="90px" v-bind:model="formData" class="demo-ruleForm" v-bind:inline="true">
|
<el-form-item label="发货通知单:">
|
<el-input v-model="formData.opNo" size="mini"></el-input>
|
</el-form-item>
|
@*<el-form-item label="客户编码:">
|
<hh-select-url v-model="formData.customCode"
|
url="/OutStock/Out/GetDistinctCustom"
|
valuefield="CN_S_CUSTOMER"
|
textfield="CN_S_CUSTOMER"
|
datafield="Data"></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">
|
</hh-select-url>
|
</el-form-item>
|
<el-form-item label="业务类型:">
|
<hh-select-url v-model="formData.opType"
|
url="/Basic/Common/GetOperationTypeList?opType=出库订单"
|
valuefield="CN_S_OPERATION_NAME"
|
textfield="CN_S_OPERATION_NAME"
|
datafield="Data"></hh-select-url>
|
</el-form-item>
|
<el-form-item label="客户名称:">
|
<el-input v-model="formData.customName"
|
@*readonly="readonly"*@
|
size="mini">
|
<i slot="suffix" v-on:click="selectCustom" class="el-icon-more"></i>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="物流公司:">
|
<el-input v-model="formData.logistics" size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="创建日期:" style="width:400px">
|
<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:300px">
|
</el-date-picker>
|
</el-form-item>
|
<el-button style="margin-top:2px;" size="mini" type="primary" v-on:click="search">查 询</el-button>
|
<el-button style="margin-top:2px;" size="mini" type="warning" v-on:click="editLogistics">填写物流单</el-button>
|
<el-button style="margin-top:2px;" size="mini" type="warning" v-on:click="printBill('fjd')">生成分拣单</el-button>
|
<el-button style="margin-top:2px;" size="mini" type="warning" v-on:click="printBill('wld')">打印物流单</el-button>
|
<el-button style="margin-top:2px;" size="mini" type="warning" v-on:click="printBill('zxm')">打印装箱码</el-button>
|
@*<el-button style="margin-top:2px;" size="mini" type="warning" v-on:click="createLogistics">生成物流单号(测试)</el-button>*@
|
@*<el-dropdown size="small" v-on:command="printBill">
|
<el-button type="primary" size="mini" v-on:click="printBill">
|
打 单<i class="el-icon-arrow-down el-icon--right"></i>
|
</el-button>
|
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-item command="fjd">分拣单</el-dropdown-item>
|
<el-dropdown-item command="wld">物流单</el-dropdown-item>
|
<el-dropdown-item command="ckd">出库单</el-dropdown-item>
|
</el-dropdown-menu>
|
</el-dropdown>*@
|
</el-form>
|
</el-card>
|
<hh-table v-bind:coloptions="outCols"
|
v-bind:paging="true"
|
v-bind:single="wmsApp.jxx"
|
v-bind:check="true"
|
v-bind:where="where"
|
v-on:clickrow="clickRow"
|
v-bind:url="outUrl"
|
ref="outlist"
|
v-bind:dh="tableHeight"></hh-table>
|
<el-tabs type="border-card" tab-position="left" v-bind:style="'height:'+tabHeight+'px'">
|
<el-tab-pane label="打印批次">
|
<hh-table v-bind:coloptions="waveCols"
|
v-bind:single="true"
|
v-bind:paging="true"
|
v-bind:check="true"
|
v-on:dbclickrow="waveDbClick"
|
url="@Url.Action("WaveList")"
|
ref="waveList"
|
v-bind:dh="tabTableHeight"></hh-table>
|
</el-tab-pane>
|
<el-tab-pane label="物料列表">
|
<hh-table v-bind:coloptions="itemCols"
|
v-bind:single="true"
|
v-bind:url="itemUrl"
|
ref="itemList"
|
v-bind:dh="tabTableHeight"></hh-table>
|
</el-tab-pane>
|
<el-tab-pane label="订单日志">
|
<hh-table v-bind:coloptions="billExecCols"
|
v-bind:single="true"
|
v-bind:url="billExecUrl"
|
ref="billExecList"
|
v-bind:dh="tabTableHeight"></hh-table>
|
</el-tab-pane>
|
<el-tab-pane label="订单详情">
|
<el-form label-width="100px" class="demo-ruleForm" v-bind:inline="true">
|
<el-form-item label="发货通知单:">
|
<el-input v-model="orderDetail.CN_S_OP_NO"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="业务类型:">
|
<el-input v-model="orderDetail.CN_S_OP_TYPE"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="客户名称:">
|
<el-input v-model="orderDetail.CN_S_CUSTOMER_NAME"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="客户编码:">
|
<el-input v-model="orderDetail.CN_S_CUSTOMER"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="仓库编码:">
|
<el-input v-model="orderDetail.CN_S_STOCK_CODE"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="制单人:">
|
<el-input v-model="orderDetail.CN_S_OPERATOR"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="业务日期:">
|
<el-input v-model="orderDetail.CN_T_OP_DATE"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="修改日期:">
|
<el-input v-model="orderDetail.CN_T_MODIFY"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="发运方式:">
|
<el-input v-model="orderDetail.CN_S_FORWARDING_WAY"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="物流公司:">
|
<el-input v-model="orderDetail.CN_S_LOGISTICS_NAME"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="物流单号:">
|
<el-input v-model="orderDetail.CN_S_WAYBILL_NO"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="状态:">
|
<el-input v-model="orderDetail.CN_S_STATE"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="审核人:">
|
<el-input v-model="orderDetail.CN_S_AUDITOR"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="审核日期:">
|
<el-input v-model="orderDetail.CN_T_AUDIT_TIME"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
<el-form-item label="摘要:">
|
<el-input v-model="orderDetail.CN_S_NOTE"
|
v-bind:disabled="true"
|
size="mini"></el-input>
|
</el-form-item>
|
</el-form>
|
</el-tab-pane>
|
</el-tabs>
|
</div>
|
@section scripts{
|
<script>
|
new Vue({
|
mixins: [useAutoHeight, wmsApps],
|
data: {
|
outUrl: "/OutStock/Out/GetOutList",
|
itemUrl: "",
|
billExecUrl: "",
|
opNo: "",
|
formData: {
|
opNo: "",
|
//customCode: "",
|
customName: "",
|
state: "已审核",
|
opType: "",
|
logistics: "",
|
stockCode: "",
|
date: "",
|
valueDate: ""
|
},
|
orderDetail: {},
|
where: { state: "已审核" },
|
waveCols: [
|
{ f: "CN_S_WAVE_NO", n: "打印批次" },
|
{ f: "OUT_NUM", n: "单据数量" },
|
{ f: "CN_S_STATE", n: "状态" },
|
{ f: "CN_S_CREATOR", n: "创建人" },
|
{ f: "CN_T_CREATE", n: "创建日期" }
|
],
|
outCols: [
|
{ f: "CN_S_OP_NO", n: "发货通知单", w: 110 },
|
{ f: "CN_S_STOCK_NAME", n: "仓库", w: 75 },
|
{ f: "CN_S_OP_TYPE", n: "业务类型", w: 75 },
|
{ f: "CN_S_CUSTOMER_NAME", n: "客户名称" },
|
//{ f: "CN_S_CUSTOMER", n: "客户编码", w: 85 },
|
{ f: "CN_S_OPERATOR", n: "制单人", w: 70 },
|
{ f: "CN_T_OP_DATE", n: "业务日期" },
|
{ f: "CN_T_MODIFY", n: "修改日期" },
|
{ f: "CN_S_FORWARDING_WAY", n: "发运方式", w: 75 },
|
{ f: "CN_S_LOGISTICS_NAME", n: "物流公司", w: 75 },
|
{ f: "CN_S_WAYBILL_NO", n: "物流单号" },
|
{ f: "CN_S_STATE", n: "状态", w: 60 },
|
{ f: "CN_S_AUDITOR", n: "审核人", w: 60 },
|
{ f: "CN_T_AUDIT_TIME", n: "审核日期" },
|
{ f: "CN_S_NOTE", n: "摘要" }
|
],
|
billExecCols: [
|
{ f: "CN_S_PROGRESS", n: "操作" },
|
{ f: "CN_S_EXECUTOR_BY", n: "操作人" },
|
{ f: "CN_T_EXECUTE", n: "时间" },
|
],
|
//选择客户列
|
customCols: [
|
{ f: 'CN_S_CUSTOMER_NAME', n: '客户全称' },
|
{ f: 'CN_S_CUSTOMER_SHORT_NAME', n: '客户简称' },
|
{ f: 'CN_S_CUSTOMER_CODE', n: '客户编码' },
|
{ f: 'CN_S_CUSTOMER_TYPE', n: '客户类型' },
|
{ f: 'CN_S_CUSTOMER_LEVEL', n: '客户等级' },
|
],
|
},
|
computed: {
|
tableHeight: function () {
|
return (this.autoHeight + 160) / 2;
|
},
|
tabHeight: function () {
|
return (this.autoHeight - 60) / 2;
|
},
|
tabTableHeight: function () {
|
return (this.autoHeight + 140) / 2;
|
},
|
itemCols: function () {
|
var $this = this;
|
return [
|
{ f: "CN_S_ITEM_CODE", n: "物料编码" },
|
{ f: "CN_S_ITEM_NAME", n: "物料名称" },
|
{ f: "CN_S_MODEL", n: "规格型号", hidden: $this.wmsApp.ss },
|
{ f: "CN_S_FIGURE_NO", n: "图号", hidden: $this.wmsApp.ss },
|
{ f: "CN_S_MEASURE_UNIT", n: "计量单位" },
|
{ f: "CN_F_QUANTITY", n: "数量" },
|
{ f: "CN_S_NOTE", n: "备注" },
|
];
|
}
|
},
|
methods: {
|
//选择客户
|
selectCustom: function () {
|
var $this = this;
|
wms.showDialogList({
|
title: '选择客户',
|
itemCols: $this.customCols,
|
condition: 'customer',
|
url: '/Basic/Common/CustomList',
|
single: true,
|
btnSure: function (checkedItem) {
|
if (checkedItem.length == 0)
|
$this.formData.customName = "";
|
else
|
//赋值客户
|
$this.formData.customName = checkedItem[0].CN_S_CUSTOMER_NAME;
|
}
|
});
|
},
|
createLogistics: function () {
|
ajaxManage({
|
url: "@Url.Action("CreateLogistics")",
|
dataType: 'text',
|
success: function (data) {
|
console.log(data);
|
wms.customConfirm({
|
content: data
|
});
|
}
|
});
|
//window.location.href = "@Url.Action("CreateLogistics")";
|
},
|
waveDbClick: function (row, event) {
|
this.outUrl = "/OutStock/Out/GetOutList?waveNo=" + row.CN_S_WAVE_NO;
|
this.$refs.outlist.loadData(this.formData);
|
},
|
editLogistics: function () {
|
var $this = this;
|
this.selectRowEvent(false, function (row) {
|
var opNoArray = row.map(function (m) {
|
return m.CN_S_OP_NO;
|
});
|
var logistics = "";
|
var failedMsg = "";
|
var existsEmpty = false;
|
row.forEach(function (n) {
|
if ((logistics && n.CN_S_LOGISTICS_FLAG) && (logistics != n.CN_S_LOGISTICS_FLAG)) {
|
failedMsg = "所选物流公司不一致,请重新选择!";
|
}
|
if (n.CN_S_LOGISTICS_FLAG && !logistics)
|
logistics = n.CN_S_LOGISTICS_FLAG;
|
if (!n.CN_S_LOGISTICS_FLAG)
|
existsEmpty = true;
|
});
|
if (failedMsg) {
|
wms.warning(failedMsg);
|
return;
|
}
|
wms.showDialogFrame({
|
title: "填写物流单",
|
url: "@Url.Action("EditLogistics")?opNos=" + opNoArray.join(','),
|
dh: 400,
|
width: "500px",
|
callBack: function (frame) {
|
$this.$refs.outlist.loadData();
|
}
|
});
|
});
|
},
|
printBill: function (command) {
|
var $this = this;
|
this.selectRowEvent(false, function (row) {
|
var opNoArray = row.map(function (m) {
|
return m.CN_S_OP_NO;
|
});
|
ajaxManage({
|
url: "@Url.Action("ValidatePrint")?opNos=" + opNoArray.join(','),
|
success: function (data) {
|
wms.showMsg(data, function () {
|
var state = data.Data[0].CN_S_STATE;
|
var stockCode = data.Data[0].CN_S_STOCK_CODE;
|
switch (command) {
|
case 'fjd':
|
if (state != "已审核") {
|
wms.warning("请选择状态为已审核的单据!");
|
return;
|
}
|
wms.confirm("确认生成分拣单?", function () {
|
ajaxManage({
|
url: "@Url.Action("CreateBill")",
|
data: { opNos: opNoArray.join(','), printer: "", printTemplet: "" },
|
success: function (data) {
|
if (data) {
|
if (data.Success) {
|
wms.success("生成成功");
|
$this.$refs.outlist.loadData();
|
$this.$refs.waveList.loadData();
|
} else {
|
switch (data.Status) {
|
case 0:
|
wms.error(data.Msg);
|
break;
|
case 2:
|
//库存不足,请先上架下列物料
|
var notStockData = [];
|
data.Data.forEach(function (d) {
|
notStockData.push(d.itemCode + "|" + d.itemName + "|" + d.itemQty);
|
});
|
wms.showDialogFrame({
|
title: '库存不足,请先上架下列物料',
|
dh: 380,
|
width: "500px",
|
btn: false,
|
callBack: function (frame) {
|
|
},
|
url: "@Url.Action("NotStockItem")?items=" + notStockData.join(';')
|
});
|
break;
|
default:
|
wms.error(data.Msg);
|
}
|
}
|
} else {
|
wms.error("系统错误");
|
}
|
}
|
});
|
});
|
break;
|
case 'zxm':
|
if (row.length != 1) {
|
wms.warning("请选择一条数据打印!");
|
return;
|
}
|
wms.showDialogFrame({
|
title: "打印单据",
|
url: "@Url.Action("PrintBill")?stockCode=" + stockCode + "&printType=" + command + "&opNos=" + opNoArray.join(','),
|
height: "280px",
|
width: "500px",
|
callBack: function (frame) {
|
$this.$refs.outlist.loadData();
|
$this.$refs.waveList.loadData();
|
}
|
});
|
break;
|
case 'wld':
|
var logistics = "";
|
var failedMsg = "";
|
var existsEmpty = false;
|
row.forEach(function (n) {
|
if ((logistics && n.CN_S_LOGISTICS_FLAG) && (logistics != n.CN_S_LOGISTICS_FLAG)) {
|
failedMsg = "所选物流公司不一致,请重新选择!";
|
}
|
if (n.CN_S_LOGISTICS_FLAG && !logistics)
|
logistics = n.CN_S_LOGISTICS_FLAG;
|
if (!n.CN_S_LOGISTICS_FLAG)
|
existsEmpty = true;
|
});
|
if (failedMsg) {
|
wms.warning(failedMsg);
|
return;
|
}
|
if (existsEmpty) {
|
wms.showDialogFrame({
|
title: "填写物流单",
|
url: "@Url.Action("EditLogistics")?opNos=" + opNoArray.join(','),
|
dh: 400,
|
width: "500px",
|
callBack: function (frame) {
|
$this.$refs.outlist.loadData();
|
}
|
});
|
} else {
|
wms.showDialogFrame({
|
title: "打印单据",
|
url: "@Url.Action("PrintBill")?stockCode=" + stockCode + "&printType=" + command + "&logistics=" + logistics + "&opNos=" + opNoArray.join(','),
|
height: "280px",
|
width: "500px",
|
callBack: function (frame) {
|
$this.$refs.outlist.loadData();
|
$this.$refs.waveList.loadData();
|
}
|
});
|
}
|
break;
|
}
|
});
|
}
|
});
|
});
|
},
|
createBill: function () {
|
this.selectRowEvent(true, function (row) {
|
ajaxManage({
|
url: "@Url.Action("CreateBill")?opNo=" + row.CN_S_OP_NO,
|
success: function (data) {
|
wms.showMsg(data, function () {
|
wms.success("打单成功");
|
$this.$refs.outlist.loadData();
|
$this.$refs.waveList.loadData();
|
});
|
}
|
});
|
});
|
},
|
selectRowEvent: function (isSingle, callBack) {
|
var selectRow = this.$refs.outlist.selections;
|
var row = null;
|
if (isSingle) {
|
if (selectRow.length != 1) {
|
wms.warning("请选择一条记录操作");
|
return;
|
}
|
row = selectRow[0];
|
} else {
|
if (selectRow.length <= 0) {
|
wms.warning("请至少选择一条记录操作");
|
return;
|
}
|
row = selectRow;
|
}
|
if (callBack)
|
callBack(row);
|
},
|
search: function () {
|
this.outUrl = "/OutStock/Out/GetOutList";
|
this.$refs.outlist.loadData(this.formData);
|
},
|
clickRow: function (row, event, column) {
|
var opNo = row.CN_S_OP_NO;
|
this.opNo = opNo;
|
this.orderDetail = row;
|
this.itemUrl = "/OutStock/Out/GetOutDtl?opNo=" + opNo;
|
this.billExecUrl = "@Url.Action("GetBillExec")?opNo=" + opNo;
|
},
|
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]);
|
}
|
}]
|
}
|
},
|
el: '#outList'
|
});
|
</script>
|
}
|