Merge branch 'master' of https://e.coding.net/ctcdevteam/ehs/ehs_web
This commit is contained in:
commit
b5190de25b
|
|
@ -200,4 +200,4 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -171,6 +171,7 @@
|
|||
return oPromise
|
||||
};
|
||||
var _initPlugin = function (szContainerID) {
|
||||
|
||||
let oPromise = new Promise(function (resolve, reject) {
|
||||
if (!m_utilsInc.isUndefined(szContainerID)) {
|
||||
m_options.szContainerID = szContainerID
|
||||
|
|
@ -598,6 +599,7 @@
|
|||
}
|
||||
;
|
||||
this.I_Login = function (szIP, iProtocol, iPort, szUserName, szPassword, options) {
|
||||
|
||||
let oPromise = new Promise(function (resolve, reject) {
|
||||
var szDeviceIdentify = szIP + "_" + iPort;
|
||||
var iIndex = this.findDeviceIndexByIP(szDeviceIdentify);
|
||||
|
|
|
|||
|
|
@ -1705,68 +1705,6 @@ const routes = [
|
|||
},
|
||||
component: "inm/warehouse",
|
||||
},
|
||||
{
|
||||
name: "good",
|
||||
path: "/inm/good",
|
||||
meta: {
|
||||
title: "成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["good"],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
name: "good",
|
||||
path: "/inm/good",
|
||||
meta: {
|
||||
title: "成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["good"],
|
||||
},
|
||||
component: "inm/good",
|
||||
},
|
||||
{
|
||||
name: "good_mio",
|
||||
path: "/inm/good_mio",
|
||||
meta: {
|
||||
title: "出入库记录",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["good_mio"],
|
||||
},
|
||||
component: "inm/good_mio",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "halfgood",
|
||||
path: "/inm/halfgood",
|
||||
meta: {
|
||||
title: "半成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["halfgood"],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
name: "halfgood",
|
||||
path: "/inm/halfgood",
|
||||
meta: {
|
||||
title: "半成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["halfgood"],
|
||||
},
|
||||
component: "inm/halfgood",
|
||||
},
|
||||
{
|
||||
name: "halfgood_mio",
|
||||
path: "/inm/halfgood_mio",
|
||||
meta: {
|
||||
title: "出入库记录",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["halfgood_mio"],
|
||||
},
|
||||
component: "inm/halfgood_mio",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "mainso",
|
||||
path: "/inm/mainso",
|
||||
|
|
@ -1829,6 +1767,77 @@ const routes = [
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "halfgood",
|
||||
path: "/inm/halfgood",
|
||||
meta: {
|
||||
title: "半成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["halfgood"],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
name: "halfgood",
|
||||
path: "/inm/halfgood",
|
||||
meta: {
|
||||
title: "半成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["halfgood"],
|
||||
},
|
||||
component: "inm/halfgood",
|
||||
},
|
||||
{
|
||||
name: "halfgood_mio",
|
||||
path: "/inm/halfgood_mio",
|
||||
meta: {
|
||||
title: "出入库记录",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["halfgood_mio"],
|
||||
},
|
||||
component: "inm/halfgood_mio",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "good",
|
||||
path: "/inm/good",
|
||||
meta: {
|
||||
title: "成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["good"],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
name: "good",
|
||||
path: "/inm/good",
|
||||
meta: {
|
||||
title: "成品库",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["good"],
|
||||
},
|
||||
component: "inm/good",
|
||||
},
|
||||
{
|
||||
name: "good_mio",
|
||||
path: "/inm/good_mio",
|
||||
meta: {
|
||||
title: "出入库记录",
|
||||
// icon: "el-icon-cellphone",
|
||||
perms: ["good_mio"],
|
||||
},
|
||||
component: "inm/good_mio",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "inmScrap",
|
||||
path: "/inm/inmScrap",
|
||||
meta: {
|
||||
title: "废品库",
|
||||
perms: ["inmScrap"],
|
||||
},
|
||||
component: "inm/inmScrap",
|
||||
},
|
||||
// {
|
||||
// "name": "materialbatch",
|
||||
// "path": "/inm/materialbatch",
|
||||
|
|
@ -1878,15 +1887,6 @@ const routes = [
|
|||
},
|
||||
component: "inm/workshop_mio",
|
||||
},
|
||||
{
|
||||
name: "inmScrap",
|
||||
path: "/inm/inmScrap",
|
||||
meta: {
|
||||
title: "废品库",
|
||||
perms: ["inmScrap"],
|
||||
},
|
||||
component: "inm/inmScrap",
|
||||
},
|
||||
],
|
||||
},
|
||||
//采购 pum
|
||||
|
|
@ -3303,6 +3303,17 @@ const routes = [
|
|||
},
|
||||
component: "statistics/task_rate_gx.vue",
|
||||
},
|
||||
//人员绩效统计——光芯
|
||||
{
|
||||
path: "/work_statistics",
|
||||
name: "work_statistics",
|
||||
meta: {
|
||||
title: "人员生产统计",
|
||||
icon: "el-icon-trend-charts",
|
||||
perms: ["work_statistics"],
|
||||
},
|
||||
component: "statistics/work_statistics.vue",
|
||||
},
|
||||
//库存统计——光芯
|
||||
{
|
||||
path: "/statistic_inm",
|
||||
|
|
|
|||
|
|
@ -223,10 +223,16 @@
|
|||
</div>
|
||||
<span>监控设备</span>
|
||||
</div>
|
||||
<div class="infoLine">
|
||||
<span :class="['circles', {'circles_1':eqk.running_state==10}]"></span>
|
||||
<span>{{ eqk.name }}</span>
|
||||
<div class="infoLine">
|
||||
<span class="circles"></span>
|
||||
<span>{{ eqj.name }}</span>
|
||||
</div>
|
||||
<el-row class="infoLine">
|
||||
<el-col :span="12">
|
||||
<div id="divPlugin" class="plugin"></div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</el-aside>
|
||||
|
|
@ -348,8 +354,9 @@ export default {
|
|||
eqs: {},//生产设备
|
||||
eqc: {},//监测设备
|
||||
eqz: {},//治理设备
|
||||
eqk: {},//监控设备
|
||||
eqj: {},//监控设备
|
||||
resizeTimeout:null,
|
||||
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -382,6 +389,24 @@ export default {
|
|||
this.$emit('close')
|
||||
},
|
||||
handleClick() {
|
||||
//摄像头插件,再返回的时候,先执行了停止预览,再执行了退出
|
||||
//退出预览
|
||||
WebVideoCtrl.I_Stop({
|
||||
success: function () {
|
||||
console.log("停止预览成功!");
|
||||
},
|
||||
error: function (oError) {
|
||||
console.log("停止预览失败!")
|
||||
}
|
||||
}).then(()=>{
|
||||
//摄像头退出
|
||||
WebVideoCtrl.I_Logout(this.ip).then(() => {
|
||||
console.log(this.ip + " " + "退出成功!");
|
||||
WebVideoCtrl.I_DestroyPlugin();//销毁监控插件
|
||||
}, () => {
|
||||
console.log(this.ip + " " + "退出失败!");
|
||||
});
|
||||
});
|
||||
this.pfkdetail = false;
|
||||
this.detailItem = {};
|
||||
},
|
||||
|
|
@ -389,6 +414,7 @@ export default {
|
|||
this.pfkdetail = true;
|
||||
this.detailItem = row;
|
||||
this.$nextTick(() => {
|
||||
this.init()
|
||||
this.getEquipments(row.equipments);
|
||||
})
|
||||
|
||||
|
|
@ -404,7 +430,11 @@ export default {
|
|||
that.eqc = res;
|
||||
} else if (res.type == 30) {
|
||||
that.eqz = res;
|
||||
}
|
||||
}else if (res.type == 50) { //监控设备
|
||||
that.eqj = res;
|
||||
this.ip = res.ip;
|
||||
this.login();
|
||||
}
|
||||
}))
|
||||
});
|
||||
const promise = Promise.all(reqs);
|
||||
|
|
@ -492,12 +522,68 @@ export default {
|
|||
that.resizeChart("dataChart");
|
||||
that.resizeChart("dataChart2");
|
||||
that.resizeChart("dataChart3");
|
||||
}, 300);
|
||||
}, 300);
|
||||
},
|
||||
//监控摄像头
|
||||
//初始化插件
|
||||
init() {
|
||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
|
||||
WebVideoCtrl.I_InitPlugin("divPlugin", "100%", "100%", {
|
||||
iWndowType: 2, //分裂系数N*N
|
||||
bWndFull: true, //双击全屏
|
||||
cbInitPluginCompleted: function () {
|
||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
|
||||
// 检查插件是否最新
|
||||
WebVideoCtrl.I_CheckPluginVersion().then((bFlag) => {
|
||||
if (bFlag) {
|
||||
alert("检测到新的插件版本,双击开发包目录里的HCWebSDKPlugin.exe升级!");
|
||||
}
|
||||
});
|
||||
}, () => {
|
||||
alert("插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
|
||||
});
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
//摄像头登录
|
||||
login(){
|
||||
|
||||
WebVideoCtrl.I_Login(
|
||||
this.eqj.ip,
|
||||
1,
|
||||
this.eqj.port,
|
||||
this.eqj.login_name,
|
||||
this.eqj.login_pwd,
|
||||
{
|
||||
async: true,
|
||||
cgi: 1,
|
||||
success: (xmlDoc) => {
|
||||
console.log("登录成功", xmlDoc);
|
||||
//预览
|
||||
WebVideoCtrl.I_StartRealPlay(this.eqj.ip + "_" + this.eqj.port, {
|
||||
success: () => {
|
||||
console.log("预览成功");
|
||||
},
|
||||
});
|
||||
},
|
||||
error: (xmlDoc) => {
|
||||
console.log("登录失败", xmlDoc);
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
/*监控设备样式*/
|
||||
.plugin {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
/* background: #ffffff; */
|
||||
border: 2px solid rgba(237, 159, 23, 0.8);
|
||||
}
|
||||
.tableBg {
|
||||
width: 100%;
|
||||
height: 88vh;
|
||||
|
|
@ -661,4 +747,4 @@ export default {
|
|||
font-size:40px;
|
||||
margin:4px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -329,12 +329,13 @@ export default {
|
|||
yAxis: {},
|
||||
series: [{ type: 'line' }]
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
let that = this;
|
||||
that.init();
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
initDom() {
|
||||
var chart1 = echarts.init(document.getElementById('dataChart'), 'dark');
|
||||
|
|
@ -359,12 +360,16 @@ export default {
|
|||
this.$refs.table.queryData(this.query);
|
||||
},
|
||||
rowClick(row) {
|
||||
|
||||
this.pollutantDetail = true;
|
||||
this.detailItem = row;
|
||||
this.$nextTick(() => {
|
||||
|
||||
this.init();
|
||||
this.getEquipments(row.equipments);
|
||||
this.initTimeNow();
|
||||
this.initDom();
|
||||
|
||||
})
|
||||
},
|
||||
getEquipments(ids) {
|
||||
|
|
@ -384,9 +389,11 @@ export default {
|
|||
that.getDetailData(3, id);
|
||||
}
|
||||
else if (res.type == 50) { //监控设备
|
||||
debugger;
|
||||
this.login(res);//监控摄像头
|
||||
|
||||
|
||||
that.eqj = res;
|
||||
this.ip = res.ip;
|
||||
this.login();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
|
@ -444,55 +451,70 @@ export default {
|
|||
// }
|
||||
})
|
||||
},
|
||||
handleClick() {
|
||||
this.pollutantDetail = false;
|
||||
handleClick() {
|
||||
//摄像头插件,再返回的时候,先执行了停止预览,再执行了退出
|
||||
//退出预览
|
||||
WebVideoCtrl.I_Stop({
|
||||
success: function () {
|
||||
console.log("停止预览成功!");
|
||||
},
|
||||
error: function (oError) {
|
||||
console.log("停止预览失败!")
|
||||
}
|
||||
}).then(()=>{
|
||||
//摄像头退出
|
||||
WebVideoCtrl.I_Logout(this.ip).then(() => {
|
||||
console.log(this.ip + " " + "退出成功!");
|
||||
WebVideoCtrl.I_DestroyPlugin();//销毁监控插件
|
||||
}, () => {
|
||||
console.log(this.ip + " " + "退出失败!");
|
||||
});
|
||||
});
|
||||
this.pollutantDetail = false;
|
||||
this.detailItem = {};
|
||||
|
||||
|
||||
|
||||
},
|
||||
|
||||
//监控摄像头
|
||||
//初始化插件
|
||||
init() {
|
||||
|
||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
|
||||
//初始化
|
||||
alert(1)
|
||||
WebVideoCtrl.I_InitPlugin("divPlugin", 200, 200, {
|
||||
WebVideoCtrl.I_InitPlugin("divPlugin", "100%", "100%", {
|
||||
iWndowType: 2, //分裂系数N*N
|
||||
bWndFull: true, //双击全屏
|
||||
cbInitPluginCompleted: function () {
|
||||
alert(1)
|
||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
|
||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
|
||||
// 检查插件是否最新
|
||||
WebVideoCtrl.I_CheckPluginVersion().then((bFlag) => {
|
||||
if (bFlag) {
|
||||
alert("检测到新的插件版本,双击开发包目录里的HCWebSDKPlugin.exe升级!");
|
||||
}
|
||||
});
|
||||
}, () => {
|
||||
alert("插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
|
||||
});
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
},
|
||||
}, () => {
|
||||
alert("插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
|
||||
});
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
//摄像头登录
|
||||
login(jkdata){
|
||||
login(){
|
||||
|
||||
WebVideoCtrl.I_Login(
|
||||
jkdata.ip,
|
||||
this.eqj.ip,
|
||||
1,
|
||||
jkdata.port,
|
||||
jkdata.login_name,
|
||||
jkdata.login_pwd,
|
||||
this.eqj.port,
|
||||
this.eqj.login_name,
|
||||
this.eqj.login_pwd,
|
||||
{
|
||||
async: true,
|
||||
cgi: 1,
|
||||
success: (xmlDoc) => {
|
||||
console.log("登录成功", xmlDoc);
|
||||
//预览
|
||||
WebVideoCtrl.I_StartRealPlay(szIp + "_" + ipPort, {
|
||||
WebVideoCtrl.I_StartRealPlay(this.eqj.ip + "_" + this.eqj.port, {
|
||||
success: () => {
|
||||
console.log("预览成功");
|
||||
},
|
||||
|
|
@ -503,8 +525,7 @@ export default {
|
|||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -513,5 +534,6 @@ export default {
|
|||
width: 200px;
|
||||
height: 200px;
|
||||
/* background: #ffffff; */
|
||||
border: 2px solid rgba(237, 159, 23, 0.8);
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,96 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-aside width="20%">
|
||||
<div class="leftDiv">
|
||||
<el-divider content-position="left">登录预览</el-divider>
|
||||
<el-row type="flex" class="row-bg" justify="space-around">
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="Login" type="text">登录</el-button>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="logOut" type="text">登出设备</el-button>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" class="row-bg" justify="space-around">
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="vShow" type="text">预览</el-button>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="stopShow" type="text">停止预览</el-button>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" class="row-bg" justify="space-around">
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="breakdom" type="text">销毁设备</el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="init" type="text">初始化设备</el-button>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" class="row-bg" justify="space-around">
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="clickOpenSound" type="text">打开声音</el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-button @click="clickCloseSound" type="text">关闭声音</el-button>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" class="row-bg" justify="space-around">
|
||||
<el-col >
|
||||
<div class="grid-content bg-purple-light">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
|
||||
<el-button disabled type="text">窗口分割数:</el-button>
|
||||
</el-col>
|
||||
<el-col :span="12" >
|
||||
<el-select v-model="video_value" placeholder="请选择" @change="changeWndNum()" style="width:80%;">
|
||||
<el-option v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</el-aside>
|
||||
<el-main>
|
||||
<div class="about">
|
||||
<div id="divPlugin" class="plugin"></div>
|
||||
<div style="margin-top: 30px;">
|
||||
<el-button @click="Login" type="primary">登录</el-button>
|
||||
<el-button @click="vShow" type="primary">预览</el-button>
|
||||
<el-button @click="stopShow" type="warning">停止预览</el-button>
|
||||
<el-button @click="logOut" type="warning">登出设备</el-button>
|
||||
<el-button @click="breakdom" type="warning">销毁设备</el-button>
|
||||
<el-button @click="init" type="warning">初始化设备</el-button>
|
||||
<el-select v-model="video_value" placeholder="请选择" @change="changeWndNum()">
|
||||
<el-option v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="divPlugin" class="plugin"></div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
|
@ -53,19 +123,22 @@ export default {
|
|||
value: 4,
|
||||
label: '4x4'
|
||||
}
|
||||
]
|
||||
],
|
||||
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
let that = this;
|
||||
that.init();
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
//初始化插件
|
||||
init() {
|
||||
// alert('init')
|
||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
|
||||
WebVideoCtrl.I_InitPlugin("divPlugin", 600, 600, {
|
||||
WebVideoCtrl.I_InitPlugin("divPlugin", "100%", "100%", {
|
||||
iWndowType: 2, //分裂系数N*N
|
||||
bWndFull: true, //双击全屏
|
||||
cbInitPluginCompleted: function () {
|
||||
|
|
@ -82,6 +155,7 @@ export default {
|
|||
});
|
||||
},
|
||||
});
|
||||
|
||||
},
|
||||
//登录
|
||||
Login() {
|
||||
|
|
@ -95,10 +169,26 @@ export default {
|
|||
async: true,
|
||||
cgi: 1,
|
||||
success: (xmlDoc) => {
|
||||
console.log("登录成功", xmlDoc);
|
||||
|
||||
|
||||
//TODO 获取通道信息
|
||||
this.getChannelInfo();
|
||||
|
||||
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '登录成功!',
|
||||
type: 'success'
|
||||
});
|
||||
|
||||
},
|
||||
error: (xmlDoc) => {
|
||||
console.log("登录失败", xmlDoc);
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '登录失败!',
|
||||
type: 'error'
|
||||
});
|
||||
|
||||
},
|
||||
}
|
||||
);
|
||||
|
|
@ -107,8 +197,20 @@ export default {
|
|||
vShow() {
|
||||
WebVideoCtrl.I_StartRealPlay(this.szIp + "_" + this.ipPort, {
|
||||
success: () => {
|
||||
console.log("预览成功");
|
||||
},
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '预览成功!',
|
||||
type: 'success'
|
||||
});
|
||||
|
||||
},error: () => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '预览失败!',
|
||||
type: 'error'
|
||||
});
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
|
@ -122,10 +224,19 @@ export default {
|
|||
if (oWndInfo != null) {
|
||||
WebVideoCtrl.I_Stop({
|
||||
success: function () {
|
||||
console.log("停止预览成功!")
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '停止预览成功!',
|
||||
type: 'success'
|
||||
});
|
||||
|
||||
},
|
||||
error: function (oError) {
|
||||
console.log("停止预览失败!")
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '停止预览失败!',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -137,6 +248,7 @@ export default {
|
|||
},
|
||||
//登出
|
||||
logOut() {
|
||||
|
||||
//WebVideoCtrl.I_Logout(this.szIp + "_" + this.ipPort, {});
|
||||
var szDeviceIdentify =this.szIp;
|
||||
|
||||
|
|
@ -144,14 +256,35 @@ export default {
|
|||
return;
|
||||
}
|
||||
WebVideoCtrl.I_Logout(szDeviceIdentify).then(() => {
|
||||
console.log(szDeviceIdentify + " " + "退出成功!");
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '退出成功!',
|
||||
type: 'success'
|
||||
});
|
||||
}, () => {
|
||||
console.log(szDeviceIdentify + " " + "退出失败!");
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '退出成功!',
|
||||
type: 'error'
|
||||
});
|
||||
});
|
||||
},
|
||||
//销毁插件
|
||||
breakdom() {
|
||||
WebVideoCtrl.I_DestroyPlugin();
|
||||
|
||||
WebVideoCtrl.I_DestroyPlugin().then(() => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '插件已销毁!',
|
||||
type: 'success'
|
||||
});
|
||||
}, () => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '插件销毁失败!',
|
||||
type: 'error'
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
// 窗口分割数
|
||||
|
|
@ -173,14 +306,103 @@ export default {
|
|||
console.log(szInfo, oError.errorCode, oError.errorMsg);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
// 打开声音
|
||||
clickOpenSound() {
|
||||
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(0),
|
||||
szInfo = "";
|
||||
if (oWndInfo != null) {
|
||||
var allWndInfo = WebVideoCtrl.I_GetWindowStatus();
|
||||
// 循环遍历所有窗口,如果有窗口打开了声音,先关闭
|
||||
for (var i = 0, iLen = allWndInfo.length; i < iLen; i++) {
|
||||
oWndInfo = allWndInfo[i];
|
||||
if (oWndInfo.bSound) {
|
||||
WebVideoCtrl.I_CloseSound(oWndInfo.iIndex);
|
||||
break;
|
||||
}
|
||||
}
|
||||
WebVideoCtrl.I_OpenSound().then(() => {
|
||||
console.log(oWndInfo.szDeviceIdentify + " " + "打开声音成功!");
|
||||
}, (oError) => {
|
||||
var szInfo = " 打开声音失败!";
|
||||
console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
|
||||
});
|
||||
}
|
||||
},
|
||||
// 关闭声音
|
||||
clickCloseSound() {
|
||||
var oWndInfo = WebVideoCtrl.I_GetWindowStatus(0),
|
||||
szInfo = "";
|
||||
if (oWndInfo != null) {
|
||||
WebVideoCtrl.I_CloseSound().then(() => {
|
||||
console.log(oWndInfo.szDeviceIdentify + " " + "关闭声音成功!");
|
||||
}, (oError) => {
|
||||
var szInfo = " 关闭声音失败!";
|
||||
console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.plugin {
|
||||
width: 600px;
|
||||
height: 600px;
|
||||
/* background: #ffffff; */
|
||||
|
||||
width:100%;
|
||||
height:100%;
|
||||
border: 2px solid rgb(45 188 51);
|
||||
}
|
||||
.leftDiv{
|
||||
margin-top:10px;
|
||||
width:95%
|
||||
}
|
||||
.el-row {
|
||||
margin-bottom: 8px;
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
text-align:center;
|
||||
}
|
||||
.el-col {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.bg-purple-dark {
|
||||
background: #99a8bf;
|
||||
}
|
||||
.bg-purple {
|
||||
background: #1ab5cd;
|
||||
}
|
||||
.bg-purple-light {
|
||||
background: #25a1ad;
|
||||
}
|
||||
.grid-content {
|
||||
border-radius: 4px;
|
||||
min-height: 36px;
|
||||
}
|
||||
.row-bg {
|
||||
padding: 10px 0;
|
||||
}
|
||||
.row-bg .el-button{
|
||||
border:none
|
||||
}
|
||||
.bg-purple-left {
|
||||
background: #25a1ad;
|
||||
width:80%;
|
||||
}
|
||||
.bg-purple-center {
|
||||
background: #25a1ad;
|
||||
width:80%;
|
||||
}
|
||||
.bg-purple-right {
|
||||
background: #25a1ad;
|
||||
width:80%;
|
||||
}
|
||||
.yuntai .el-button{
|
||||
border:none
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -624,6 +624,8 @@ export default {
|
|||
setData(data) {
|
||||
Object.assign(this.form, data);
|
||||
this.formCount = this.form.count;
|
||||
this.form.count_notok = data.count_notok;
|
||||
this.count_notok_json = data.count_notok_json;
|
||||
},
|
||||
//设置过滤项
|
||||
setFilters(filters) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,39 @@
|
|||
<el-container>
|
||||
<el-header>
|
||||
<div class="right-panel">
|
||||
<!-- 检验类型 -->
|
||||
<el-select v-model="query.process_name"
|
||||
placeholder="检验类型">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.name"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- 检验人 -->
|
||||
<!-- <el-select v-model="query.test_user"
|
||||
placeholder="检验人">
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
<el-select v-model="query.shift"
|
||||
placeholder="班次">
|
||||
<el-option
|
||||
v-for="item in shiftOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select> -->
|
||||
<el-date-picker
|
||||
v-model="query.start_date"
|
||||
type="date"
|
||||
|
|
@ -18,8 +51,13 @@
|
|||
</div>
|
||||
<el-button @click="handleExport" type="primary">导出</el-button>
|
||||
</el-header>
|
||||
<el-main style="background: #ffffff">
|
||||
<scTable :data="tableData" id="exportDiv">
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
:data="tableData"
|
||||
id="exportDiv"
|
||||
stripe
|
||||
hideDo
|
||||
hidePagination>
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column label="物料名称" prop="物料名"></el-table-column>
|
||||
<el-table-column label="规格" prop="规格"> </el-table-column>
|
||||
|
|
@ -32,7 +70,7 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="检验数" prop="检验数"></el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数量"></el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="不合格数" align="center" v-if="query.process_name == '一次超洗'">
|
||||
<el-table-column label="黑圈内径" prop="黑圈内径"></el-table-column>
|
||||
<el-table-column label="黑圈内径圆度" prop="黑圈内径圆度"></el-table-column>
|
||||
<el-table-column label="黑圈外径" prop="黑圈外径"></el-table-column>
|
||||
|
|
@ -43,6 +81,9 @@
|
|||
<el-table-column label="厚度" prop="厚度"></el-table-column>
|
||||
<el-table-column label="准合格" prop="准合格"></el-table-column>
|
||||
<el-table-column label="圆准" prop="圆准"></el-table-column>
|
||||
<el-table-column label="合计" prop="不合格数"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center" v-else>
|
||||
<el-table-column label="脏" prop="脏"></el-table-column>
|
||||
<el-table-column label="气泡" prop="气泡"></el-table-column>
|
||||
<el-table-column label="水纹" prop="水纹"></el-table-column>
|
||||
|
|
@ -61,7 +102,6 @@
|
|||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "chart",
|
||||
|
|
@ -69,12 +109,25 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
query:{
|
||||
start_date:'',
|
||||
fw_type:'prod',
|
||||
end_date:'',
|
||||
fw_type:'prod'
|
||||
start_date:'',
|
||||
process_name:'一次超洗',
|
||||
group_by_dept: ", dept.id",
|
||||
group_by_user: ", suser.id",
|
||||
group_by_shift: ", shift.id",
|
||||
select_col_dept: ", dept.name as 部门",
|
||||
select_col_user: ", suser.name as 检验人",
|
||||
select_col_shift: ", shift.name as 班次"
|
||||
},
|
||||
currentDate: "",
|
||||
tableData: [],
|
||||
options:[
|
||||
{name:'外观',value:'一次超洗'},
|
||||
{name:'尺寸',value:'二次超洗'}
|
||||
],
|
||||
userOptions:[],
|
||||
shiftOptions:[],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -88,8 +141,22 @@ export default {
|
|||
let queryDate = year + "-" + month + "-" + day;
|
||||
that.query.start_date = that.query.end_date = that.currentDate = queryDate;
|
||||
this.getData();
|
||||
this.getUsers();
|
||||
this.getShifts();
|
||||
},
|
||||
methods: {
|
||||
getUsers(){
|
||||
let that = this;
|
||||
this.$API.system.user.list.req({ page: 0, posts__code__contains: "check" }).then((res) => {
|
||||
that.userOptions = res;
|
||||
});
|
||||
},
|
||||
getShifts(){
|
||||
let that = this;
|
||||
that.$API.mtm.shift.list.req({ page: 0 }).then((res) => {
|
||||
that.shiftOptions = res;
|
||||
});
|
||||
},
|
||||
getData() {
|
||||
let that = this;
|
||||
let obj = {};
|
||||
|
|
|
|||
|
|
@ -125,6 +125,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -183,6 +185,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -241,6 +245,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -299,6 +305,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -357,6 +365,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -415,6 +425,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -473,6 +485,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -531,6 +545,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -589,6 +605,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -647,6 +665,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -705,6 +725,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -763,6 +785,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -821,6 +845,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -879,6 +905,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
@ -937,6 +965,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数">
|
||||
</el-table-column>
|
||||
<el-table-column label="前道不良" prop="加工前不良">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
|
|
|
|||
|
|
@ -2,14 +2,27 @@
|
|||
<el-container>
|
||||
<el-header>
|
||||
<div class="right-panel">
|
||||
<el-select v-model="query.process_name"
|
||||
style="width: 200px"
|
||||
placeholder="请选择工序">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.name"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-date-picker
|
||||
v-model="query.start_date"
|
||||
type="date"
|
||||
placeholder="查询日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
style="width: 160px"
|
||||
style="width: 200px"
|
||||
>
|
||||
</el-date-picker>
|
||||
<el-input v-model="query.m_s"
|
||||
placeholder="物料名称" clearable style="width:200px"></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
|
|
@ -18,8 +31,13 @@
|
|||
</div>
|
||||
<el-button @click="handleExport" type="primary">导出</el-button>
|
||||
</el-header>
|
||||
<el-main style="background: #ffffff">
|
||||
<scTable :data="tableData" id="exportDiv">
|
||||
<el-main>
|
||||
<scTable
|
||||
:data="tableData"
|
||||
id="exportDiv"
|
||||
stripe
|
||||
hideDo
|
||||
hidePagination>
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column label="物料名称" prop="物料名"></el-table-column>
|
||||
<el-table-column label="规格" prop="规格"> </el-table-column>
|
||||
|
|
@ -33,28 +51,16 @@
|
|||
<el-table-column label="检验数" prop="检验数"></el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数"></el-table-column>
|
||||
<el-table-column label="不合格数" align="center">
|
||||
<el-table-column label="黑圈内径" prop="黑圈内径"></el-table-column>
|
||||
<el-table-column label="黑圈内径圆度" prop="黑圈内径圆度"></el-table-column>
|
||||
<el-table-column label="黑圈外径" prop="黑圈外径"></el-table-column>
|
||||
<el-table-column label="黑圈外径圆度" prop="黑圈外径圆度"></el-table-column>
|
||||
<el-table-column label="产品外径" prop="产品外径"></el-table-column>
|
||||
<el-table-column label="产品圆度" prop="产品圆度"></el-table-column>
|
||||
<el-table-column label="产品同心度" prop="产品同心度"></el-table-column>
|
||||
<el-table-column label="厚度" prop="厚度"></el-table-column>
|
||||
<el-table-column label="准合格" prop="准合格"></el-table-column>
|
||||
<el-table-column label="圆准" prop="圆准"></el-table-column>
|
||||
<el-table-column label="脏" prop="脏"></el-table-column>
|
||||
<el-table-column label="划伤" prop="划伤"></el-table-column>
|
||||
<el-table-column label="气泡" prop="气泡"></el-table-column>
|
||||
<el-table-column label="水纹" prop="水纹"></el-table-column>
|
||||
<el-table-column label="崩边" prop="崩边"></el-table-column>
|
||||
<el-table-column label="棕边" prop="棕边"></el-table-column>
|
||||
<el-table-column label="棕圈" prop="棕圈"></el-table-column>
|
||||
<el-table-column label="划伤" prop="划伤"></el-table-column>
|
||||
<el-table-column label="雾面" prop="雾面"></el-table-column>
|
||||
<el-table-column label="小崩边" prop="小崩边"></el-table-column>
|
||||
<el-table-column label="麻点" prop="麻点"></el-table-column>
|
||||
<el-table-column label="黑圈变形" prop="黑圈变形"></el-table-column>
|
||||
<el-table-column label="倒角" prop="倒角"></el-table-column>
|
||||
<el-table-column label="线痕" prop="线痕"></el-table-column>
|
||||
<el-table-column label="破损" prop="破损"></el-table-column>
|
||||
<el-table-column label="蓝圈" prop="蓝圈"></el-table-column>
|
||||
<el-table-column label="其他" prop="其他"></el-table-column>
|
||||
<el-table-column label="合计" prop="不合格数"></el-table-column>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
|
|
@ -69,12 +75,21 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
query:{
|
||||
start_date:'',
|
||||
m_s:'',
|
||||
fw_type:'process',
|
||||
end_date:'',
|
||||
fw_type:'process'
|
||||
start_date:'',
|
||||
process_name:'',
|
||||
group_by_dept: ", dept.id",
|
||||
group_by_user: ", suser.id",
|
||||
group_by_shift: ", shift.id",
|
||||
select_col_dept: ", dept.name as 部门",
|
||||
select_col_user: ", suser.name as 检验人",
|
||||
select_col_shift: ", shift.name as 班次"
|
||||
},
|
||||
currentDate: "",
|
||||
tableData: [],
|
||||
options:[],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -87,14 +102,21 @@ export default {
|
|||
day = day < 10 ? "0" + day : day;
|
||||
let queryDate = year + "-" + month + "-" + day;
|
||||
that.query.start_date = that.query.end_date = that.currentDate = queryDate;
|
||||
this.getProcess();
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getProcess(){
|
||||
let that = this;
|
||||
that.$API.mtm.process.list.req({ page: 0}).then((res) => {
|
||||
that.options = res;
|
||||
});
|
||||
},
|
||||
getData() {
|
||||
let that = this;
|
||||
let obj = {};
|
||||
obj.query = that.query;
|
||||
|
||||
that.tableData =[];
|
||||
that.$API.bi.dataset.exec.req('ftestDay', obj).then((res) => {
|
||||
that.tableData = res.data2.ds0;
|
||||
console.log(that.tableData);
|
||||
|
|
|
|||
|
|
@ -2,12 +2,25 @@
|
|||
<el-container>
|
||||
<el-header>
|
||||
<div class="right-panel">
|
||||
<el-select v-model="material__name">
|
||||
<el-select v-model="searchType" style="width: 200px" @change="searchTypeChange">
|
||||
<el-option label="原料批次号" value="batch"></el-option>
|
||||
<el-option label="物料名称" value="material"></el-option>
|
||||
</el-select>
|
||||
<el-input
|
||||
v-if="searchType === 'batch'"
|
||||
v-model="query.batch" placeholder="物料批次"
|
||||
clearable style="width:200px"
|
||||
></el-input>
|
||||
<el-select v-else
|
||||
v-model="query.m_name"
|
||||
style="width: 200px"
|
||||
@change="materialChange"
|
||||
placeholder="请选择物料">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
|
@ -16,76 +29,78 @@
|
|||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
<el-button
|
||||
@click="handleExport"
|
||||
class="tables"
|
||||
type="primary"
|
||||
>导出</el-button
|
||||
>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main id="elMain">
|
||||
<el-row :gutter="10" id="elCol">
|
||||
<el-col :lg="12">
|
||||
<el-card shadow="never">
|
||||
<div id="bachart1"></div>
|
||||
<!-- <scEcharts height="500px" :option="option"></scEcharts> -->
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :lg="12">
|
||||
<el-card shadow="never" style="position: relative">
|
||||
<el-button
|
||||
@click="handleExport"
|
||||
class="tables"
|
||||
type="primary"
|
||||
>导出</el-button
|
||||
>
|
||||
<el-table
|
||||
:data="tableData1"
|
||||
id="exportDiv7"
|
||||
:height="tableHeight"
|
||||
>
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column
|
||||
label="任务编号"
|
||||
prop="number"
|
||||
min-width="100px"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column label="计划数" prop="count">
|
||||
</el-table-column>
|
||||
<el-table-column label="完成数" prop="count_ok">
|
||||
</el-table-column>
|
||||
<el-table-column label="完成率" prop="rate">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
:data="tableData"
|
||||
id="exportDiv"
|
||||
stripe
|
||||
hideDo
|
||||
hidePagination
|
||||
>
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column label="部门" prop="部门">
|
||||
</el-table-column>
|
||||
<el-table-column label="工段" prop="工段">
|
||||
</el-table-column>
|
||||
<el-table-column label="原料数" prop="原料数">
|
||||
</el-table-column>
|
||||
<el-table-column label="待加工原料数" prop="待加工原料数">
|
||||
</el-table-column>
|
||||
<el-table-column label="非本段产物数" prop="非本段产物数">
|
||||
</el-table-column>
|
||||
<el-table-column label="待加工产物数" prop="待加工产物数">
|
||||
</el-table-column>
|
||||
<el-table-column label="加工中原料数" prop="加工中原料数">
|
||||
</el-table-column>
|
||||
<el-table-column label="加工中产物数" prop="加工中产物数">
|
||||
</el-table-column>
|
||||
<el-table-column label="合格品数" prop="合格品数">
|
||||
</el-table-column>
|
||||
<el-table-column label="不合格品数" prop="不合格品数">
|
||||
</el-table-column>
|
||||
<el-table-column label="返工品数" prop="返工品数">
|
||||
</el-table-column>
|
||||
<el-table-column label="检验数" prop="检验数">
|
||||
</el-table-column>
|
||||
<el-table-column label="废品数" prop="废品数">
|
||||
</el-table-column>
|
||||
<el-table-column label="仓库原料数" prop="仓库原料数">
|
||||
</el-table-column>
|
||||
<el-table-column label="仓库合格品数" prop="仓库合格品数">
|
||||
</el-table-column>
|
||||
<el-table-column label="仓库合格成品数" prop="仓库合格成品数">
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as echarts from "echarts";
|
||||
import T from "@/components/scEcharts/echarts-theme-T.js";
|
||||
echarts.registerTheme("T", T);
|
||||
import scEcharts from "@/components/scEcharts";
|
||||
|
||||
function deepCopy(obj) {
|
||||
return JSON.parse(JSON.stringify(obj));
|
||||
}
|
||||
export default {
|
||||
name: "chart",
|
||||
components: {
|
||||
scEcharts,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currentYear:'',
|
||||
currentMonth:'',
|
||||
start_date:'',
|
||||
end_date:'',
|
||||
queryDate:'',
|
||||
option:{},
|
||||
seriesData1:[],
|
||||
seriesData2:[],
|
||||
seriesData3:[],
|
||||
material__name:'',
|
||||
options:['白片','DDG片','一次抛','外协海富'],
|
||||
query: {
|
||||
batch: "",
|
||||
m_name: "",
|
||||
m_model: "",
|
||||
m_specification: ""
|
||||
},
|
||||
searchType:'batch',
|
||||
options:[],
|
||||
tableData:[],
|
||||
basicOption: {
|
||||
backgroundColor: "transparent",
|
||||
title: {
|
||||
|
|
@ -132,77 +147,49 @@ export default {
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
let that = this;
|
||||
let that = this;
|
||||
that.getOptions();
|
||||
that.getInmMaterial();
|
||||
},
|
||||
methods: {
|
||||
getOptions(){
|
||||
let that = this;
|
||||
let obj = {};
|
||||
obj.page = 0;
|
||||
obj.type__in = "10,20";
|
||||
obj.is_hidden = false;
|
||||
that.options = [];
|
||||
that.$API.mtm.material.list.req(obj).then((res) => {
|
||||
if(res.length>0){
|
||||
that.options = res;
|
||||
}
|
||||
});
|
||||
},
|
||||
getInmMaterial(){
|
||||
let that = this;
|
||||
let obj = {
|
||||
name__contains:that.material__name,
|
||||
page:0
|
||||
};
|
||||
this.$API.mtm.material.list.req(obj).then(res=>{
|
||||
console.log('InmMaterial',res);
|
||||
that.getWmaterial();
|
||||
if(res.length>0){
|
||||
res.forEach(item => {
|
||||
that.seriesData3[0]+=item.count;
|
||||
});
|
||||
let obj = {};
|
||||
obj.query = that.query;
|
||||
that.tableData =[];
|
||||
that.$API.bi.dataset.exec.req('batch_search', obj).then((res) => {
|
||||
if(res.data2.ds0){
|
||||
that.tableData = res.data2.ds0;
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
getWmaterial(){
|
||||
searchTypeChange(){
|
||||
this.query.batch = '';
|
||||
this.query.m_name = '';
|
||||
this.query.m_model = '';
|
||||
this.query.m_specification = '';
|
||||
},
|
||||
materialChange(val){
|
||||
let that = this;
|
||||
let obj = {
|
||||
material__name__contains:that.material__name,
|
||||
page:0
|
||||
};
|
||||
this.$API.wpm.wmaterial.list.req(obj).then(res=>{
|
||||
console.log('Wmaterial',res);
|
||||
if(res.length>0){
|
||||
res.forEach(item => {
|
||||
if(item.belong_dept_name=="扫边车间"){
|
||||
if(item.count_xtest==null){
|
||||
seriesData3[1]+=item.count;
|
||||
}else{
|
||||
seriesData1[1]+=item.count;
|
||||
}
|
||||
}else if(item.belong_dept_name=="黑化车间"){
|
||||
if(item.count_xtest==null){
|
||||
seriesData3[2]+=item.count;
|
||||
}else{
|
||||
seriesData1[2]+=item.count;
|
||||
}
|
||||
}else if(item.belong_dept_name=="减薄车间"){
|
||||
if(item.count_xtest==null){
|
||||
seriesData3[3]+=item.count;
|
||||
}else{
|
||||
seriesData1[3]+=item.count;
|
||||
}
|
||||
}else if(item.belong_dept_name=="精雕车间"){
|
||||
if(item.count_xtest==null){
|
||||
seriesData3[4]+=item.count;
|
||||
}else{
|
||||
seriesData1[4]+=item.count;
|
||||
}
|
||||
}else if(item.belong_dept_name=="倒角车间"){
|
||||
if(item.count_xtest==null){
|
||||
seriesData3[5]+=item.count;
|
||||
}else{
|
||||
seriesData1[5]+=item.count;
|
||||
}
|
||||
}else if(item.belong_dept_name=="磨抛车间"){
|
||||
if(item.count_xtest==null){
|
||||
seriesData3[6]+=item.count;
|
||||
}else{
|
||||
seriesData1[6]+=item.count;
|
||||
}
|
||||
}
|
||||
});
|
||||
console.log(val);
|
||||
that.options.forEach((item) => {
|
||||
if (item.name == val) {
|
||||
that.query.m_model = item.model;
|
||||
that.query.m_specification = item.specification;
|
||||
}
|
||||
let option = deepCopy(that.basicOption);
|
||||
that.setChart("bachart1", option);
|
||||
})
|
||||
},
|
||||
handleQuery(){
|
||||
|
|
@ -234,9 +221,7 @@ export default {
|
|||
width: 100%;
|
||||
height: 500px;
|
||||
}
|
||||
.tables{
|
||||
width:
|
||||
}
|
||||
|
||||
.tableHead {
|
||||
background:rgb(0,176,240);
|
||||
height:40px;
|
||||
|
|
|
|||
|
|
@ -637,13 +637,18 @@ export default {
|
|||
that.query.start_date = that.query.querys[0][0].value = first.toISOString().split('T')[0];
|
||||
that.query.end_date = that.query.querys[1][0].value = last.toISOString().split('T')[0];
|
||||
that.options.forEach((item,index)=>{
|
||||
that.getData(item.id,item.name,index);
|
||||
console.log('item',item);
|
||||
setTimeout(()=>{
|
||||
that.getData(item.id,item.name,index);
|
||||
},500)
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
getMgroup(){
|
||||
let that = this;
|
||||
that.options = [];
|
||||
that.$API.mtm.mgroup.list.req({ page: 0}).then((res) => {
|
||||
// that.options = res.slice(21);
|
||||
that.options = res;
|
||||
let nowDate = new Date();
|
||||
that.getWeekDate(nowDate);
|
||||
|
|
@ -669,18 +674,19 @@ export default {
|
|||
getData(mgroup_id,mgroup_name,mgroup_index) {
|
||||
let that = this;
|
||||
that.tableData1 = [];
|
||||
that.query.querys[0][1].value = null;
|
||||
that.query.querys[1][1].value = null;
|
||||
let option = deepCopy(that.basicOption);
|
||||
option.title.text = mgroup_name+"任务进度";
|
||||
option.series.data[0].value = 0;
|
||||
option.series.data[1].value = 0;
|
||||
|
||||
that.query.querys[0][1].value = mgroup_id;
|
||||
that.query.querys[1][1].value = mgroup_id;
|
||||
that.$API.pm.mtask.cquery.req(that.query).then((res) => {
|
||||
let names = 'tableData'+mgroup_index;
|
||||
that[names] = res;
|
||||
console.log('names',names);
|
||||
console.log('that[names]',that[names]);
|
||||
// console.log('names',names);
|
||||
// console.log('that[names]',that[names]);
|
||||
let count_jh = 0,count_ok = 0,count_diff = 0;
|
||||
if (res.length > 0) {
|
||||
res.forEach((item) => {
|
||||
|
|
@ -696,7 +702,6 @@ export default {
|
|||
let chartId = 'linechart'+mgroup_index;
|
||||
that.setChart(chartId, option);
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
handleQuery(){
|
||||
|
|
@ -715,7 +720,9 @@ export default {
|
|||
that.query.querys[1][0].value = that.end_date;
|
||||
}
|
||||
that.options.forEach((item,index)=>{
|
||||
that.getData(item.id,item.name,index);
|
||||
setTimeout(()=>{
|
||||
that.getData(item.id,item.name,index);
|
||||
},500)
|
||||
})
|
||||
},
|
||||
handleExport(val) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,223 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-aside style="width: 45%; background: #ffffff">
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<span style="font-size: 14px">人员生产统计</span>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<!-- 工段 -->
|
||||
<el-select
|
||||
v-model="query.mgroup_name"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.name"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- 日期 -->
|
||||
<el-date-picker
|
||||
v-model="queryData"
|
||||
type="date"
|
||||
placeholder="查询日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
style="width: 160px"
|
||||
@change="dateChange"
|
||||
>
|
||||
</el-date-picker>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="searchHandle"
|
||||
></el-button>
|
||||
|
||||
<el-button @click="handleExport('1')" type="primary"
|
||||
>导出</el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main>
|
||||
<scTable
|
||||
ref="tables1"
|
||||
:data="tableData"
|
||||
id="exportDiv1"
|
||||
@row-click="rowClick"
|
||||
stripe
|
||||
hideDo
|
||||
hidePagination
|
||||
>
|
||||
<el-table-column label="工段" prop="工段"></el-table-column>
|
||||
<el-table-column label="操作人" prop="操作人"></el-table-column>
|
||||
<el-table-column label="生产数" prop="生产数"></el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数"></el-table-column>
|
||||
<el-table-column label="不合格数" prop="不合格数"></el-table-column>
|
||||
<el-table-column label="合格率" prop="合格率"></el-table-column>
|
||||
<el-table-column label="日期" prop="日期"></el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
<el-main class="nopadding">
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<span style="font-size: 14px">人员生产统计详情</span>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button @click="handleExport('2')" type="primary"
|
||||
>导出</el-button
|
||||
>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main>
|
||||
<scTable
|
||||
ref="tables2"
|
||||
:data="tableData2"
|
||||
id="exportDiv2"
|
||||
stripe
|
||||
hideDo
|
||||
hidePagination
|
||||
>
|
||||
<el-table-column label="工段" prop="工段"></el-table-column>
|
||||
<el-table-column label="物料名" prop="物料名"></el-table-column>
|
||||
<el-table-column label="操作人" prop="操作人"></el-table-column>
|
||||
<el-table-column label="规格" prop="规格"></el-table-column>
|
||||
<el-table-column label="型号" prop="型号"></el-table-column>
|
||||
<el-table-column label="生产数" prop="生产数"></el-table-column>
|
||||
<el-table-column label="合格数" prop="合格数"></el-table-column>
|
||||
<el-table-column label="不合格数" prop="不合格数"></el-table-column>
|
||||
<el-table-column label="合格率" prop="合格率"></el-table-column>
|
||||
<el-table-column label="日期" prop="日期"></el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
<script>
|
||||
import { mioTypeEnum } from "@/utils/enum.js";
|
||||
function deepCopy(obj) {
|
||||
return JSON.parse(JSON.stringify(obj));
|
||||
}
|
||||
const ondDayTime = 86400000;
|
||||
export default {
|
||||
name: "chart",
|
||||
data() {
|
||||
return {
|
||||
query:{
|
||||
start_date:"",
|
||||
end_date:''
|
||||
},
|
||||
start_date: "",
|
||||
end_date: "",
|
||||
options:[],
|
||||
tableData: [],
|
||||
tableData2: [],
|
||||
queryData:'',
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
let that = this;
|
||||
let date = new Date();
|
||||
that.query.start_date = that.start_date = that.queryData =
|
||||
that.query.end_date = that.end_date = date.toISOString().split('T')[0];
|
||||
// let week = date.getDay(); //当前时间的week数
|
||||
// let weekFirst = week - 1; //第一天对应的天数
|
||||
// let weekLast = 7 - week; //最后一天对应的天数
|
||||
// if (week == 0) {
|
||||
// weekFirst = 6;
|
||||
// weekLast = 0; //周日特殊处理
|
||||
// } else {
|
||||
// weekFirst = week - 1;
|
||||
// weekLast = 7 - week;
|
||||
// }
|
||||
// let first = new Date(new Date(date.getTime() - weekFirst * ondDayTime)); //本周周一
|
||||
// let last = new Date(new Date(date.getTime() + weekLast * ondDayTime)); //本周周日
|
||||
// this.query.start_date = this.start_date = first.toISOString().split('T')[0];
|
||||
// this.query.end_date = this.end_date = last.toISOString().split('T')[0];
|
||||
this.getMgroup();
|
||||
},
|
||||
methods: {
|
||||
getWeekDate(dateTime) {
|
||||
let date = new Date(dateTime);
|
||||
let week = date.getDay(); //当前时间的week数
|
||||
let weekFirst = week - 1; //第一天对应的天数
|
||||
let weekLast = 7 - week; //最后一天对应的天数
|
||||
if (week == 0) {
|
||||
weekFirst = 6;
|
||||
weekLast = 0; //周日特殊处理
|
||||
} else {
|
||||
weekFirst = week - 1;
|
||||
weekLast = 7 - week;
|
||||
}
|
||||
let first = new Date(new Date(date.getTime() - weekFirst * ondDayTime)); //本周周一
|
||||
let last = new Date(new Date(date.getTime() + weekLast * ondDayTime)); //本周周日
|
||||
this.query.start_date = first.toISOString().split('T')[0];
|
||||
this.query.end_date = last.toISOString().split('T')[0];
|
||||
},
|
||||
getMgroup(){
|
||||
let that = this;
|
||||
this.$API.mtm.mgroup.list.req({page:0}).then((res) => {
|
||||
that.options = res;
|
||||
that.query.mgroup_name = res[0].name;
|
||||
that.getTableData();
|
||||
})
|
||||
},
|
||||
searchHandle() {
|
||||
let that = this;
|
||||
that.tableData = [];
|
||||
that.getTableData();
|
||||
},
|
||||
dateChange(){
|
||||
this.query.start_date = this.query.end_date = this.queryData;
|
||||
},
|
||||
//获取表格数据
|
||||
getTableData() {
|
||||
let that = this;
|
||||
let obj = {};
|
||||
let query = deepCopy(that.query);
|
||||
query.group_by_material = "";
|
||||
query.select_col_material = "";
|
||||
obj.query = query;
|
||||
that.$API.bi.dataset.exec.req('ryjxtj', obj).then((res) => {
|
||||
if (res.data2.ds0) {
|
||||
that.tableData = res.data2.ds0;
|
||||
}
|
||||
});
|
||||
},
|
||||
rowClick(row){
|
||||
console.log(row);
|
||||
let that = this;
|
||||
let obj = {};
|
||||
let query = deepCopy(that.query);
|
||||
query.where_user = "and userd.name = '"+row.操作人+"'";
|
||||
obj.query = query;
|
||||
that.tableData2 = [];
|
||||
that.$API.bi.dataset.exec.req('ryjxtj', obj).then((res) => {
|
||||
if( res.data2.ds0){
|
||||
that.tableData2 = res.data2.ds0;
|
||||
}
|
||||
})
|
||||
},
|
||||
handleExport(val) {
|
||||
this.exportLoading = true;
|
||||
let id = "#exportDiv" + val;
|
||||
let name = val == "1" ? "库存统计" : "库存出入库统计";
|
||||
this.$XLSX(id, name);
|
||||
this.exportLoading = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.tables {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: 6px;
|
||||
z-index: 10;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -347,10 +347,10 @@ export default {
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.batchCount = this.itemObj.count;
|
||||
this.batchCount = this.itemObj.count_cando;
|
||||
this.form.batch = this.itemObj.batch;
|
||||
this.form.wm = this.itemObj.id;
|
||||
this.form.count = this.itemObj.count;
|
||||
this.form.count = this.itemObj.count_cando;
|
||||
this.form.supplier = this.itemObj.supplier;
|
||||
this.deptID = this.$TOOL.data.get('gx_deptID');
|
||||
this.getUsers();
|
||||
|
|
@ -361,7 +361,6 @@ export default {
|
|||
this.mode = mode;
|
||||
this.modeTitle = mode+'抽检';
|
||||
this.visible = true;
|
||||
|
||||
return this;
|
||||
},
|
||||
getUsers(){
|
||||
|
|
|
|||
|
|
@ -72,10 +72,10 @@
|
|||
>放行审批</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
<!-- 物料消耗 -->
|
||||
<!-- 输入物料 -->
|
||||
<el-card
|
||||
style="width: 100%; margin: 1vh 0"
|
||||
header="物料消耗"
|
||||
header="输入物料"
|
||||
shadow="never"
|
||||
>
|
||||
<div>
|
||||
|
|
@ -141,7 +141,7 @@
|
|||
</el-table-column>
|
||||
</scTable>
|
||||
</el-card>
|
||||
<!-- 物料消耗编辑 -->
|
||||
<!-- 输入物料编辑 -->
|
||||
<el-dialog v-model="saveInDialog" title="编辑">
|
||||
<el-form
|
||||
:model="saveInForm"
|
||||
|
|
@ -181,8 +181,8 @@
|
|||
>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 产出物料 -->
|
||||
<el-card style="width: 100%" header="产出物料" shadow="never">
|
||||
<!-- 输出物料 -->
|
||||
<el-card style="width: 100%" header="输出物料" shadow="never">
|
||||
<scTable
|
||||
ref="tableOut"
|
||||
:apiObj="apiObj"
|
||||
|
|
|
|||
Loading…
Reference in New Issue