diff --git a/backend/dvadmin/system/models.py b/backend/dvadmin/system/models.py
index 734a468..6aee47b 100644
--- a/backend/dvadmin/system/models.py
+++ b/backend/dvadmin/system/models.py
@@ -417,7 +417,7 @@ class MessageCenter(CoreModel):
     content = models.TextField(verbose_name="内容",help_text="内容")
     target_type=models.IntegerField(default=0,verbose_name="目标类型",help_text="目标类型")
     target_user = models.ManyToManyField(to=Users,related_name="target_user",blank=True,db_constraint=False,verbose_name="目标用户",help_text="目标用户")
-    target_dept = models.ManyToManyField(to=Dept, null=True, blank=True, db_constraint=False,
+    target_dept = models.ManyToManyField(to=Dept,  blank=True, db_constraint=False,
                                     verbose_name="目标部门", help_text="目标部门")
     target_role = models.ManyToManyField(to=Role,  blank=True, db_constraint=False,
                                     verbose_name="目标角色", help_text="目标角色")
diff --git a/backend/dvadmin/system/views/dept.py b/backend/dvadmin/system/views/dept.py
index bb88ea3..41e5cd2 100644
--- a/backend/dvadmin/system/views/dept.py
+++ b/backend/dvadmin/system/views/dept.py
@@ -61,6 +61,8 @@ class DeptInitSerializer(CustomModelSerializer):
                     "parent": menu_data['parent']
                 }
                 instance_obj = Dept.objects.filter(**filter_data).first()
+                if instance_obj and not self.initial_data.get('reset'):
+                    continue
                 serializer = DeptInitSerializer(instance_obj, data=menu_data, request=self.request)
                 serializer.is_valid(raise_exception=True)
                 serializer.save()
diff --git a/backend/dvadmin/system/views/dictionary.py b/backend/dvadmin/system/views/dictionary.py
index b3e68a1..1cb49e7 100644
--- a/backend/dvadmin/system/views/dictionary.py
+++ b/backend/dvadmin/system/views/dictionary.py
@@ -53,6 +53,8 @@ class DictionaryInitSerializer(CustomModelSerializer):
                     "parent": data['parent']
                 }
                 instance_obj = Dictionary.objects.filter(**filter_data).first()
+                if instance_obj and not self.initial_data.get('reset'):
+                    continue
                 serializer = DictionaryInitSerializer(instance_obj, data=data, request=self.request)
                 serializer.is_valid(raise_exception=True)
                 serializer.save()
diff --git a/backend/dvadmin/system/views/menu.py b/backend/dvadmin/system/views/menu.py
index cd75951..b1f3bfd 100644
--- a/backend/dvadmin/system/views/menu.py
+++ b/backend/dvadmin/system/views/menu.py
@@ -85,6 +85,8 @@ class MenuInitSerializer(CustomModelSerializer):
                     "component_name": menu_data['component_name'],
                 }
                 instance_obj = Menu.objects.filter(**filter_data).first()
+                if instance_obj and not self.initial_data.get('reset'):
+                    continue
                 serializer = MenuInitSerializer(instance_obj, data=menu_data, request=self.request)
                 serializer.is_valid(raise_exception=True)
                 serializer.save()
diff --git a/backend/dvadmin/system/views/system_config.py b/backend/dvadmin/system/views/system_config.py
index b01be3d..cfe7202 100644
--- a/backend/dvadmin/system/views/system_config.py
+++ b/backend/dvadmin/system/views/system_config.py
@@ -69,6 +69,8 @@ class SystemConfigInitSerializer(CustomModelSerializer):
                     "parent": data['parent']
                 }
                 instance_obj = SystemConfig.objects.filter(**filter_data).first()
+                if instance_obj and not self.initial_data.get('reset'):
+                    continue
                 serializer = SystemConfigInitSerializer(instance_obj, data=data, request=self.request)
                 serializer.is_valid(raise_exception=True)
                 serializer.save()
diff --git a/backend/dvadmin/utils/core_initialize.py b/backend/dvadmin/utils/core_initialize.py
index bfbd631..2ae62cb 100644
--- a/backend/dvadmin/utils/core_initialize.py
+++ b/backend/dvadmin/utils/core_initialize.py
@@ -48,6 +48,7 @@ class CoreInitialize:
                             continue
                         filter_data[key] = value
                 instance = model.objects.filter(**filter_data).first()
+                data["reset"] = self.reset
                 serializer = Serializer(instance, data=data, request=self.request)
                 serializer.is_valid(raise_exception=True)
                 serializer.save()
