Security News
Research
Supply Chain Attack on Rspack npm Packages Injects Cryptojacking Malware
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
为VUE量身定制的一款弹窗类UI组件,不依赖任何第三方组件库,简单轻便
npm install new-dream
import "new-dream/css/main.css";
import newDream from "new-dream";
Vue.use(newDream);
import popup from "new-dream/popup/index.js";
Vue.prototype.$popup = popup;
import Rclick from "new-dream/Rclick/index.js";
Vue.use(Rclick);
<script>
export default {
methods:{
showHtml(){
this.$popup.html("http://win10.bauble.top")
}
}
}
</script>
var config = {
id: null, // 自定义ID,同一ID窗口只允许打开最多一个
title: "新窗口", // 窗口标题名称
theme: "theme", // 主题:css类名
url:"http://win10.bauble.top",//需要展示的网页
width: "720px",//窗口初始宽度
height: "500px",//窗口初始高度
showMin: true, // 是否显示 窗口最小化按钮
showMax: true, // 是否显示 窗口最大化按钮
open(appid) { return appid }, // 打开窗口的 回调函数
shut(appid) { return appid }, // 关闭窗口 回调函数
top(appid) { return appid }, // 窗口置顶 回调函数
min(appid) { return appid }, // 窗口最小化 回调函数
max(appid, isMax) { return { appid, isMax } }, // 窗口最大化/复原 回调函数
}
this.$popup.html(config)
<script>
import vueComponents from "@/components/vueComponents.vue";
export default {
methods:{
showComponents(){
this.$popup.vue(vueComponents,props:Object);
}
}
};
</script>
var config = {
id: null, // 自定义ID,同一ID窗口只允许打开最多一个
title: "新窗口", // 窗口标题名称
theme: "theme", // 主题:css类名
components: null,//vue组件;
props: {},//vue组件内所需要的参数
width: "720px",//窗口初始宽度
height: "500px",//窗口初始高度
showMin: true, // 是否显示 窗口最小化按钮
showMax: true, // 是否显示 窗口最大化按钮
open(appid) { return appid }, // 打开窗口的 回调函数
shut(appid) { return appid }, // 关闭窗口 回调函数
top(appid) { return appid }, // 窗口置顶 回调函数
min(appid) { return appid }, // 窗口最小化 回调函数
max(appid, isMax) { return { appid, isMax } }, // 窗口最大化/复原 回调函数
}
this.$popup.vue(config);
<script>
export default {
methods:{
showAlert(){
this.$popup.alert("提示消息!",function(appid){
console.log(appid)
})
}
}
}
</script>
var config = {
id: null, // 自定义ID,同一ID窗口只允许打开最多一个
title: "新窗口", // 窗口标题名称
theme: "theme", // 主题:css类名
msg: "提示信息!",//提示信息字符串;
align: "right",//按钮对齐方式:left/center/left
confirmName: "确定",// 确定按钮文字
confirm(appid) { return appid }, // 点击确定回调函数
}
this.$popup.alert(config)
<script>
export default {
methods:{
showPrompt(){
this.$popup.prompt("提示消息!",function(appid,value){
console.log(appid,value)
})
}
}
}
</script>
var config = {
id: null, // 自定义ID,同一ID窗口只允许打开最多一个
title: "新窗口", // 窗口标题名称
theme: "theme", // 主题:css类名
msg: "提示信息!",//提示信息字符串;
align: "right",//按钮对齐方式:left/center/left
value: "",//弹出输入框默认显示的文字
placeholder: "请输入",//弹出输入框默占位符
inputType: "text",//输入框类型
maxlength: null,//最大输入长度
inputReg: null,// 输入框验证正则
inputError: "输入格式不规范!",//输入框验证不合格提示
confirmName: "确定",// 确定按钮文字
confirm(appid,value) { return {appid,value} }, // 点击确定回调函数
cancelName: "取消", // 取消按钮文字
cancel(appid) { return appid },// 点击取消的回调函数
}
this.$popup.prompt(config)
<script>
export default {
methods:{
showMsg(){
this.$popup.msg("测试轻提示");
}
}
}
</script>
var config = {
id: null, // 自定义ID,同一ID窗口只允许打开最多一个
msg: "提示信息!",//提示信息字符串;
msgTime: 2000,// 停留时间;
}
this.$popup.msg(config);
<script>
export default {
methods:{
// 无需参数
shutWin1(){
this.$popup.shutWin()
},
// 也可以传一个回调函数
shutWin2(){)
this.$popup.shutWin(function(){
console.log("执行完成!")
})
},
}
}
</script>
// 传入一个id
this.$popup.shutWin(appid);
// 第二个参数还可以传一个回调函数
this.$popup.shutWin(appid,function(){});
// 传入一个id数组
this.$popup.shutWin([appid1,appid2,...])
// 第二个参数还可以传一个回调函数
this.$popup.shutWin([appid1,appid2,...],function(){})
<script>
export default {
methods:{
// 无需参数
restore(){
this.$popup.restore()
}
// 也可以传一个回调函数
restore(){
this.$popup.restore(function(){
console.log("执行完成!")
})
}
}
}
</script>
// 传入一个id (回调函数非必传)
this.$popup.restore(appid,function(){});
// 传入一个id数组 (回调函数非必传)
this.$popup.restore([appid1,appid2,...],function(){});
<!-- 外层窗口 -->
this.$popup.vue({
id: "vue-nested",
title: "内部嵌套弹窗",
components: vueComponent,
});
<!-- 内层窗口 -->
this.$popup.html({
url: "http://win10.bauble.top",
fatherId: "vue-nested",
});
Vue.prototype.$popup.config.title = "新窗口"; // 打开窗口默认名称
Vue.prototype.$popup.config.theme = "theme"; // 窗口默认主题类名
Vue.prototype.$popup.config.showMinList = true; // 是否在屏幕下方显示最小化的窗口列表
Vue.prototype.$popup.config.url = "win10.bauble.top"; // 默认iframe地址
Vue.prototype.$popup.config.components = components:Object;// 默认打开的VUE组件
Vue.prototype.$popup.config.props = {};// 打开的VUE组件默认传参
Vue.prototype.$popup.config.width = "720px";//html/vue弹窗的默认宽度
Vue.prototype.$popup.config.height = "500px";//html/vue弹窗的默认高度
Vue.prototype.$popup.config.showMin = true;//html/vue是否默认显示窗口最小化按钮
Vue.prototype.$popup.config.showMax = true;//html/vue是否默认显示窗口最大化按钮
Vue.prototype.$popup.config.open = function(appid) { return appid };//打开窗口的默认回调函数
Vue.prototype.$popup.config.shut = function(appid) { return appid };//关闭窗口的默认回调函数
Vue.prototype.$popup.config.top = function(appid) { return appid };//窗口置顶的默认回调函数
Vue.prototype.$popup.config.min = function(appid) { return appid };//窗口最小化的默认回调函数
Vue.prototype.$popup.config.max = function(appid, isMax) { return { appid, isMax } }, // 窗口最大化回调函数
Vue.prototype.$popup.config.msg = "提示信息!";// 默认提示信息
Vue.prototype.$popup.config.msgTime = 2000;// msg默认停留时间;
Vue.prototype.$popup.config.align = "right";//按钮默认显示位置
Vue.prototype.$popup.config.value = "";//prompt 输入框的默认值
Vue.prototype.$popup.config.placeholder = "请输入";//prompt 输入框的默认占位符
Vue.prototype.$popup.config.inputType = "text";//prompt 输入框的默认type
Vue.prototype.$popup.config.maxlength = null;//prompt 输入框长度限制
Vue.prototype.$popup.config.inputReg = null;//prompt 输入框验证正则
Vue.prototype.$popup.config.inputError = "输入格式不规范!";//prompt 输入框数据异常提示(inputReg存在时才生效)
Vue.prototype.$popup.config.confirmName = "确定";//默认确定按钮名称
Vue.prototype.$popup.config.confirm = function(appid,value){};//点击确定的默认回调函数(value仅在prompt时有值)
Vue.prototype.$popup.config.cancelName = "取消";//默认取消按钮名称
Vue.prototype.$popup.config.cancel = function(appid){};//点击取消的默认回调函数
<template>
<div class="win-box" @contextmenu="contextmenu">
<h2>右键点击事件触发区域</h2>
</div>
</template>
<script>
export default {
methods:{
contextmenu(event) {
// event必传
this.$Rclick.click(event);
},
}
}
</script>
<style scoped>
.win-box {
width: 100%;
height: 100vh;
position: relative;
border: 1px solid #000;
}
</style>
var config = {
backgroundColor: "#FFF",//菜单背景色
// 菜单列表
menus: [
{ label: "全屏", value: 1, color: "#444", fontWeight: 900 },
{ label: "退出全屏", value: 2, color: "#444" },
{ label: "关于", value: 3, color: "#d00" },
],
open() { return },//打开菜单成功回调函数
//点击菜单回调函数
click(value) {
if (value == 1) {
console.log("全屏")
} else if (value == 2) {
console.log("退出全屏")
} else if (value == 3) {
console.log("关于")
}
},
shut() { return },//关闭菜单回调函数
}
this.$Rclick.click(event,config);
<script>
export default {
methods: {
shutMenus() {
this.$Rclick.shutMenus();
},
},
};
</script>
Vue.prototype.$Rclick.config.backgroundColor = "#FFF";//默认菜单背景色
//默认菜单列表
Vue.prototype.$Rclick.config.menus = [
{ label: "全屏", value: 963280680, color: "#444", fontWeight: 900 },
{ label: "退出全屏", value: 707282658, color: "#444" },
{ label: "关于", value: 850674935, color: "#d00" },
];
Vue.prototype.$Rclick.config.open = function(){};//打开菜单成功默认回调函数
Vue.prototype.$Rclick.config.click = function(value){};//点击菜单选项的默认回调函数
Vue.prototype.$Rclick.config.shut = function(){};//关闭菜单时的默认回调函数
FAQs
The pop-up UI component of Vue2
The npm package new-dream receives a total of 4 weekly downloads. As such, new-dream popularity was classified as not popular.
We found that new-dream demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.
Security News
Sonar’s acquisition of Tidelift highlights a growing industry shift toward sustainable open source funding, addressing maintainer burnout and critical software dependencies.