前端功能完善
| @@ -1,7 +1,7 @@ | ||||
| # 开发环境配置 | ||||
| ENV = 'development' | ||||
|  | ||||
| # 若依管理系统/开发环境 | ||||
| # 物美智能/开发环境 | ||||
| VUE_APP_BASE_API = '/dev-api' | ||||
|  | ||||
| # 路由懒加载 | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| # 生产环境配置 | ||||
| ENV = 'production' | ||||
|  | ||||
| # 若依管理系统/生产环境 | ||||
| # 物美智能/生产环境 | ||||
| VUE_APP_BASE_API = '/prod-api' | ||||
|   | ||||
| @@ -3,5 +3,5 @@ NODE_ENV = production | ||||
| # 测试环境配置 | ||||
| ENV = 'staging' | ||||
|  | ||||
| # 若依管理系统/测试环境 | ||||
| # 物美智能/测试环境 | ||||
| VUE_APP_BASE_API = '/stage-api' | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| { | ||||
|   "name": "ruoyi", | ||||
|   "version": "3.4.0", | ||||
|   "description": "若依管理系统", | ||||
|   "description": "物美智能", | ||||
|   "author": "若依", | ||||
|   "license": "MIT", | ||||
|   "scripts": { | ||||
|   | ||||
| Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 66 KiB | 
							
								
								
									
										53
									
								
								vue/src/api/system/group.js
									
									
									
									
									
										Normal 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 | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/category.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/config.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/device.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/group.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/iot.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/mqtt.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/status.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/wifi_0.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/wifi_1.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/wifi_2.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/wifi_3.svg
									
									
									
									
									
										Normal 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 | 
							
								
								
									
										1
									
								
								vue/src/assets/icons/svg/wifi_4.svg
									
									
									
									
									
										Normal 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 | 
| Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 21 KiB | 
| @@ -35,7 +35,7 @@ export default { | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       title: '若依管理系统', | ||||
|       title: '物美智能', | ||||
|       logo: logoImg | ||||
|     } | ||||
|   } | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| module.exports = { | ||||
|   title: '若依管理系统', | ||||
|   title: '物美智能设备', | ||||
|  | ||||
|   /** | ||||
|    * 侧边栏主题 深色主题theme-dark,浅色主题theme-light | ||||
|   | ||||
| @@ -1,68 +1,26 @@ | ||||
| <template> | ||||
|   <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 | ||||
|           > | ||||
|               腾讯云服务器秒杀区 | ||||
|           <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-col :sm="24" :lg="12" style="padding-left: 20px"> | ||||
|         <h2>若依后台管理框架</h2> | ||||
|         <p> | ||||
|           一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 | ||||
|         </p> | ||||
|         <p> | ||||
|           <b>当前版本:</b> <span>v{{ version }}</span> | ||||
|         </p> | ||||
|         <p> | ||||
|           <el-tag type="danger">¥免费开源</el-tag> | ||||
|         </p> | ||||
|         <h2>wumei-smart</h2> | ||||
|         <p><a href="http://www.wumei.live" target="_blank">物美智能</a>是一套开源的软硬件系统,可用于二次开发和学习,快速搭建自己的智能家居系统。 硬件工程师可以把自己的设备集成到系统;软件工程师可以使用项目中的设备熟悉软硬件交互。</p> | ||||
|         <p>服务端使用spring boot、前端vue、移动端android、数据库mysql、硬件交互基于mqtt协议使用EMQ代理服务器。</p> | ||||
|          | ||||
|         <p> | ||||
|           <el-button | ||||
|             type="primary" | ||||
|             size="mini" | ||||
|             icon="el-icon-cloudy" | ||||
|             plain | ||||
|             @click="goTarget('https://gitee.com/y_project/RuoYi-Vue')" | ||||
|             @click="goTarget('https://gitee.com/kerwincui/wumei-smart')" | ||||
|             >访问码云</el-button | ||||
|           > | ||||
|           <el-button | ||||
|             size="mini" | ||||
|             icon="el-icon-s-home" | ||||
|             plain | ||||
|             @click="goTarget('http://ruoyi.vip')" | ||||
|             @click="goTarget('http://www.wumei.live/')" | ||||
|             >访问主页</el-button | ||||
|           > | ||||
|         </p> | ||||
| @@ -98,424 +56,26 @@ | ||||
|               <li>Quill</li> | ||||
|               <li>...</li> | ||||
|             </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-row> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <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> | ||||
| </template> | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <template> | ||||
|   <div class="login"> | ||||
|     <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-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号"> | ||||
|           <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> | ||||
|   | ||||
							
								
								
									
										321
									
								
								vue/src/views/system/group/index.vue
									
									
									
									
									
										Normal 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> | ||||
| @@ -22,7 +22,7 @@ | ||||
|       <el-form-item label="报警" prop="isAlarm"> | ||||
|         <el-select v-model="queryParams.isAlarm" placeholder="请选择报警" clearable size="small"> | ||||
|           <el-option | ||||
|             v-for="dict in isAlarmOptions" | ||||
|             v-for="dict in isOpenCloseOptions" | ||||
|             :key="dict.value" | ||||
|             :label="dict.label" | ||||
|             :value="dict.value" | ||||
| @@ -32,7 +32,7 @@ | ||||
|       <el-form-item label="雷达感应" prop="isRadar"> | ||||
|         <el-select v-model="queryParams.isRadar" placeholder="请选择雷达感应" clearable size="small"> | ||||
|           <el-option | ||||
|             v-for="dict in isRadarOptions" | ||||
|             v-for="dict in isOpenCloseOptions" | ||||
|             :key="dict.value" | ||||
|             :label="dict.label" | ||||
|             :value="dict.value" | ||||
| @@ -42,7 +42,7 @@ | ||||
|       <el-form-item label="托管" prop="isHost"> | ||||
|         <el-select v-model="queryParams.isHost" placeholder="请选择托管" clearable size="small"> | ||||
|           <el-option | ||||
|             v-for="dict in isHostOptions" | ||||
|             v-for="dict in isYesNoOptions" | ||||
|             :key="dict.value" | ||||
|             :label="dict.label" | ||||
|             :value="dict.value" | ||||
| @@ -52,7 +52,7 @@ | ||||
|       <el-form-item label="射频遥控" prop="isRfControl"> | ||||
|         <el-select v-model="queryParams.isRfControl" placeholder="请选择射频遥控" clearable size="small"> | ||||
|           <el-option | ||||
|             v-for="dict in isRfControlOptions" | ||||
|             v-for="dict in isOpenCloseOptions" | ||||
|             :key="dict.value" | ||||
|             :label="dict.label" | ||||
|             :value="dict.value" | ||||
| @@ -95,7 +95,7 @@ | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|  | ||||
|     <el-row :gutter="10" class="mb8"> | ||||
|     <!-- <el-row :gutter="10" class="mb8"> | ||||
|       <el-col :span="1.5"> | ||||
|         <el-button | ||||
|           type="primary" | ||||
| @@ -139,18 +139,21 @@ | ||||
|         >导出</el-button> | ||||
|       </el-col> | ||||
|       <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-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="设备ID" align="center" prop="deviceId" /> | ||||
|       <el-table-column label="设备编号" align="center" prop="deviceNum" /> | ||||
|       <el-table-column label="报警" align="center" prop="isAlarm"  /> | ||||
|       <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="打开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="isRfLearn" /> | ||||
|       <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="networkAddress" /> | ||||
|       <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"> | ||||
|         <template slot-scope="scope"> | ||||
|           <el-button | ||||
| @@ -178,7 +182,7 @@ | ||||
|             @click="handleDelete(scope.row)" | ||||
|             v-hasPermi="['system:set:remove']" | ||||
|           >删除</el-button> | ||||
|         </template> | ||||
|         </template> --> | ||||
|       </el-table-column> | ||||
|     </el-table> | ||||
|      | ||||
| @@ -202,7 +206,7 @@ | ||||
|         <el-form-item label="报警" prop="isAlarm"> | ||||
|           <el-select v-model="form.isAlarm" placeholder="是否启动报警"> | ||||
|             <el-option | ||||
|               v-for="dict in isAlarmOptions" | ||||
|               v-for="dict in isOpenCloseOptions" | ||||
|               :key="dict.value" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -212,7 +216,7 @@ | ||||
|         <el-form-item label="雷达感应" prop="isRadar"> | ||||
|           <el-select v-model="form.isRadar" placeholder="是否启动雷达感应"> | ||||
|             <el-option | ||||
|               v-for="dict in isRadarOptions" | ||||
|               v-for="dict in isOpenCloseOptions" | ||||
|               :key="dict.value" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -222,7 +226,7 @@ | ||||
|         <el-form-item label="托管" prop="isHost"> | ||||
|           <el-select v-model="form.isHost" placeholder="是否托管"> | ||||
|             <el-option | ||||
|               v-for="dict in isHostOptions" | ||||
|               v-for="dict in isYesNoOptions" | ||||
|               :key="dict.value" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -232,7 +236,7 @@ | ||||
|         <el-form-item label="重启" prop="isReset"> | ||||
|           <el-select v-model="form.isReset" placeholder="是否重启"> | ||||
|             <el-option | ||||
|               v-for="dict in isResetOptions" | ||||
|               v-for="dict in isYesNoOptions" | ||||
|               :key="dict.value" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -242,7 +246,37 @@ | ||||
|         <el-form-item label="打开AP" prop="isAp"> | ||||
|           <el-select v-model="form.isAp" placeholder="是否打开AP"> | ||||
|             <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" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -252,7 +286,7 @@ | ||||
|         <el-form-item label="射频遥控" prop="isRfControl"> | ||||
|           <el-select v-model="form.isRfControl" placeholder="是否启动射频遥控"> | ||||
|             <el-option | ||||
|               v-for="dict in isRfControlOptions" | ||||
|               v-for="dict in isOpenCloseOptions" | ||||
|               :key="dict.value" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -262,7 +296,7 @@ | ||||
|         <el-form-item label="遥控配对" prop="isRfLearn"> | ||||
|           <el-select v-model="form.isRfLearn" placeholder="是否遥控配对"> | ||||
|             <el-option | ||||
|               v-for="dict in isRfLearnOptions" | ||||
|               v-for="dict in isYesNoOptions" | ||||
|               :key="dict.value" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -272,7 +306,7 @@ | ||||
|         <el-form-item label="遥控清码" prop="isRfClear"> | ||||
|           <el-select v-model="form.isRfClear" placeholder="是否遥控清码"> | ||||
|             <el-option | ||||
|               v-for="dict in isRfClearOptions" | ||||
|               v-for="dict in isYesNoOptions" | ||||
|               :key="dict.value" | ||||
|               :label="dict.label" | ||||
|               :value="parseInt(dict.value)" | ||||
| @@ -282,7 +316,7 @@ | ||||
|         <el-form-item label="按键一" prop="rfOneFunc"> | ||||
|           <el-select v-model="form.rfOneFunc" placeholder="请选择按键一"> | ||||
|             <el-option | ||||
|               v-for="dict in rfOneFuncOptions" | ||||
|               v-for="dict in rfFuncOptions" | ||||
|               :key="dict.dictValue" | ||||
|               :label="dict.dictLabel" | ||||
|               :value="parseInt(dict.dictValue)" | ||||
| @@ -292,7 +326,7 @@ | ||||
|         <el-form-item label="按键二" prop="rfTwoFunc"> | ||||
|           <el-select v-model="form.rfTwoFunc" placeholder="请选择按键二"> | ||||
|             <el-option | ||||
|               v-for="dict in rfTwoFuncOptions" | ||||
|               v-for="dict in rfFuncOptions" | ||||
|               :key="dict.dictValue" | ||||
|               :label="dict.dictLabel" | ||||
|               :value="parseInt(dict.dictValue)" | ||||
| @@ -302,7 +336,7 @@ | ||||
|         <el-form-item label="按键三" prop="rfThreeFunc"> | ||||
|           <el-select v-model="form.rfThreeFunc" placeholder="请选择按键三"> | ||||
|             <el-option | ||||
|               v-for="dict in rfThreeFuncOptions" | ||||
|               v-for="dict in rfFuncOptions" | ||||
|               :key="dict.dictValue" | ||||
|               :label="dict.dictLabel" | ||||
|               :value="parseInt(dict.dictValue)" | ||||
| @@ -312,7 +346,7 @@ | ||||
|         <el-form-item label="按键四" prop="rfFourFunc"> | ||||
|           <el-select v-model="form.rfFourFunc" placeholder="请选择按键四"> | ||||
|             <el-option | ||||
|               v-for="dict in rfFourFuncOptions" | ||||
|               v-for="dict in rfFuncOptions" | ||||
|               :key="dict.dictValue" | ||||
|               :label="dict.dictLabel" | ||||
|               :value="parseInt(dict.dictValue)" | ||||
| @@ -328,6 +362,9 @@ | ||||
|         <el-form-item label="配网IP" prop="networkIp"> | ||||
|           <el-input v-model="form.networkIp" placeholder="请输入配网IP" /> | ||||
|         </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-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> | ||||
|         </el-form-item> | ||||
| @@ -367,64 +404,16 @@ export default { | ||||
|       title: "", | ||||
|       // 是否显示弹出层 | ||||
|       open: false, | ||||
|       // 报警字典 | ||||
|       isAlarmOptions: [{ | ||||
|       // 打开关闭字典 | ||||
|       isOpenCloseOptions: [{ | ||||
|         "label": "打开", | ||||
|         "value": 1 | ||||
|       }, { | ||||
|         "label": "关闭", | ||||
|         "value": 0 | ||||
|       }], | ||||
|       // 雷达感应字典 | ||||
|       isRadarOptions: [{ | ||||
|         "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: [{ | ||||
|       // 是否字典 | ||||
|       isYesNoOptions: [{ | ||||
|         "label": "是", | ||||
|         "value": 1 | ||||
|       }, { | ||||
| @@ -432,13 +421,7 @@ export default { | ||||
|         "value": 0 | ||||
|       }], | ||||
|       // 按键一字典 | ||||
|       rfOneFuncOptions: [], | ||||
|       // 按键二字典 | ||||
|       rfTwoFuncOptions: [], | ||||
|       // 按键三字典 | ||||
|       rfThreeFuncOptions: [], | ||||
|       // 按键四字典 | ||||
|       rfFourFuncOptions: [], | ||||
|       rfFuncOptions: [], | ||||
|       // 创建时间时间范围 | ||||
|       daterangeCreateTime: [], | ||||
|       // 查询参数 | ||||
| @@ -468,16 +451,7 @@ export default { | ||||
|   created() { | ||||
|     this.getList(); | ||||
|     this.getDicts("rf_function").then(response => { | ||||
|       this.rfOneFuncOptions = 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; | ||||
|       this.rfFuncOptions = response.data; | ||||
|     }); | ||||
|   }, | ||||
|   methods: { | ||||
| @@ -497,19 +471,19 @@ export default { | ||||
|     }, | ||||
|     // 按键一字典翻译 | ||||
|     rfOneFuncFormat(row, column) { | ||||
|       return this.selectDictLabel(this.rfOneFuncOptions, row.rfOneFunc); | ||||
|       return this.selectDictLabel(this.rfFuncOptions, row.rfOneFunc); | ||||
|     }, | ||||
|     // 按键二字典翻译 | ||||
|     rfTwoFuncFormat(row, column) { | ||||
|       return this.selectDictLabel(this.rfTwoFuncOptions, row.rfTwoFunc); | ||||
|       return this.selectDictLabel(this.rfFuncOptions, row.rfTwoFunc); | ||||
|     }, | ||||
|     // 按键三字典翻译 | ||||
|     rfThreeFuncFormat(row, column) { | ||||
|       return this.selectDictLabel(this.rfThreeFuncOptions, row.rfThreeFunc); | ||||
|       return this.selectDictLabel(this.rfFuncOptions, row.rfThreeFunc); | ||||
|     }, | ||||
|     // 按键四字典翻译 | ||||
|     rfFourFuncFormat(row, column) { | ||||
|       return this.selectDictLabel(this.rfFourFuncOptions, row.rfFourFunc); | ||||
|       return this.selectDictLabel(this.rfFuncOptions, row.rfFourFunc); | ||||
|     }, | ||||
|     // 取消按钮 | ||||
|     cancel() { | ||||
| @@ -527,6 +501,9 @@ export default { | ||||
|         isHost: null, | ||||
|         isReset: null, | ||||
|         isAp: null, | ||||
|         isWifiOffline: null, | ||||
|         isOpenCertifi: null, | ||||
|         isSmartConfig: null, | ||||
|         isRfControl: null, | ||||
|         isRfLearn: null, | ||||
|         isRfClear: null, | ||||
| @@ -537,6 +514,7 @@ export default { | ||||
|         ownerId: null, | ||||
|         networkAddress: null, | ||||
|         networkIp: null, | ||||
|         radarInterval: null, | ||||
|         createBy: null, | ||||
|         createTime: null, | ||||
|         updateBy: null, | ||||
|   | ||||
| @@ -78,7 +78,7 @@ | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|  | ||||
|     <el-row :gutter="10" class="mb8"> | ||||
|     <!-- <el-row :gutter="10" class="mb8"> | ||||
|       <el-col :span="1.5"> | ||||
|         <el-button | ||||
|           type="primary" | ||||
| @@ -122,28 +122,29 @@ | ||||
|         >导出</el-button> | ||||
|       </el-col> | ||||
|       <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-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="设备ID" align="center" prop="deviceId" /> | ||||
|       <el-table-column label="设备编号" align="center" prop="deviceNum" /> | ||||
|       <el-table-column label="继电器" align="center" prop="relayStatus"  /> | ||||
|       <el-table-column label="灯状态" align="center" prop="lightStatus"  /> | ||||
|       <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="deviceHumidity" /> | ||||
|       <el-table-column label="空气温度" align="center" prop="airTemperature" /> | ||||
|       <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="brightness" /> | ||||
|       <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="fadeTime" /> | ||||
|       <el-table-column label="红灯" align="center" prop="red" /> | ||||
|       <el-table-column label="绿灯" align="center" prop="green" /> | ||||
|       <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"> | ||||
|         <template slot-scope="scope"> | ||||
|           <el-button | ||||
| @@ -160,7 +161,7 @@ | ||||
|             @click="handleDelete(scope.row)" | ||||
|             v-hasPermi="['system:status:remove']" | ||||
|           >删除</el-button> | ||||
|         </template> | ||||
|         </template> --> | ||||
|       </el-table-column> | ||||
|     </el-table> | ||||
|      | ||||
| @@ -211,12 +212,12 @@ | ||||
|             ></el-option> | ||||
|           </el-select> | ||||
|         </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-input v-model="form.deviceTemperature" placeholder="请输入设备温度" /> | ||||
|         </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-input v-model="form.airTemperature" placeholder="请输入空气温度" /> | ||||
|         </el-form-item> | ||||
| @@ -239,6 +240,9 @@ | ||||
|         <el-form-item label="渐变间隔" prop="lightInterval"> | ||||
|           <el-input v-model="form.lightInterval" placeholder="请输入渐变间隔" /> | ||||
|         </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-select v-model="form.lightMode" placeholder="请选择彩灯模式"> | ||||
|             <el-option | ||||
| @@ -397,12 +401,13 @@ export default { | ||||
|         lightStatus: null, | ||||
|         isOnline: null, | ||||
|         deviceTemperature: null, | ||||
|         deviceHumidity: null, | ||||
|         rssi: null, | ||||
|         airTemperature: null, | ||||
|         airHumidity: null, | ||||
|         triggerSource: null, | ||||
|         brightness: null, | ||||
|         lightInterval: null, | ||||
|         fadeTime: null, | ||||
|         lightMode: null, | ||||
|         red: null, | ||||
|         green: null, | ||||
|   | ||||
| @@ -6,7 +6,7 @@ function resolve(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 // 端口 | ||||
|  | ||||
|   | ||||
 kerwincui
					kerwincui