diff --git a/web/src/api/websocket.js b/web/src/api/websocket.js
index e324f12..a06bdfc 100644
--- a/web/src/api/websocket.js
+++ b/web/src/api/websocket.js
@@ -16,7 +16,8 @@ function webSocketOnError (e) {
     title: '',
     message: 'WebSocket连接发生错误' + JSON.stringify(e),
     type: 'error',
-    duration: 0
+    position: 'bottom-right',
+    duration: 3000
   })
 }
 function webSocketOnMessage (e) {
diff --git a/web/src/components/foreign-key/index.vue b/web/src/components/foreign-key/index.vue
index ef68d27..100849c 100644
--- a/web/src/components/foreign-key/index.vue
+++ b/web/src/components/foreign-key/index.vue
@@ -20,8 +20,8 @@ export default {
       currentValue: ''
     }
   },
-  watch:{
-    value(nv,ov){
+  watch: {
+    value (nv, ov) {
       const { row } = this.$parent.scope
       const valueBinding = this.$parent.valueBinding
       this.setValue(row[valueBinding])
diff --git a/web/src/install.js b/web/src/install.js
index e6e2c96..fa38537 100644
--- a/web/src/install.js
+++ b/web/src/install.js
@@ -398,15 +398,15 @@ Vue.prototype.commonEndColumns = function (param = {}) {
       key: 'is_deleted',
       width: 160,
       search: {
-        disabled: !showData.is_deleted.showForm,
+        disabled: !showData.is_deleted.showForm
       },
       show: showData.is_deleted.showTable,
       type: 'radio',
-      dict:{
-        data:[{label:"是",value:true},{label:"否",value:false}]
+      dict: {
+        data: [{ label: '是', value: true }, { label: '否', value: false }]
       },
       form: {
-        disabled: !showData.is_deleted.showForm,
+        disabled: !showData.is_deleted.showForm
 
       }
     }
diff --git a/web/src/libs/util.params.js b/web/src/libs/util.params.js
index d4ad979..942ef1d 100644
--- a/web/src/libs/util.params.js
+++ b/web/src/libs/util.params.js
@@ -1,12 +1,10 @@
-import util from '@/libs/util'
-
 /**
  * 对请求参数进行过滤
  *@param that=>this
  *@param array:其他字段数组
  */
 const filterParams = function (that, array) {
-  that.$nextTick(()=>{
+  that.$nextTick(() => {
     const arr = that.crud.columns
     const columnKeys = arr.map(item => {
       return item.key
diff --git a/web/src/main.js b/web/src/main.js
index 36b5dfc..33df0fa 100644
--- a/web/src/main.js
+++ b/web/src/main.js
@@ -32,7 +32,7 @@ import 'vxe-table/lib/style.css'
 // md5加密
 import md5 from 'js-md5'
 
-//websocket
+// websocket
 import websocket from '@/api/websocket'
 
 // 核心插件
diff --git a/web/src/views/system/messageCenter/crud.js b/web/src/views/system/messageCenter/crud.js
index abed551..b519444 100644
--- a/web/src/views/system/messageCenter/crud.js
+++ b/web/src/views/system/messageCenter/crud.js
@@ -15,7 +15,6 @@ export const crudOptions = (vm) => {
       {
         title: 'id',
         key: 'id',
-        sortable: true,
         width: 100,
         form: { disabled: true }
       },
@@ -33,7 +32,7 @@ export const crudOptions = (vm) => {
               message: '必填项'
             }
           ],
-          component: { span: 24 }
+          component: { span: 24, placeholder: '请输入标题' }
         }
       },
       {
diff --git a/web/src/views/system/role/api.js b/web/src/views/system/role/api.js
index f215c52..48a4566 100644
--- a/web/src/views/system/role/api.js
+++ b/web/src/views/system/role/api.js
@@ -14,7 +14,7 @@ export function GetList (query) {
   return request({
     url: urlPrefix,
     method: 'get',
-    params: {...query}
+    params: { ...query }
   })
 }
 
diff --git a/web/src/views/system/user/crud.js b/web/src/views/system/user/crud.js
index caaa4d0..d4a3495 100644
--- a/web/src/views/system/user/crud.js
+++ b/web/src/views/system/user/crud.js
@@ -3,7 +3,7 @@ import { urlPrefix as deptPrefix } from '../dept/api'
 import util from '@/libs/util'
 
 export const crudOptions = (vm) => {
-  util.filterParams(vm, ['dept_name','role_info{name}'])
+  util.filterParams(vm, ['dept_name', 'role_info{name}'])
   return {
     pageOptions: {
       compact: true