!23 logo更换

Merge pull request !23 from 打豆豆/master
This commit is contained in:
打豆豆 2024-03-26 13:38:55 +00:00 committed by Gitee
commit d09d4760d7
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
15 changed files with 629 additions and 343 deletions

View File

@ -60,3 +60,12 @@ export function listItems(query) {
params: query
})
}
// 删除
export function deleteShopFace(data) {
return request({
url: '/mes/pro/workorder/deleteShopFace',
method: 'post',
data: data
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -30,7 +30,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<!-- <el-col :span="7">
<el-form-item label="所在车间" prop="workshopName">
<el-select v-model="queryParams.workshopId" placeholder="请选择车间">
<el-option
@ -41,7 +41,7 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="3">
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -178,7 +178,7 @@ export default {
workstationCode: null,
workstationName: null,
workstationAddress: null,
workshopId: null,
workshopId: "214",
workshopCode: null,
workshopName: null,
processId: null,

View File

@ -315,15 +315,8 @@
v-model="form.machineryTypeId"
:options="machineryTypeOptions"
:normalizer="normalizer"
disabled
v-if="optType == 'view'"
/>
<treeselect
v-model="form.machineryTypeId"
:options="machineryTypeOptions"
:normalizer="normalizer"
placeholder="请选择所属分类"
v-else
placeholder="请选择设备类型"
@select="handleNode"
/>
</el-form-item>
</el-col>
@ -382,7 +375,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属车间" prop="workshopName">
<!-- <el-form-item label="所属车间" prop="workshopName">
<el-select
v-model="form.workshopName"
placeholder="请选择车间"
@ -397,7 +390,7 @@
:value="item"
></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
</el-col>
</el-row>
<el-row>
@ -587,7 +580,7 @@ export default {
idList: "",
workshopCode: "",
workshopName: "",
workshopId: "",
workshopId: "214",
},
defaultPropss: {
children: "children",
@ -656,15 +649,15 @@ export default {
machineryName: [
{ required: true, message: "设备名称不能为空", trigger: "blur" },
],
workshopId: [
{ required: true, message: "车间不能为空", trigger: "blur" },
],
// workshopId: [
// { required: true, message: "", trigger: "blur" },
// ],
machineryTypeId: [
{ required: true, message: "设备分类不能为空", trigger: "blur" },
],
workshopName: [
{ required: true, message: "所属车间不能为空", trigger: "blur" },
],
// workshopName: [
// { required: true, message: "", trigger: "blur" },
// ],
},
};
},
@ -727,6 +720,12 @@ export default {
this.queryParamsdata = data;
this.handleQuery();
},
//
handleNode(data) {
console.log(data);
this.form.machineryTypeName = data.machineryTypeName;
this.form.machineryTypeCode = data.code;
},
//
cancel() {
this.open = false;
@ -743,7 +742,7 @@ export default {
machineryTypeId: null,
machineryTypeCode: null,
machineryTypeName: null,
workshopId: null,
workshopId: "214",
workshopCode: null,
workshopName: null,
status: "STOP",
@ -809,7 +808,7 @@ export default {
// this.$emit("getSelectList", this.selectList);
},
//
//
handleAccompanyId(val) {
this.form.workshopCode = val.workshopCode;
this.form.workshopName = val.workshopName;

View File

@ -201,7 +201,7 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="所属车间" prop="workshopId">
<!-- <el-form-item label="所属车间" prop="workshopId">
<el-select
v-model="form.workshopId"
placeholder="请选择车间"
@ -215,7 +215,7 @@
:value="item.workshopId"
></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
</el-col>
<el-col :span="12">
<el-form-item label="是否启用" prop="enableFlag">
@ -346,7 +346,7 @@ export default {
proAgvlineId: null,
lineCode: null,
lineName: null,
workshopId: null,
workshopId: "214",
enableFlag: "Y",
remark: null,
};

View File

@ -245,7 +245,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="所在车间" prop="workshopId">
<el-select
v-model="form.workshopId"
@ -260,7 +260,7 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row>
<el-col :span="12">
@ -564,7 +564,7 @@ export default {
workstationCode: null,
workstationName: null,
workstationAddress: null,
workshopId: null,
workshopId: "214",
workshopCode: null,
workshopName: null,
processId: null,
@ -670,6 +670,7 @@ export default {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.workstationId != null) {
this.form.processId = this.form.processId.join(",");
updateWorkstation(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;

View File

@ -0,0 +1,91 @@
import { getPubKey, setEncrypt } from './pubKey'
var initCount = 0;
var oWebControl;
/**
*
* @param {*} id :组件容器id
* @param {*} iWidth :组件容器宽
* @param {*} iHeight :组件容器高
* @param {*}cbIntegrationCallBack消息推送回调函数
* @param {*} argument:初始化api参数
* @param {*} completeCallBack初始化成功回调函数
* @param {*} plugErrorCallBack插件启动失败回调函数
*/
const initPlugin = (id, iWidth, iHeight, argument, cbIntegrationCallBack = () => { }, completeCallBack = () => { }, plugErrorCallBack = () => { }) => {
// eslint-disable-next-line no-undef
oWebControl = new WebControl({
szPluginContainer: id, // 指定容器id
iServicePortStart: 15900, // 指定起止端口号,建议使用该值
iServicePortEnd: 15909,
szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11", // 用于IE10使用ActiveX的clsid
cbConnectSuccess: function () { // 创建WebControl实例成功
oWebControl.JS_StartService("window", { // WebControl实例创建成功后需要启动服务
dllPath: "./VideoPluginConnect.dll" // 值"./VideoPluginConnect.dll"写死
}).then(function () { // 启动插件服务成功
oWebControl.JS_SetWindowControlCallback({ // 设置消息回调
cbIntegrationCallBack: cbIntegrationCallBack
});
oWebControl.JS_CreateWnd(id, iWidth, iHeight).then(function () { //JS_CreateWnd创建视频播放窗口宽高可设定
init(argument, iWidth, iHeight,completeCallBack()); // 创建播放实例成功后初始化
});
}, function () { // 启动插件服务失败
});
},
// eslint-disable-next-line no-unused-vars
cbConnectError: function (e) { // 创建WebControl实例失败
oWebControl = null;
// eslint-disable-next-line no-undef
// $(id).html("插件未启动,正在尝试启动,请稍候...");
// eslint-disable-next-line no-undef
WebControl.JS_WakeUp("VideoWebPlugin://"); // 程序未启动时执行error函数采用wakeup来启动程序
initCount++;
if (initCount < 2) {
setTimeout(function () {
initPlugin(id, iWidth, iHeight, argument, cbIntegrationCallBack,completeCallBack,plugErrorCallBack);
}, 1000)
} else {
// eslint-disable-next-line no-undef
// $(id).html("插件启动失败,请检查插件是否安装!");
plugErrorCallBack()
}
},
// eslint-disable-next-line no-unused-vars
cbConnectClose: function (bNormalClose) {
// 异常断开bNormalClose = false
// JS_Disconnect正常断开bNormalClose = true
console.log("cbConnectClose");
oWebControl = null;
}
});
return oWebControl
}
//初始化
function init(argument, iWidth, iHeight,callback=()=>{}) {
getPubKey(oWebControl, function () {
oWebControl.JS_RequestInterface({
funcName: "init",
argument: JSON.stringify({
...argument,
secret: setEncrypt(argument.secret)
})
// eslint-disable-next-line no-unused-vars
}).then(function (oData) {
callback()
//oWebControl.JS_Resize(iWidth, iHeight); // 初始化后resize一次规避firefox下首次显示窗口后插件窗口未与DIV窗口重合问题
});
})
}
export default initPlugin

View File

@ -0,0 +1,24 @@
var pubKey;
//获取公钥
export function getPubKey(oWebControl,callback) {
// eslint-disable-next-line no-undef
oWebControl.JS_RequestInterface({
funcName: "getRSAPubKey",
argument: JSON.stringify({
keyLength: 1024
})
}).then(function (oData) {
if (oData.responseMsg.data) {
pubKey = oData.responseMsg.data;
callback()
}
})
}
//RSA加密
export function setEncrypt(value) {
// eslint-disable-next-line no-undef
var encrypt = new JSEncrypt();
encrypt.setPublicKey(pubKey);
return encrypt.encrypt(value);
}

View File

@ -1,296 +1,251 @@
<template>
<div class="videoMain" ref="playWndBox">
<div
id="playWnd"
class="playWnd"
:style="{
height: playWndHeight + 'px',
width: playWndWidth + 'px',
}"
></div>
<div class="hk-video-container" id="playWnd">
<!-- 下载插件提示框 -->
<el-dialog
v-if="downloadDialog"
title="提示"
:visible.sync="dialogVisible"
width="30%"
>
<span
>{{downloadText}}</span
>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="handleDownloadExe">下载</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import initPlugin from "./lib/initPlugin";
export default {
name: "HikVideo",
name: "hkVideo",
props: {
width: {
type: Number,
default: 500,
},
height: {
type: Number,
default: 300,
},
//
// appkey: appkey, //APIappkey
// secret: secret, //APIsecret
// ip: ip, //APIIP
// playMode: playMode, //
// port: port, //
// snapDir: snapDir, //
// videoDir: videoDir, //
// layout: layout, //
// enableHTTPS: enableHTTPS, //HTTPS
// encryptedFields: encryptedFields, //
// showToolbar: showToolbar, //
// showSmart: showSmart, //
// buttonIDs: buttonIDs //
argument: {
type: Object,
default: () => {},
},
//01
playMode: {
type: Number,
default: 0,
},
//
autoResize: {
type: Boolean,
default: true,
},
//
downloadDialog: {
type: Boolean,
default: false,
},
//url
downloadUrl: {
type: String,
default: "",
},
downloadText:{
type:String,
default:'插件启动失败,请检查插件是否安装,如果未安装请点击下载安装,安装后刷新页面'
}
},
data() {
return {
//
playWndHeight: "",
//
playWndWidth: "",
oWebControl: null,
initCount: 0,
pubKey: "",
cameraIndexCode: "", //
objData: {
appkey: "", //appkey
ip: "", //
secret: "", //secret
port: 443,
playMode: 0, // 0 1
layout: "2x2", //16
curWindIndex: 1, //1
oWebControl: null, //
iWidth: "", //
iHeight: "", //
options: {
appkey: "admin", //APIappkey
secret: "mygymygy.", //APIsecret
ip: "192.168.2.107", //APIIP
playMode: 0, //
port: 443, //
snapDir: "D:\\SnapDir", //
videoDir: "D:\\VideoDir", //
layout: "3x3", //
enableHTTPS: 1, //HTTPS
encryptedFields: "secret", //
showToolbar: 1,
showSmart: 1,
buttonIDs:
"0,1,16,256,257,258,259,260,512,513,514,515,516,517,768,769,770", //
},
rate: 0, //
isInitComolete: false, //
dialogVisible: false,
};
},
watch: {
width: {
handler(val) {
this.iWidth = val;
if (this.isInitComolete) {
this.setRate();
this.setResize(this.iWidth, this.iHeight);
}
},
immediate: true,
},
height: {
handler(val) {
this.iHeight = val;
if (this.isInitComolete) {
this.setRate();
this.setResize(this.iWidth, this.iHeight);
}
},
immediate: true,
},
playMode() {
this.reInit();
},
},
mounted() {
//
this.playWndHeight = this.$refs.playWndBox.clientHeight;
//
this.playWndWidth = this.$refs.playWndBox.clientWidth;
//
this.init();
this.handleWindEvent();
this.$nextTick(() => {
this.initPlugin();
});
// scroll使DIV
window.addEventListener("scroll", () => {
if (this.oWebControl != null) {
this.oWebControl.JS_Resize(
this.$refs.playWndBox.clientWidth,
this.$refs.playWndBox.clientHeight
);
this.setWndCover();
}
});
// resize使DIV
window.addEventListener("resize", (e) => {
if (this.oWebControl != null) {
this.oWebControl.JS_Resize(
this.$refs.playWndBox.clientWidth,
this.$refs.playWndBox.clientHeight
);
this.setWndCover();
}
this.setRate();
});
},
destroyed() {
beforeDestroy() {
if (this.oWebControl != null) {
//
this.oWebControl.JS_HideWnd();
//
this.oWebControl.JS_RequestInterface({ funcName: "destroyWnd" });
//
this.oWebControl.JS_Disconnect();
this.oWebControl.JS_HideWnd(); //
this.oWebControl.JS_Disconnect().then(
function () {
//
},
function () {
//
}
);
}
},
methods: {
//
initPlugin() {
let that = this;
this.oWebControl = null;
that.oWebControl = new WebControl({
szPluginContainer: "playWnd", // id
iServicePortStart: 15900, // 使
iServicePortEnd: 15909,
szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11", // IE10使ActiveXclsid
cbConnectSuccess: () => {
// WebControl
that.oWebControl
.JS_StartService("window", {
// WebControl
// "./VideoPluginConnect.dll"
dllPath: "./VideoPluginConnect.dll",
})
.then(
function () {
//
that.oWebControl.JS_SetWindowControlCallback({
cbIntegrationCallBack: that.cbIntegrationCallBack,
});
//JS_CreateWnd
that.oWebControl
.JS_CreateWnd("playWnd", 2040, 945, { bEmbed: true })
//2040,945
.then(function () {
//
that.init();
});
//
init() {
let argument = {
...this.options,
...this.argument,
};
if (this.playMode > -1 && this.playMode < 2) {
argument.playMode = this.playMode;
}
// eslint-disable-next-line no-undef
this.iWidth = Math.min(this.iWidth, $(window).width());
this.oWebControl = initPlugin(
"playWnd",
this.iWidth,
this.iHeight,
argument,
this.cbIntegrationCallBack,
() => {
this.setRate();
this.setResize(this.iWidth, this.iHeight);
this.isInitComolete = true;
this.$emit("initFinish");
},
function () {
//
() => {
if (this.downloadDialog) {
this.dialogVisible = true;
}
this.$emit("pluginError");
}
);
},
// WebControl
cbConnectError: function () {
that.oWebControl = null;
// alert('...')
// that.$message.warning("...");
// errorwakeup
window.WebControl.JS_WakeUp("VideoWebPlugin://");
that.initCount++;
if (that.initCount < 3) {
setTimeout(function () {
that.initPlugin();
}, 3000);
} else {
// that.messageBox = true
// alert('')
// that.downloadHikVideo()
// setTimeout(function () {
// that.messageBox = false
// }, 5000)
// setTimeout(function () {
// alert('')
// that.$message({
// message: ' \n https://www.baidu.com',
// type: 'warning'
// });
// }, 5000)
}
},
cbConnectClose: () => {
// bNormalClose = false
// JS_DisconnectbNormalClose = true
// console.log("cbConnectClose");
that.oWebControl = null;
},
});
},
//
init(callback) {
let that = this;
that.getPubKey(() => {
let appkey = that.objData.appkey; //appkey
let secret = that.setEncrypt(that.objData.secret); //secret
let ip = that.objData.ip; //IP
let playMode = that.objData.playMode; //0-1-
let port = that.objData.port; //HTTPS443
let snapDir = "D:\\SnapDir"; //
let videoDir = "D:\\VideoDir"; //
let layout = that.objData.layout; //playMode
let enableHTTPS = 1; //HTTPS1
let encryptedFields = "secret"; //secret
let showToolbar = 1; //0-0-
let showSmart = 1; //线0-0-
let buttonIDs =
"0,16,256,257,258,259,260,512,513,514,515,516,517,768,769"; //
// var toolBarButtonIDs = "2049,2304" //
that.oWebControl
.JS_RequestInterface({
funcName: "init",
argument: JSON.stringify({
appkey: appkey, //APIappkey
secret: secret, //APIsecret
ip: ip, //APIIP
playMode: playMode, //
port: port, //
snapDir: snapDir, //
videoDir: videoDir, //
layout: layout, //
enableHTTPS: enableHTTPS, //HTTPS
encryptedFields: encryptedFields, //
showToolbar: showToolbar, //
showSmart: showSmart, //
buttonIDs, //
}),
})
.then(function (oData) {
that.oWebControl.JS_Resize(that.playWndWidth, that.playWndHeight); // resizefirefoxDIV
if (callback) {
callback();
}
//
// that.oWebControl.JS_HideWnd()
});
});
},
//
getPubKey(callback) {
let that = this;
//
reInit() {
if (this.oWebControl) {
this.oWebControl
.JS_RequestInterface({
funcName: "getRSAPubKey",
argument: JSON.stringify({
keyLength: 1024,
}),
funcName: "uninit",
})
.then(function (oData) {
if (oData.responseMsg.data) {
that.pubKey = oData.responseMsg.data;
callback();
.then(() => {
this.init();
});
}
},
setRate() {
// eslint-disable-next-line no-undef
var iWidth = $(window).width();
this.rate = this.iWidth / iWidth;
},
//
handleWindEvent() {
// resize使DIV
// eslint-disable-next-line no-undef
if (this.autoResize) {
// eslint-disable-next-line no-undef
$(window).resize(() => {
if (this.oWebControl) {
// eslint-disable-next-line no-undef
var iWidth = $(window).width();
// eslint-disable-next-line no-undef
this.iWidth = iWidth * this.rate;
this.oWebControl.JS_Resize(this.iWidth, this.iHeight);
this.setWndCover();
}
});
}
// scroll使
// eslint-disable-next-line no-undef
$(window).scroll(() => {
if (this.oWebControl) {
this.oWebControl.JS_Resize(this.iWidth, this.iHeight);
this.setWndCover();
}
});
},
// RSA
setEncrypt(value) {
let that = this;
let encrypt = new window.JSEncrypt();
encrypt.setPublicKey(that.pubKey);
return encrypt.encrypt(value);
},
//
//
cbIntegrationCallBack(oData) {
let { responseMsg: type } = oData;
if (type === "error") {
} else {
if (oData?.responseMsg?.type) {
let data = oData.responseMsg;
switch (data.type) {
//
case 1:
if (this.curWindIndex !== data.msg.wndId) {
this.curWindIndex = data.msg.wndId;
this.$emit("windowChange", this.curWindIndex);
}
},
//
previewVideo(data) {
let that = this;
let cameraIndexCode = data; //
let streamMode = 0; // 0-1-
let transMode = 0; // 0-UDP1-TCP
let gpuMode = 0; // GPU0-1-
let wndId = -1; // 2x2
// console.log(cameraIndexCode, "-------cameraIndexCode-");
that.oWebControl.JS_RequestInterface({
funcName: "startPreview",
argument: JSON.stringify({
cameraIndexCode: cameraIndexCode.trim(), //
streamMode: streamMode, //
transMode: transMode, //
gpuMode: gpuMode, // GPU
wndId: wndId, //
}),
});
},
//
stopAllPreview() {
this.oWebControl.JS_RequestInterface({
funcName: "stopAllPreview",
});
},
//
dateFormat(oDate, fmt) {
let o = {
"M+": oDate.getMonth() + 1, //
"d+": oDate.getDate(), //
"h+": oDate.getHours(), //
"m+": oDate.getMinutes(), //
"s+": oDate.getSeconds(), //
"q+": Math.floor((oDate.getMonth() + 3) / 3), //
S: oDate.getMilliseconds(), //
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
(oDate.getFullYear() + "").substr(4 - RegExp.$1.length)
);
}
for (let k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1
? o[k]
: ("00" + o[k]).substr(("" + o[k]).length)
);
break;
//
case 6:
this.$emit("layoutChange", data.msg);
break;
}
}
return fmt;
},
// JS_CuttingPartWindow
setWndCover() {
// eslint-disable-next-line no-undef
var iWidth = $(window).width();
// eslint-disable-next-line no-undef
var iHeight = $(window).height();
// eslint-disable-next-line no-undef
var oDivRect = $("#playWnd").get(0).getBoundingClientRect();
var iCoverLeft = oDivRect.left < 0 ? Math.abs(oDivRect.left) : 0;
@ -302,42 +257,239 @@ export default {
? Math.round(oDivRect.bottom - iHeight)
: 0;
iCoverLeft = iCoverLeft > 2041 ? 2041 : iCoverLeft;
iCoverTop = iCoverTop > 945 ? 945 : iCoverTop;
iCoverRight = iCoverRight > 2041 ? 2041 : iCoverRight;
iCoverBottom = iCoverBottom > 945 ? 945 : iCoverBottom;
iCoverLeft = iCoverLeft > this.iWidth ? this.iWidth : iCoverLeft;
iCoverTop = iCoverTop > this.iHeight ? this.iHeight : iCoverTop;
iCoverRight = iCoverRight > this.iWidth ? this.iWidth : iCoverRight;
iCoverBottom = iCoverBottom > this.iHeight ? this.iHeight : iCoverBottom;
this.oWebControl.JS_RepairPartWindow(0, 0, 2041, 946); // 1
this.oWebControl.JS_RepairPartWindow(
0,
0,
this.iWidth + 1,
this.iHeight + 1
); // 1
if (iCoverLeft != 0) {
this.oWebControl.JS_CuttingPartWindow(0, 0, iCoverLeft, 946);
this.oWebControl.JS_CuttingPartWindow(0, 0, iCoverLeft, this.iHeight);
}
if (iCoverTop != 0) {
this.oWebControl.JS_CuttingPartWindow(0, 0, 2041, iCoverTop); //
this.oWebControl.JS_CuttingPartWindow(
0,
0,
this.iWidth + 1,
iCoverTop + 1
); //
}
if (iCoverRight != 0) {
this.oWebControl.JS_CuttingPartWindow(
2041 - iCoverRight,
this.iWidth - iCoverRight,
0,
iCoverRight,
946
this.iHeight
);
}
if (iCoverBottom != 0) {
this.oWebControl.JS_CuttingPartWindow(
0,
946 - iCoverBottom,
2041,
this.iHeight - iCoverBottom,
this.iWidth,
iCoverBottom
);
}
},
/**
* @param {*} cameraIndexCode :获取输入的监控点编号值必填
* @param {*} argument:api参数,
* argument属性cameraIndexCode优先级高于函数参数cameraIndexCode
*/
startPreview(cameraIndexCode, argument = {}) {
if (this.oWebControl) {
let params = {
cameraIndexCode: cameraIndexCode, //
streamMode: 0, //
transMode: 1, //
gpuMode: 1, //GPU
wndId: -1,
};
this.oWebControl
.JS_RequestInterface({
funcName: "startPreview",
argument: JSON.stringify({
...params,
...argument,
}),
})
.then(() => {});
}
},
//
stopAllPreview() {
this.oWebControl.JS_RequestInterface({
funcName: "stopAllPreview",
});
},
//()
/**
* idArr:播放窗口序号数组
*/
stopListPreview(idArr) {
let list = idArr.map((item) => {
return {
wndId: item,
};
});
this.oWebControl.JS_RequestInterface({
funcName: "stopMultiPlay",
argument: {
list,
},
});
},
/**
* @param {*} cameraIndexCode :获取输入的监控点编号值必填
* @param {*} startTime:开始时间
* @param {*} endTime:结束时间
* @param {*} recordLocation://0-1-
* @param {*} argument:api参数
* argument属性cameraIndexCode优先级高于函数参数cameraIndexCode
*/
startPlayBack(
cameraIndexCode,
startTime,
endTime,
recordLocation = 0,
argument = {}
) {
var startTimeStamp = new Date(
startTime.replace("-", "/").replace("-", "/")
).getTime(); //
var endTimeStamp = new Date(
endTime.replace("-", "/").replace("-", "/")
).getTime(); //
// var recordLocation = 0; //0-1-
var transMode = 1; //0-UDP1-TCP
var gpuMode = 0; //GPU0-1-
var wndId = -1; //2x2
this.oWebControl.JS_RequestInterface({
funcName: "startPlayback",
argument: JSON.stringify({
cameraIndexCode: cameraIndexCode, //
startTimeStamp: Math.floor(startTimeStamp / 1000).toString(), //
endTimeStamp: Math.floor(endTimeStamp / 1000).toString(), //
recordLocation: recordLocation, //0-1-
transMode: transMode, //0-UDP1-TCP
gpuMode: gpuMode, //GPU0-1-
wndId: wndId, //
...argument,
}),
});
},
//
stopAllPlayBack() {
this.oWebControl.JS_RequestInterface({
funcName: "stopAllPlayback",
});
},
//
//latyou2x2
setLayout(layout) {
this.oWebControl.JS_RequestInterface({
funcName: " setLayout",
argument: {
layout,
},
});
},
/**
* @param {*} text :文字
* @param {*} x:相对播放窗口左上角的横坐标起点
* @param {*} y:相对播放窗口左上角的纵坐标起点
* @param {*} fontSize:字体大小
* @param {*} color:字体颜色默认白色
* @param {*} argument:api参数
* argument属性cameraIndexCode优先级高于函数参数cameraIndexCode
*/
drawText(
text,
x = 5,
y = 5,
fontSize = 20,
color = 16777215,
argument = {}
) {
this.oWebControl.JS_RequestInterface({
funcName: "drawOSD",
argument: {
text,
x,
y,
fontSize,
color,
...argument,
},
});
},
//
setFullScreen() {
this.oWebControl.JS_RequestInterface({
funcName: "setFullScreen",
});
},
//退
exitFullScreen() {
this.oWebControl.JS_RequestInterface({
funcName: "exitFullScreen",
});
},
//
snapShot(argument = {}) {
this.oWebControl.JS_RequestInterface({
funcName: "snapShot",
argument,
});
},
//
hideWindow() {
this.oWebControl.JS_HideWnd();
},
//
showWindow() {
this.oWebControl.JS_ShowWnd();
},
//
setResize(width, height) {
this.oWebControl.JS_Resize(width, height);
this.setWndCover();
},
//
handleDownloadExe() {
this.dialogVisible = false;
if (this.downloadUrl) {
this.downloadFile(this.downloadUrl);
} else {
console.log("下载地址为空");
}
this.$emit("clickDownload");
},
//
downloadFile(url, fileName = "") {
const a = document.createElement("a");
a.style.display = "none";
if (fileName) {
a.setAttribute("download", fileName);
}
a.setAttribute("href", url);
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(a.href);
document.body.removeChild(a);
},
},
};
</script>
<style lang="scss" scoped>
.videoMain {
width: 100%;
height: 100%;
}
<style scoped>
</style>

View File

@ -146,11 +146,7 @@
<defective :message="this.defectiveData" />
</div>
<div style="width: 30%; margin-top: 50px">
<hkVideo
:cameraIndexCode="cameraIndexCode"
:objData="objData"
ref="hikVideo"
></hkVideo>
<hkVideo :monitoringNumber="cameraIndexCode"></hkVideo>
</div>
</div>
<div style="height: 50%; display: flex">
@ -251,6 +247,7 @@
</template>
<script>
import axios from "axios";
import { listWorkorder } from "@/api/mes/pro/workorder";
// import * as statisServer from "@/api/statistics";
@ -265,7 +262,7 @@ export default {
components: { defective, complete, ticket, hkVideo },
data() {
return {
cameraIndexCode: "", //wed
cameraIndexCode: "1a033f81-a404-4a66-aabf-cb0ead6cc2be", //wed
//wed
objData: {
appkey: "", //appkey

View File

@ -381,7 +381,7 @@
</el-col>
<el-col
:span="12"
v-if="this.form.code == 'CNC' || this.form.code == 'ROBOT'"
v-if="this.form.code == 'CNC'"
>
<el-form-item label="安全门状态" prop="securityDoor">
<el-radio-group v-model="form.securityDoor">
@ -548,9 +548,6 @@ export default {
nextProcessId: [
{ required: true, message: "工序ID不能为空", trigger: "blur" },
],
machineryTypeId: [
{ required: true, message: "设备类型不能为空", trigger: "blur" },
],
keyFlag: [
{
required: true,

View File

@ -461,6 +461,7 @@ import {
delWorkorder,
addWorkorder,
updateWorkorder,
deleteShopFace,
} from "@/api/mes/pro/workorder";
import { listGanttTaskList } from "@/api/mes/pro/protask";
import { listProductprocess } from "@/api/mes/pro/routeprocess";
@ -665,7 +666,8 @@ export default {
handleproductione(row) {
const routeId = row.workorderId || this.ids;
axios
.get("http://192.168.3.53:8077/manage/task/execute?ids=" + routeId)
.get("http://192.168.2.104:8077/manage/task/execute?ids=" + routeId)
// .get("http://192.168.3.53:8077/manage/task/execute?ids=" + routeId)
// .get("http://127.0.0.1:8077/manage/task/execute?ids=" + routeId)
.then((res) => {
if (res.data.code === 200) {
@ -681,7 +683,8 @@ export default {
Pendingproduction(row) {
const routeId = row.workorderId || this.ids;
axios
.get("http://192.168.3.53:8077/manage/task/suspension?id=" + routeId)
.get("http://192.168.2.104:8077/manage/task/suspension?id=" + routeId)
// .get("http://192.168.3.53:8077/manage/task/suspension?id=" + routeId)
// .get("http://127.0.0.1:8077/manage/task/suspension?id=" + routeId)
.then((res) => {
if (res.data.code === 200) {
@ -694,21 +697,21 @@ export default {
},
//
handleSuspended(row) {
// const workorderIds = row.workorderId || this.ids;
// this.$modal
// .confirm("")
// .then(function () {
// return dofinish(workorderIds); //
// })
// .then(() => {
// if (res.data.code === 200) {
// this.getList();
// this.$modal.msgSuccess("");
// } else {
// this.$message.error(res.data.msg);
// }
// })
// .catch(() => {});
const workorderId = row.workorderId || this.ids;
this.$modal
.confirm("确认删除数据项?")
.then(() => {
deleteShopFace({workorderId:workorderId}).then((response) => {
console.log(response);
if (response.code === 200) {
this.getList();
this.$modal.msgSuccess("删除成功");
} else {
this.$message.error(res.msg);
}
});
})
.catch(() => {});
},
selectable(row, index) {

View File

@ -434,6 +434,7 @@
</template>
<script>
import axios from "axios";
import {
listItemrecpt,
getItemrecpt,
@ -441,7 +442,6 @@ import {
addItemrecpt,
updateItemrecpt,
confirmItemrecpt,
storage,
} from "@/api/mes/wm/itemrecpt";
import { listItemrecptline } from "@/api/mes/wm/itemrecptline";
import { listMdItem } from "@/api/mes/md/pallet";
@ -693,8 +693,12 @@ export default {
listItemrecptline({ recptId: row.recptId }).then((response) => {
this.itemrecptlineList = response.rows;
});
var queryParams = {
pageNum: 1,
pageSize: 10000,
};
//
listMdItem(this.queryParams).then((response) => {
listMdItem(queryParams).then((response) => {
this.itemList = response.rows;
});
},
@ -707,7 +711,6 @@ export default {
}
this.perform.itemCode = data.itemCode;
this.perform.lineId = data.lineId;
this.perform.itemId = data.itemId;
},
selectTray(data) {
this.perform.palletId = data.proPalletId;
@ -715,11 +718,19 @@ export default {
},
submitFileForm() {
if (this.remainingquantity != 0) {
storage(this.perform).then((response) => {
axios
.get("http://192.168.2.104:8077/manage/matter/storageItem", {
params: this.perform,
})
.then((res) => {
if (res.data.code === 200) {
this.$modal.msgSuccess("入库成功");
this.warehousing = false;
this.getList();
this.selectEncoding();
} else {
this.$message.error(res.data.msg);
}
});
} else {
this.$message({

View File

@ -35,14 +35,16 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
"/prod-api": {
target: `http://192.168.3.53:8063`,
target: `http://192.168.2.104:8063`,
// target: `http://192.168.3.53:8063`,
changeOrigin: true,
// pathRewrite: {
// ['^' + process.env.VUE_APP_BASE_API]: ''
// }
},
"/ureport": {
target: `http://192.168.3.53:8063`,
target: `http://192.168.2.104:8063`,
// target: `http://192.168.3.53:8063`,
ws: false,
changeOrigin: true,
pathRewrite: {