前端功能完善

This commit is contained in:
kerwincui
2021-05-29 16:46:20 +08:00
parent d743f03b59
commit 603003909a
28 changed files with 1032 additions and 970 deletions

View File

@@ -1,7 +1,7 @@
# 开发环境配置 # 开发环境配置
ENV = 'development' ENV = 'development'
# 若依管理系统/开发环境 # 物美智能/开发环境
VUE_APP_BASE_API = '/dev-api' VUE_APP_BASE_API = '/dev-api'
# 路由懒加载 # 路由懒加载

View File

@@ -1,5 +1,5 @@
# 生产环境配置 # 生产环境配置
ENV = 'production' ENV = 'production'
# 若依管理系统/生产环境 # 物美智能/生产环境
VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '/prod-api'

View File

@@ -3,5 +3,5 @@ NODE_ENV = production
# 测试环境配置 # 测试环境配置
ENV = 'staging' ENV = 'staging'
# 若依管理系统/测试环境 # 物美智能/测试环境
VUE_APP_BASE_API = '/stage-api' VUE_APP_BASE_API = '/stage-api'

View File

@@ -1,7 +1,7 @@
{ {
"name": "ruoyi", "name": "ruoyi",
"version": "3.4.0", "version": "3.4.0",
"description": "若依管理系统", "description": "物美智能",
"author": "若依", "author": "若依",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询分组列表
export function listGroup(query) {
return request({
url: '/system/group/list',
method: 'get',
params: query
})
}
// 查询分组详细
export function getGroup(groupId) {
return request({
url: '/system/group/' + groupId,
method: 'get'
})
}
// 新增分组
export function addGroup(data) {
return request({
url: '/system/group',
method: 'post',
data: data
})
}
// 修改分组
export function updateGroup(data) {
return request({
url: '/system/group',
method: 'put',
data: data
})
}
// 删除分组
export function delGroup(groupId) {
return request({
url: '/system/group/' + groupId,
method: 'delete'
})
}
// 导出分组
export function exportGroup(query) {
return request({
url: '/system/group/export',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621329968340" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13110" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 682.666667a42.666667 42.666667 0 0 0-42.666667-42.666667h-85.333333v-85.333333a85.333333 85.333333 0 0 0-85.333333-85.333334h-128V384h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667V170.666667a42.666667 42.666667 0 0 0-42.666667-42.666667H384a42.666667 42.666667 0 0 0-42.666667 42.666667v170.666666a42.666667 42.666667 0 0 0 42.666667 42.666667h85.333333v85.333333H341.333333a85.333333 85.333333 0 0 0-85.333333 85.333334v85.333333H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667v170.666666a42.666667 42.666667 0 0 0 42.666667 42.666667h256a42.666667 42.666667 0 0 0 42.666666-42.666667v-170.666666a42.666667 42.666667 0 0 0-42.666666-42.666667H341.333333v-85.333333h341.333334v85.333333h-85.333334a42.666667 42.666667 0 0 0-42.666666 42.666667v170.666666a42.666667 42.666667 0 0 0 42.666666 42.666667h256a42.666667 42.666667 0 0 0 42.666667-42.666667z" p-id="13111"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621330505752" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21997" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 64v896H64V64h896z m-192 656H608V768H192v64h416v48H768V832h64v-64h-64v-48z m-352-288H256v48H192v64h64v48h160V544H832v-64H416v-48z m352-288H608V192H192v64h416v48H768V256h64V192h-64v-48z" p-id="21998"></path></svg>

After

Width:  |  Height:  |  Size: 594 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621330004465" class="icon" viewBox="0 0 1280 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13956" xmlns:xlink="http://www.w3.org/1999/xlink" width="250" height="200"><defs><style type="text/css"></style></defs><path d="M153.64583333 62h984.375C1176.87083362 62 1208.33333333 93.5 1208.33333333 132.3125v205.49999971c0 38.85000029-31.5 70.35000029-70.3125 70.35000029H153.64583333A70.3125 70.3125 0 0 1 83.33333333 337.85V132.3125C83.33333333 93.46249971 114.83333333 62 153.64583333 62z m104.92499971 138.44999971a34.61249971 34.61249971 0 0 0 0 69.22500029h212.02500058a34.61249971 34.61249971 0 0 0 0-69.22500029H258.57083304zM153.64583333 615.87500029h984.375c38.85000029 0 70.3125 31.5 70.3125 70.3125v205.5375C1208.33333333 930.53750029 1176.83333333 962 1138.02083333 962H153.64583333A70.3125 70.3125 0 0 1 83.33333333 891.6875v-205.49999971c0-38.85000029 31.5-70.35000029 70.3125-70.35000029z m104.92499971 138.4875a34.61249971 34.61249971 0 1 0 0 69.22499942h212.02500058a34.61249971 34.61249971 0 1 0 0-69.22499942H258.57083304z" p-id="13957"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621331033016" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30980" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M170.666667 469.333333h256a42.666667 42.666667 0 0 0 42.666666-42.666666V170.666667a42.666667 42.666667 0 0 0-42.666666-42.666667H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667v256a42.666667 42.666667 0 0 0 42.666667 42.666666z m426.666666 0h256a42.666667 42.666667 0 0 0 42.666667-42.666666V170.666667a42.666667 42.666667 0 0 0-42.666667-42.666667h-256a42.666667 42.666667 0 0 0-42.666666 42.666667v256a42.666667 42.666667 0 0 0 42.666666 42.666666zM170.666667 896h256a42.666667 42.666667 0 0 0 42.666666-42.666667v-256a42.666667 42.666667 0 0 0-42.666666-42.666666H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666666v256a42.666667 42.666667 0 0 0 42.666667 42.666667z m554.666666 0c94.122667 0 170.666667-76.544 170.666667-170.666667s-76.544-170.666667-170.666667-170.666666-170.666667 76.544-170.666666 170.666666 76.544 170.666667 170.666666 170.666667z" p-id="30981"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621330831603" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="27504" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M532.038 0.41c-72.843-2.902-147.462 9.781-219.07 40.003-71.612 30.223-132.753 74.836-181.491 129.051 72.432-1.391 145.775-16.28 216.488-46.125C418.679 93.494 480.512 51.335 532.038 0.41zM441.627 345.266c140.577-59.33 256.27-153.169 341.414-267.521a514.78 514.78 0 0 0-132.678-58.566 690.967 690.967 0 0 1-37.939 42.388c-64.186 66.02-140.084 117.793-225.586 153.878-85.501 36.086-175.545 54.347-267.624 54.274a690.536 690.536 0 0 1-56.838-2.386 514.877 514.877 0 0 0-50.598 135.916c141.329 18.772 289.272 1.346 429.849-57.983z" p-id="27505"></path><path d="M535.289 567.192c169.034-71.339 310.196-181.335 417.572-315.38-25.017-42.507-55.54-80.322-90.25-112.904a928.479 928.479 0 0 1-77.503 90.688c-86.659 89.14-189.144 159.047-304.608 207.777-115.463 48.729-237.044 73.388-361.367 73.29A929.085 929.085 0 0 1 0.091 502.928a508.255 508.255 0 0 0 17.933 143.423c170.947 16.582 348.231-7.821 517.265-79.159z" p-id="27506"></path><path d="M998.663 353.31a1163.002 1163.002 0 0 1-40.869 44.315c-109.135 112.26-238.211 200.3-383.632 261.674-145.423 61.376-298.545 92.431-455.112 92.308a1159.323 1159.323 0 0 1-60.26-1.633c28.541 54.499 65.835 101.974 109.398 141.4 154.353-5.572 310.229-38.724 460.763-102.255 150.535-63.533 283.03-152.085 394.704-258.787 2.141-58.714-5.854-118.554-24.992-177.022zM305.351 980.291c124.479 54.902 270.44 60.368 405.675 3.294 135.234-57.073 233.14-165.464 280.646-292.949-98.29 77.292-206.657 141.131-323.847 190.59-117.19 49.456-238.526 82.564-362.474 99.065z" p-id="27507"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622041062337" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9913" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M768 618.666667c-32 0-61.866667 10.666667-87.466667 27.733333l-53.333333-53.333333c21.333333-32 34.133333-70.4 34.133333-113.066667s-12.8-81.066667-34.133333-113.066667l44.8-44.8c19.2 12.8 40.533333 19.2 64 19.2 64 0 117.333333-53.333333 117.333333-117.333333S800 106.666667 736 106.666667 618.666667 160 618.666667 224c0 17.066667 4.266667 34.133333 10.666666 49.066667L584.533333 320c-34.133333-27.733333-76.8-42.666667-125.866666-42.666667-42.666667 0-81.066667 12.8-113.066667 34.133334l-78.933333-78.933334c6.4-12.8 10.666667-25.6 10.666666-40.533333 0-46.933333-38.4-85.333333-85.333333-85.333333S106.666667 145.066667 106.666667 192s38.4 85.333333 85.333333 85.333333c8.533333 0 17.066667-2.133333 25.6-4.266666l81.066667 81.066666c-27.733333 34.133333-42.666667 76.8-42.666667 125.866667s17.066667 89.6 42.666667 125.866667l-29.866667 29.866666c-14.933333-10.666667-34.133333-17.066667-55.466667-17.066666-59.733333 0-106.666667 46.933333-106.666666 106.666666s46.933333 106.666667 106.666666 106.666667 106.666667-46.933333 106.666667-106.666667c0-14.933333-2.133333-29.866667-8.533333-42.666666l34.133333-34.133334c32 21.333333 70.4 34.133333 113.066667 34.133334 46.933333 0 89.6-17.066667 125.866666-42.666667l55.466667 55.466667c-12.8 21.333333-19.2 46.933333-19.2 74.666666 0 83.2 66.133333 149.333333 149.333333 149.333334s149.333333-66.133333 149.333334-149.333334S851.2 618.666667 768 618.666667zM192 213.333333c-12.8 0-21.333333-8.533333-21.333333-21.333333s8.533333-21.333333 21.333333-21.333333 21.333333 8.533333 21.333333 21.333333-8.533333 21.333333-21.333333 21.333333z m160 298.666667c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32 32 14.933333 32 32-14.933333 32-32 32z m106.666667 0c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32 32 14.933333 32 32-14.933333 32-32 32z m106.666666 0c-17.066667 0-32-14.933333-32-32s14.933333-32 32-32 32 14.933333 32 32-14.933333 32-32 32zM768 853.333333c-46.933333 0-85.333333-38.4-85.333333-85.333333s38.4-85.333333 85.333333-85.333333 85.333333 38.4 85.333333 85.333333-38.4 85.333333-85.333333 85.333333z" p-id="9914"></path></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621330095828" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16776" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M954.88 237.568c0-60.416-56.832-109.568-126.464-109.568H195.584c-70.144 0-126.464 49.152-126.464 109.568v548.352c0 60.416 56.832 109.568 126.464 109.568h632.832c70.144 0 126.464-49.152 126.464-109.568V237.568z m-803.84-28.16c11.776-10.24 28.16-16.384 45.056-15.872h632.832c34.816 0 63.488 14.336 63.488 44.544v246.784h-50.176l-54.272-47.104c-12.288-10.752-32.256-10.752-44.544 0-3.584 3.072-6.144 6.656-7.68 10.752l-38.912 101.888L604.16 390.144c-7.68-13.312-26.624-18.944-42.496-12.288-7.168 3.072-12.288 8.192-15.36 14.336l-92.16 199.68-101.376-307.2c-4.608-14.336-22.528-23.04-38.912-18.944-8.704 2.048-15.872 7.168-19.456 14.336l-117.76 204.288H133.12V247.808c-1.024-14.336 6.144-28.16 17.92-38.4z m725.504 611.84c-7.68 7.68-31.232 9.728-48.128 9.728H195.584c-16.896 0-32.768-5.632-45.056-15.872s-18.432-24.064-18.432-38.912v-236.544h63.488c11.776 0 23.04-5.632 28.16-15.36l90.112-156.16 104.448 316.416c3.584 11.264 15.36 19.456 28.672 19.968h1.536c12.8 0 24.576-6.656 29.184-17.408L578.56 468.992l95.232 164.864c7.68 13.312 26.624 18.944 42.496 12.288 7.68-3.072 13.312-8.704 15.872-15.872l47.104-122.368 27.136 23.552c6.144 5.12 13.824 8.192 22.528 8.192h62.976v236.544c0 14.336-9.728 40.448-14.336 44.544l-1.024 0.512z" p-id="16777"></path></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622135369729" class="icon" viewBox="0 0 1122 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19568" xmlns:xlink="http://www.w3.org/1999/xlink" width="219.140625" height="200"><defs><style type="text/css"></style></defs><path d="M561.152 910.336c-7.68 0-25.088-13.824-53.248-41.984-27.648-28.16-41.472-45.568-41.472-53.248 0-12.288 11.776-22.528 35.84-30.72s43.52-12.8 59.392-12.8c15.872 0 35.328 4.096 59.392 12.8s35.84 18.432 35.84 30.72c0 7.68-13.824 25.6-41.472 53.248-29.184 28.16-46.592 41.984-54.272 41.984z" fill="#e6e6e6" p-id="19569" data-spm-anchor-id="a313x.7781069.0.i63" class="selected"></path><path d="M715.264 755.712c-0.512 0-8.192-4.608-23.04-14.336-14.336-9.728-33.792-18.944-57.856-28.672-24.064-9.728-48.64-14.336-73.216-14.336-24.576 0-49.152 4.608-73.216 14.336-24.064 9.728-43.52 18.944-57.856 28.672-14.336 9.728-22.016 14.336-23.04 14.336-6.656 0-24.576-14.336-53.248-43.008s-43.008-46.08-43.008-53.248c0-5.12 2.048-9.216 5.632-13.312 29.696-29.184 67.072-52.224 112.128-69.12s89.088-25.088 133.12-25.088c44.032 0 88.064 8.192 133.12 25.088 45.056 16.896 82.432 39.936 112.128 69.12 3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-29.696 28.672-47.104 43.008-54.272 43.008z" fill="#e6e6e6" p-id="19570" data-spm-anchor-id="a313x.7781069.0.i64" class="selected"></path><path d="M871.424 600.064c-4.096 0-8.704-1.536-13.312-4.608-51.712-39.936-99.84-69.632-143.872-88.064s-95.232-28.16-153.088-28.16c-32.256 0-65.024 4.096-97.28 12.8S402.944 510.464 378.88 522.24c-24.064 11.776-45.568 23.552-65.024 35.328s-34.304 22.016-45.056 30.208c-11.264 8.192-16.896 12.8-17.92 12.8-6.656 0-24.064-14.336-52.736-43.008s-43.008-46.08-43.008-53.248c0-4.608 2.048-8.704 5.632-12.8 50.176-50.176 111.104-89.088 182.784-117.248 71.68-27.648 143.872-41.472 217.088-41.472s145.408 13.824 217.088 41.472c71.68 27.648 132.608 67.072 182.784 117.248 3.584 3.584 5.632 8.192 5.632 12.8 0 6.656-14.336 24.576-43.008 53.248s-45.056 42.496-51.712 42.496z" fill="#e6e6e6" p-id="19571" data-spm-anchor-id="a313x.7781069.0.i65" class="selected"></path><path d="M1026.048 445.44c-4.096 0-8.192-1.536-12.8-5.12-68.096-59.904-138.752-104.96-212.48-135.168-73.216-30.208-153.6-45.568-240.128-45.568-87.04 0-166.912 15.36-240.128 45.568S176.64 380.416 108.544 440.32c-4.096 3.584-8.192 5.12-12.8 5.12-6.656 0-24.064-14.336-52.736-43.008S0 356.352 0 349.184c0-5.12 2.048-9.216 5.632-13.312C76.8 265.216 161.792 210.432 260.096 171.52s198.656-58.368 301.056-58.368 202.752 19.456 301.056 58.368 183.296 93.696 254.464 164.352c3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-28.672 28.672-46.592 43.008-53.248 43.008z" fill="#e6e6e6" p-id="19572" data-spm-anchor-id="a313x.7781069.0.i66" class="selected"></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622135369729" class="icon" viewBox="0 0 1122 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19568" xmlns:xlink="http://www.w3.org/1999/xlink" width="219.140625" height="200"><defs><style type="text/css"></style></defs><path d="M561.152 910.336c-7.68 0-25.088-13.824-53.248-41.984-27.648-28.16-41.472-45.568-41.472-53.248 0-12.288 11.776-22.528 35.84-30.72s43.52-12.8 59.392-12.8c15.872 0 35.328 4.096 59.392 12.8s35.84 18.432 35.84 30.72c0 7.68-13.824 25.6-41.472 53.248-29.184 28.16-46.592 41.984-54.272 41.984z" fill="#67c23a" p-id="19569" data-spm-anchor-id="a313x.7781069.0.i63" class="selected"></path><path d="M715.264 755.712c-0.512 0-8.192-4.608-23.04-14.336-14.336-9.728-33.792-18.944-57.856-28.672-24.064-9.728-48.64-14.336-73.216-14.336-24.576 0-49.152 4.608-73.216 14.336-24.064 9.728-43.52 18.944-57.856 28.672-14.336 9.728-22.016 14.336-23.04 14.336-6.656 0-24.576-14.336-53.248-43.008s-43.008-46.08-43.008-53.248c0-5.12 2.048-9.216 5.632-13.312 29.696-29.184 67.072-52.224 112.128-69.12s89.088-25.088 133.12-25.088c44.032 0 88.064 8.192 133.12 25.088 45.056 16.896 82.432 39.936 112.128 69.12 3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-29.696 28.672-47.104 43.008-54.272 43.008z" fill="#e6e6e6" p-id="19570" data-spm-anchor-id="a313x.7781069.0.i64" class=""></path><path d="M871.424 600.064c-4.096 0-8.704-1.536-13.312-4.608-51.712-39.936-99.84-69.632-143.872-88.064s-95.232-28.16-153.088-28.16c-32.256 0-65.024 4.096-97.28 12.8S402.944 510.464 378.88 522.24c-24.064 11.776-45.568 23.552-65.024 35.328s-34.304 22.016-45.056 30.208c-11.264 8.192-16.896 12.8-17.92 12.8-6.656 0-24.064-14.336-52.736-43.008s-43.008-46.08-43.008-53.248c0-4.608 2.048-8.704 5.632-12.8 50.176-50.176 111.104-89.088 182.784-117.248 71.68-27.648 143.872-41.472 217.088-41.472s145.408 13.824 217.088 41.472c71.68 27.648 132.608 67.072 182.784 117.248 3.584 3.584 5.632 8.192 5.632 12.8 0 6.656-14.336 24.576-43.008 53.248s-45.056 42.496-51.712 42.496z" fill="#e6e6e6" p-id="19571" data-spm-anchor-id="a313x.7781069.0.i65" class=""></path><path d="M1026.048 445.44c-4.096 0-8.192-1.536-12.8-5.12-68.096-59.904-138.752-104.96-212.48-135.168-73.216-30.208-153.6-45.568-240.128-45.568-87.04 0-166.912 15.36-240.128 45.568S176.64 380.416 108.544 440.32c-4.096 3.584-8.192 5.12-12.8 5.12-6.656 0-24.064-14.336-52.736-43.008S0 356.352 0 349.184c0-5.12 2.048-9.216 5.632-13.312C76.8 265.216 161.792 210.432 260.096 171.52s198.656-58.368 301.056-58.368 202.752 19.456 301.056 58.368 183.296 93.696 254.464 164.352c3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-28.672 28.672-46.592 43.008-53.248 43.008z" fill="#e6e6e6" p-id="19572" data-spm-anchor-id="a313x.7781069.0.i66" class=""></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622135369729" class="icon" viewBox="0 0 1122 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19568" xmlns:xlink="http://www.w3.org/1999/xlink" width="219.140625" height="200"><defs><style type="text/css"></style></defs><path d="M561.152 910.336c-7.68 0-25.088-13.824-53.248-41.984-27.648-28.16-41.472-45.568-41.472-53.248 0-12.288 11.776-22.528 35.84-30.72s43.52-12.8 59.392-12.8c15.872 0 35.328 4.096 59.392 12.8s35.84 18.432 35.84 30.72c0 7.68-13.824 25.6-41.472 53.248-29.184 28.16-46.592 41.984-54.272 41.984z" fill="#67c23a" p-id="19569" data-spm-anchor-id="a313x.7781069.0.i63" class="selected"></path><path d="M715.264 755.712c-0.512 0-8.192-4.608-23.04-14.336-14.336-9.728-33.792-18.944-57.856-28.672-24.064-9.728-48.64-14.336-73.216-14.336-24.576 0-49.152 4.608-73.216 14.336-24.064 9.728-43.52 18.944-57.856 28.672-14.336 9.728-22.016 14.336-23.04 14.336-6.656 0-24.576-14.336-53.248-43.008s-43.008-46.08-43.008-53.248c0-5.12 2.048-9.216 5.632-13.312 29.696-29.184 67.072-52.224 112.128-69.12s89.088-25.088 133.12-25.088c44.032 0 88.064 8.192 133.12 25.088 45.056 16.896 82.432 39.936 112.128 69.12 3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-29.696 28.672-47.104 43.008-54.272 43.008z" fill="#67c23a" p-id="19570" data-spm-anchor-id="a313x.7781069.0.i64" class="selected"></path><path d="M871.424 600.064c-4.096 0-8.704-1.536-13.312-4.608-51.712-39.936-99.84-69.632-143.872-88.064s-95.232-28.16-153.088-28.16c-32.256 0-65.024 4.096-97.28 12.8S402.944 510.464 378.88 522.24c-24.064 11.776-45.568 23.552-65.024 35.328s-34.304 22.016-45.056 30.208c-11.264 8.192-16.896 12.8-17.92 12.8-6.656 0-24.064-14.336-52.736-43.008s-43.008-46.08-43.008-53.248c0-4.608 2.048-8.704 5.632-12.8 50.176-50.176 111.104-89.088 182.784-117.248 71.68-27.648 143.872-41.472 217.088-41.472s145.408 13.824 217.088 41.472c71.68 27.648 132.608 67.072 182.784 117.248 3.584 3.584 5.632 8.192 5.632 12.8 0 6.656-14.336 24.576-43.008 53.248s-45.056 42.496-51.712 42.496z" fill="#e6e6e6" p-id="19571" data-spm-anchor-id="a313x.7781069.0.i65" class=""></path><path d="M1026.048 445.44c-4.096 0-8.192-1.536-12.8-5.12-68.096-59.904-138.752-104.96-212.48-135.168-73.216-30.208-153.6-45.568-240.128-45.568-87.04 0-166.912 15.36-240.128 45.568S176.64 380.416 108.544 440.32c-4.096 3.584-8.192 5.12-12.8 5.12-6.656 0-24.064-14.336-52.736-43.008S0 356.352 0 349.184c0-5.12 2.048-9.216 5.632-13.312C76.8 265.216 161.792 210.432 260.096 171.52s198.656-58.368 301.056-58.368 202.752 19.456 301.056 58.368 183.296 93.696 254.464 164.352c3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-28.672 28.672-46.592 43.008-53.248 43.008z" fill="#e6e6e6" p-id="19572" data-spm-anchor-id="a313x.7781069.0.i66" class=""></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622135369729" class="icon" viewBox="0 0 1122 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19568" xmlns:xlink="http://www.w3.org/1999/xlink" width="219.140625" height="200"><defs><style type="text/css"></style></defs><path d="M561.152 910.336c-7.68 0-25.088-13.824-53.248-41.984-27.648-28.16-41.472-45.568-41.472-53.248 0-12.288 11.776-22.528 35.84-30.72s43.52-12.8 59.392-12.8c15.872 0 35.328 4.096 59.392 12.8s35.84 18.432 35.84 30.72c0 7.68-13.824 25.6-41.472 53.248-29.184 28.16-46.592 41.984-54.272 41.984z" fill="#67c23a" p-id="19569" data-spm-anchor-id="a313x.7781069.0.i63" class="selected"></path><path d="M715.264 755.712c-0.512 0-8.192-4.608-23.04-14.336-14.336-9.728-33.792-18.944-57.856-28.672-24.064-9.728-48.64-14.336-73.216-14.336-24.576 0-49.152 4.608-73.216 14.336-24.064 9.728-43.52 18.944-57.856 28.672-14.336 9.728-22.016 14.336-23.04 14.336-6.656 0-24.576-14.336-53.248-43.008s-43.008-46.08-43.008-53.248c0-5.12 2.048-9.216 5.632-13.312 29.696-29.184 67.072-52.224 112.128-69.12s89.088-25.088 133.12-25.088c44.032 0 88.064 8.192 133.12 25.088 45.056 16.896 82.432 39.936 112.128 69.12 3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-29.696 28.672-47.104 43.008-54.272 43.008z" fill="#67c23a" p-id="19570" data-spm-anchor-id="a313x.7781069.0.i64" class="selected"></path><path d="M871.424 600.064c-4.096 0-8.704-1.536-13.312-4.608-51.712-39.936-99.84-69.632-143.872-88.064s-95.232-28.16-153.088-28.16c-32.256 0-65.024 4.096-97.28 12.8S402.944 510.464 378.88 522.24c-24.064 11.776-45.568 23.552-65.024 35.328s-34.304 22.016-45.056 30.208c-11.264 8.192-16.896 12.8-17.92 12.8-6.656 0-24.064-14.336-52.736-43.008s-43.008-46.08-43.008-53.248c0-4.608 2.048-8.704 5.632-12.8 50.176-50.176 111.104-89.088 182.784-117.248 71.68-27.648 143.872-41.472 217.088-41.472s145.408 13.824 217.088 41.472c71.68 27.648 132.608 67.072 182.784 117.248 3.584 3.584 5.632 8.192 5.632 12.8 0 6.656-14.336 24.576-43.008 53.248s-45.056 42.496-51.712 42.496z" fill="#67c23a" p-id="19571" data-spm-anchor-id="a313x.7781069.0.i65" class="selected"></path><path d="M1026.048 445.44c-4.096 0-8.192-1.536-12.8-5.12-68.096-59.904-138.752-104.96-212.48-135.168-73.216-30.208-153.6-45.568-240.128-45.568-87.04 0-166.912 15.36-240.128 45.568S176.64 380.416 108.544 440.32c-4.096 3.584-8.192 5.12-12.8 5.12-6.656 0-24.064-14.336-52.736-43.008S0 356.352 0 349.184c0-5.12 2.048-9.216 5.632-13.312C76.8 265.216 161.792 210.432 260.096 171.52s198.656-58.368 301.056-58.368 202.752 19.456 301.056 58.368 183.296 93.696 254.464 164.352c3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-28.672 28.672-46.592 43.008-53.248 43.008z" fill="#e6e6e6" p-id="19572" data-spm-anchor-id="a313x.7781069.0.i66" class=""></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622135369729" class="icon" viewBox="0 0 1122 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="19568" xmlns:xlink="http://www.w3.org/1999/xlink" width="219.140625" height="200"><defs><style type="text/css"></style></defs><path d="M561.152 910.336c-7.68 0-25.088-13.824-53.248-41.984-27.648-28.16-41.472-45.568-41.472-53.248 0-12.288 11.776-22.528 35.84-30.72s43.52-12.8 59.392-12.8c15.872 0 35.328 4.096 59.392 12.8s35.84 18.432 35.84 30.72c0 7.68-13.824 25.6-41.472 53.248-29.184 28.16-46.592 41.984-54.272 41.984z" fill="#67c23a" p-id="19569" data-spm-anchor-id="a313x.7781069.0.i63" class="selected"></path><path d="M715.264 755.712c-0.512 0-8.192-4.608-23.04-14.336-14.336-9.728-33.792-18.944-57.856-28.672-24.064-9.728-48.64-14.336-73.216-14.336-24.576 0-49.152 4.608-73.216 14.336-24.064 9.728-43.52 18.944-57.856 28.672-14.336 9.728-22.016 14.336-23.04 14.336-6.656 0-24.576-14.336-53.248-43.008s-43.008-46.08-43.008-53.248c0-5.12 2.048-9.216 5.632-13.312 29.696-29.184 67.072-52.224 112.128-69.12s89.088-25.088 133.12-25.088c44.032 0 88.064 8.192 133.12 25.088 45.056 16.896 82.432 39.936 112.128 69.12 3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-29.696 28.672-47.104 43.008-54.272 43.008z" fill="#67c23a" p-id="19570" data-spm-anchor-id="a313x.7781069.0.i64" class="selected"></path><path d="M871.424 600.064c-4.096 0-8.704-1.536-13.312-4.608-51.712-39.936-99.84-69.632-143.872-88.064s-95.232-28.16-153.088-28.16c-32.256 0-65.024 4.096-97.28 12.8S402.944 510.464 378.88 522.24c-24.064 11.776-45.568 23.552-65.024 35.328s-34.304 22.016-45.056 30.208c-11.264 8.192-16.896 12.8-17.92 12.8-6.656 0-24.064-14.336-52.736-43.008s-43.008-46.08-43.008-53.248c0-4.608 2.048-8.704 5.632-12.8 50.176-50.176 111.104-89.088 182.784-117.248 71.68-27.648 143.872-41.472 217.088-41.472s145.408 13.824 217.088 41.472c71.68 27.648 132.608 67.072 182.784 117.248 3.584 3.584 5.632 8.192 5.632 12.8 0 6.656-14.336 24.576-43.008 53.248s-45.056 42.496-51.712 42.496z" fill="#67c23a" p-id="19571" data-spm-anchor-id="a313x.7781069.0.i65" class="selected"></path><path d="M1026.048 445.44c-4.096 0-8.192-1.536-12.8-5.12-68.096-59.904-138.752-104.96-212.48-135.168-73.216-30.208-153.6-45.568-240.128-45.568-87.04 0-166.912 15.36-240.128 45.568S176.64 380.416 108.544 440.32c-4.096 3.584-8.192 5.12-12.8 5.12-6.656 0-24.064-14.336-52.736-43.008S0 356.352 0 349.184c0-5.12 2.048-9.216 5.632-13.312C76.8 265.216 161.792 210.432 260.096 171.52s198.656-58.368 301.056-58.368 202.752 19.456 301.056 58.368 183.296 93.696 254.464 164.352c3.584 3.584 5.632 8.192 5.632 13.312 0 6.656-14.336 24.576-43.008 53.248-28.672 28.672-46.592 43.008-53.248 43.008z" fill="#67c23a" p-id="19572" data-spm-anchor-id="a313x.7781069.0.i66" class="selected"></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -35,7 +35,7 @@ export default {
}, },
data() { data() {
return { return {
title: '若依管理系统', title: '物美智能',
logo: logoImg logo: logoImg
} }
} }

View File

@@ -1,5 +1,5 @@
module.exports = { module.exports = {
title: '若依管理系统', title: '物美智能设备',
/** /**
* 侧边栏主题 深色主题theme-dark浅色主题theme-light * 侧边栏主题 深色主题theme-dark浅色主题theme-light

View File

@@ -1,68 +1,26 @@
<template> <template>
<div class="app-container home"> <div class="app-container home">
<el-row :gutter="20">
<el-col :sm="24" :lg="24">
<blockquote class="text-warning" style="font-size: 14px">
领取阿里云通用云产品1888优惠券
<br />
<el-link
href="https://www.aliyun.com/minisite/goods?userCode=brki8iof"
type="primary"
target="_blank"
>https://www.aliyun.com/minisite/goods?userCode=brki8iof</el-link
>
<br />
领取腾讯云通用云产品2860优惠券
<br />
<el-link
href="https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console"
type="primary"
target="_blank"
>https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console</el-link
>
<br />
阿里云服务器折扣区
<el-link href="http://aly.ruoyi.vip" type="primary" target="_blank"
>>点我进入</el-link
>
&nbsp;&nbsp;&nbsp; 腾讯云服务器秒杀区
<el-link href="http://txy.ruoyi.vip" type="primary" target="_blank"
>>点我进入</el-link
><br />
<h4 class="text-danger">
云产品通用红包可叠加官网常规优惠使用(仅限新用户)
</h4>
</blockquote>
<hr />
</el-col>
</el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :sm="24" :lg="12" style="padding-left: 20px"> <el-col :sm="24" :lg="12" style="padding-left: 20px">
<h2>若依后台管理框架</h2> <h2>wumei-smart</h2>
<p> <p><a href="http://www.wumei.live" target="_blank">物美智能</a>是一套开源的软硬件系统可用于二次开发和学习快速搭建自己的智能家居系统 硬件工程师可以把自己的设备集成到系统软件工程师可以使用项目中的设备熟悉软硬件交互</p>
一直想做一款后台管理系统看了很多优秀的开源项目但是发现没有合适自己的于是利用空闲休息时间开始自己写一套后台系统如此有了若依管理系统她可以用于所有的Web应用程序如网站管理后台网站会员中心CMSCRMOA等等当然您也可以对她进行深度定制以做出更强系统所有前端后台代码封装过后十分精简易上手出错概率低同时支持移动客户端访问系统会陆续更新一些实用功能 <p>服务端使用spring boot前端vue移动端android数据库mysql硬件交互基于mqtt协议使用EMQ代理服务器</p>
</p>
<p>
<b>当前版本:</b> <span>v{{ version }}</span>
</p>
<p>
<el-tag type="danger">&yen;免费开源</el-tag>
</p>
<p> <p>
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
icon="el-icon-cloudy" icon="el-icon-cloudy"
plain plain
@click="goTarget('https://gitee.com/y_project/RuoYi-Vue')" @click="goTarget('https://gitee.com/kerwincui/wumei-smart')"
>访问码云</el-button >访问码云</el-button
> >
<el-button <el-button
size="mini" size="mini"
icon="el-icon-s-home" icon="el-icon-s-home"
plain plain
@click="goTarget('http://ruoyi.vip')" @click="goTarget('http://www.wumei.live/')"
>访问主页</el-button >访问主页</el-button
> >
</p> </p>
@@ -98,424 +56,26 @@
<li>Quill</li> <li>Quill</li>
<li>...</li> <li>...</li>
</ul> </ul>
</el-col>
<el-col :span="6">
<h4>安卓端技术</h4>
<ul>
<li>xui</li>
<li>...</li>
</ul>
</el-col>
<el-col :span="6">
<h4>硬件端技术</h4>
<ul>
<li>esp-idf</li>
<li>...</li>
</ul>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<el-divider /> <el-divider />
<el-row :gutter="20">
<el-col :xs="24" :sm="24" :md="12" :lg="8">
<el-card class="update-log">
<div slot="header" class="clearfix">
<span>联系信息</span>
</div>
<div class="body">
<p>
<i class="el-icon-s-promotion"></i> 官网<el-link
href="http://www.ruoyi.vip"
target="_blank"
>http://www.ruoyi.vip</el-link
>
</p>
<p>
<i class="el-icon-user-solid"></i> QQ群<s>满937441</s>
<s>满887144332</s> <s>满180251782</s>
<a href="https://jq.qq.com/?_wv=1027&k=4WWwqNxN" target="_blank"
> 104180207</a
>
</p>
<p>
<i class="el-icon-chat-dot-round"></i> 微信<a
href="javascript:;"
>/ *若依</a
>
</p>
<p>
<i class="el-icon-money"></i> 支付宝<a
href="javascript:;"
class="支付宝信息"
>/ *若依</a
>
</p>
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8">
<el-card class="update-log">
<div slot="header" class="clearfix">
<span>更新日志</span>
</div>
<el-collapse accordion>
<el-collapse-item title="v3.4.0 - 2021-02-22">
<ol>
<li>代码生成模板支持主子表</li>
<li>表格右侧工具栏组件支持显隐列</li>
<li>图片组件添加预览&移除功能</li>
<li>Excel注解支持Image图片导出</li>
<li>操作按钮组调整为朴素按钮样式</li>
<li>代码生成支持文件上传组件</li>
<li>代码生成日期控件区分范围</li>
<li>代码生成数据库文本类型生成表单文本域</li>
<li>用户手机邮箱&菜单组件修改允许空字符串</li>
<li>升级SpringBoot到最新版本2.2.13 提升启动速度</li>
<li>升级druid到最新版本v1.2.4</li>
<li>升级fastjson到最新版1.2.75</li>
<li>升级element-ui到最新版本2.15.0</li>
<li>修复IE11浏览器报错问题</li>
<li>优化多级菜单之间切换无法缓存的问题</li>
<li>修复四级菜单无法显示问题</li>
<li>修正侧边栏静态路由丢失问题</li>
<li>修复角色管理-编辑角色-功能权限显示异常</li>
<li>配置文件新增redis数据库索引属性</li>
<li>权限工具类增加admin判断</li>
<li>角色非自定义权限范围清空选择值</li>
<li>修复导入数据为负浮点数时丢失精度问题</li>
<li>移除path-to-regexp正则匹配插件</li>
<li>修复生成树表代码异常</li>
<li>修改ip字段长度防止ipv6地址长度不够</li>
<li>防止get请求参数值为false或0等特殊值会导致无法正确的传参</li>
<li>登录后push添加catch防止出现检查错误</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.3.0 - 2020-12-14">
<ol>
<li>新增缓存监控功能</li>
<li>支持主题风格配置</li>
<li>修复多级菜单之间切换无法缓存的问题</li>
<li>多级菜单自动配置组件</li>
<li>代码生成预览支持高亮显示</li>
<li>支持Get请求映射Params参数</li>
<li>删除用户和角色解绑关联</li>
<li>去除用户手机邮箱部门必填验证</li>
<li>Excel支持注解align对齐方式</li>
<li>Excel支持导入Boolean型数据</li>
<li>优化头像样式鼠标移入悬停遮罩</li>
<li>代码生成预览提供滚动机制</li>
<li>代码生成删除多余的数字float类型</li>
<li>修正转换字符串的目标字符集属性</li>
<li>回显数据字典防止空值报错</li>
<li>日志记录增加过滤多文件场景</li>
<li>修改缓存Set方法可能导致嵌套的问题</li>
<li>移除前端一些多余的依赖</li>
<li>防止安全扫描YUI出现的风险提示</li>
<li>修改node-sass为dart-sass</li>
<li>升级SpringBoot到最新版本2.1.18</li>
<li>升级poi到最新版本4.1.2</li>
<li>升级oshi到最新版本v5.3.6</li>
<li>升级bitwalker到最新版本1.21</li>
<li>升级axios到最新版本0.21.0</li>
<li>升级element-ui到最新版本2.14.1</li>
<li>升级vue到最新版本2.6.12</li>
<li>升级vuex到最新版本3.6.0</li>
<li>升级vue-cli到版本4.5.9</li>
<li>升级vue-router到最新版本3.4.9</li>
<li>升级vue-cli到最新版本4.4.6</li>
<li>升级vue-cropper到最新版本0.5.5</li>
<li>升级clipboard到最新版本2.0.6</li>
<li>升级core-js到最新版本3.8.1</li>
<li>升级echarts到最新版本4.9.0</li>
<li>升级file-saver到最新版本2.0.4</li>
<li>升级fuse.js到最新版本6.4.3</li>
<li>升级js-beautify到最新版本1.13.0</li>
<li>升级js-cookie到最新版本2.2.1</li>
<li>升级path-to-regexp到最新版本6.2.0</li>
<li>升级quill到最新版本1.3.7</li>
<li>升级screenfull到最新版本5.0.2</li>
<li>升级sortablejs到最新版本1.10.2</li>
<li>升级vuedraggable到最新版本2.24.3</li>
<li>升级chalk到最新版本4.1.0</li>
<li>升级eslint到最新版本7.15.0</li>
<li>升级eslint-plugin-vue到最新版本7.2.0</li>
<li>升级lint-staged到最新版本10.5.3</li>
<li>升级runjs到最新版本4.4.2</li>
<li>升级sass-loader到最新版本10.1.0</li>
<li>升级script-ext-html-webpack-plugin到最新版本2.1.5</li>
<li>升级svg-sprite-loader到最新版本5.1.1</li>
<li>升级vue-template-compiler到最新版本2.6.12</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.2.1 - 2020-11-18">
<ol>
<li>阻止任意文件下载漏洞</li>
<li>代码生成支持上传控件</li>
<li>新增图片上传组件</li>
<li>调整默认首页</li>
<li>升级druid到最新版本v1.2.2</li>
<li>mapperLocations配置支持分隔符</li>
<li>权限信息调整</li>
<li>调整sql默认时间</li>
<li>解决代码生成没有bit类型的问题</li>
<li>升级pagehelper到最新版1.3.0</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.2.0 - 2020-10-10">
<ol>
<li>升级springboot版本到2.1.17 提升安全性</li>
<li>升级oshi到最新版本v5.2.5</li>
<li>升级druid到最新版本v1.2.1</li>
<li>升级jjwt到版本0.9.1</li>
<li>升级fastjson到最新版1.2.74</li>
<li>修改sass为node-sass避免el-icon图标乱码</li>
<li>代码生成支持同步数据库</li>
<li>代码生成支持富文本控件</li>
<li>代码生成页面时不忽略remark属性</li>
<li>代码生成添加select必填选项</li>
<li>Excel导出类型NUMERIC支持精度浮点类型</li>
<li>Excel导出targetAttr优化获取值防止get方法不规范</li>
<li>Excel注解支持自动统计数据总和</li>
<li>Excel注解支持设置BigDecimal精度&舍入规则</li>
<li>菜单&数据权限新增展开/折叠 全选/全不选 父子联动</li>
<li>允许用户分配到部门父节点</li>
<li>菜单新增是否缓存keep-alive</li>
<li>表格操作列间距调整</li>
<li>限制系统内置参数不允许删除</li>
<li>富文本组件优化支持自定义高度&图片冲突问题</li>
<li>富文本工具栏样式对齐</li>
<li>导入excel整形值校验优化</li>
<li>修复页签关闭所有时固定标签路由不刷新问题</li>
<li>表单构建布局型组件新增按钮</li>
<li>左侧菜单文字过长显示省略号</li>
<li>修正根节点为子部门时树状结构显示问题</li>
<li>修正调用目标字符串最大长度</li>
<li>修正菜单提示信息错误</li>
<li>修正定时任务执行一次权限标识</li>
<li>修正数据库字符串类型nvarchar</li>
<li>优化递归子节点</li>
<li>优化数据权限判断</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.1.0 - 2020-08-13">
<ol>
<li>表格工具栏右侧添加刷新&显隐查询组件</li>
<li>后端支持CORS跨域请求</li>
<li>代码生成支持选择上级菜单</li>
<li>代码生成支持自定义路径</li>
<li>代码生成支持复选框</li>
<li>Excel导出导入支持dictType字典类型</li>
<li>Excel支持分割字符串组内容</li>
<li>验证码类型支持数组计算字符验证</li>
<li>升级vue-cli版本到4.4.4</li>
<li>修改 node-sass dart-sass</li>
<li>表单类型为Integer/Long设置整形默认值</li>
<li>代码生成器默认mapper路径与默认mapperScan路径不一致</li>
<li>优化防重复提交拦截器</li>
<li>优化上级菜单不能选择自己</li>
<li>修复角色的权限分配后未实时生效问题</li>
<li>修复在线用户日志记录类型</li>
<li>修复富文本空格和缩进保存后不生效问题</li>
<li>修复在线用户判断逻辑</li>
<li>唯一限制条件只返回单条数据</li>
<li>添加获取当前的环境配置方法</li>
<li>超时登录后页面跳转到首页</li>
<li>全局异常状态汉化拦截处理</li>
<li>HTML过滤器改为将html转义</li>
<li>检查字符支持小数点&降级改成异常提醒</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v3.0.0 - 2020-07-20">
<ol>
<li>单应用调整为多模块项目</li>
<li>升级element-ui版本到2.13.2</li>
<li>删除babel提高编译速度</li>
<li>新增菜单默认主类目</li>
<li>编码文件名修改为uuid方式</li>
<li>定时任务cron表达式验证</li>
<li>角色权限修改时已有权限未自动勾选异常修复</li>
<li>防止切换权限用户后登录出现404</li>
<li>Excel支持sort导出排序</li>
<li>创建用户不允许选择超级管理员角色</li>
<li>修复代码生成导入表结构出现异常页面不提醒问题</li>
<li>修复代码生成点击多次表修改数据不变化的问题</li>
<li>修复头像上传成功二次打开无法改变裁剪框大小和位置问题</li>
<li>修复布局为small者mini用户表单显示错位问题</li>
<li>修复热部署导致的强换异常问题</li>
<li>修改用户管理复选框宽度防止部分浏览器出现省略号</li>
<li>IpUtils工具清除Xss特殊字符防止Xff注入攻击</li>
<li>生成domain 如果是浮点型 统一用BigDecimal</li>
<li>定时任务调整label-width防止部署出现错位</li>
<li>调整表头固定列默认样式</li>
<li>代码生成模板调整字段为String并且必填则加空串条件</li>
<li>代码生成字典Integer/Long使用parseInt</li>
<li>
修复dict_sort不可update为0的问题&查询返回增加dict_sort升序排序
</li>
<li>修正岗位导出权限注解</li>
<li>禁止加密密文返回前端</li>
<li>修复代码生成页面中的查询条件创建时间未生效的问题</li>
<li>修复首页搜索菜单外链无法点击跳转问题</li>
<li>修复菜单管理选择图标backspace删除时不过滤数据</li>
<li>用户管理部门分支节点不可检查&显示计数</li>
<li>数据范围过滤属性调整</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v2.3.0 - 2020-06-01">
<ol>
<li>升级fastjson到最新版1.2.70 修复高危安全漏洞</li>
<li>dev启动默认打开浏览器</li>
<li>vue-cli使用默认source-map</li>
<li>slidebar eslint报错优化</li>
<li>当tags-view滚动关闭右键菜单</li>
<li>字典管理添加缓存读取</li>
<li>参数管理支持缓存操作</li>
<li>支持一级菜单和主页同级在main区域显示</li>
<li>限制外链地址必须以http(s)开头</li>
<li>tagview & sidebar 主题颜色与element ui(全局)同步</li>
<li>修改数据源类型优先级先根据方法再根据类</li>
<li>支持是否需要设置token属性自定义返回码消息</li>
<li>swagger请求前缀加入配置</li>
<li>登录地点设置内容过长则隐藏显示</li>
<li>修复定时任务执行一次按钮后不提示消息问题</li>
<li>修改上级部门选择项排除本身和下级</li>
<li>通用http发送方法增加参数 contentType 编码类型</li>
<li>更换IP地址查询接口</li>
<li>修复页签变量undefined</li>
<li>添加校验部门包含未停用的子部门</li>
<li>修改定时任务详情下次执行时间日期显示错误</li>
<li>角色管理查询设置默认排序字段</li>
<li>swagger添加enable参数控制是否启用</li>
<li>只对json类型请求构建可重复读取inputStream的request</li>
<li>修改代码生成字典字段int类型没有自动选中问题</li>
<li>vuex用户名取值修正</li>
<li>表格树模板去掉多余的)</li>
<li>代码生成序号修正</li>
<li>全屏情况下不调整上外边距</li>
<li>代码生成Date字段添加默认格式</li>
<li>用户管理角色选择权限控制</li>
<li>修复路由懒加载报错问题</li>
<li>模板sql.vm添加菜单状态</li>
<li>设置用户名称不能修改</li>
<li>dialog添加append-to-body属性防止ie遮罩</li>
<li>菜单区分状态和显示隐藏功能</li>
<li>升级fastjson到最新版1.2.68 修复安全加固</li>
<li>修复代码生成如果选择字典类型缺失逗号问题</li>
<li>登录请求params更换为data防止暴露url</li>
<li>日志返回时间格式处理</li>
<li>添加handle控制允许拖动的元素</li>
<li>布局设置点击扩大范围</li>
<li>代码生成列属性排序查询</li>
<li>代码生成列支持拖动排序</li>
<li>修复时间格式不支持ios问题</li>
<li>表单构建添加父级class防止冲突</li>
<li>定时任务并发属性修正</li>
<li>角色禁用&菜单隐藏不查询权限</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v2.2.0 - 2020-03-18">
<ol>
<li>系统监控新增定时任务功能</li>
<li>添加一个打包Web工程bat</li>
<li>修复页签鼠标滚轮按下的时候可以关闭不可关闭的tag</li>
<li>修复点击退出登录有时会无提示问题</li>
<li>修复防重复提交注解无效问题</li>
<li>修复通知公告批量删除异常问题</li>
<li>添加菜单时路由地址必填限制</li>
<li>代码生成字段描述可编辑</li>
<li>修复用户修改个人信息导致缓存不过期问题</li>
<li>个人信息创建时间获取正确属性值</li>
<li>操作日志详细显示正确类型</li>
<li>导入表单击行数据时选中对应的复选框</li>
<li>批量替换表前缀逻辑调整</li>
<li>固定重定向路径表达式</li>
<li>升级element-ui版本到2.13.0</li>
<li>操作日志排序调整</li>
<li>修复charts切换侧边栏或者缩放窗口显示bug</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v2.1.0 - 2020-02-24">
<ol>
<li>新增表单构建</li>
<li>代码生成支持树表结构</li>
<li>新增用户导入</li>
<li>修复动态加载路由页面刷新问题</li>
<li>修复地址开关无效问题</li>
<li>汉化错误提示页面</li>
<li>代码生成已知问题修改</li>
<li>修复多数据源下配置关闭出现异常处理</li>
<li>添加HTML过滤器用于去除XSS漏洞隐患</li>
<li>修复上传头像控制台出现异常</li>
<li>修改用户管理分页不正确的问题</li>
<li>修复验证码记录提示错误</li>
<li>修复request.js缺少Message引用</li>
<li>修复表格时间为空出现的异常</li>
<li>添加Jackson日期反序列化时区配置</li>
<li>调整根据用户权限加载菜单数据树形结构</li>
<li>调整成功登陆不恢复按钮防止多次点击</li>
<li>修改用户个人资料同步缓存信息</li>
<li>修复页面同时出现el-upload和Editor不显示处理</li>
<li>修复在角色管理页修改菜单权限偶尔未选中问题</li>
<li>配置文件新增redis密码属性</li>
<li>设置mybatis全局的配置文件</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v2.0.0 - 2019-12-02">
<ol>
<li>新增代码生成</li>
<li>新增@RepeatSubmit注解防止重复提交</li>
<li>新增菜单主目录添加/删除操作</li>
<li>日志记录过滤特殊对象防止转换异常</li>
<li>修改代码生成路由脚本错误</li>
<li>用户上传头像实时同步缓存无需重新登录</li>
<li>调整切换页签后不重新加载数据</li>
<li>添加jsencrypt实现参数的前端加密</li>
<li>系统退出删除用户缓存记录</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.1.0 - 2019-11-11">
<ol>
<li>新增在线用户管理</li>
<li>新增按钮组功能实现批量删除导出清空</li>
<li>新增查询条件重置按钮</li>
<li>新增Swagger全局Token配置</li>
<li>新增后端参数校验</li>
<li>修复字典管理页面的日期查询异常</li>
<li>修改时间函数命名防止冲突</li>
<li>去除菜单上级校验默认为顶级</li>
<li>修复用户密码无法修改问题</li>
<li>修复菜单类型为按钮时不显示权限标识</li>
<li>其他细节优化</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.0.0 - 2019-10-08">
<ol>
<li>若依前后端分离系统正式发布</li>
</ol>
</el-collapse-item>
</el-collapse>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8">
<el-card class="update-log">
<div slot="header" class="clearfix">
<span>捐赠支持</span>
</div>
<div class="body">
<img
src="https://oscimg.oschina.net/oscnet/up-d6695f82666e5018f715c41cb7ee60d3b73.png"
alt="donate"
width="100%"
/>
<span style="display: inline-block; height: 30px; line-height: 30px"
>你可以请作者喝杯咖啡表示鼓励</span
>
</div>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="login"> <div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">若依后台管理系统</h3> <h3 class="title">物美智能管理系统</h3>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号"> <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,321 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户" prop="userId">
<el-input
v-model="queryParams.userId"
placeholder="请输入用户"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="分组名称" prop="groupName">
<el-input
v-model="queryParams.groupName"
placeholder="请输入分组名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="daterangeCreateTime"
size="small"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:group:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:group:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:group:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:group:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="groupList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="设备分组" align="center" prop="groupId" />
<el-table-column label="用户" align="center" prop="userId" />
<el-table-column label="分组名称" align="center" prop="groupName" />
<el-table-column label="排序" align="center" prop="groupOrder" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:group:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:group:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改分组对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户" />
</el-form-item>
<el-form-item label="分组名称" prop="groupName">
<el-input v-model="form.groupName" placeholder="请输入分组名称" />
</el-form-item>
<el-form-item label="排序" prop="groupOrder">
<el-input v-model="form.groupOrder" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listGroup, getGroup, delGroup, addGroup, updateGroup, exportGroup } from "@/api/system/group";
export default {
name: "Group",
components: {
},
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 分组表格数据
groupList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 创建时间时间范围
daterangeCreateTime: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
userId: null,
groupName: null,
createTime: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
userId: [
{ required: true, message: "用户不能为空", trigger: "blur" }
],
groupName: [
{ required: true, message: "分组名称不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询分组列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
listGroup(this.queryParams).then(response => {
this.groupList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
groupId: null,
userId: null,
groupName: null,
groupOrder: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeCreateTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.groupId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加分组";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const groupId = row.groupId || this.ids
getGroup(groupId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改分组";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.groupId != null) {
updateGroup(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addGroup(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const groupIds = row.groupId || this.ids;
this.$confirm('是否确认删除分组编号为"' + groupIds + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delGroup(groupIds);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有分组数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportGroup(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

View File

@@ -22,7 +22,7 @@
<el-form-item label="报警" prop="isAlarm"> <el-form-item label="报警" prop="isAlarm">
<el-select v-model="queryParams.isAlarm" placeholder="请选择报警" clearable size="small"> <el-select v-model="queryParams.isAlarm" placeholder="请选择报警" clearable size="small">
<el-option <el-option
v-for="dict in isAlarmOptions" v-for="dict in isOpenCloseOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@@ -32,7 +32,7 @@
<el-form-item label="雷达感应" prop="isRadar"> <el-form-item label="雷达感应" prop="isRadar">
<el-select v-model="queryParams.isRadar" placeholder="请选择雷达感应" clearable size="small"> <el-select v-model="queryParams.isRadar" placeholder="请选择雷达感应" clearable size="small">
<el-option <el-option
v-for="dict in isRadarOptions" v-for="dict in isOpenCloseOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@@ -42,7 +42,7 @@
<el-form-item label="托管" prop="isHost"> <el-form-item label="托管" prop="isHost">
<el-select v-model="queryParams.isHost" placeholder="请选择托管" clearable size="small"> <el-select v-model="queryParams.isHost" placeholder="请选择托管" clearable size="small">
<el-option <el-option
v-for="dict in isHostOptions" v-for="dict in isYesNoOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@@ -52,7 +52,7 @@
<el-form-item label="射频遥控" prop="isRfControl"> <el-form-item label="射频遥控" prop="isRfControl">
<el-select v-model="queryParams.isRfControl" placeholder="请选择射频遥控" clearable size="small"> <el-select v-model="queryParams.isRfControl" placeholder="请选择射频遥控" clearable size="small">
<el-option <el-option
v-for="dict in isRfControlOptions" v-for="dict in isOpenCloseOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@@ -95,7 +95,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@@ -139,18 +139,21 @@
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row> -->
<el-table v-loading="loading" :data="setList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="setList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" align="center" prop="deviceSetId" /> <el-table-column label="序号" align="center" prop="deviceSetId" />
<el-table-column label="设备ID" align="center" prop="deviceId" /> <el-table-column label="设备ID" align="center" prop="deviceId" />
<el-table-column label="设备编号" align="center" prop="deviceNum" /> <el-table-column label="设备编号" align="center" prop="deviceNum" />
<el-table-column label="报警" align="center" prop="isAlarm" /> <el-table-column label="报警" align="center" prop="isAlarm" />
<el-table-column label="雷达感应" align="center" prop="isRadar" /> <el-table-column label="雷达感应" align="center" prop="isRadar" />
<el-table-column label="托管" align="center" prop="isHost" /> <!-- <el-table-column label="托管" align="center" prop="isHost" /> -->
<el-table-column label="重启" align="center" prop="isReset" /> <el-table-column label="重启" align="center" prop="isReset" />
<el-table-column label="打开AP" align="center" prop="isAp" /> <el-table-column label="打开AP" align="center" prop="isAp" />
<!-- <el-table-column label="离线模式" align="center" prop="isWifiOffline" /> -->
<!-- <el-table-column label="使用证书" align="center" prop="isOpenCertifi" /> -->
<el-table-column label="智能配网" align="center" prop="isSmartConfig" />
<el-table-column label="射频遥控" align="center" prop="isRfControl" /> <el-table-column label="射频遥控" align="center" prop="isRfControl" />
<el-table-column label="遥控配对" align="center" prop="isRfLearn" /> <el-table-column label="遥控配对" align="center" prop="isRfLearn" />
<el-table-column label="遥控清码" align="center" prop="isRfClear" /> <el-table-column label="遥控清码" align="center" prop="isRfClear" />
@@ -161,7 +164,8 @@
<el-table-column label="用户" align="center" prop="ownerId" /> <el-table-column label="用户" align="center" prop="ownerId" />
<el-table-column label="配网地址" align="center" prop="networkAddress" /> <el-table-column label="配网地址" align="center" prop="networkAddress" />
<el-table-column label="配网IP" align="center" prop="networkIp" /> <el-table-column label="配网IP" align="center" prop="networkIp" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="雷达感应间隔" align="center" prop="radarInterval" />
<!-- <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@@ -178,7 +182,7 @@
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:set:remove']" v-hasPermi="['system:set:remove']"
>删除</el-button> >删除</el-button>
</template> </template> -->
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -202,7 +206,7 @@
<el-form-item label="报警" prop="isAlarm"> <el-form-item label="报警" prop="isAlarm">
<el-select v-model="form.isAlarm" placeholder="是否启动报警"> <el-select v-model="form.isAlarm" placeholder="是否启动报警">
<el-option <el-option
v-for="dict in isAlarmOptions" v-for="dict in isOpenCloseOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -212,7 +216,7 @@
<el-form-item label="雷达感应" prop="isRadar"> <el-form-item label="雷达感应" prop="isRadar">
<el-select v-model="form.isRadar" placeholder="是否启动雷达感应"> <el-select v-model="form.isRadar" placeholder="是否启动雷达感应">
<el-option <el-option
v-for="dict in isRadarOptions" v-for="dict in isOpenCloseOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -222,7 +226,7 @@
<el-form-item label="托管" prop="isHost"> <el-form-item label="托管" prop="isHost">
<el-select v-model="form.isHost" placeholder="是否托管"> <el-select v-model="form.isHost" placeholder="是否托管">
<el-option <el-option
v-for="dict in isHostOptions" v-for="dict in isYesNoOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -232,7 +236,7 @@
<el-form-item label="重启" prop="isReset"> <el-form-item label="重启" prop="isReset">
<el-select v-model="form.isReset" placeholder="是否重启"> <el-select v-model="form.isReset" placeholder="是否重启">
<el-option <el-option
v-for="dict in isResetOptions" v-for="dict in isYesNoOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -242,7 +246,37 @@
<el-form-item label="打开AP" prop="isAp"> <el-form-item label="打开AP" prop="isAp">
<el-select v-model="form.isAp" placeholder="是否打开AP"> <el-select v-model="form.isAp" placeholder="是否打开AP">
<el-option <el-option
v-for="dict in isApOptions" v-for="dict in isYesNoOptions"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="离线模式" prop="isWifiOffline">
<el-select v-model="form.isWifiOffline" placeholder="离线模式">
<el-option
v-for="dict in isYesNoOptions"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="使用证书" prop="isOpenCertifi">
<el-select v-model="form.isOpenCertifi" placeholder="是否使用证书">
<el-option
v-for="dict in isYesNoOptions"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="智能配网" prop="isSmartConfig">
<el-select v-model="form.isSmartConfig" placeholder="智能配网">
<el-option
v-for="dict in isYesNoOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -252,7 +286,7 @@
<el-form-item label="射频遥控" prop="isRfControl"> <el-form-item label="射频遥控" prop="isRfControl">
<el-select v-model="form.isRfControl" placeholder="是否启动射频遥控"> <el-select v-model="form.isRfControl" placeholder="是否启动射频遥控">
<el-option <el-option
v-for="dict in isRfControlOptions" v-for="dict in isOpenCloseOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -262,7 +296,7 @@
<el-form-item label="遥控配对" prop="isRfLearn"> <el-form-item label="遥控配对" prop="isRfLearn">
<el-select v-model="form.isRfLearn" placeholder="是否遥控配对"> <el-select v-model="form.isRfLearn" placeholder="是否遥控配对">
<el-option <el-option
v-for="dict in isRfLearnOptions" v-for="dict in isYesNoOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -272,7 +306,7 @@
<el-form-item label="遥控清码" prop="isRfClear"> <el-form-item label="遥控清码" prop="isRfClear">
<el-select v-model="form.isRfClear" placeholder="是否遥控清码"> <el-select v-model="form.isRfClear" placeholder="是否遥控清码">
<el-option <el-option
v-for="dict in isRfClearOptions" v-for="dict in isYesNoOptions"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
@@ -282,7 +316,7 @@
<el-form-item label="按键一" prop="rfOneFunc"> <el-form-item label="按键一" prop="rfOneFunc">
<el-select v-model="form.rfOneFunc" placeholder="请选择按键一"> <el-select v-model="form.rfOneFunc" placeholder="请选择按键一">
<el-option <el-option
v-for="dict in rfOneFuncOptions" v-for="dict in rfFuncOptions"
:key="dict.dictValue" :key="dict.dictValue"
:label="dict.dictLabel" :label="dict.dictLabel"
:value="parseInt(dict.dictValue)" :value="parseInt(dict.dictValue)"
@@ -292,7 +326,7 @@
<el-form-item label="按键二" prop="rfTwoFunc"> <el-form-item label="按键二" prop="rfTwoFunc">
<el-select v-model="form.rfTwoFunc" placeholder="请选择按键二"> <el-select v-model="form.rfTwoFunc" placeholder="请选择按键二">
<el-option <el-option
v-for="dict in rfTwoFuncOptions" v-for="dict in rfFuncOptions"
:key="dict.dictValue" :key="dict.dictValue"
:label="dict.dictLabel" :label="dict.dictLabel"
:value="parseInt(dict.dictValue)" :value="parseInt(dict.dictValue)"
@@ -302,7 +336,7 @@
<el-form-item label="按键三" prop="rfThreeFunc"> <el-form-item label="按键三" prop="rfThreeFunc">
<el-select v-model="form.rfThreeFunc" placeholder="请选择按键三"> <el-select v-model="form.rfThreeFunc" placeholder="请选择按键三">
<el-option <el-option
v-for="dict in rfThreeFuncOptions" v-for="dict in rfFuncOptions"
:key="dict.dictValue" :key="dict.dictValue"
:label="dict.dictLabel" :label="dict.dictLabel"
:value="parseInt(dict.dictValue)" :value="parseInt(dict.dictValue)"
@@ -312,7 +346,7 @@
<el-form-item label="按键四" prop="rfFourFunc"> <el-form-item label="按键四" prop="rfFourFunc">
<el-select v-model="form.rfFourFunc" placeholder="请选择按键四"> <el-select v-model="form.rfFourFunc" placeholder="请选择按键四">
<el-option <el-option
v-for="dict in rfFourFuncOptions" v-for="dict in rfFuncOptions"
:key="dict.dictValue" :key="dict.dictValue"
:label="dict.dictLabel" :label="dict.dictLabel"
:value="parseInt(dict.dictValue)" :value="parseInt(dict.dictValue)"
@@ -328,6 +362,9 @@
<el-form-item label="配网IP" prop="networkIp"> <el-form-item label="配网IP" prop="networkIp">
<el-input v-model="form.networkIp" placeholder="请输入配网IP" /> <el-input v-model="form.networkIp" placeholder="请输入配网IP" />
</el-form-item> </el-form-item>
<el-form-item label="雷达感应间隔" prop="radarInterval">
<el-input v-model="form.radarInterval" placeholder="请输入雷达感应间隔" />
</el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
@@ -367,64 +404,16 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
// 报警字典 // 打开关闭字典
isAlarmOptions: [{ isOpenCloseOptions: [{
"label": "打开", "label": "打开",
"value": 1 "value": 1
}, { }, {
"label": "关闭", "label": "关闭",
"value": 0 "value": 0
}], }],
// 雷达感应字典 // 是否字典
isRadarOptions: [{ isYesNoOptions: [{
"label": "打开",
"value": 1
}, {
"label": "关闭",
"value": 0
}],
// 托管字典
isHostOptions: [{
"label": "是",
"value": 1
}, {
"label": "否",
"value": 0
}],
// 重启字典
isResetOptions: [{
"label": "是",
"value": 1
}, {
"label": "否",
"value": 0
}],
// 打开AP字典
isApOptions: [{
"label": "是",
"value": 1
}, {
"label": "否",
"value": 0
}],
// 射频遥控字典
isRfControlOptions: [{
"label": "打开",
"value": 1
}, {
"label": "关闭",
"value": 0
}],
// 遥控配对字典
isRfLearnOptions: [{
"label": "是",
"value": 1
}, {
"label": "否",
"value": 0
}],
// 遥控清码字典
isRfClearOptions: [{
"label": "是", "label": "是",
"value": 1 "value": 1
}, { }, {
@@ -432,13 +421,7 @@ export default {
"value": 0 "value": 0
}], }],
// 按键一字典 // 按键一字典
rfOneFuncOptions: [], rfFuncOptions: [],
// 按键二字典
rfTwoFuncOptions: [],
// 按键三字典
rfThreeFuncOptions: [],
// 按键四字典
rfFourFuncOptions: [],
// 创建时间时间范围 // 创建时间时间范围
daterangeCreateTime: [], daterangeCreateTime: [],
// 查询参数 // 查询参数
@@ -468,16 +451,7 @@ export default {
created() { created() {
this.getList(); this.getList();
this.getDicts("rf_function").then(response => { this.getDicts("rf_function").then(response => {
this.rfOneFuncOptions = response.data; this.rfFuncOptions = response.data;
});
this.getDicts("rf_function").then(response => {
this.rfTwoFuncOptions = response.data;
});
this.getDicts("rf_function").then(response => {
this.rfThreeFuncOptions = response.data;
});
this.getDicts("rf_function").then(response => {
this.rfFourFuncOptions = response.data;
}); });
}, },
methods: { methods: {
@@ -497,19 +471,19 @@ export default {
}, },
// 按键一字典翻译 // 按键一字典翻译
rfOneFuncFormat(row, column) { rfOneFuncFormat(row, column) {
return this.selectDictLabel(this.rfOneFuncOptions, row.rfOneFunc); return this.selectDictLabel(this.rfFuncOptions, row.rfOneFunc);
}, },
// 按键二字典翻译 // 按键二字典翻译
rfTwoFuncFormat(row, column) { rfTwoFuncFormat(row, column) {
return this.selectDictLabel(this.rfTwoFuncOptions, row.rfTwoFunc); return this.selectDictLabel(this.rfFuncOptions, row.rfTwoFunc);
}, },
// 按键三字典翻译 // 按键三字典翻译
rfThreeFuncFormat(row, column) { rfThreeFuncFormat(row, column) {
return this.selectDictLabel(this.rfThreeFuncOptions, row.rfThreeFunc); return this.selectDictLabel(this.rfFuncOptions, row.rfThreeFunc);
}, },
// 按键四字典翻译 // 按键四字典翻译
rfFourFuncFormat(row, column) { rfFourFuncFormat(row, column) {
return this.selectDictLabel(this.rfFourFuncOptions, row.rfFourFunc); return this.selectDictLabel(this.rfFuncOptions, row.rfFourFunc);
}, },
// 取消按钮 // 取消按钮
cancel() { cancel() {
@@ -527,6 +501,9 @@ export default {
isHost: null, isHost: null,
isReset: null, isReset: null,
isAp: null, isAp: null,
isWifiOffline: null,
isOpenCertifi: null,
isSmartConfig: null,
isRfControl: null, isRfControl: null,
isRfLearn: null, isRfLearn: null,
isRfClear: null, isRfClear: null,
@@ -537,6 +514,7 @@ export default {
ownerId: null, ownerId: null,
networkAddress: null, networkAddress: null,
networkIp: null, networkIp: null,
radarInterval: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,

View File

@@ -78,7 +78,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@@ -122,28 +122,29 @@
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row> -->
<el-table v-loading="loading" :data="statusList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="statusList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" align="center" prop="deviceStatusId" /> <el-table-column label="序号" align="center" prop="deviceStatusId" />
<el-table-column label="设备ID" align="center" prop="deviceId" /> <el-table-column label="设备ID" align="center" prop="deviceId" />
<el-table-column label="设备编号" align="center" prop="deviceNum" /> <el-table-column label="设备编号" align="center" prop="deviceNum" />
<el-table-column label="继电器" align="center" prop="relayStatus" /> <el-table-column label="继电器" align="center" prop="relayStatus" />
<el-table-column label="灯状态" align="center" prop="lightStatus" /> <el-table-column label="灯状态" align="center" prop="lightStatus" />
<el-table-column label="在线" align="center" prop="isOnline" /> <el-table-column label="在线" align="center" prop="isOnline" />
<el-table-column label="信号" align="center" prop="rssi" />
<el-table-column label="设备温度" align="center" prop="deviceTemperature" /> <el-table-column label="设备温度" align="center" prop="deviceTemperature" />
<el-table-column label="设备湿度" align="center" prop="deviceHumidity" />
<el-table-column label="空气温度" align="center" prop="airTemperature" /> <el-table-column label="空气温度" align="center" prop="airTemperature" />
<el-table-column label="空气湿度" align="center" prop="airHumidity" /> <el-table-column label="空气湿度" align="center" prop="airHumidity" />
<el-table-column label="触发源" align="center" prop="triggerSource" :formatter="triggerSourceFormat" /> <el-table-column label="触发源" align="center" prop="triggerSource" :formatter="triggerSourceFormat" />
<el-table-column label="彩灯亮度" align="center" prop="brightness" /> <el-table-column label="彩灯亮度" align="center" prop="brightness" />
<el-table-column label="渐变间隔" align="center" prop="lightInterval" /> <el-table-column label="渐变间隔" align="center" prop="lightInterval" />
<el-table-column label="彩灯模式" align="center" prop="lightMode" :formatter="lightModeFormat" /> <el-table-column label="彩灯模式" align="center" prop="lightMode" :formatter="lightModeFormat" />
<el-table-column label="渐变时间" align="center" prop="fadeTime" />
<el-table-column label="红灯" align="center" prop="red" /> <el-table-column label="红灯" align="center" prop="red" />
<el-table-column label="绿灯" align="center" prop="green" /> <el-table-column label="绿灯" align="center" prop="green" />
<el-table-column label="蓝灯" align="center" prop="blue" /> <el-table-column label="蓝灯" align="center" prop="blue" />
<el-table-column label="备注" align="center" prop="remark" /> <!-- <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@@ -160,7 +161,7 @@
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:status:remove']" v-hasPermi="['system:status:remove']"
>删除</el-button> >删除</el-button>
</template> </template> -->
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -211,12 +212,12 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="信号" prop="rssi">
<el-input v-model="form.rssi" placeholder="请输入信号" />
</el-form-item>
<el-form-item label="设备温度" prop="deviceTemperature"> <el-form-item label="设备温度" prop="deviceTemperature">
<el-input v-model="form.deviceTemperature" placeholder="请输入设备温度" /> <el-input v-model="form.deviceTemperature" placeholder="请输入设备温度" />
</el-form-item> </el-form-item>
<el-form-item label="设备湿度" prop="deviceHumidity">
<el-input v-model="form.deviceHumidity" placeholder="请输入设备湿度" />
</el-form-item>
<el-form-item label="空气温度" prop="airTemperature"> <el-form-item label="空气温度" prop="airTemperature">
<el-input v-model="form.airTemperature" placeholder="请输入空气温度" /> <el-input v-model="form.airTemperature" placeholder="请输入空气温度" />
</el-form-item> </el-form-item>
@@ -239,6 +240,9 @@
<el-form-item label="渐变间隔" prop="lightInterval"> <el-form-item label="渐变间隔" prop="lightInterval">
<el-input v-model="form.lightInterval" placeholder="请输入渐变间隔" /> <el-input v-model="form.lightInterval" placeholder="请输入渐变间隔" />
</el-form-item> </el-form-item>
<el-form-item label="渐变时间" prop="fadeTime">
<el-input v-model="form.fadeTime" placeholder="请输入渐变时间" />
</el-form-item>
<el-form-item label="彩灯模式" prop="lightMode"> <el-form-item label="彩灯模式" prop="lightMode">
<el-select v-model="form.lightMode" placeholder="请选择彩灯模式"> <el-select v-model="form.lightMode" placeholder="请选择彩灯模式">
<el-option <el-option
@@ -397,12 +401,13 @@ export default {
lightStatus: null, lightStatus: null,
isOnline: null, isOnline: null,
deviceTemperature: null, deviceTemperature: null,
deviceHumidity: null, rssi: null,
airTemperature: null, airTemperature: null,
airHumidity: null, airHumidity: null,
triggerSource: null, triggerSource: null,
brightness: null, brightness: null,
lightInterval: null, lightInterval: null,
fadeTime: null,
lightMode: null, lightMode: null,
red: null, red: null,
green: null, green: null,

View File

@@ -6,7 +6,7 @@ function resolve(dir) {
return path.join(__dirname, dir) return path.join(__dirname, dir)
} }
const name = defaultSettings.title || '若依管理系统' // 标题 const name = defaultSettings.title || '物美智' // 标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口 const port = process.env.port || process.env.npm_config_port || 80 // 端口