parent
							
								
									2fe5f8d4d3
								
							
						
					
					
						commit
						2a11d27c7e
					
				|  | @ -1,6 +1,7 @@ | |||
| [ | ||||
|     { | ||||
|         "name": "DVAdmin团队", | ||||
|         "key": "dvadmin", | ||||
|         "sort": 1, | ||||
|         "owner": "", | ||||
|         "phone": "", | ||||
|  | @ -10,6 +11,7 @@ | |||
|         "children": [ | ||||
|             { | ||||
|                 "name": "运营部", | ||||
|                 "key": "", | ||||
|                 "sort": 2, | ||||
|                 "owner": "", | ||||
|                 "phone": "", | ||||
|  | @ -20,6 +22,7 @@ | |||
|             }, | ||||
|             { | ||||
|                 "name": "技术部", | ||||
|                 "key": "technology", | ||||
|                 "sort": 1, | ||||
|                 "owner": "", | ||||
|                 "phone": "", | ||||
|  |  | |||
|  | @ -7,5 +7,14 @@ | |||
|         "admin": true, | ||||
|         "data_range": 3, | ||||
|         "remark": null | ||||
|     }, | ||||
|     { | ||||
|         "name": "用户", | ||||
|         "key": "public", | ||||
|         "sort": 2, | ||||
|         "status": true, | ||||
|         "admin": true, | ||||
|         "data_range": 3, | ||||
|         "remark": null | ||||
|     } | ||||
| ] | ||||
|  |  | |||
|  | @ -1,38 +1,59 @@ | |||
| [ | ||||
|     { | ||||
|         "username": "admin", | ||||
|         "email": "dvadmin@django-vue-admin.com", | ||||
|         "mobile": "18888888888", | ||||
|         "avatar": "", | ||||
|         "name": "管理员", | ||||
|         "gender": 1, | ||||
|         "user_type": 0, | ||||
|         "dept": 1, | ||||
|         "role": [], | ||||
|         "first_name": "", | ||||
|         "last_name": "", | ||||
|         "is_staff": true, | ||||
|         "is_active": true, | ||||
|         "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=", | ||||
|         "last_login": null, | ||||
|         "is_superuser": false | ||||
|     }, | ||||
|     { | ||||
|         "username": "superadmin", | ||||
|         "email": "dvadmin@django-vue-admin.com", | ||||
|         "mobile": "13333333333", | ||||
|         "avatar": null, | ||||
|         "name": "超级管理员", | ||||
|         "gender": 1, | ||||
|         "user_type": 0, | ||||
|         "dept": 1, | ||||
|         "role": [], | ||||
|         "first_name": "", | ||||
|         "last_name": "", | ||||
|         "is_staff": true, | ||||
|         "is_active": true, | ||||
|         "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=", | ||||
|         "last_login": null, | ||||
|         "is_superuser": true | ||||
|     } | ||||
|   { | ||||
|     "username": "superadmin", | ||||
|     "email": "dvadmin@django-vue-admin.com", | ||||
|     "mobile": "13333333333", | ||||
|     "avatar": null, | ||||
|     "name": "超级管理员", | ||||
|     "gender": 1, | ||||
|     "user_type": 0, | ||||
|     "role": [], | ||||
|     "role_key": [ | ||||
|      "admin" | ||||
|     ], | ||||
|     "dept_key": "dvadmin", | ||||
|     "first_name": "", | ||||
|     "last_name": "", | ||||
|     "is_staff": true, | ||||
|     "is_active": true, | ||||
|     "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=", | ||||
|     "last_login": null, | ||||
|     "is_superuser": true | ||||
|   }, | ||||
|   { | ||||
|     "username": "admin", | ||||
|     "email": "dvadmin@django-vue-admin.com", | ||||
|     "mobile": "18888888888", | ||||
|     "avatar": "", | ||||
|     "name": "管理员", | ||||
|     "gender": 1, | ||||
|     "user_type": 0, | ||||
|     "role": [], | ||||
|     "first_name": "", | ||||
|     "last_name": "", | ||||
|     "is_staff": true, | ||||
|     "is_active": true, | ||||
|     "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=", | ||||
|     "last_login": null, | ||||
|     "is_superuser": false | ||||
|   }, | ||||
|   { | ||||
|     "username": "test", | ||||
|     "email": "dvadmin@django-vue-admin.com", | ||||
|     "mobile": "18888888888", | ||||
|     "avatar": "", | ||||
|     "name": "测试人员", | ||||
|     "gender": 1, | ||||
|     "user_type": 0, | ||||
|     "role": [], | ||||
|     "role_key": ["public"], | ||||
|     "dept_key": "technology", | ||||
|     "first_name": "", | ||||
|     "last_name": "", | ||||
|     "is_staff": true, | ||||
|     "is_active": true, | ||||
|     "password": "pbkdf2_sha256$260000$g17x5wlSiW1FZAh1Eudchw$ZeSAqj3Xak0io8v/pmPW0BX9EX5R2zFXDwbbD68oBFk=", | ||||
|     "last_login": null, | ||||
|     "is_superuser": false | ||||
|   } | ||||
| ] | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ class Initialize(CoreInitialize): | |||
|         """ | ||||
|         初始化部门信息 | ||||
|         """ | ||||
|         self.init_base(DeptInitSerializer, unique_fields=['name', 'parent']) | ||||
|         self.init_base(DeptInitSerializer, unique_fields=['name', 'parent','key']) | ||||
| 
 | ||||
|     def init_role(self): | ||||
|         """ | ||||
|  |  | |||
|  | @ -103,6 +103,7 @@ class Role(CoreModel): | |||
| 
 | ||||
| class Dept(CoreModel): | ||||
|     name = models.CharField(max_length=64, verbose_name="部门名称", help_text="部门名称") | ||||
|     key = models.CharField(max_length=64, unique=True,null=True,blank=True, verbose_name="关联字符", help_text="关联字符") | ||||
|     sort = models.IntegerField(default=1, verbose_name="显示排序", help_text="显示排序") | ||||
|     owner = models.CharField(max_length=32, verbose_name="负责人", null=True, blank=True, help_text="负责人") | ||||
|     phone = models.CharField(max_length=32, verbose_name="联系电话", null=True, blank=True, help_text="联系电话") | ||||
|  |  | |||
|  | @ -58,7 +58,8 @@ class DeptInitSerializer(CustomModelSerializer): | |||
|                 menu_data['parent'] = instance.id | ||||
|                 filter_data = { | ||||
|                     "name": menu_data['name'], | ||||
|                     "parent": menu_data['parent'] | ||||
|                     "parent": menu_data['parent'], | ||||
|                     "key":menu_data['key'] | ||||
|                 } | ||||
|                 instance_obj = Dept.objects.filter(**filter_data).first() | ||||
|                 if instance_obj and not self.initial_data.get('reset'): | ||||
|  | @ -72,7 +73,7 @@ class DeptInitSerializer(CustomModelSerializer): | |||
|     class Meta: | ||||
|         model = Dept | ||||
|         fields = ['name', 'sort', 'owner', 'phone', 'email', 'status', 'parent', 'creator', 'dept_belong_id', | ||||
|                   'children'] | ||||
|                   'children','key'] | ||||
|         extra_kwargs = { | ||||
|             'creator': {'write_only': True}, | ||||
|             'dept_belong_id': {'write_only': True} | ||||
|  |  | |||
|  | @ -46,6 +46,16 @@ class UsersInitSerializer(CustomModelSerializer): | |||
|     """ | ||||
|     初始化获取数信息(用于生成初始化json文件) | ||||
|     """ | ||||
|     def save(self, **kwargs): | ||||
|         instance = super().save(**kwargs) | ||||
|         role_key = self.initial_data.get('role_key',[]) | ||||
|         role_ids = Role.objects.filter(key__in=role_key).values_list('id',flat=True) | ||||
|         instance.role.set(role_ids) | ||||
|         dept_key = self.initial_data.get('dept_key',None) | ||||
|         dept_id = Dept.objects.filter(key=dept_key).first() | ||||
|         instance.dept = dept_id | ||||
|         instance.save() | ||||
|         return instance | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = Users | ||||
|  |  | |||
|  | @ -6,4 +6,5 @@ VUE_APP_TITLE=企业级后台管理系统 | |||
| VUE_APP_PM_ENABLED = true | ||||
| # 后端接口地址及端口(域名) | ||||
| VUE_APP_API = "http://127.0.0.1:8000" | ||||
| VUE_APP_WEBSOCKET = "ws://127.0.0.1:8000" | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ import util from '@/libs/util' | |||
| function initWebSocket (e) { | ||||
|   const token = util.cookies.get('token') | ||||
|   if (token) { | ||||
|     const wsUri = 'ws://127.0.0.1:8000/ws/' + token + '/?room=message_center' | ||||
|     const wsUri = process.env.VUE_APP_WEBSOCKET + '/ws/' + token + '/?room=message_center' | ||||
|     this.socket = new WebSocket(wsUri)// 这里面的this都指向vue | ||||
|     this.socket.onerror = webSocketOnError | ||||
|     this.socket.onmessage = webSocketOnMessage | ||||
|  | @ -53,7 +53,8 @@ function webSocketOnMessage (e) { | |||
| // 关闭websiocket | ||||
| function closeWebsocket () { | ||||
|   console.log('连接已关闭...') | ||||
|   close() | ||||
|   // close() | ||||
|   this.socket.close() | ||||
| } | ||||
| function close () { | ||||
|   // this.socket.close() // 关闭 websocket | ||||
|  | @ -66,5 +67,5 @@ function webSocketSend (message) { | |||
|   this.socket.send(JSON.stringify(message)) | ||||
| } | ||||
| export default { | ||||
|   initWebSocket, close, webSocketSend | ||||
|   initWebSocket, closeWebsocket, webSocketSend | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 猿小天
						猿小天