|
|
<template>
|
|
|
<div class="waterMarkBox">
|
|
|
<div class="setWater">
|
|
|
<h4>批量水印下发命令生成</h4>
|
|
|
<div class="waterForm">
|
|
|
<div class="channelBox">
|
|
|
<h5>选择通道</h5>
|
|
|
<el-checkbox-group
|
|
|
v-model="checkList"
|
|
|
class="groupCheck"
|
|
|
@change="handleCheck"
|
|
|
>
|
|
|
<el-checkbox
|
|
|
v-for="item in channelList"
|
|
|
:label="item.id"
|
|
|
:key="item.id"
|
|
|
>{{ item.name }}</el-checkbox
|
|
|
>
|
|
|
</el-checkbox-group>
|
|
|
</div>
|
|
|
<div class="cmdidBox">
|
|
|
<h5>装置编号</h5>
|
|
|
<el-input
|
|
|
type="textarea"
|
|
|
:rows="18"
|
|
|
placeholder="请输入装置编号"
|
|
|
v-model="cmdidtextarea"
|
|
|
>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div class="leftWaterBox">
|
|
|
<h5>左侧水印</h5>
|
|
|
<el-input
|
|
|
type="textarea"
|
|
|
:rows="18"
|
|
|
placeholder="请输入左侧水印"
|
|
|
v-model="leftWatertextarea"
|
|
|
>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
<div class="rghtWaterBox">
|
|
|
<h5>右侧水印</h5>
|
|
|
<el-input
|
|
|
type="textarea"
|
|
|
:rows="18"
|
|
|
placeholder="请输入右侧水印"
|
|
|
v-model="rightWatertextarea"
|
|
|
>
|
|
|
</el-input>
|
|
|
</div>
|
|
|
</div>
|
|
|
<el-button type="primary" @click="handleSure">确 定</el-button>
|
|
|
<el-button type="primary" @click="copyShare">复 制</el-button>
|
|
|
<el-button class="mlspan" type="text"
|
|
|
><i>{{ issueCommands.length }}</i
|
|
|
>条命令</el-button
|
|
|
>
|
|
|
<div class="commandsBox" id="copy-content">
|
|
|
<div class="aaa" v-for="item in issueCommands" v-html="item"></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
export default {
|
|
|
name: "waterMark",
|
|
|
data() {
|
|
|
return {
|
|
|
channelList: [
|
|
|
{
|
|
|
id: 1,
|
|
|
name: "通道1",
|
|
|
},
|
|
|
{
|
|
|
id: 2,
|
|
|
name: "通道2",
|
|
|
},
|
|
|
{
|
|
|
id: 3,
|
|
|
name: "通道3",
|
|
|
},
|
|
|
{
|
|
|
id: 4,
|
|
|
name: "通道4",
|
|
|
},
|
|
|
],
|
|
|
checkList: [], //选中的通道
|
|
|
cmdidtextarea: "", //输入的值
|
|
|
cmdidArr: [],
|
|
|
leftWatertextarea: "", //输入的值
|
|
|
leftWaterArr: [],
|
|
|
rightWatertextarea: "", //输入的值
|
|
|
rightWaterArr: [],
|
|
|
issueCommands: [], //打印出来下发命令
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
//this.getWater();
|
|
|
},
|
|
|
methods: {
|
|
|
handleCheck(val) {
|
|
|
console.log(this.checkList);
|
|
|
},
|
|
|
handleSure() {
|
|
|
console.log(this.checkList);
|
|
|
if (this.checkList.length == 0) {
|
|
|
this.$message({
|
|
|
showClose: true,
|
|
|
message: "请选择通道号",
|
|
|
type: "warning",
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
if (this.cmdidtextarea !== "") {
|
|
|
this.cmdidArr = [...this.cmdidtextarea.trim().split("\n")]; //装置编号
|
|
|
} else {
|
|
|
this.$message({
|
|
|
showClose: true,
|
|
|
message: "请输入装置编号",
|
|
|
type: "warning",
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
if (this.leftWatertextarea !== "") {
|
|
|
this.leftWaterArr = [...this.leftWatertextarea.trim().split("\n")]; //左侧水印
|
|
|
} else {
|
|
|
this.$message({
|
|
|
showClose: true,
|
|
|
message: "请输入左侧水印",
|
|
|
type: "warning",
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
if (this.rightWatertextarea !== "") {
|
|
|
this.rightWaterArr = [...this.rightWatertextarea.trim().split("\n")]; //右侧水印
|
|
|
} else {
|
|
|
this.$message({
|
|
|
showClose: true,
|
|
|
message: "请输入右侧水印",
|
|
|
type: "warning",
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
console.log(this.cmdidArr);
|
|
|
console.log(this.leftWaterArr);
|
|
|
console.log(this.rightWaterArr);
|
|
|
this.issueCommands = [];
|
|
|
this.getWater();
|
|
|
},
|
|
|
getWater() {
|
|
|
for (let j = 0; j < this.checkList.length; j++) {
|
|
|
for (let i = 0; i < this.cmdidArr.length; i++) {
|
|
|
var command =
|
|
|
"/usr/local/bin/xympadmn --server=127.0.0.1 --port=6891 --act=osd --cmdid=" +
|
|
|
this.cmdidArr[i] +
|
|
|
" --flag=1 --channel=" +
|
|
|
this.checkList[j] +
|
|
|
' --leftBottom="' +
|
|
|
this.leftWaterArr[i] +
|
|
|
'" --rightBottom="' +
|
|
|
this.rightWaterArr[i] +
|
|
|
'" --clientid=5 --reqid=TS;' +
|
|
|
"<br/>" +
|
|
|
"sleep 1;" +
|
|
|
"<br/>" +
|
|
|
"/usr/local/bin/xympadmn --server=127.0.0.1 --port=6891 --act=capture --cmdid=" +
|
|
|
this.cmdidArr[i] +
|
|
|
" --channel=" +
|
|
|
this.checkList[j] +
|
|
|
" --preset=255 --type=0;" +
|
|
|
"<br/>" +
|
|
|
"sleep 1;";
|
|
|
this.issueCommands.push(command); //把命令push
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
copyShare() {
|
|
|
let div = document.getElementById("copy-content");
|
|
|
let range = "";
|
|
|
if (document.body.createTextRange) {
|
|
|
//兼容ie
|
|
|
range = document.body.createTextRange();
|
|
|
range.moveToElementText(div);
|
|
|
range.select();
|
|
|
} else if (window.getSelection) {
|
|
|
// 兼容非IE,比如Firefox/chrome
|
|
|
let selection = window.getSelection();
|
|
|
range = document.createRange();
|
|
|
range.selectNodeContents(div);
|
|
|
selection.removeAllRanges();
|
|
|
selection.addRange(range);
|
|
|
}
|
|
|
document.execCommand("Copy"); // 执行浏览器复制命令
|
|
|
console.log("已复制好,可贴粘");
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="less">
|
|
|
.waterMarkBox {
|
|
|
width: calc(100% - 24px);
|
|
|
height: calc(100% - 24px);
|
|
|
padding: 12px 12px;
|
|
|
background: #fff;
|
|
|
.setWater {
|
|
|
border: 1px solid #dddddd;
|
|
|
height: calc(100% - 24px);
|
|
|
padding: 12px;
|
|
|
border-radius: 4px;
|
|
|
.waterForm {
|
|
|
width: 100%;
|
|
|
height: 50%;
|
|
|
margin-top: 16px;
|
|
|
// background: #fcc;
|
|
|
display: flex;
|
|
|
.channelBox {
|
|
|
width: 150px;
|
|
|
border: 1px solid #dddddd;
|
|
|
padding: 12px;
|
|
|
border-radius: 4px;
|
|
|
margin-right: 8px;
|
|
|
.groupCheck {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
margin-top: 12px;
|
|
|
.el-checkbox {
|
|
|
height: 32px;
|
|
|
line-height: 32px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.cmdidBox {
|
|
|
width: 250px;
|
|
|
border: 1px solid #dddddd;
|
|
|
padding: 12px;
|
|
|
border-radius: 4px;
|
|
|
margin-right: 8px;
|
|
|
.el-textarea {
|
|
|
margin-top: 12px;
|
|
|
}
|
|
|
}
|
|
|
.leftWaterBox {
|
|
|
margin-right: 8px;
|
|
|
}
|
|
|
.leftWaterBox,
|
|
|
.rghtWaterBox {
|
|
|
flex: 1;
|
|
|
border: 1px solid #dddddd;
|
|
|
padding: 12px;
|
|
|
border-radius: 4px;
|
|
|
.el-textarea {
|
|
|
margin-top: 12px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.el-button {
|
|
|
margin-top: 4px;
|
|
|
}
|
|
|
.commandsBox {
|
|
|
width: auto;
|
|
|
height: calc(50% - 106px);
|
|
|
margin-top: 8px;
|
|
|
border: 1px solid #fcc;
|
|
|
overflow: auto;
|
|
|
padding: 8px;
|
|
|
border-radius: 4px;
|
|
|
}
|
|
|
.mlspan {
|
|
|
// margin-left: 24px;
|
|
|
// height: 32px;
|
|
|
// line-height: 32px;
|
|
|
// margin-top: 4px;
|
|
|
// display: inline-block;
|
|
|
font-size: 14px;
|
|
|
color: #000;
|
|
|
cursor: default;
|
|
|
i {
|
|
|
color: #169e8c;
|
|
|
font-weight: bold;
|
|
|
font-style: normal;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</style>
|