884 lines
68 KiB
HTML
884 lines
68 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<title>Soon Design</title>
|
|
<link rel="stylesheet" href="./layui/css/layui.css">
|
|
<link rel="stylesheet" href="./public/css/design.css">
|
|
<style>
|
|
/* ==================================================
|
|
1. 全局布局 (Flex 自适应:完美兼容 Windows/Mac)
|
|
================================================== */
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
.layui-fluid,
|
|
.layui-row {
|
|
height: 100%;
|
|
width: 100%;
|
|
overflow: hidden !important;
|
|
margin: 0;
|
|
padding: 0;
|
|
background-color: #1E1E1E;
|
|
/* 画布底色保持深黑 */
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
/* --- 左侧主区域 --- */
|
|
.col-left {
|
|
height: 100%;
|
|
display: flex !important;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
border-right: 1px solid #1E1E1E;
|
|
/* 分隔线 */
|
|
}
|
|
|
|
/* --- 右侧属性栏 (修复:恢复灰色背景) --- */
|
|
.col-right {
|
|
background-color: #31373D;
|
|
/* 【颜色修复】 */
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* --- 顶部工具栏 (修复:恢复灰色背景) --- */
|
|
.tools-bar {
|
|
background-color: #31373D;
|
|
/* 【颜色修复】 */
|
|
flex-shrink: 0;
|
|
/* 保持你原有的高度或内边距设定,如果有的话 */
|
|
}
|
|
|
|
/* --- 修复切换按钮被挤压换行的问题 --- */
|
|
#version_change {
|
|
white-space: nowrap;
|
|
/* 【按钮修复】禁止文字换行 */
|
|
flex-shrink: 0;
|
|
/* 【按钮修复】禁止被压缩 */
|
|
min-width: 60px;
|
|
/* 给一个最小宽度 */
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* 确保所有顶部图标容器不被压缩 */
|
|
.img-warp {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* --- 中间主要容器 --- */
|
|
.container {
|
|
flex: 1;
|
|
display: flex;
|
|
overflow: hidden;
|
|
height: 0;
|
|
min-height: 0;
|
|
}
|
|
|
|
/* 左侧工具箱 */
|
|
.container .left {
|
|
width: 50px;
|
|
flex-shrink: 0;
|
|
overflow-y: auto;
|
|
background-color: #31373D;
|
|
/* 保持灰色 */
|
|
-ms-overflow-style: none;
|
|
scrollbar-width: none;
|
|
}
|
|
|
|
.container .left::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
/* 右侧画布区域 */
|
|
.container .right {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
background-color: #1E252D;
|
|
/* 画布背景深色 */
|
|
position: relative;
|
|
}
|
|
|
|
/* 画布容器 */
|
|
#canvas-div {
|
|
flex: 1;
|
|
position: relative;
|
|
overflow: hidden;
|
|
width: 100%;
|
|
display: flex;
|
|
}
|
|
|
|
/* 画布滚动包裹层 */
|
|
.canvas-wrapper {
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: auto;
|
|
position: relative;
|
|
}
|
|
|
|
/* 底部状态栏 (X: Y:) */
|
|
.footer {
|
|
height: 30px;
|
|
background-color: #31373D;
|
|
color: #ccc;
|
|
padding-left: 10px;
|
|
flex-shrink: 0;
|
|
z-index: 100;
|
|
border-top: 1px solid #1E1E1E;
|
|
|
|
/* 2. 使用 Flex 布局来控制文字位置 */
|
|
display: flex;
|
|
align-items: center;
|
|
/* 让文字垂直居中 */
|
|
|
|
/* 3. 【核心修复】增加底部内边距,把文字往上顶 */
|
|
/* 这样文字距离窗口底部就有 10px 的安全距离,不会被切掉 */
|
|
padding-bottom: 5px;
|
|
|
|
/* 4. 兼容性设置 */
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* ==================================================
|
|
2. 对象列表样式 (Flex 修复:序号靠右,不遮挡)
|
|
================================================== */
|
|
.obj_list {
|
|
width: 100%;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
/* 这里的背景色也跟随父容器,或者设为透明 */
|
|
background-color: #31373D;
|
|
}
|
|
|
|
.layer-row {
|
|
display: flex !important;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
height: 36px;
|
|
padding: 0 5px;
|
|
cursor: pointer;
|
|
border-bottom: 1px solid #444;
|
|
/* 线条稍微深一点 */
|
|
background-color: transparent;
|
|
/* 默认透明,显示底色 */
|
|
color: #ccc;
|
|
font-size: 12px;
|
|
position: relative;
|
|
}
|
|
|
|
.layer-row:hover {
|
|
background-color: #4A525A;
|
|
/* 悬停颜色稍微亮一点 */
|
|
}
|
|
|
|
.layer-left {
|
|
display: flex;
|
|
align-items: center;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
max-width: 180px;
|
|
}
|
|
|
|
.layer-index {
|
|
min-width: 24px;
|
|
text-align: center;
|
|
color: #999;
|
|
border-left: 1px solid #444;
|
|
padding-left: 5px;
|
|
}
|
|
|
|
/* ==================================================
|
|
3. 标尺与其他基础样式 (保留)
|
|
================================================== */
|
|
|
|
/* 1. 保留:背景图样式 (不动) */
|
|
#source_front,
|
|
#source_front2,
|
|
#source_back {
|
|
width: 2787px;
|
|
height: 2787px;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.ruler-container {
|
|
position: relative;
|
|
background-color: #2C2C2C;
|
|
border: 1px solid #1E1E1E;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* 2. 替换:标尺样式 (改为 70% 透明 + 增加鼠标手势) */
|
|
.ruler-horizontal {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
height: 20px;
|
|
/* 改为 rgba 实现 70% 透明 */
|
|
background-color: rgba(44, 44, 44, 0.7) !important;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
z-index: 1000;
|
|
/* 鼠标移上去显示上下调整箭头,提示可拖拽 */
|
|
cursor: row-resize;
|
|
}
|
|
|
|
.ruler-vertical {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 20px;
|
|
/* 改为 rgba 实现 70% 透明 */
|
|
background-color: rgba(44, 44, 44, 0.7) !important;
|
|
border-right: 1px solid rgba(255, 255, 255, 0.1);
|
|
z-index: 1000;
|
|
/* 鼠标移上去显示左右调整箭头 */
|
|
cursor: col-resize;
|
|
}
|
|
|
|
.ruler-corner {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 20px;
|
|
height: 20px;
|
|
background-color: rgba(44, 44, 44, 0.7) !important;
|
|
border-right: 1px solid rgba(255, 255, 255, 0.1);
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
z-index: 1001;
|
|
}
|
|
|
|
/* 3. 新增:拖拽过程中的辅助线样式 */
|
|
.guide-line-drag {
|
|
position: absolute;
|
|
background-color: #00FFFF;
|
|
/* 青色高亮 */
|
|
z-index: 9999;
|
|
pointer-events: none;
|
|
/* 让鼠标穿透,不影响拖拽事件 */
|
|
box-shadow: 0 0 4px #00FFFF;
|
|
/* 发光效果 */
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="layui-fluid main" style="display: none">
|
|
<div class="layui-row" style="height: 100%;width: 100%">
|
|
<div class="col-right">
|
|
<div class="tools-bar right-bar">
|
|
|
|
<div class="mode2">
|
|
<div class="tool">
|
|
<img src="public/images/top24.png" id="top_alignment" language="t" zh="顶部对齐" ozh="頂部對齊"
|
|
en="Top Alignment" />
|
|
</div>
|
|
<div class="tool">
|
|
<img src="public/images/bottom24.png" id="bottom_alignment" language="t" zh="底部对齐"
|
|
ozh="底部對齊" en="Bottom Alignment" />
|
|
</div>
|
|
<div class="tool">
|
|
<img src="public/images/center_y24.png" id="center_y_alignment" language="t" zh="居中对齐"
|
|
ozh="居中對齊" en="Center Alignment" />
|
|
</div>
|
|
</div>
|
|
<div class="mode2" style="margin-left: 2px;border-right: 0px">
|
|
<div class="tool">
|
|
<img src="public/images/left24.png" id="left_alignment" language="t" zh="左对齐" ozh="左對齊"
|
|
en="Left Alignment" />
|
|
</div>
|
|
<div class="tool">
|
|
<img src="public/images/right24.png" id="right_alignment" language="t" zh="右对齐" ozh="右對齊"
|
|
en="Right Alignment" />
|
|
</div>
|
|
<div class="tool">
|
|
<img src="public/images/center_x24.png" id="center_x_alignment" language="t" zh="居中对齐"
|
|
ozh="居中對齊" en="Center Alignment" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="object_attribute">
|
|
<div class="component-title" zh="对象属性" ozh="對象屬性" en="Object Properties" language="m"></div>
|
|
<div>
|
|
<div class="component-line">
|
|
<span class="name" zh="类型:" ozh="類型:" en="Type:" language="m"></span>
|
|
<span id="component_type" zh="背景" ozh="背景" en="Background" language="m"></span>
|
|
</div>
|
|
<div id="base_control">
|
|
<div class="component-line">
|
|
<div class="ui-button" id="up_obj" language="m" zh="移至上层" ozh="移至上層" en="upper layer">
|
|
</div>
|
|
<div class="ui-button" id="down_obj" language="m" zh="移至下层" ozh="移至下層" en="upper layer">
|
|
</div>
|
|
<div class="pic_bg" id="set_bg" language="m" zh="设为背景" ozh="設爲背景"
|
|
en="Set as background">
|
|
</div>
|
|
<!-- <div class="pic_bg" id="vertical_obj" language="m" zh="垂直旋转" ozh="垂直旋轉" en="vertical rotation">
|
|
</div>
|
|
<div class="pic_bg" id="align_obj" language="m" zh="水平旋转" ozh="水平旋轉" en="vertical rotation">
|
|
</div> -->
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name">X:</span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 80px" id="text_x" />
|
|
|
|
<span class="name">Y:</span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 80px" id="text_y" />
|
|
<div style="height: 20px;width: 20px;display: inline-block;" class="ui-radio" id="lock">
|
|
<img src="public/images/unlock20.png" id="lock_img">
|
|
</div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name">H:</span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 80px" id="text_h" />
|
|
<span class="name">W:</span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 80px" id="text_w" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="角度:" ozh="角度:" en="Angle"></span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 80px" id="text_r" />
|
|
<img src="public/images/rotate20.png" language="t" zh="旋转90°" ozh="旋轉90°"
|
|
en="Rotate 90°" id="rotate" />
|
|
</div>
|
|
<!-- <div class="component-line">
|
|
<span class="name" language="m" zh="使用黑色带打印:" ozh="使用黑色帶打印:" en="Print use K:"></span>
|
|
<input type="checkbox" name="text_black" id="text_black" class="radio">
|
|
</div> -->
|
|
</div>
|
|
<div id="pic_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="透明度:" ozh="透明度:" en="Opacity:"></span>
|
|
<div id="pic_op"
|
|
style="display: inline-block;width: 150px;position: relative;top:-3px;left:5px;">
|
|
</div>
|
|
</div>
|
|
<!-- <div class="component-line">
|
|
<span class="name" language="m" zh="使用黑色带打印:" ozh="使用黑色帶打印:" en="Print use K:"></span>
|
|
<input type="checkbox" name="pic_black" id="pic_black" class="radio">
|
|
</div>
|
|
-->
|
|
</div>
|
|
<div id="out_pic_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字段名:" ozh="字段名:" en="Field Name:"></span>
|
|
<input type="text" id="out_pic_field_name" class="ui-input" style="width: 50%" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="透明度:" ozh="透明度:" en="Opacity:"></span>
|
|
<div id="out_pic_op"
|
|
style="display: inline-block;width: 150px;position: relative;top:-3px;left:5px;">
|
|
</div>
|
|
</div>
|
|
<!--
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="使用黑色带打印:" ozh="使用黑色帶打印:" en="Print use K:"></span>
|
|
<input type="checkbox" name="out_pic_black" id="out_pic_black" class="radio">
|
|
</div>
|
|
-->
|
|
</div>
|
|
<div id="text_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" style="position: relative;top:-45px" language="m" zh="文本:" ozh="文本:"
|
|
en="Text:">文本:</span>
|
|
<textarea rows="3" style="height: 60px" id="text_text"></textarea>
|
|
</div>
|
|
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字体:" ozh="字體:" en="Fonts:"></span>
|
|
<select class="ui-select" id="text_font_family">
|
|
</select>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字号:" ozh="字號:" en="Size:"></span>
|
|
<input min="1" max="600" step="0.5" lay-affix="number" type="number" class="ui-input"
|
|
style="width: 50%" id="text_size" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="颜色:" ozh="顏色:" en="Color:"></span>
|
|
<input type="color" id="text_color" class="input_color">
|
|
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="text_italics">
|
|
<img src="public/images/italics24.png">
|
|
</div>
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="text_underline">
|
|
<img src="public/images/underline24.png">
|
|
</div>
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="text_bold">
|
|
<img src="public/images/bold24.png">
|
|
</div>
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="text_linethrough">
|
|
<img src="public/images/linethrough24.png">
|
|
</div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="背景颜色:" ozh="背景顏色:" en="Background color:"></span>
|
|
<input type="color" id="text_back_color" class="input_color">
|
|
<div class="transparent-button" id="text_back_transparent" language="m" zh="透明" ozh="透明"
|
|
en="Transparent"></div>
|
|
</div>
|
|
</div>
|
|
<div id="circle_text_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" style="position: relative;top:-45px" language="m" zh="圆形文本:"
|
|
ozh="圆形文本:" en="Circle Text:">圆形文本:</span>
|
|
<textarea rows="3" style="height: 60px" id="circle_text_text"></textarea>
|
|
</div>
|
|
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字体:" ozh="字體:" en="Fonts:"></span>
|
|
<select class="ui-select" id="circle_text_font_family">
|
|
</select>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="中心辅助调整圆弧:" ozh="中心輔助調整圓弧:"
|
|
en="Adjust the arc using the center:"></span>
|
|
<input type="checkbox" name="circle_text_center" id="circle_text_center" class="radio">
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字号:" ozh="字號:" en="Size:"></span>
|
|
<div id="circle_text_size"
|
|
style="display: inline-block;width: 150px;position: relative;top:-3px;left:5px;">
|
|
</div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="直径:" ozh="直径:" en="Diameter:"></span>
|
|
<div id="circle_text_diameter"
|
|
style="display: inline-block;width: 150px;position: relative;top:-3px;left:5px;">
|
|
</div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="颜色:" ozh="顏色:" en="Color:"></span>
|
|
<input type="color" id="circle_text_color" class="input_color">
|
|
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="circle_text_italics">
|
|
<img src="public/images/italics24.png">
|
|
</div>
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="circle_text_bold">
|
|
<img src="public/images/bold24.png">
|
|
</div>
|
|
</div>
|
|
<!-- <div class="component-line">
|
|
<span class="name" language="m" zh="背景颜色:" ozh="背景顏色:" en="Background color:"></span>
|
|
<input type="color" id="circle_text_back_color" class="input_color">
|
|
<div class="transparent-button" id="circle_text_back_transparent" language="m" zh="透明" ozh="透明"
|
|
en="Transparent"></div>
|
|
</div> -->
|
|
</div>
|
|
<div id="out_text_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字段名:" ozh="字段名:" en="Field Name:"></span>
|
|
<input type="text" id="out_text_field_name" class="ui-input" style="width: 50%" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="示例数据" ozh="示例數據" en="Sample Text:"></span>
|
|
<input type="text" id="out_text_text" class="ui-input" style="width: 50%" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字体:" ozh="字體:" en="Font:"></span>
|
|
<select class="ui-select" id="out_text_font_family">
|
|
</select>
|
|
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字号:" ozh="字號:" en="Size:"></span>
|
|
<input min="1" max="600" step="0.5" lay-affix="number" type="number" class="ui-input"
|
|
style="width: 50%" id="out_text_size" />
|
|
</div>
|
|
<div class="component-line"
|
|
style="margin-left: 2px;display: flex; align-items: center;gap: 10px;">
|
|
<span class="name" language="m" zh="对齐方式:" ozh="對齊方式:" en="Alignment:"></span>
|
|
<div class="mode2"
|
|
style="margin-left: 2px;border: none;display: flex; align-items: center;gap: 10px;">
|
|
<div class="tool">
|
|
<img src="public/images/left24.png" id="out_left_alignment" language="t"
|
|
zh="左对齐" ozh="左對齊" en="Left Alignment" />
|
|
</div>
|
|
<div class="tool">
|
|
<img src="public/images/right24.png" id="out_right_alignment" language="t"
|
|
zh="右对齐" ozh="右對齊" en="Right Alignment" />
|
|
</div>
|
|
<div class="tool">
|
|
<img src="public/images/center_x24.png" id="out_center_alignment" language="t"
|
|
zh="居中对齐" ozh="居中對齊" en="Center Alignment" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="颜色:" ozh="顏色:" en="Color:"></span>
|
|
<input type="color" id="out_text_color" class="input_color">
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="out_text_italics">
|
|
<img src="public/images/italics24.png">
|
|
</div>
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="out_text_underline">
|
|
<img src="public/images/underline24.png">
|
|
</div>
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="out_text_bold">
|
|
<img src="public/images/bold24.png">
|
|
</div>
|
|
<div style="height: 24px;width: 24px;display: inline-block;position: relative;bottom: 4px;"
|
|
class="ui-radio" id="out_text_linethrough">
|
|
<img src="public/images/linethrough24.png">
|
|
</div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="背景颜色:" ozh="背景顏色:" en="Background color:"></span>
|
|
<input type="color" id="out_text_back_color" class="input_color">
|
|
<div class="transparent-button" id="out_text_back_transparent" language="m" zh="透明"
|
|
ozh="透明" en="Transparent"></div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="如果文本被截断,则作业失败" ozh="如果文本被截斷,則作業失敗"
|
|
en="If the text is truncated, the operation fails"></span>
|
|
<input type="checkbox" name="exceed" id="exceed" class="radio">
|
|
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="自动换行:" ozh="自動換行:" en="Automatic line feed:"></span>
|
|
<input type="checkbox" name="autoWrap" id="autoWrap" class="radio">
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="固定大小:" ozh="固定大小:" en="Fixed Size:"></span>
|
|
<input type="checkbox" name="fixSize" id="fixSize" class="radio">
|
|
</div>
|
|
</div>
|
|
<div id="rect_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="填充:" ozh="填充:" en="Fill:"></span>
|
|
<input type="color" id="rect_color" class="input_color">
|
|
<div class="transparent-button" id="rect_transparent" language="m" zh="透明" ozh="透明"
|
|
en="Transparent"></div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="边框:" ozh="邊框:" en="Border:"></span>
|
|
<input type="color" id="rect_stroke" class="input_color">
|
|
<div class="transparent-button" id="rect_stroke_transparent" language="m" zh="透明"
|
|
ozh="透明" en="Transparent"></div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="粗细:" ozh="粗細:" en="Thickness:"></span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 50px;height:25px;position:relative;bottom:2px"
|
|
id="rect_stroke_width" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="圆角:" ozh="圓角:" en="Radius:"></span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 50px;height:25px;position:relative;bottom:2px" id="rect_radius" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="透明度:" ozh="透明度:" en="Opacity:"></span>
|
|
<div id="rect_op"
|
|
style="display: inline-block;width: 150px;position: relative;top:-3px;left:5px;">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="line_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="颜色:" ozh="顏色:" en="Color:"></span>
|
|
<input type="color" id="line_color" class="input_color">
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="虚线间距:" ozh="虛線間距:" en="Spacing:"></span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 50%" id="line_dist" />
|
|
</div>
|
|
</div>
|
|
<div id="circle_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="填充:" ozh="填充:" en="Fill:"></span>
|
|
<input type="color" id="circle_color" class="input_color">
|
|
<div class="transparent-button" id="circle_transparent" language="m" zh="透明" ozh="透明"
|
|
en="Transparent"></div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="边框:" ozh="邊框:" en="Border:"></span>
|
|
<input type="color" id="circle_stroke" class="input_color">
|
|
<div class="transparent-button" id="circle_stroke_transparent" language="m" zh="透明"
|
|
ozh="透明" en="Transparent"></div>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="粗细:" ozh="粗細:" en="Thickness:"></span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 50px;height:25px;position:relative;bottom:2px"
|
|
id="circle_stroke_width" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="透明度:" ozh="透明度:" en="Opacity:"></span>
|
|
<div id="circle_op"
|
|
style="display: inline-block;width: 150px;position: relative;top:-3px;left:5px;">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="qrcode_Controll" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字段名:" ozh="字段名:" en="Field Name:"></span>
|
|
<input type="text" id="qrcode_field_name" class="ui-input" style="width: 50%" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="颜色:" ozh="顏色:" en="Color:"></span>
|
|
<input type="color" id="qrcode_color" class="input_color">
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="示例数据" ozh="示例數據" en="Sample Text:"></span>
|
|
<input type="text" id="qrcode_val" class="ui-input" style="width: 50%" />
|
|
</div>
|
|
</div>
|
|
<div id="barcode_controll" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字段名:" ozh="字段名:" en="Field Name:"></span>
|
|
<input type="text" id="barcode_field_name" class="ui-input" style="width: 50%" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="示例数据" ozh="示例數據" en="Sample Text:"></span>
|
|
<input type="text" id="barcode_val" class="ui-input" style="width: 50%" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="取消文字:" ozh="取消文字:" en="Cancel text:"></span>
|
|
<input type="checkbox" name="barcode_show" id="barcode_show" class="radio">
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字体:" ozh="字體:" en="Font:"></span>
|
|
<select class="ui-select" id="barcode_font_family">
|
|
</select>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字号:" ozh="字號:" en="Size:"></span>
|
|
<input min="1" max="600" step="0.5" lay-affix="number" type="number" class="ui-input"
|
|
style="width: 50%" id="barcode_size" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="颜色:" ozh="顏色:" en="Color:"></span>
|
|
<input type="color" id="barcode_color" class="input_color">
|
|
</div>
|
|
</div>
|
|
<div id="counter_control" class="control">
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字体:" ozh="字體:" en="Font:"></span>
|
|
<select class="ui-select" id="count_font_family">
|
|
</select>
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="字号:" ozh="字號:" en="Size:"></span>
|
|
<input min="1" max="600" step="0.5" lay-affix="number" type="number" class="ui-input"
|
|
style="width: 50%" id="count_size" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="颜色:" ozh="顏色:" en="Color:"></span>
|
|
<input type="color" id="counter_color" class="input_color">
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="起始:" ozh="起始:" en="Start:"></span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 50%" id="counter_start" />
|
|
</div>
|
|
<div class="component-line">
|
|
<span class="name" language="m" zh="增量:" ozh="增量:" en="Incremental:"></span>
|
|
<input type="text" oninput="value=value.replace(/[^\d]/g,'')" class="ui-input"
|
|
style="width: 50%" id="counter_add" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="obj_list">
|
|
<div class="component-title" language="m" zh="对象列表" ozh="對象列錶" en="Object List"></div>
|
|
<div class="obj_list">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-left" style="height: 100%">
|
|
<div class="tools-bar left-bar">
|
|
<div class="mode-left">
|
|
<div class="mode-warp">
|
|
<div class="img-warp" id="new">
|
|
<img src="public/images/newfile24.png" language="t" zh="新建模板 CTRL+N" ozh="新建模闆"
|
|
en="New template" />
|
|
</div>
|
|
<div class="img-warp" id="open">
|
|
<img src="public/images/open24.png" language="t" zh="打开模板 CTRL+O" ozh="打開模闆 CTRL+O"
|
|
en="Open Template CTRL+O" />
|
|
</div>
|
|
|
|
<div class="img-warp" id="save">
|
|
<img src="public/images/save24.png" language="t" zh="保存模板 CTRL+S" ozh="保存模闆 CTRL+S"
|
|
en="Save Template CTRL+S" />
|
|
</div>
|
|
<div class="img-warp" id="output">
|
|
<img src="public/images/output24.png" language="t" zh="另存为 CTRL+SHIFT+S"
|
|
ozh="另存為 CTRL+SHIFT+S" en="Save as CTRL+SHIFT+S" />
|
|
</div>
|
|
|
|
<div class="line"></div>
|
|
|
|
<div class="img-warp">
|
|
<img src="public/images/previous24.png" id="previous" language="t" zh="撤销 CTRL+Z"
|
|
ozh="撤銷 CTRL+Z" en="Revocation CTRL+Z" />
|
|
</div>
|
|
<div class="img-warp">
|
|
<img src="public/images/next24.png" id="next" language="t" zh="恢复 CTRL+Y"
|
|
ozh="恢復 CTRL+Y" en="Recovery CTRL+Y" />
|
|
</div>
|
|
<div class="img-warp">
|
|
<img src="public/images/clean24.png" id="clean" language="t" zh="清空 CTRL+SHIFT+DEL"
|
|
ozh="清空 CTRL+SHIFT+DEL" en="Clear CTRL+SHIFT+DEL" />
|
|
</div>
|
|
<div class="img-warp">
|
|
<img src="public/images/delete24.png" id="delete" language="t" zh="删除 CTRL+DEL"
|
|
ozh="刪除 CTRL+DEL" en="Delete CTRL+DEL" />
|
|
</div>
|
|
<div class="img-warp" id="copy">
|
|
<img src="public/images/copy24.png" language="t" zh="复制 CTRL+C" ozh="複製 CTRL+C"
|
|
en="Copy CTRL+C" />
|
|
</div>
|
|
<div class="img-warp" id="paste">
|
|
<img src="public/images/paste24.png" language="t" zh="粘贴 CTRL+V" ozh="粘貼 CTRL+V"
|
|
en="Paste CTRL+V" />
|
|
</div>
|
|
<div class="ui-button ui-button-active img-warp img-warp1" id="front_side">
|
|
<span language="m" zh="正面" ozh="正面" en="Front"></span>
|
|
</div>
|
|
<div class="ui-button img-warp img-warp1" id="back_side">
|
|
<span language="m" zh="背面" ozh="背面" en="Back"></span>
|
|
</div>
|
|
|
|
<div class="line"></div>
|
|
<div class="ui-button img-warp" id="version_change">
|
|
<span language="m" zh="切换" ozh="切换" en="Swap"></span>
|
|
</div>
|
|
|
|
<div class="line"></div>
|
|
|
|
<div class="img-warp">
|
|
<img src="public/images/about24.png" id="about" language="t" zh="关于我们" ozh="關於我們"
|
|
en="About Us" />
|
|
</div>
|
|
<div class="img-warp">
|
|
<img src="public/images/help24.png" id="help" language="t" zh="帮助文档" ozh="幫助文檔"
|
|
en="Help" />
|
|
</div>
|
|
|
|
<div class="line"></div>
|
|
<select class="ui-select" id="language_select" style="margin-left: 10px">
|
|
<option value='zh'>中文-简体</option>
|
|
<option value='ozh'>中文-繁體</option>
|
|
<option value='en'>English</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="mode3">
|
|
<button type="button" class="layui-btn layui-btn-primary white" id="display" language="m"
|
|
zh="预览效果" ozh="預覽效果" en="Display"></button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container">
|
|
<div class="left">
|
|
<div class="tool" language="t" zh="图片" ozh="圖片" en="Picture">
|
|
<img src="public/images/images.svg" id="addPic" />
|
|
</div>
|
|
<div class="tool" language="t" zh="合成图片" ozh="合成圖片" en="Synthetic Picture">
|
|
<img src="public/images/images_add.svg" id="addOutPic" />
|
|
</div>
|
|
<div class="tool" language="t" zh="文本" ozh="文本" en="Text">
|
|
<img src="public/images/text.svg" id="addText" />
|
|
</div>
|
|
<div class="tool" language="t" zh="圆形文本" ozh="圆形文本" en="Circle Text">
|
|
<img src="public/images/text3.svg" id="addCircleText" />
|
|
</div>
|
|
<div class="tool" language="t" zh="合成文本" ozh="合成文本" en="Synthetic Text">
|
|
<img src="public/images/text2.svg" id="addOutText" />
|
|
</div>
|
|
<div class="tool" language="t" zh="方块" ozh="方塊" en="Rect">
|
|
<img src="public/images/rect.svg" id="addRect" />
|
|
</div>
|
|
<div class="tool" language="t" zh="圆形" ozh="圓形" en="Circle">
|
|
<img src="public/images/round.svg" id="addCircle" />
|
|
</div>
|
|
<div class="tool" language="t" zh="直线" ozh="直線" en="Line">
|
|
<img src="public/images/line.svg" id="addLine" />
|
|
</div>
|
|
<div class="tool" language="t" zh="二维码" ozh="二維碼" en="QR Code">
|
|
<img src="public/images/qrcode.svg" id="addQrCode" />
|
|
</div>
|
|
<div class="tool" language="t" zh="条形码" ozh="條形碼" en="Bar Code">
|
|
<img src="public/images/barcode.svg" id="addBarCode" />
|
|
</div>
|
|
<div class="tool" language="t" zh="计数器" ozh="計數器" en="Counter">
|
|
<img src="public/images/counter.svg" id="addCounter" />
|
|
</div>
|
|
</div>
|
|
<div class="right" style="background-color: #1E252D">
|
|
<div style="background-color: #1E252D;" id="canvas-div">
|
|
<div class="canvas-wrapper">
|
|
<div class="ruler-corner"></div>
|
|
<canvas class="ruler-horizontal" id="ruler-h"></canvas>
|
|
<canvas class="ruler-vertical" id="ruler-v"></canvas>
|
|
<div class="canvas_box" style="margin-left: 20px; margin-top: 20px;">
|
|
<canvas id="canvas1"></canvas>
|
|
<canvas id="canvas2"></canvas>
|
|
</div>
|
|
</div>
|
|
<div class="canvas_bg">
|
|
<!-- 类型改变 -->
|
|
<img id="canvas_bg_img" class="canvas_bg_img" src="./public/images/bg_1.png" />
|
|
</div>
|
|
</div>
|
|
<div class="footer" style="background-color: #31373D">
|
|
<div id="posText" style="display: inline-block">X : Y : </div>
|
|
<div id="zoomSlide" style="width: 300px;display: none"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<canvas style="display: none" id="barcode"></canvas>
|
|
<!-- 类型改变 -->
|
|
<img id="source_front" src="./public/images/front_bg1_1.png" style="display: none" />
|
|
<img id="source_front2" src="./public/images/front_bg2_1.png" style="display: none" />
|
|
<img id="source_back" src="./public/images/back_bg_1.png" style="display: none" />
|
|
</div>
|
|
</div>
|
|
<script src="./public/js/fabric1.min.js"></script>
|
|
<script src="./public/js/guideLines1.js"></script>
|
|
<script src="./public/js/print.min.js"></script>
|
|
<script src="./public/js/crypto-js.min.js"></script>
|
|
<script src="./public/js/jspdf.umd.min.js"></script>
|
|
<script src="./layui/layui.js"></script>
|
|
<script>
|
|
// var _0x54d1=['C0jjCuq','uwDPAe8','DgvZDa','sKvWCLi','wfj1AM8','yMTer2e','xcTCkYaQkd86wW','sMXyC3i','jf0Qkq','C2jhvvO','s2P2zxK','rvPZr0K','yKjYu2W','t2zOzvq','Aw5WDxq','y2j2Axu','rMf0Cfe','D3vTCge','DgfIBgu','mJC2mvD0wwD0rG','sLHMtfe','zNvUy3rPB24GkG','sKrcrvC','uKTYCNm','y3rxqu4','z25Zwgy','wejKDg8','DxDWu0S','AMHbqu8','q2ndyuC','wgT2sM4','t0nsthu','zhD0D2u','y2HHAw4','ywrhDLy','z24XlMPZ','yKPkEe4','y29UC29Szq','yMLUza','z1Lpuwu','xcGGkLWP','wu5cv1C','u2LADKG','tu5ZDu8','tu9Msg4','sKjvAwO','B2jQzwn0','EMHcEhK','vvvgwKO','yu1Pseq','mc05ys16qs1AxW','BgvUz3rO','zxjYB3i','C3bSAxq','rgfkwvO','Bg9N','sKroAMu','Dg9tDhjPBMC','C3rYAw5N','lMPZyW','mti3wu1tzLPo','AufSAhC','EKDytMy','lI9SAwiVzgvZAq','uMLnDNe','Aw5MBW','zxHJzxb0Aw9U','Aejqu3e','v0zSEeu','zxH0zw5ZAw9UCW','mJK5ndu4Ahvuvwfj','vvbOtwO','yxbWBhK','mta4ndqXmwXTDMTiBq','AM51DwK','mw1bDxPmBa','vgjJqLe','rMnKz0W','wvDqD0m','yNL0zw5Vzgu','x19WCM90B19F','lI9SAwiVzhj3CW','DhjHy2u','tu1ysKy','DufgvKO','mJmXmJDczfHzswu','ys16qs1AxYrDwW','v0fzAva','mJiZmJmZn1LfCMz3va','zMCUzgW','zK5zrNy','mhW1Fdf8m3WYFa','AxDtvvm','rK5WzMS','qwD6Ahy','AvnNAfm','odGZnZK5z2fxvg9N','CNHgDwu','D2fYBG','ChjVDg90ExbL','lMrS','Dw5KzwzPBMvK','y29UC3rYDwn0BW','ndK5odeYEMXuq2jw','uejAA0W','yu5JALm','qwHUBNm','zNvUy3rPB24','sLLcuwK','mtrot0ncrgy','Aevmze4','Aw5PDa','DffKsw0'];function _0x4881c5(_0x2a9d3c,_0x2a124a,_0x5ec87a,_0x276bf1){return _0x17d8(_0x2a9d3c- -0x22a,_0x2a124a);}(function(_0x5a6ea4,_0x58a35b){function _0x2410af(_0xaee6c9,_0x4a474d,_0x36fea2,_0x5cb414){return _0x17d8(_0x5cb414- -0x80,_0xaee6c9);}function _0x4c95a4(_0x20f90a,_0x4cc94e,_0x20d509,_0x5c3a2d){return _0x17d8(_0x5c3a2d-0x1a,_0x20f90a);}while(!![]){try{var _0x380296=-parseInt(_0x2410af(0x198,0x189,0x15c,0x185))+parseInt(_0x2410af(0x163,0x16d,0x179,0x19c))+-parseInt(_0x4c95a4(0x22b,0x236,0x26f,0x23d))+parseInt(_0x4c95a4(0x227,0x206,0x230,0x212))*-parseInt(_0x2410af(0x176,0x164,0x180,0x14f))+parseInt(_0x2410af(0x196,0x190,0x1af,0x1a9))*-parseInt(_0x2410af(0x162,0x1b0,0x1ad,0x191))+-parseInt(_0x4c95a4(0x1eb,0x1e6,0x1fa,0x21c))*parseInt(_0x4c95a4(0x246,0x22f,0x222,0x221))+parseInt(_0x2410af(0x186,0x170,0x1b0,0x194));if(_0x380296===_0x58a35b)break;else _0x5a6ea4['push'](_0x5a6ea4['shift']());}catch(_0x2adc0a){_0x5a6ea4['push'](_0x5a6ea4['shift']());}}}(_0x54d1,-0xa1da*0xb+-0xda3cd+-0x1d1bf9*-0x1));var _0x3e5ca0=function(){var _0x467437=!![];return function(_0x278447,_0x275ebd){var _0x19a367=_0x467437?function(){function _0x5cc243(_0x20761f,_0x31d363,_0x530035,_0x33cb10){return _0x17d8(_0x33cb10-0x28e,_0x31d363);}if(_0x275ebd){var _0x15983c=_0x275ebd[_0x5cc243(0x487,0x47e,0x468,0x492)](_0x278447,arguments);return _0x275ebd=null,_0x15983c;}}:function(){};return _0x467437=![],_0x19a367;};}();(function(){function _0x498cb7(_0xfdf109,_0x28a9f3,_0x216674,_0x1634ae){return _0x17d8(_0x1634ae- -0xac,_0x216674);}function _0x270bfc(_0x5b1a61,_0x42a384,_0x263fb4,_0x202414){return _0x17d8(_0x42a384-0x209,_0x5b1a61);}var _0x5538bf={'bkDGa':_0x498cb7(0xec,0x102,0x10f,0x125)+_0x498cb7(0x16d,0x14d,0x132,0x138),'fNYFv':function(_0x4650cb,_0x177f13){return _0x4650cb(_0x177f13);},'iwSUS':_0x498cb7(0x159,0x175,0x164,0x17f),'FNpfk':function(_0x55c507,_0x2be00e){return _0x55c507+_0x2be00e;},'hELdN':_0x270bfc(0x3db,0x3e6,0x3b9,0x3f5),'zGXNf':function(_0xbe841f,_0x5612c7,_0x111f5d){return _0xbe841f(_0x5612c7,_0x111f5d);},'DaJYZ':function(_0x148407){return _0x148407();},'sBIqD':function(_0x497f58,_0x4b543f){return _0x497f58===_0x4b543f;},'CcCaG':_0x498cb7(0x144,0x13f,0x179,0x15a),'MNsuO':_0x498cb7(0x13f,0x103,0xfa,0x11e),'iSghS':function(_0x5d52e6,_0x933c22){return _0x5d52e6!==_0x933c22;},'TbcBQ':_0x498cb7(0x151,0x157,0x13d,0x124),'YWPwC':function(_0xaa719c,_0x495190){return _0xaa719c!==_0x495190;},'WAYiP':_0x498cb7(0x16e,0x126,0x13c,0x13f),'OCRLu':function(_0x4772af,_0x1b700b,_0x1c21cf){return _0x4772af(_0x1b700b,_0x1c21cf);}};_0x5538bf[_0x270bfc(0x3df,0x3e4,0x3fe,0x3d3)](_0x3e5ca0,this,function(){function _0xc6a192(_0x32875a,_0x1146ed,_0x53029c,_0x3d2c08){return _0x270bfc(_0x32875a,_0x1146ed-0xaa,_0x53029c-0x1b7,_0x3d2c08-0x46);}function _0x450946(_0x36be19,_0x26c7ad,_0x5a570e,_0x26f558){return _0x498cb7(_0x36be19-0x1ed,_0x26c7ad-0x124,_0x5a570e,_0x36be19- -0x288);}var _0x286c08={'FcdgL':_0x5538bf[_0x450946(-0x173,-0x14b,-0x1a9,-0x195)],'OfheT':function(_0x2d9530,_0x50134a){function _0x405861(_0x5295e8,_0x1dbfa7,_0xb88f4f,_0x56c004){return _0x450946(_0x5295e8-0x32d,_0x1dbfa7-0x89,_0x1dbfa7,_0x56c004-0x1dd);}return _0x5538bf[_0x405861(0x20f,0x205,0x240,0x211)](_0x2d9530,_0x50134a);},'bBrSl':_0x5538bf[_0xc6a192(0x4f5,0x4cb,0x4a8,0x4ab)],'RiMvq':function(_0x3b5e6e,_0xde13c3){function _0x1b8b0f(_0x5cc4a8,_0x17a932,_0x145518,_0x3145a6){return _0xc6a192(_0x5cc4a8,_0x17a932- -0x169,_0x145518-0xb7,_0x3145a6-0x11c);}return _0x5538bf[_0x1b8b0f(0x38a,0x363,0x332,0x387)](_0x3b5e6e,_0xde13c3);},'PBZkL':_0x5538bf[_0xc6a192(0x4f8,0x4dd,0x4e3,0x4f7)],'Agzhv':_0xc6a192(0x451,0x47d,0x4ac,0x471),'MMXJF':function(_0x4f3390,_0x121011,_0x11c69d){function _0x360c21(_0x5524af,_0x57ce98,_0x39d4c2,_0x41e36a){return _0xc6a192(_0x41e36a,_0x57ce98-0xb5,_0x39d4c2-0x4,_0x41e36a-0x1eb);}return _0x5538bf[_0x360c21(0x534,0x562,0x546,0x576)](_0x4f3390,_0x121011,_0x11c69d);},'adGvV':function(_0x39aa39){function _0xab4091(_0xe0647,_0x121f3a,_0x34fb8f,_0x52d024){return _0x450946(_0x121f3a-0x249,_0x121f3a-0x196,_0xe0647,_0x52d024-0x29);}return _0x5538bf[_0xab4091(0x134,0x107,0x132,0x11b)](_0x39aa39);}};if(_0x5538bf[_0xc6a192(0x4cd,0x4e0,0x503,0x4dd)](_0x450946(-0x12e,-0x157,-0x132,-0x134),_0x5538bf[_0xc6a192(0x49f,0x48c,0x495,0x496)])){var _0x33a05d=new RegExp(_0x5538bf[_0xc6a192(0x465,0x474,0x43e,0x44f)]),_0x4e151a=new RegExp(_0xc6a192(0x47c,0x475,0x484,0x465)+_0x450946(-0x122,-0x153,-0xf4,-0xea)+_0x450946(-0x146,-0x11e,-0x121,-0x115)+_0x450946(-0x170,-0x151,-0x18b,-0x146),'i'),_0xf27974=_0x3a2cda(_0x5538bf[_0xc6a192(0x4eb,0x4cb,0x4c3,0x4f0)]);if(!_0x33a05d[_0xc6a192(0x4c5,0x4e2,0x4bb,0x4d0)](_0x5538bf[_0xc6a192(0x4cd,0x4cc,0x4cc,0x4d5)](_0xf27974,_0x5538bf[_0xc6a192(0x4ae,0x4dd,0x4e6,0x4fd)]))||!_0x4e151a[_0xc6a192(0x4d8,0x4e2,0x4fb,0x4d4)](_0x5538bf[_0x450946(-0x11b,-0xf9,-0xff,-0xea)](_0xf27974,_0x5538bf[_0xc6a192(0x4cc,0x49a,0x477,0x4b7)])))_0x5538bf[_0x450946(-0x119,-0x125,-0x139,-0x109)](_0x5538bf[_0xc6a192(0x4be,0x4bb,0x4c4,0x497)],_0x5538bf[_0x450946(-0x12c,-0x131,-0x10e,-0x12e)])?_0x286c08[_0xc6a192(0x4cc,0x4c2,0x4df,0x497)](_0x5e863e,this,function(){var _0x25fdbf=new _0x9a3a0e(_0x286c08[_0x1a39ec(0x3f0,0x3be,0x3e9,0x3f6)]),_0x5f0e5f=new _0x15e086(_0x1a39ec(0x340,0x377,0x378,0x372)+_0x35330c(-0x3c,-0xc,-0x28,-0x3b)+_0x35330c(-0x18,-0x33,-0x4c,-0x56)+_0x35330c(-0x74,-0x85,-0x76,-0x52),'i');function _0x35330c(_0x315e4a,_0x176777,_0x30ddf7,_0x2ce6f0){return _0xc6a192(_0x176777,_0x30ddf7- -0x4ed,_0x30ddf7-0x197,_0x2ce6f0-0x9c);}var _0x495990=_0x286c08[_0x35330c(-0x80,-0x39,-0x71,-0x40)](_0x3086ef,_0x286c08[_0x1a39ec(0x34e,0x37d,0x39a,0x3a5)]);function _0x1a39ec(_0x22a9fa,_0x7d6274,_0x46522a,_0x3dbae1){return _0xc6a192(_0x3dbae1,_0x7d6274- -0xfe,_0x46522a-0x18a,_0x3dbae1-0x1b6);}!_0x25fdbf[_0x1a39ec(0x3fb,0x3e4,0x3f4,0x403)](_0x286c08[_0x35330c(-0x4b,-0x4e,-0x3e,-0x76)](_0x495990,_0x286c08[_0x1a39ec(0x3de,0x3d9,0x3e6,0x3cb)]))||!_0x5f0e5f[_0x35330c(-0x10,0x23,-0xb,0x7)](_0x286c08[_0x35330c(-0x55,-0x61,-0x3e,-0x12)](_0x495990,_0x286c08[_0x35330c(-0x2d,-0x13,-0x20,0x13)]))?_0x495990('0'):_0x1c5356();})():_0xf27974('0');else{if(_0x5538bf[_0x450946(-0x12a,-0x123,-0x15a,-0x128)](_0x5538bf[_0xc6a192(0x4da,0x4c6,0x4d8,0x4d1)],_0x5538bf[_0xc6a192(0x4cf,0x4c6,0x495,0x4bd)])){var _0x313692=function(){while(!![]){}};return _0x286c08[_0x450946(-0x156,-0x151,-0x14e,-0x13f)](_0x313692);}else _0x5538bf[_0x450946(-0x142,-0x136,-0x16a,-0x128)](_0x3a2cda);}}else _0x286c08[_0x450946(-0x16b,-0x137,-0x190,-0x197)](_0x284c6a,0xcf*0xb+-0xdf5+0x90*0x9);})();}());var _0x4e26a5=function(){var _0x418fb6=!![];return function(_0xce0cbc,_0x25b781){var _0x4eb873=_0x418fb6?function(){function _0xefac54(_0x5571c2,_0x2f3086,_0x1e8658,_0x5a7025){return _0x17d8(_0x5571c2- -0x20,_0x1e8658);}if(_0x25b781){var _0x369d4f=_0x25b781[_0xefac54(0x1e4,0x204,0x1ee,0x1cb)](_0xce0cbc,arguments);return _0x25b781=null,_0x369d4f;}}:function(){};return _0x418fb6=![],_0x4eb873;};}(),_0x5e40a5=_0x4e26a5(this,function(){var _0x3122d3={};_0x3122d3[_0x2d5d73(0x526,0x568,0x53b,0x530)]=function(_0x52d8cf,_0x29db7a){return _0x52d8cf!==_0x29db7a;},_0x3122d3[_0x2d5d73(0x513,0x52f,0x4ff,0x50b)]=_0x2baa7e(-0x2d,-0x13,0x8,0x11),_0x3122d3[_0x2baa7e(-0x41,-0x67,-0x40,-0x4f)]=function(_0x4eac1c,_0x377973){return _0x4eac1c===_0x377973;},_0x3122d3[_0x2d5d73(0x4f3,0x502,0x51e,0x4f6)]=_0x2baa7e(-0x1d,-0x4a,-0x75,-0x27),_0x3122d3[_0x2baa7e(-0x58,-0x58,-0x2e,-0x7a)]=function(_0x189c8b,_0x4da9c0){return _0x189c8b===_0x4da9c0;};function _0x2d5d73(_0x4c780e,_0x245bf6,_0x16f3f2,_0x12bd2f){return _0x17d8(_0x16f3f2-0x338,_0x245bf6);}_0x3122d3[_0x2d5d73(0x50b,0x50f,0x4fb,0x4f2)]=_0x2d5d73(0x55d,0x563,0x52b,0x53d),_0x3122d3[_0x2baa7e(-0x15,-0x3b,-0x29,-0x4)]=_0x2baa7e(-0x16,-0x37,-0x69,-0x42),_0x3122d3[_0x2baa7e(-0x64,-0x48,-0x55,-0x6e)]=_0x2d5d73(0x513,0x51e,0x528,0x50c);function _0x2baa7e(_0x27e1fb,_0x345ac4,_0x44ab0e,_0x199e2b){return _0x17d8(_0x345ac4- -0x234,_0x27e1fb);}_0x3122d3[_0x2d5d73(0x4e9,0x523,0x50a,0x519)]=_0x2d5d73(0x51e,0x4dc,0x506,0x517),_0x3122d3[_0x2baa7e(-0x46,-0xf,-0x29,0x26)]=_0x2baa7e(-0x41,-0x26,-0xd,-0x33),_0x3122d3[_0x2baa7e(-0x25,-0x5a,-0x7a,-0x6d)]=_0x2baa7e(-0x22,-0x1d,-0x4c,0xa)+'4';var _0x200451=_0x3122d3,_0xcdea0d=_0x200451[_0x2baa7e(-0x23,-0x31,-0x24,-0x1f)](typeof window,_0x200451[_0x2d5d73(0x4fb,0x4e5,0x4ff,0x506)])?window:_0x200451[_0x2d5d73(0x539,0x4e5,0x505,0x53c)](typeof process,_0x200451[_0x2baa7e(-0x42,-0x4e,-0x85,-0x42)])&&_0x200451[_0x2baa7e(-0x69,-0x67,-0x8d,-0x34)](typeof require,_0x2d5d73(0x53f,0x57c,0x55f,0x53e))&&_0x200451[_0x2d5d73(0x546,0x545,0x514,0x4f3)](typeof global,_0x200451[_0x2d5d73(0x4eb,0x51a,0x51e,0x4fe)])?global:this,_0x2f18ae=_0xcdea0d[_0x2baa7e(-0x1d,-0x53,-0x56,-0x3f)]=_0xcdea0d[_0x2d5d73(0x538,0x4e8,0x519,0x52c)]||{},_0x37e9fb=[_0x200451[_0x2d5d73(0x4cb,0x507,0x4fb,0x50f)],_0x2baa7e(-0xf,-0x16,0x12,-0x2d),_0x200451[_0x2baa7e(-0x72,-0x3b,-0x6,-0x4f)],_0x200451[_0x2d5d73(0x4ec,0x513,0x524,0x538)],_0x2d5d73(0x515,0x56a,0x536,0x51c),_0x200451[_0x2baa7e(-0x74,-0x62,-0x73,-0x82)],_0x200451[_0x2d5d73(0x544,0x564,0x55d,0x529)]];for(var _0x3d5a89=-0x346*-0x3+-0x3c1*-0x3+-0x1515;_0x3d5a89<_0x37e9fb[_0x2baa7e(-0x13,-0x45,-0x7c,-0x64)];_0x3d5a89++){var _0x2a0f5d=_0x200451[_0x2d5d73(0x4f8,0x50d,0x512,0x532)][_0x2d5d73(0x552,0x562,0x529,0x548)]('|'),_0x977933=-0x2643+-0x1ead*0x1+0x44f0;while(!![]){switch(_0x2a0f5d[_0x977933++]){case'0':var _0x39eda7=_0x4e26a5[_0x2baa7e(-0x3a,-0x12,0x25,-0x2c)+'r'][_0x2d5d73(0x554,0x531,0x557,0x556)][_0x2d5d73(0x52d,0x501,0x51a,0x4e7)](_0x4e26a5);continue;case'1':var _0x3a405f=_0x2f18ae[_0x15be98]||_0x39eda7;continue;case'2':_0x39eda7[_0x2d5d73(0x505,0x526,0x52d,0x4ff)]=_0x3a405f[_0x2baa7e(-0x1e,-0x3f,-0x5d,-0x1e)][_0x2baa7e(-0x5e,-0x52,-0x36,-0x21)](_0x3a405f);continue;case'3':_0x39eda7[_0x2baa7e(-0x3f,-0x28,-0x42,0x5)]=_0x4e26a5[_0x2baa7e(-0x88,-0x52,-0x69,-0x43)](_0x4e26a5);continue;case'4':_0x2f18ae[_0x15be98]=_0x39eda7;continue;case'5':var _0x15be98=_0x37e9fb[_0x3d5a89];continue;}break;}}});_0x5e40a5(),setInterval(function(){function _0x25bb8b(_0x21ce3f,_0x3b936d,_0x406900,_0x172948){return _0x17d8(_0x172948- -0xf2,_0x406900);}var _0x1bf4df={'aMiHD':function(_0x38b055){return _0x38b055();}};_0x1bf4df[_0x25bb8b(0x11b,0xcb,0xdb,0xfb)](_0x3a2cda);},-0xe*0x14+0x125*-0x6+0xbcb*0x2),require(_0x4881c5(-0x1f,-0x2b,-0x25,-0x57)),require[_0x4881c5(-0x29,-0x5c,-0x1e,-0x4)][_0x33d53c(-0x60,-0x87,-0xbc,-0x96)]=require[_0x4881c5(-0x29,0xa,-0x62,-0xc)][_0x33d53c(-0x8c,-0xf0,-0x93,-0xbf)];function _0x17d8(_0x3da19d,_0x47e7bf){return _0x17d8=function(_0x4743e5,_0x4b13a6){_0x4743e5=_0x4743e5-(-0xede*-0x1+0x6fd*0x2+0x11*-0x198);var _0x49c0e3=_0x54d1[_0x4743e5];if(_0x17d8['arrzyX']===undefined){var _0x2c063d=function(_0x3a6581){var _0x2c6bde='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4472bb='',_0x260e6b='';for(var _0x122b28=0x10e+0x1e6c+-0x3*0xa7e,_0x427f7e,_0x519eb5,_0x47f9cf=-0x4ff*-0x1+-0x27*-0xf3+-0x2a04;_0x519eb5=_0x3a6581['charAt'](_0x47f9cf++);~_0x519eb5&&(_0x427f7e=_0x122b28%(0x3b9+0x1e0c+0x1*-0x21c1)?_0x427f7e*(-0x1606+-0x21ce+-0x3814*-0x1)+_0x519eb5:_0x519eb5,_0x122b28++%(-0x9cd+-0x216e*0x1+0x2b3f*0x1))?_0x4472bb+=String['fromCharCode'](-0x1c67+-0x18c3+0x3629&_0x427f7e>>(-(-0x286+-0x80d+0xa95)*_0x122b28&0x62c*0x4+0x19c5+-0x326f)):-0x56d+-0x1*-0x2657+-0x20ea){_0x519eb5=_0x2c6bde['indexOf'](_0x519eb5);}for(var _0x113b64=0x266*0x10+0x972+-0x2fd2,_0x5b3a00=_0x4472bb['length'];_0x113b64<_0x5b3a00;_0x113b64++){_0x260e6b+='%'+('00'+_0x4472bb['charCodeAt'](_0x113b64)['toString'](-0x2*0xa93+-0x3*0xc32+0x39cc))['slice'](-(-0x1bd4+-0x15d*-0x1+-0x8d3*-0x3));}return decodeURIComponent(_0x260e6b);};_0x17d8['FZpduY']=_0x2c063d,_0x3da19d=arguments,_0x17d8['arrzyX']=!![];}var _0x569fb8=_0x54d1[-0x1*0x2615+0x989+0xfc*0x1d],_0x5824bb=_0x4743e5+_0x569fb8,_0x316f72=_0x3da19d[_0x5824bb];return!_0x316f72?(_0x49c0e3=_0x17d8['FZpduY'](_0x49c0e3),_0x3da19d[_0x5824bb]=_0x49c0e3):_0x49c0e3=_0x316f72,_0x49c0e3;},_0x17d8(_0x3da19d,_0x47e7bf);}try{require(_0x33d53c(-0xbb,-0x85,-0xd8,-0xbb)+_0x33d53c(-0xb6,-0xe3,-0xd7,-0xd7));}catch(_0x13ce75){require(_0x33d53c(-0x99,-0xdf,-0x87,-0xa9)+_0x33d53c(-0x85,-0xb0,-0xcd,-0xa1));}function _0x33d53c(_0x366130,_0x128058,_0x4fede0,_0x3a14d3){return _0x17d8(_0x3a14d3- -0x2b6,_0x4fede0);}function _0x3a2cda(_0x594b0d){function _0x50565c(_0x5d01e1,_0x49651a,_0xc018f7,_0x381289){return _0x4881c5(_0x49651a- -0x5f,_0xc018f7,_0xc018f7-0x146,_0x381289-0xbf);}function _0x2e93f8(_0x24b36c,_0x5ec51e,_0x50c024,_0x5d15f3){return _0x33d53c(_0x24b36c-0x116,_0x5ec51e-0x2d,_0x5ec51e,_0x24b36c- -0x12f);}var _0x5b2fac={'FatpQ':function(_0x138396,_0x5a405a){return _0x138396!==_0x5a405a;},'Ahnns':function(_0x594da8,_0x24273b){return _0x594da8+_0x24273b;},'bJJxN':function(_0x49c9b4,_0xe5f2ab){return _0x49c9b4/_0xe5f2ab;},'MOfHn':function(_0x3ba56d,_0xbc65d8){return _0x3ba56d===_0xbc65d8;},'YNBWW':function(_0x149f85,_0x354891){return _0x149f85%_0x354891;},'JEprR':function(_0x515d66,_0x5d06b7){return _0x515d66===_0x5d06b7;},'rxFue':_0x50565c(-0xc9,-0x93,-0xb4,-0x90),'tQdIm':function(_0xbd0452){return _0xbd0452();},'JYBQi':function(_0x4aad7e,_0xe03009){return _0x4aad7e/_0xe03009;},'ctWAN':function(_0x5e569e,_0x1ec22d){return _0x5e569e===_0x1ec22d;},'uwpSK':function(_0x50257b,_0x287cdb){return _0x50257b===_0x287cdb;},'cbviu':_0x50565c(-0xc6,-0xa0,-0x9d,-0x84),'gnsXf':_0x2e93f8(-0x225,-0x209,-0x213,-0x240),'Kjvey':function(_0x4f7119,_0x1051e1){return _0x4f7119(_0x1051e1);},'QgihO':_0x50565c(-0xcd,-0xb8,-0xd1,-0x92)+_0x50565c(-0xa3,-0xa5,-0x7f,-0x80),'sbGUZ':_0x2e93f8(-0x223,-0x207,-0x21d,-0x23a)+_0x50565c(-0x57,-0x77,-0x62,-0x63)+_0x50565c(-0x68,-0x9b,-0x65,-0xb7)+_0x2e93f8(-0x221,-0x1f9,-0x211,-0x23c),'JDNje':function(_0x1c8269,_0x9360c9){return _0x1c8269+_0x9360c9;},'WFlxE':_0x50565c(-0xb0,-0xac,-0x7b,-0xdd),'hBPSq':_0x2e93f8(-0x21b,-0x217,-0x1fe,-0x201),'uAFVJ':function(_0x385101,_0x259200){return _0x385101(_0x259200);},'gYOQe':_0x2e93f8(-0x212,-0x21c,-0x203,-0x1ec),'XBdto':_0x50565c(-0xd6,-0xb1,-0xd6,-0x9b)};function _0xfeaaea(_0x59ce58){function _0x33978f(_0x6ed69c,_0x41ef37,_0x533c77,_0x571697){return _0x50565c(_0x6ed69c-0x37,_0x533c77- -0xd7,_0x571697,_0x571697-0x156);}function _0x14e48f(_0xc2fdad,_0x19dc19,_0x3e8b94,_0x4c755c){return _0x2e93f8(_0x19dc19-0x3d5,_0x3e8b94,_0x3e8b94-0x6f,_0x4c755c-0x153);}if(_0x5b2fac[_0x14e48f(0x23f,0x220,0x21c,0x22a)](typeof _0x59ce58,_0x5b2fac[_0x14e48f(0x23d,0x20d,0x226,0x1e3)])){var _0x2747b5=function(){while(!![]){}};return _0x5b2fac[_0x14e48f(0x24b,0x21c,0x210,0x20d)](_0x2747b5);}else{if(_0x5b2fac[_0x33978f(-0x143,-0x134,-0x13a,-0x115)]('',_0x5b2fac[_0x14e48f(0x209,0x218,0x20d,0x248)](_0x59ce58,_0x59ce58))[_0x14e48f(0x1c3,0x1df,0x1ac,0x1a9)]!==0x260+0x1a76+0x79*-0x3d||_0x5b2fac[_0x14e48f(0x1cf,0x1c4,0x1df,0x197)](_0x59ce58%(-0x1*0x1439+0x3*-0xca8+-0x1*-0x3a45),-0x1*0x13e1+0x1e6+0x11fb)){if(_0x5b2fac[_0x33978f(-0x1a4,-0x163,-0x189,-0x156)](_0x14e48f(0x1b6,0x1d9,0x208,0x1f1),_0x5b2fac[_0x33978f(-0x15e,-0x1ad,-0x195,-0x1cc)]))debugger;else{var _0x25dce6=_0x28782b?function(){function _0x40f2f2(_0x3cc0d5,_0x5a4603,_0x1b44e6,_0x52e147){return _0x14e48f(_0x3cc0d5-0x1e7,_0x52e147-0x296,_0x1b44e6,_0x52e147-0x1a0);}if(_0x2bff5b){var _0x502562=_0x23b9ee[_0x40f2f2(0x4bd,0x458,0x496,0x48a)](_0x6e3413,arguments);return _0x1760db=null,_0x502562;}}:function(){};return _0x66d92f=![],_0x25dce6;}}else{if(_0x5b2fac[_0x14e48f(0x1b8,0x1c5,0x1ce,0x1a0)]===_0x5b2fac[_0x14e48f(0x1df,0x1c5,0x1bd,0x1da)])debugger;else{if(_0x5b2fac[_0x14e48f(0x1f4,0x1bc,0x1a8,0x1cd)](_0x5b2fac[_0x33978f(-0x11a,-0x13c,-0x13a,-0x108)]('',_0x5b2fac[_0x33978f(-0x196,-0x14b,-0x180,-0x17d)](_0x7a21f5,_0x2c2f76))[_0x14e48f(0x1aa,0x1df,0x1e8,0x1f7)],-0xa69+0x207*-0x12+0x5dd*0x8)||_0x5b2fac[_0x14e48f(0x1dc,0x1d8,0x20d,0x1e6)](_0x5b2fac[_0x14e48f(0x1c8,0x1d5,0x1ef,0x1cf)](_0x279f03,-0x546+0x2b+0x52f),-0xb*0x1c9+0x18a6+0x503*-0x1))debugger;else debugger;}}}_0x5b2fac[_0x33978f(-0x19d,-0x1a7,-0x19a,-0x194)](_0xfeaaea,++_0x59ce58);}try{if(_0x594b0d){if(_0x5b2fac[_0x2e93f8(-0x20e,-0x204,-0x239,-0x224)](_0x5b2fac[_0x50565c(-0x9b,-0xa6,-0xdc,-0x79)],_0x5b2fac[_0x2e93f8(-0x202,-0x235,-0x233,-0x1d2)]))return _0xfeaaea;else{var _0x4e1aea=_0x38eb83[_0x50565c(-0x57,-0x85,-0xb0,-0xab)](_0xc26a,arguments);return _0xdaa3e4=null,_0x4e1aea;}}else{if(_0x5b2fac[_0x2e93f8(-0x219,-0x1f8,-0x221,-0x242)](_0x5b2fac[_0x50565c(-0xa8,-0xb3,-0x88,-0xe9)],_0x5b2fac[_0x50565c(-0x81,-0xb3,-0x86,-0xb3)])){var _0x233ccc=new _0xe0710c(_0x5b2fac[_0x50565c(-0x45,-0x5b,-0x33,-0x85)]),_0x590d29=new _0x357c4f(_0x5b2fac[_0x50565c(-0xc9,-0xc4,-0xfc,-0xf3)],'i'),_0x2cff4e=_0x5b2fac[_0x2e93f8(-0x21f,-0x238,-0x202,-0x204)](_0x8b03e8,_0x50565c(-0x2b,-0x5e,-0x43,-0x93));!_0x233ccc[_0x50565c(-0x8e,-0x5a,-0x3f,-0x7e)](_0x5b2fac[_0x50565c(-0xb3,-0x95,-0x60,-0x9f)](_0x2cff4e,_0x5b2fac[_0x2e93f8(-0x1e5,-0x1ac,-0x216,-0x1d2)]))||!_0x590d29[_0x50565c(-0x82,-0x5a,-0x72,-0x6f)](_0x2cff4e+_0x5b2fac[_0x2e93f8(-0x1e6,-0x1b4,-0x1cb,-0x1e3)])?_0x5b2fac[_0x2e93f8(-0x1d5,-0x1bd,-0x1c7,-0x1d0)](_0x2cff4e,'0'):_0x3b53cb();}else _0xfeaaea(0x1*-0x709+0x7*0x201+-0x6fe);}}catch(_0x1d673a){}}
|
|
// require('bytenode');
|
|
// require.extensions['.dl'] = require.extensions['.jsc']; // 注册 .dl 扩展名
|
|
try {
|
|
// 尝试加载 design1.js 文件
|
|
require('./lib/design1.js');
|
|
} catch (error) {
|
|
// 如果 design1.js 加载失败,加载 drwsfg.dl 文件
|
|
require('./lib/drwsfg.dl');
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html> |