Merge branch 'master' of https://e.coding.net/ctcdevteam/ehs/ehs_web
This commit is contained in:
commit
b5190de25b
|
|
@ -171,6 +171,7 @@
|
||||||
return oPromise
|
return oPromise
|
||||||
};
|
};
|
||||||
var _initPlugin = function (szContainerID) {
|
var _initPlugin = function (szContainerID) {
|
||||||
|
|
||||||
let oPromise = new Promise(function (resolve, reject) {
|
let oPromise = new Promise(function (resolve, reject) {
|
||||||
if (!m_utilsInc.isUndefined(szContainerID)) {
|
if (!m_utilsInc.isUndefined(szContainerID)) {
|
||||||
m_options.szContainerID = szContainerID
|
m_options.szContainerID = szContainerID
|
||||||
|
|
@ -598,6 +599,7 @@
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
this.I_Login = function (szIP, iProtocol, iPort, szUserName, szPassword, options) {
|
this.I_Login = function (szIP, iProtocol, iPort, szUserName, szPassword, options) {
|
||||||
|
|
||||||
let oPromise = new Promise(function (resolve, reject) {
|
let oPromise = new Promise(function (resolve, reject) {
|
||||||
var szDeviceIdentify = szIP + "_" + iPort;
|
var szDeviceIdentify = szIP + "_" + iPort;
|
||||||
var iIndex = this.findDeviceIndexByIP(szDeviceIdentify);
|
var iIndex = this.findDeviceIndexByIP(szDeviceIdentify);
|
||||||
|
|
|
||||||
|
|
@ -1705,68 +1705,6 @@ const routes = [
|
||||||
},
|
},
|
||||||
component: "inm/warehouse",
|
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",
|
name: "mainso",
|
||||||
path: "/inm/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",
|
// "name": "materialbatch",
|
||||||
// "path": "/inm/materialbatch",
|
// "path": "/inm/materialbatch",
|
||||||
|
|
@ -1878,15 +1887,6 @@ const routes = [
|
||||||
},
|
},
|
||||||
component: "inm/workshop_mio",
|
component: "inm/workshop_mio",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "inmScrap",
|
|
||||||
path: "/inm/inmScrap",
|
|
||||||
meta: {
|
|
||||||
title: "废品库",
|
|
||||||
perms: ["inmScrap"],
|
|
||||||
},
|
|
||||||
component: "inm/inmScrap",
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
//采购 pum
|
//采购 pum
|
||||||
|
|
@ -3303,6 +3303,17 @@ const routes = [
|
||||||
},
|
},
|
||||||
component: "statistics/task_rate_gx.vue",
|
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",
|
path: "/statistic_inm",
|
||||||
|
|
|
||||||
|
|
@ -224,9 +224,15 @@
|
||||||
<span>监控设备</span>
|
<span>监控设备</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="infoLine">
|
<div class="infoLine">
|
||||||
<span :class="['circles', {'circles_1':eqk.running_state==10}]"></span>
|
<span class="circles"></span>
|
||||||
<span>{{ eqk.name }}</span>
|
<span>{{ eqj.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<el-row class="infoLine">
|
||||||
|
<el-col :span="12">
|
||||||
|
<div id="divPlugin" class="plugin"></div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-aside>
|
</el-aside>
|
||||||
|
|
@ -348,8 +354,9 @@ export default {
|
||||||
eqs: {},//生产设备
|
eqs: {},//生产设备
|
||||||
eqc: {},//监测设备
|
eqc: {},//监测设备
|
||||||
eqz: {},//治理设备
|
eqz: {},//治理设备
|
||||||
eqk: {},//监控设备
|
eqj: {},//监控设备
|
||||||
resizeTimeout:null,
|
resizeTimeout:null,
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
@ -382,6 +389,24 @@ export default {
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
},
|
},
|
||||||
handleClick() {
|
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.pfkdetail = false;
|
||||||
this.detailItem = {};
|
this.detailItem = {};
|
||||||
},
|
},
|
||||||
|
|
@ -389,6 +414,7 @@ export default {
|
||||||
this.pfkdetail = true;
|
this.pfkdetail = true;
|
||||||
this.detailItem = row;
|
this.detailItem = row;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
this.init()
|
||||||
this.getEquipments(row.equipments);
|
this.getEquipments(row.equipments);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -404,7 +430,11 @@ export default {
|
||||||
that.eqc = res;
|
that.eqc = res;
|
||||||
} else if (res.type == 30) {
|
} else if (res.type == 30) {
|
||||||
that.eqz = res;
|
that.eqz = res;
|
||||||
}
|
}else if (res.type == 50) { //监控设备
|
||||||
|
that.eqj = res;
|
||||||
|
this.ip = res.ip;
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
}))
|
}))
|
||||||
});
|
});
|
||||||
const promise = Promise.all(reqs);
|
const promise = Promise.all(reqs);
|
||||||
|
|
@ -494,10 +524,66 @@ export default {
|
||||||
that.resizeChart("dataChart3");
|
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>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
|
/*监控设备样式*/
|
||||||
|
.plugin {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
/* background: #ffffff; */
|
||||||
|
border: 2px solid rgba(237, 159, 23, 0.8);
|
||||||
|
}
|
||||||
.tableBg {
|
.tableBg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 88vh;
|
height: 88vh;
|
||||||
|
|
|
||||||
|
|
@ -329,11 +329,12 @@ export default {
|
||||||
yAxis: {},
|
yAxis: {},
|
||||||
series: [{ type: 'line' }]
|
series: [{ type: 'line' }]
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
let that = this;
|
|
||||||
that.init();
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initDom() {
|
initDom() {
|
||||||
|
|
@ -359,12 +360,16 @@ export default {
|
||||||
this.$refs.table.queryData(this.query);
|
this.$refs.table.queryData(this.query);
|
||||||
},
|
},
|
||||||
rowClick(row) {
|
rowClick(row) {
|
||||||
|
|
||||||
this.pollutantDetail = true;
|
this.pollutantDetail = true;
|
||||||
this.detailItem = row;
|
this.detailItem = row;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
|
||||||
|
this.init();
|
||||||
this.getEquipments(row.equipments);
|
this.getEquipments(row.equipments);
|
||||||
this.initTimeNow();
|
this.initTimeNow();
|
||||||
this.initDom();
|
this.initDom();
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getEquipments(ids) {
|
getEquipments(ids) {
|
||||||
|
|
@ -384,9 +389,11 @@ export default {
|
||||||
that.getDetailData(3, id);
|
that.getDetailData(3, id);
|
||||||
}
|
}
|
||||||
else if (res.type == 50) { //监控设备
|
else if (res.type == 50) { //监控设备
|
||||||
debugger;
|
|
||||||
this.login(res);//监控摄像头
|
|
||||||
that.eqj = res;
|
that.eqj = res;
|
||||||
|
this.ip = res.ip;
|
||||||
|
this.login();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
@ -445,22 +452,39 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleClick() {
|
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.pollutantDetail = false;
|
||||||
this.detailItem = {};
|
this.detailItem = {};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//监控摄像头
|
//监控摄像头
|
||||||
//初始化插件
|
//初始化插件
|
||||||
init() {
|
init() {
|
||||||
|
|
||||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
|
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
|
||||||
//初始化
|
WebVideoCtrl.I_InitPlugin("divPlugin", "100%", "100%", {
|
||||||
alert(1)
|
|
||||||
WebVideoCtrl.I_InitPlugin("divPlugin", 200, 200, {
|
|
||||||
iWndowType: 2, //分裂系数N*N
|
iWndowType: 2, //分裂系数N*N
|
||||||
bWndFull: true, //双击全屏
|
bWndFull: true, //双击全屏
|
||||||
cbInitPluginCompleted: function () {
|
cbInitPluginCompleted: function () {
|
||||||
alert(1)
|
|
||||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
|
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
|
||||||
// 检查插件是否最新
|
// 检查插件是否最新
|
||||||
WebVideoCtrl.I_CheckPluginVersion().then((bFlag) => {
|
WebVideoCtrl.I_CheckPluginVersion().then((bFlag) => {
|
||||||
|
|
@ -471,28 +495,26 @@ export default {
|
||||||
}, () => {
|
}, () => {
|
||||||
alert("插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
|
alert("插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//摄像头登录
|
//摄像头登录
|
||||||
login(jkdata){
|
login(){
|
||||||
|
|
||||||
WebVideoCtrl.I_Login(
|
WebVideoCtrl.I_Login(
|
||||||
jkdata.ip,
|
this.eqj.ip,
|
||||||
1,
|
1,
|
||||||
jkdata.port,
|
this.eqj.port,
|
||||||
jkdata.login_name,
|
this.eqj.login_name,
|
||||||
jkdata.login_pwd,
|
this.eqj.login_pwd,
|
||||||
{
|
{
|
||||||
async: true,
|
async: true,
|
||||||
cgi: 1,
|
cgi: 1,
|
||||||
success: (xmlDoc) => {
|
success: (xmlDoc) => {
|
||||||
console.log("登录成功", xmlDoc);
|
console.log("登录成功", xmlDoc);
|
||||||
//预览
|
//预览
|
||||||
WebVideoCtrl.I_StartRealPlay(szIp + "_" + ipPort, {
|
WebVideoCtrl.I_StartRealPlay(this.eqj.ip + "_" + this.eqj.port, {
|
||||||
success: () => {
|
success: () => {
|
||||||
console.log("预览成功");
|
console.log("预览成功");
|
||||||
},
|
},
|
||||||
|
|
@ -504,7 +526,6 @@ export default {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -513,5 +534,6 @@ export default {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
/* background: #ffffff; */
|
/* background: #ffffff; */
|
||||||
|
border: 2px solid rgba(237, 159, 23, 0.8);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,96 @@
|
||||||
<template>
|
<template>
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-main>
|
<el-aside width="20%">
|
||||||
<div class="about">
|
<div class="leftDiv">
|
||||||
<div id="divPlugin" class="plugin"></div>
|
<el-divider content-position="left">登录预览</el-divider>
|
||||||
<div style="margin-top: 30px;">
|
<el-row type="flex" class="row-bg" justify="space-around">
|
||||||
<el-button @click="Login" type="primary">登录</el-button>
|
<el-col :span="10">
|
||||||
<el-button @click="vShow" type="primary">预览</el-button>
|
<div class="grid-content bg-purple-light">
|
||||||
<el-button @click="stopShow" type="warning">停止预览</el-button>
|
<el-button @click="Login" type="text">登录</el-button>
|
||||||
<el-button @click="logOut" type="warning">登出设备</el-button>
|
|
||||||
<el-button @click="breakdom" type="warning">销毁设备</el-button>
|
</div>
|
||||||
<el-button @click="init" type="warning">初始化设备</el-button>
|
</el-col>
|
||||||
<el-select v-model="video_value" placeholder="请选择" @change="changeWndNum()">
|
<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"
|
<el-option v-for="item in options"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value">
|
:value="item.value">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</el-aside>
|
||||||
|
<el-main>
|
||||||
|
<div id="divPlugin" class="plugin"></div>
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -53,19 +123,22 @@ export default {
|
||||||
value: 4,
|
value: 4,
|
||||||
label: '4x4'
|
label: '4x4'
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let that = this;
|
let that = this;
|
||||||
that.init();
|
that.init();
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
//初始化插件
|
//初始化插件
|
||||||
init() {
|
init() {
|
||||||
// alert('init')
|
// alert('init')
|
||||||
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
|
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
|
||||||
WebVideoCtrl.I_InitPlugin("divPlugin", 600, 600, {
|
WebVideoCtrl.I_InitPlugin("divPlugin", "100%", "100%", {
|
||||||
iWndowType: 2, //分裂系数N*N
|
iWndowType: 2, //分裂系数N*N
|
||||||
bWndFull: true, //双击全屏
|
bWndFull: true, //双击全屏
|
||||||
cbInitPluginCompleted: function () {
|
cbInitPluginCompleted: function () {
|
||||||
|
|
@ -82,6 +155,7 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
//登录
|
//登录
|
||||||
Login() {
|
Login() {
|
||||||
|
|
@ -95,10 +169,26 @@ export default {
|
||||||
async: true,
|
async: true,
|
||||||
cgi: 1,
|
cgi: 1,
|
||||||
success: (xmlDoc) => {
|
success: (xmlDoc) => {
|
||||||
console.log("登录成功", xmlDoc);
|
|
||||||
|
|
||||||
|
//TODO 获取通道信息
|
||||||
|
this.getChannelInfo();
|
||||||
|
|
||||||
|
|
||||||
|
this.$message({
|
||||||
|
showClose: true,
|
||||||
|
message: '登录成功!',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
error: (xmlDoc) => {
|
error: (xmlDoc) => {
|
||||||
console.log("登录失败", xmlDoc);
|
this.$message({
|
||||||
|
showClose: true,
|
||||||
|
message: '登录失败!',
|
||||||
|
type: 'error'
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
@ -107,7 +197,19 @@ export default {
|
||||||
vShow() {
|
vShow() {
|
||||||
WebVideoCtrl.I_StartRealPlay(this.szIp + "_" + this.ipPort, {
|
WebVideoCtrl.I_StartRealPlay(this.szIp + "_" + this.ipPort, {
|
||||||
success: () => {
|
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) {
|
if (oWndInfo != null) {
|
||||||
WebVideoCtrl.I_Stop({
|
WebVideoCtrl.I_Stop({
|
||||||
success: function () {
|
success: function () {
|
||||||
console.log("停止预览成功!")
|
this.$message({
|
||||||
|
showClose: true,
|
||||||
|
message: '停止预览成功!',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
error: function (oError) {
|
error: function (oError) {
|
||||||
console.log("停止预览失败!")
|
this.$message({
|
||||||
|
showClose: true,
|
||||||
|
message: '停止预览失败!',
|
||||||
|
type: 'error'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -137,6 +248,7 @@ export default {
|
||||||
},
|
},
|
||||||
//登出
|
//登出
|
||||||
logOut() {
|
logOut() {
|
||||||
|
|
||||||
//WebVideoCtrl.I_Logout(this.szIp + "_" + this.ipPort, {});
|
//WebVideoCtrl.I_Logout(this.szIp + "_" + this.ipPort, {});
|
||||||
var szDeviceIdentify =this.szIp;
|
var szDeviceIdentify =this.szIp;
|
||||||
|
|
||||||
|
|
@ -144,14 +256,35 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WebVideoCtrl.I_Logout(szDeviceIdentify).then(() => {
|
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() {
|
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);
|
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>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.plugin {
|
.plugin {
|
||||||
width: 600px;
|
|
||||||
height: 600px;
|
width:100%;
|
||||||
/* background: #ffffff; */
|
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>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -624,6 +624,8 @@ export default {
|
||||||
setData(data) {
|
setData(data) {
|
||||||
Object.assign(this.form, data);
|
Object.assign(this.form, data);
|
||||||
this.formCount = this.form.count;
|
this.formCount = this.form.count;
|
||||||
|
this.form.count_notok = data.count_notok;
|
||||||
|
this.count_notok_json = data.count_notok_json;
|
||||||
},
|
},
|
||||||
//设置过滤项
|
//设置过滤项
|
||||||
setFilters(filters) {
|
setFilters(filters) {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,39 @@
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-header>
|
<el-header>
|
||||||
<div class="right-panel">
|
<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
|
<el-date-picker
|
||||||
v-model="query.start_date"
|
v-model="query.start_date"
|
||||||
type="date"
|
type="date"
|
||||||
|
|
@ -18,8 +51,13 @@
|
||||||
</div>
|
</div>
|
||||||
<el-button @click="handleExport" type="primary">导出</el-button>
|
<el-button @click="handleExport" type="primary">导出</el-button>
|
||||||
</el-header>
|
</el-header>
|
||||||
<el-main style="background: #ffffff">
|
<el-main class="nopadding">
|
||||||
<scTable :data="tableData" id="exportDiv">
|
<scTable
|
||||||
|
:data="tableData"
|
||||||
|
id="exportDiv"
|
||||||
|
stripe
|
||||||
|
hideDo
|
||||||
|
hidePagination>
|
||||||
<el-table-column type="index" width="50" />
|
<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>
|
||||||
|
|
@ -32,7 +70,7 @@
|
||||||
</el-table-column>
|
</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="不合格数" 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>
|
<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 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>
|
<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-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "chart",
|
name: "chart",
|
||||||
|
|
@ -69,12 +109,25 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
query:{
|
query:{
|
||||||
start_date:'',
|
fw_type:'prod',
|
||||||
end_date:'',
|
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: "",
|
currentDate: "",
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
options:[
|
||||||
|
{name:'外观',value:'一次超洗'},
|
||||||
|
{name:'尺寸',value:'二次超洗'}
|
||||||
|
],
|
||||||
|
userOptions:[],
|
||||||
|
shiftOptions:[],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
@ -88,8 +141,22 @@ export default {
|
||||||
let queryDate = year + "-" + month + "-" + day;
|
let queryDate = year + "-" + month + "-" + day;
|
||||||
that.query.start_date = that.query.end_date = that.currentDate = queryDate;
|
that.query.start_date = that.query.end_date = that.currentDate = queryDate;
|
||||||
this.getData();
|
this.getData();
|
||||||
|
this.getUsers();
|
||||||
|
this.getShifts();
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
getData() {
|
||||||
let that = this;
|
let that = this;
|
||||||
let obj = {};
|
let obj = {};
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -183,6 +185,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -241,6 +245,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -299,6 +305,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -357,6 +365,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -415,6 +425,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -473,6 +485,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -531,6 +545,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -589,6 +605,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -647,6 +665,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -705,6 +725,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -763,6 +785,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -821,6 +845,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -879,6 +905,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
@ -937,6 +965,8 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="合格数" prop="合格数">
|
<el-table-column label="合格数" prop="合格数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="前道不良" prop="加工前不良">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="不合格数" align="center">
|
<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>
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,27 @@
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-header>
|
<el-header>
|
||||||
<div class="right-panel">
|
<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
|
<el-date-picker
|
||||||
v-model="query.start_date"
|
v-model="query.start_date"
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="查询日期"
|
placeholder="查询日期"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
style="width: 160px"
|
style="width: 200px"
|
||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
|
<el-input v-model="query.m_s"
|
||||||
|
placeholder="物料名称" clearable style="width:200px"></el-input>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-search"
|
icon="el-icon-search"
|
||||||
|
|
@ -18,8 +31,13 @@
|
||||||
</div>
|
</div>
|
||||||
<el-button @click="handleExport" type="primary">导出</el-button>
|
<el-button @click="handleExport" type="primary">导出</el-button>
|
||||||
</el-header>
|
</el-header>
|
||||||
<el-main style="background: #ffffff">
|
<el-main>
|
||||||
<scTable :data="tableData" id="exportDiv">
|
<scTable
|
||||||
|
:data="tableData"
|
||||||
|
id="exportDiv"
|
||||||
|
stripe
|
||||||
|
hideDo
|
||||||
|
hidePagination>
|
||||||
<el-table-column type="index" width="50" />
|
<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>
|
||||||
|
|
@ -33,28 +51,16 @@
|
||||||
<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="不合格数" align="center">
|
<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 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>
|
</el-table-column>
|
||||||
</scTable>
|
</scTable>
|
||||||
|
|
@ -69,12 +75,21 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
query:{
|
query:{
|
||||||
start_date:'',
|
m_s:'',
|
||||||
|
fw_type:'process',
|
||||||
end_date:'',
|
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: "",
|
currentDate: "",
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
options:[],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
|
@ -87,14 +102,21 @@ export default {
|
||||||
day = day < 10 ? "0" + day : day;
|
day = day < 10 ? "0" + day : day;
|
||||||
let queryDate = year + "-" + month + "-" + day;
|
let queryDate = year + "-" + month + "-" + day;
|
||||||
that.query.start_date = that.query.end_date = that.currentDate = queryDate;
|
that.query.start_date = that.query.end_date = that.currentDate = queryDate;
|
||||||
|
this.getProcess();
|
||||||
this.getData();
|
this.getData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getProcess(){
|
||||||
|
let that = this;
|
||||||
|
that.$API.mtm.process.list.req({ page: 0}).then((res) => {
|
||||||
|
that.options = res;
|
||||||
|
});
|
||||||
|
},
|
||||||
getData() {
|
getData() {
|
||||||
let that = this;
|
let that = this;
|
||||||
let obj = {};
|
let obj = {};
|
||||||
obj.query = that.query;
|
obj.query = that.query;
|
||||||
|
that.tableData =[];
|
||||||
that.$API.bi.dataset.exec.req('ftestDay', obj).then((res) => {
|
that.$API.bi.dataset.exec.req('ftestDay', obj).then((res) => {
|
||||||
that.tableData = res.data2.ds0;
|
that.tableData = res.data2.ds0;
|
||||||
console.log(that.tableData);
|
console.log(that.tableData);
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,25 @@
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-header>
|
<el-header>
|
||||||
<div class="right-panel">
|
<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
|
<el-option
|
||||||
v-for="item in options"
|
v-for="item in options"
|
||||||
:key="item"
|
:key="item.id"
|
||||||
:label="item"
|
:label="item.name"
|
||||||
:value="item"
|
:value="item.name"
|
||||||
>
|
>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
@ -16,76 +29,78 @@
|
||||||
icon="el-icon-search"
|
icon="el-icon-search"
|
||||||
@click="handleQuery"
|
@click="handleQuery"
|
||||||
></el-button>
|
></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
|
<el-button
|
||||||
@click="handleExport"
|
@click="handleExport"
|
||||||
class="tables"
|
class="tables"
|
||||||
type="primary"
|
type="primary"
|
||||||
>导出</el-button
|
>导出</el-button
|
||||||
>
|
>
|
||||||
<el-table
|
</div>
|
||||||
:data="tableData1"
|
</el-header>
|
||||||
id="exportDiv7"
|
<el-main class="nopadding">
|
||||||
:height="tableHeight"
|
<scTable
|
||||||
|
:data="tableData"
|
||||||
|
id="exportDiv"
|
||||||
|
stripe
|
||||||
|
hideDo
|
||||||
|
hidePagination
|
||||||
>
|
>
|
||||||
<el-table-column type="index" width="50" />
|
<el-table-column type="index" width="50" />
|
||||||
<el-table-column
|
<el-table-column label="部门" prop="部门">
|
||||||
label="任务编号"
|
|
||||||
prop="number"
|
|
||||||
min-width="100px"
|
|
||||||
>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="计划数" prop="count">
|
<el-table-column label="工段" prop="工段">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="完成数" prop="count_ok">
|
<el-table-column label="原料数" prop="原料数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="完成率" prop="rate">
|
<el-table-column label="待加工原料数" prop="待加工原料数">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
<el-table-column label="非本段产物数" prop="非本段产物数">
|
||||||
</el-card>
|
</el-table-column>
|
||||||
</el-col>
|
<el-table-column label="待加工产物数" prop="待加工产物数">
|
||||||
</el-row>
|
</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-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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) {
|
function deepCopy(obj) {
|
||||||
return JSON.parse(JSON.stringify(obj));
|
return JSON.parse(JSON.stringify(obj));
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: "chart",
|
name: "chart",
|
||||||
components: {
|
|
||||||
scEcharts,
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
currentYear:'',
|
query: {
|
||||||
currentMonth:'',
|
batch: "",
|
||||||
start_date:'',
|
m_name: "",
|
||||||
end_date:'',
|
m_model: "",
|
||||||
queryDate:'',
|
m_specification: ""
|
||||||
option:{},
|
},
|
||||||
seriesData1:[],
|
searchType:'batch',
|
||||||
seriesData2:[],
|
options:[],
|
||||||
seriesData3:[],
|
tableData:[],
|
||||||
material__name:'',
|
|
||||||
options:['白片','DDG片','一次抛','外协海富'],
|
|
||||||
basicOption: {
|
basicOption: {
|
||||||
backgroundColor: "transparent",
|
backgroundColor: "transparent",
|
||||||
title: {
|
title: {
|
||||||
|
|
@ -133,76 +148,48 @@ export default {
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let that = this;
|
let that = this;
|
||||||
|
that.getOptions();
|
||||||
that.getInmMaterial();
|
that.getInmMaterial();
|
||||||
},
|
},
|
||||||
methods: {
|
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(){
|
getInmMaterial(){
|
||||||
let that = this;
|
let that = this;
|
||||||
let obj = {
|
let obj = {};
|
||||||
name__contains:that.material__name,
|
obj.query = that.query;
|
||||||
page:0
|
that.tableData =[];
|
||||||
};
|
that.$API.bi.dataset.exec.req('batch_search', obj).then((res) => {
|
||||||
this.$API.mtm.material.list.req(obj).then(res=>{
|
if(res.data2.ds0){
|
||||||
console.log('InmMaterial',res);
|
that.tableData = res.data2.ds0;
|
||||||
that.getWmaterial();
|
|
||||||
if(res.length>0){
|
|
||||||
res.forEach(item => {
|
|
||||||
that.seriesData3[0]+=item.count;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
getWmaterial(){
|
searchTypeChange(){
|
||||||
|
this.query.batch = '';
|
||||||
|
this.query.m_name = '';
|
||||||
|
this.query.m_model = '';
|
||||||
|
this.query.m_specification = '';
|
||||||
|
},
|
||||||
|
materialChange(val){
|
||||||
let that = this;
|
let that = this;
|
||||||
let obj = {
|
console.log(val);
|
||||||
material__name__contains:that.material__name,
|
that.options.forEach((item) => {
|
||||||
page:0
|
if (item.name == val) {
|
||||||
};
|
that.query.m_model = item.model;
|
||||||
this.$API.wpm.wmaterial.list.req(obj).then(res=>{
|
that.query.m_specification = item.specification;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
let option = deepCopy(that.basicOption);
|
|
||||||
that.setChart("bachart1", option);
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleQuery(){
|
handleQuery(){
|
||||||
|
|
@ -234,9 +221,7 @@ export default {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 500px;
|
height: 500px;
|
||||||
}
|
}
|
||||||
.tables{
|
|
||||||
width:
|
|
||||||
}
|
|
||||||
.tableHead {
|
.tableHead {
|
||||||
background:rgb(0,176,240);
|
background:rgb(0,176,240);
|
||||||
height:40px;
|
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.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.query.end_date = that.query.querys[1][0].value = last.toISOString().split('T')[0];
|
||||||
that.options.forEach((item,index)=>{
|
that.options.forEach((item,index)=>{
|
||||||
|
console.log('item',item);
|
||||||
|
setTimeout(()=>{
|
||||||
that.getData(item.id,item.name,index);
|
that.getData(item.id,item.name,index);
|
||||||
})
|
},500)
|
||||||
|
|
||||||
|
})
|
||||||
},
|
},
|
||||||
getMgroup(){
|
getMgroup(){
|
||||||
let that = this;
|
let that = this;
|
||||||
|
that.options = [];
|
||||||
that.$API.mtm.mgroup.list.req({ page: 0}).then((res) => {
|
that.$API.mtm.mgroup.list.req({ page: 0}).then((res) => {
|
||||||
|
// that.options = res.slice(21);
|
||||||
that.options = res;
|
that.options = res;
|
||||||
let nowDate = new Date();
|
let nowDate = new Date();
|
||||||
that.getWeekDate(nowDate);
|
that.getWeekDate(nowDate);
|
||||||
|
|
@ -669,18 +674,19 @@ export default {
|
||||||
getData(mgroup_id,mgroup_name,mgroup_index) {
|
getData(mgroup_id,mgroup_name,mgroup_index) {
|
||||||
let that = this;
|
let that = this;
|
||||||
that.tableData1 = [];
|
that.tableData1 = [];
|
||||||
|
that.query.querys[0][1].value = null;
|
||||||
|
that.query.querys[1][1].value = null;
|
||||||
let option = deepCopy(that.basicOption);
|
let option = deepCopy(that.basicOption);
|
||||||
option.title.text = mgroup_name+"任务进度";
|
option.title.text = mgroup_name+"任务进度";
|
||||||
option.series.data[0].value = 0;
|
option.series.data[0].value = 0;
|
||||||
option.series.data[1].value = 0;
|
option.series.data[1].value = 0;
|
||||||
|
|
||||||
that.query.querys[0][1].value = mgroup_id;
|
that.query.querys[0][1].value = mgroup_id;
|
||||||
that.query.querys[1][1].value = mgroup_id;
|
that.query.querys[1][1].value = mgroup_id;
|
||||||
that.$API.pm.mtask.cquery.req(that.query).then((res) => {
|
that.$API.pm.mtask.cquery.req(that.query).then((res) => {
|
||||||
let names = 'tableData'+mgroup_index;
|
let names = 'tableData'+mgroup_index;
|
||||||
that[names] = res;
|
that[names] = res;
|
||||||
console.log('names',names);
|
// console.log('names',names);
|
||||||
console.log('that[names]',that[names]);
|
// console.log('that[names]',that[names]);
|
||||||
let count_jh = 0,count_ok = 0,count_diff = 0;
|
let count_jh = 0,count_ok = 0,count_diff = 0;
|
||||||
if (res.length > 0) {
|
if (res.length > 0) {
|
||||||
res.forEach((item) => {
|
res.forEach((item) => {
|
||||||
|
|
@ -696,7 +702,6 @@ export default {
|
||||||
let chartId = 'linechart'+mgroup_index;
|
let chartId = 'linechart'+mgroup_index;
|
||||||
that.setChart(chartId, option);
|
that.setChart(chartId, option);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
handleQuery(){
|
handleQuery(){
|
||||||
|
|
@ -715,7 +720,9 @@ export default {
|
||||||
that.query.querys[1][0].value = that.end_date;
|
that.query.querys[1][0].value = that.end_date;
|
||||||
}
|
}
|
||||||
that.options.forEach((item,index)=>{
|
that.options.forEach((item,index)=>{
|
||||||
|
setTimeout(()=>{
|
||||||
that.getData(item.id,item.name,index);
|
that.getData(item.id,item.name,index);
|
||||||
|
},500)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleExport(val) {
|
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() {
|
mounted() {
|
||||||
this.batchCount = this.itemObj.count;
|
this.batchCount = this.itemObj.count_cando;
|
||||||
this.form.batch = this.itemObj.batch;
|
this.form.batch = this.itemObj.batch;
|
||||||
this.form.wm = this.itemObj.id;
|
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.form.supplier = this.itemObj.supplier;
|
||||||
this.deptID = this.$TOOL.data.get('gx_deptID');
|
this.deptID = this.$TOOL.data.get('gx_deptID');
|
||||||
this.getUsers();
|
this.getUsers();
|
||||||
|
|
@ -361,7 +361,6 @@ export default {
|
||||||
this.mode = mode;
|
this.mode = mode;
|
||||||
this.modeTitle = mode+'抽检';
|
this.modeTitle = mode+'抽检';
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
getUsers(){
|
getUsers(){
|
||||||
|
|
|
||||||
|
|
@ -72,10 +72,10 @@
|
||||||
>放行审批</el-button>
|
>放行审批</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<!-- 物料消耗 -->
|
<!-- 输入物料 -->
|
||||||
<el-card
|
<el-card
|
||||||
style="width: 100%; margin: 1vh 0"
|
style="width: 100%; margin: 1vh 0"
|
||||||
header="物料消耗"
|
header="输入物料"
|
||||||
shadow="never"
|
shadow="never"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -141,7 +141,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</scTable>
|
</scTable>
|
||||||
</el-card>
|
</el-card>
|
||||||
<!-- 物料消耗编辑 -->
|
<!-- 输入物料编辑 -->
|
||||||
<el-dialog v-model="saveInDialog" title="编辑">
|
<el-dialog v-model="saveInDialog" title="编辑">
|
||||||
<el-form
|
<el-form
|
||||||
:model="saveInForm"
|
:model="saveInForm"
|
||||||
|
|
@ -181,8 +181,8 @@
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 产出物料 -->
|
<!-- 输出物料 -->
|
||||||
<el-card style="width: 100%" header="产出物料" shadow="never">
|
<el-card style="width: 100%" header="输出物料" shadow="never">
|
||||||
<scTable
|
<scTable
|
||||||
ref="tableOut"
|
ref="tableOut"
|
||||||
:apiObj="apiObj"
|
:apiObj="apiObj"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue