<!DOCTYPE html>
|
<html lang="en">
|
|
<head>
|
<meta charset="utf-8">
|
<title></title>
|
<meta name="renderer" content="webkit">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
<link rel="stylesheet" href="../../../static/evn/index.css">
|
</head>
|
|
<body>
|
<div id="app">
|
<el-card>
|
<el-form :inline="true">
|
<el-form-item label="开工日期">
|
<el-date-picker
|
v-model="tableSearchParam.fplancommitdate"
|
type="date"
|
placeholder="选择日期"
|
:default-value="defaultTime"
|
|
/>
|
</el-form-item>
|
<el-form-item label="生产单号">
|
<el-input v-model="tableSearchParam.soCode" placeholder="请输入生产单号"></el-input>
|
</el-form-item>
|
<el-form-item label="车间">
|
<el-select v-model="tableSearchParam.depId" placeholder="选择车间" style="width: 240px" >
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="是否打印">
|
<el-select v-model="tableSearchParam.izPrint" placeholder="" style="width: 240px" >
|
<el-option
|
v-for="item in printOptions"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="">
|
<el-button type="primary" @click="page" circle >
|
<el-icon><Search /></el-icon>
|
</el-button>
|
</el-form-item>
|
</el-form>
|
<el-form :inline="true">
|
<el-form-item label="">
|
<el-button type="primary" @click="fnPrintView('否',0)">打印预览</el-button>
|
</el-form-item>
|
<el-form-item label="">
|
<el-button type="primary">打印</el-button>
|
</el-form-item>
|
<el-form-item label="">
|
<el-button type="primary">撤销生成</el-button>
|
</el-form-item>
|
<el-form-item label="">
|
<el-button type="primary">打印预览(红字)</el-button>
|
</el-form-item>
|
<el-form-item label="">
|
<el-button type="primary">打印(红字)</el-button>
|
</el-form-item>
|
<el-form-item label="">
|
<el-button type="primary">撤销生成(红字)</el-button>
|
</el-form-item>
|
</el-form>
|
<el-table :data="tableData" border style="width: 100%" row-key="finterid" @selection-change="handleSelectionChange" max-height="650">
|
<el-table-column type="selection" >
|
</el-table-column>
|
<el-table-column type="index" width="50" >
|
</el-table-column>
|
<el-table-column prop="soCode" label="生产单号" >
|
</el-table-column>
|
<el-table-column prop="fbillno" label="任务单号">
|
</el-table-column>
|
<el-table-column prop="invCode" label="物料编码">
|
</el-table-column>
|
<el-table-column prop="invName" label="物料名称" width="300" show-overflow-tooltip="true">
|
</el-table-column>
|
<el-table-column prop="invStd" label="规格" width="200" show-overflow-tooltip="true">
|
</el-table-column>
|
<el-table-column prop="depName" label="车间">
|
</el-table-column>
|
<el-table-column prop="fauxqty" label="数量" width="90">
|
</el-table-column>
|
<el-table-column prop="fplancommitdate" label="计划开工时间">
|
</el-table-column>
|
<el-table-column prop="fplanfinishdate" label="计划完工时间">
|
</el-table-column>
|
<el-table-column prop="izSyncReceive" label="是否同步" width="90">
|
</el-table-column>
|
<el-table-column prop="izSyncReceiveReturn" label="是否退料" width="90">
|
</el-table-column>
|
</el-table>
|
<!-- <div style="margin-top: 10px">-->
|
<!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"-->
|
<!-- :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"-->
|
<!-- layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">-->
|
<!-- </el-pagination>-->
|
<!-- </div>-->
|
|
|
</el-card>
|
</div>
|
|
<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
|
<script src="../../../static/evn/vue.global.js"></script>
|
<script src="../../../static/evn/element-plus.js"></script>
|
<script src="../../../static/evn/icons-vue.js"></script>
|
<script src='../LodopFuncs.js'></script>
|
<script type="module">
|
// 导入中文语言包
|
import zhCn from '../zh-cn.js';
|
|
const { createApp, ref, onMounted, onBeforeMount ,watchEffect} = Vue;
|
|
|
const app = createApp({
|
setup() {
|
const currentPage = ref(1)
|
const pageSizes = ref([15,20, 30, 50, 100, 200])
|
const pageSize = ref(15)
|
const pageTotal = ref(0)
|
const tableSearchParam = ref({
|
soCode: null,
|
fplancommitdate: new Date(),
|
depId:null
|
})
|
const tableData = ref([])
|
const defaultTime = ref(new Date())
|
const fullscreenLoading = ref(false)
|
|
const depName = ref('')
|
|
const options = ref([])
|
|
watchEffect(() =>{
|
options.value.map(item =>{
|
if (item.value === tableSearchParam.value.depId){
|
depName.value = item.label
|
}
|
})
|
console.log(depName.value)
|
})
|
|
const printOptions = [
|
{
|
value: '否',
|
label: '否'
|
},
|
{
|
value: '是',
|
label: '是'
|
},
|
|
]
|
|
const selectList = ref([])
|
|
function page(){
|
let data = JSON.parse(JSON.stringify(tableSearchParam.value))
|
data.curr = currentPage.value
|
data.limit = pageSize.value
|
if (tableSearchParam.value.datetime != null) {
|
data.datetime = null
|
data.create_time = tableSearchParam.value.datetime[0] + " - " + tableSearchParam.value.datetime[1]
|
}
|
$.ajax({
|
url: "http://127.0.0.1:9090/mo/materialreceive/getList",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: data,
|
dataType: 'json',
|
contentType: 'application/json;charset=UTF-8',
|
method: 'GET',
|
success: function(res) {
|
if (res.code == 200) {
|
tableData.value = res.data
|
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/";
|
} else {
|
ElementPlus.ElMessage({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
}
|
|
function getDepOptions(){
|
$.ajax({
|
url: "http://127.0.0.1:9090/basicinfo/departmentl/getlistfordropdown",
|
contentType: 'application/json;charset=UTF-8',
|
method: 'GET',
|
success: function(res) {
|
if (res.code == 200) {
|
res.data.map(item => {
|
console.log(item)
|
options.value.push({
|
value: item.depId, label: item.depName
|
})
|
console.log(options.value)
|
})
|
} else {
|
ElementPlus.ElMessage({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
}
|
|
function fnPrintView(izPrint,izRed){
|
const LODOP = getLodop()
|
const loading = ElementPlus.ElLoading.service({
|
lock: true,
|
text: 'Loading',
|
background: 'rgba(0, 0, 0, 0.7)',
|
})
|
$.ajax({
|
url:"http://127.0.0.1:9090/mo/materialuse/print",
|
headers: {
|
'token': localStorage.getItem('token')
|
},
|
data: JSON.stringify({
|
icmoDTOS : JSON.stringify(selectList.value),
|
izPrint : izPrint,
|
izRed : izRed
|
}),
|
dataType: 'json',
|
contentType: 'application/json;charset=UTF-8',
|
method: 'POST',
|
success: function(res) {
|
loading.close()
|
if (res.code == 200) {
|
ElementPlus.ElMessage({
|
message: "获取数据完成,等待唤起打印",
|
type: 'success'
|
});
|
LODOP.PRINT_INITA(0,0,800,1100,"生产领料单");
|
LODOP.SET_PRINT_PAGESIZE(1,0,0,"A4");
|
LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE",1);
|
if(izRed==1)
|
{
|
LODOP.ADD_PRINT_TEXT(28,268,331,36,"生产领料单(红字)");
|
}
|
else{
|
LODOP.ADD_PRINT_TEXT(28,268,331,36,"生产领料单");
|
}
|
|
|
LODOP.SET_PRINT_STYLEA(0,"FontSize",20);
|
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
|
LODOP.ADD_PRINT_TEXT(69,21,213,25,"生产线:"+depName.value);
|
LODOP.SET_PRINT_STYLEA(0,"FontSize",12);
|
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
|
LODOP.ADD_PRINT_TEXT(70,268,213,25,"计划开工日期:"+tableSearchParam.value.fplancommitdate.toLocaleString('zh-CN', {
|
timeZone: 'Asia/Shanghai',
|
year: 'numeric',
|
month: '2-digit',
|
day: '2-digit',
|
hour: '2-digit',
|
minute: '2-digit',
|
second: '2-digit',
|
hour12: false
|
}).slice(0, 10));
|
LODOP.SET_PRINT_STYLEA(0,"FontSize",12);
|
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
|
LODOP.ADD_PRINT_TABLE(96,16,2000,960,CreateTable(res.data));
|
LODOP.SET_PRINT_STYLEA(0,"TableHeightScope",1);
|
|
LODOP.SET_PRINT_MODE("FULL_WIDTH_FOR_OVERFLOW",true);
|
|
if(izPrint=="是")
|
{
|
LODOP.PRINT();
|
}
|
else{
|
LODOP.PREVIEW();
|
}
|
|
|
// LODOP.PRINT_DESIGN();
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/";
|
} else {
|
ElementPlus.ElMessage({
|
message: res.msg,
|
type: 'error'
|
});
|
}
|
}
|
});
|
}
|
|
function CreateTable(result) {
|
// var css =" <style> table,td,th {border: 1px solid black;border-style: solid;border-collapse: collapse;font-size: 15px;}</style><table border=1>";
|
var css = "<style> table,td,th {table-layout: fixed;border: 1px black solid;border-collapse: collapse;font-size: 13px;}</style><table>";
|
//第一行
|
var th = "<thead><tr style='height:20px'>" +
|
"<th >序号</th>" +
|
"<th >物料编码</th>" +
|
"<th >物料名称</th>" +
|
"<th >规格</th>" +
|
"<th >单位</th>" +
|
"<th >应发数量</th>" +
|
"<th >实发数量</th>" +
|
"<th >生产单号</th>" +
|
"</tr></thead>";
|
|
var td="";
|
var row=1;
|
for (var i = 0; i <result.length; i++) {
|
|
td = td+"<tr style='height:20px'><td style='width:30px;' align='center' >"+(row)+"</td><td style='width:80px;' align='left' >" + result[i].invCode + "</td><td style='width:250px;word-wrap:break-word;word-break:break-all;' align='left' >" + result[i].invName + "</td> <td style='width:50px;' align='left' >" + result[i].invStd + "</td> <td style='width:35px;' align='left' >" + result[i].unit + "</td><td style='width:60px;' align='left' >" + result[i].fqty + "</td><td style='width:60px;' align='left' ></td> <td style='width:120px;word-wrap:break-word;word-break:break-all;' align='left' >" + result[i].soCode + "</td> </tr>"
|
row++;
|
}
|
|
var txt = css +th+ td +"</table>";
|
return txt;
|
|
}
|
|
|
|
function handleSizeChange(val) {
|
pageSize.value = val
|
currentPage.value = 1 // 重置到第一页
|
page()
|
}
|
|
function handleCurrentChange(val) {
|
currentPage.value = val
|
page()
|
}
|
function handleSelectionChange(val) {
|
console.log(val)
|
selectList.value = val
|
}
|
|
onMounted(() => {
|
page()
|
})
|
|
onBeforeMount(() => {
|
getDepOptions()
|
|
})
|
|
return {
|
tableData,
|
currentPage,
|
pageSizes,
|
pageSize,
|
pageTotal,
|
tableSearchParam,
|
defaultTime,
|
options,
|
printOptions,
|
page,
|
fnPrintView,
|
handleSizeChange,
|
handleCurrentChange,
|
handleSelectionChange
|
|
}
|
}
|
});
|
|
app.use(ElementPlus, {
|
locale: zhCn.default || zhCn
|
});
|
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
app.component(key, component)
|
}
|
app.mount('#app');
|
</script>
|
|
</body>
|
|
</html>
|