!69 新功能: 加入消息中心

Merge pull request !69 from dvadmin/v2.x
pull/70/head
dvadmin 2022-08-15 00:43:24 +00:00 committed by Gitee
commit 1cf88c1ecf
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
14 changed files with 23 additions and 16 deletions

View File

@ -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="目标角色")

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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) {

View File

@ -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])

View File

@ -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
}
}

View File

@ -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

View File

@ -32,7 +32,7 @@ import 'vxe-table/lib/style.css'
// md5加密
import md5 from 'js-md5'
//websocket
// websocket
import websocket from '@/api/websocket'
// 核心插件

View File

@ -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: '请输入标题' }
}
},
{

View File

@ -14,7 +14,7 @@ export function GetList (query) {
return request({
url: urlPrefix,
method: 'get',
params: {...query}
params: { ...query }
})
}

View File

@ -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