Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
VIZ.Package
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘龙飞
VIZ.Package
Commits
690f781e
Commit
690f781e
authored
Mar 20, 2023
by
liulongfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
底飞实现
parent
0b0adb28
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
966 additions
and
142 deletions
+966
-142
Doc/底飞_set.xml
+27
-0
Doc/底飞_update.xml
+14
-27
VIZ.Package.Domain/Core/GridColumnScrollElementFieldDefinition.cs
+29
-0
VIZ.Package.Domain/Expand/PageModelExpand.cs
+18
-4
VIZ.Package.Domain/VIZ.Package.Domain.csproj
+1
-0
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ListEdit/CellEdit/ImageListCellEdit.xaml.cs
+1
-1
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ListEdit/CellEdit/RichTextListCellEdit.xaml.cs
+1
-1
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ListEdit/CellEdit/TextListCellEdit.xaml.cs
+1
-1
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/CellEdit/ImageScrollElementCellEdit.cs
+50
-0
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/CellEdit/RichTextScrollElementCellEdit.cs
+53
-0
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/CellEdit/TextScrollElementCellEdit.cs
+51
-0
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/ScrollElementEditPanelCellTemplateSelector.cs
+60
-0
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/ScrollElementsEditPanel.xaml
+86
-4
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/ScrollElementsEditPanelModel.cs
+166
-72
VIZ.Package.Module/ControlObject/FieldTree/ViewModel/FieldTreeViewModel.cs
+1
-1
VIZ.Package.Module/Help/About/View/AboutWindow.xaml
+1
-1
VIZ.Package.Module/VIZ.Package.Module.csproj
+4
-0
VIZ.Package.Service/DB/ScrollElement/ScrollElementService.cs
+234
-0
VIZ.Package.Service/VIZ.Package.Service.csproj
+2
-0
VIZ.Package.Service/Viz/VizCommandControlObjectService.cs
+30
-1
VIZ.Package.Service/Viz/VizCommandElementService.cs
+16
-0
VIZ.Package.Storage/Entity/ScrollElement/ScrollElementPackageEntity.cs
+9
-9
VIZ.Package.Storage/Enum/VizScrollElementRootTag.cs
+29
-0
VIZ.Package.Storage/ProjectDbContext.cs
+4
-11
VIZ.Package.Storage/VIZ.Package.Storage.csproj
+2
-1
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Element_Node.cs
+50
-2
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Entry_Node.cs
+1
-4
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Field_node.cs
+13
-1
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Schema_Node.cs
+11
-1
VIZ.Package.sln
+1
-0
No files found.
Doc/底飞_set.xml
0 → 100644
View file @
690f781e
<entry>
<entry>
<element
complete=
"true"
scene=
"TITLES/2022/YC/YC_FeiGun_image"
name=
"1000"
>
<entry
name=
"viz"
>
<entry
name=
"location"
/>
<entry
name=
"front"
>
<entry
name=
"scene"
>
TITLES/2022/YC/YC_FeiGun_image
</entry>
</entry>
<entry
name=
"load"
>
scene
</entry>
<entry
name=
"viz_layer"
/>
<entry
name=
"use_all_directors"
>
yes
</entry>
</entry>
<schema>
<field
description=
"FZZongYi-M05S-Regular"
location=
"1/2"
singleline=
"True"
type=
"richtext"
name=
"1"
/>
<field
description=
"Image1"
location=
"1/1"
type=
"image"
name=
"Image1"
/>
<field
type=
"float"
name=
"scroll_data.space_before"
/>
<field
type=
"float"
name=
"scroll_data.space_after"
/>
</schema>
<entry
name=
"data"
>
<entry
name=
"1"
>
22222222
</entry>
<entry
name=
"Image1"
>
IMAGE*TITLES/2022/YC/mu_ad
</entry>
<entry
name=
"scroll_data.space_before"
>
0
</entry>
<entry
name=
"scroll_data.space_after"
>
0
</entry>
</entry>
</element>
</entry>
\ No newline at end of file
Doc/底飞_update.xml
View file @
690f781e
<?xm
l version="1.0" encoding="utf-8"?>
<?xm
l version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<update>
<element
name=
"1011"
description=
"12345678"
complete=
"true"
showautodescription=
"true"
scene=
"TITLES/2022/YC/YC_FeiGun_text
"
>
<element
complete=
"true"
scene=
"TITLES/2022/YC/YC_FeiGun_image"
name=
"1000
"
>
<entry
name=
"viz"
>
<entry
name=
"location"
></entry
>
<entry
name=
"location"
/
>
<entry
name=
"front"
>
<entry
name=
"scene"
timestamp=
""
>
TITLES/2022/YC/YC_FeiGun_text
</entry>
<entry
name=
"scene"
>
TITLES/2022/YC/YC_FeiGun_image
</entry>
</entry>
<entry
name=
"load"
>
scene
</entry>
<entry
name=
"viz_layer"
></entry
>
<entry
name=
"viz_layer"
/
>
<entry
name=
"use_all_directors"
>
yes
</entry>
<entry
name=
"fonts"
></entry>
</entry>
<ref
name=
"master_template"
>
/storage/shows/{ABCB973C-3A85-4DC2-BF2B-2C01BD1433E7}/mastertemplates/YC_FeiGun_text
</ref>
<entry
name=
"default_alternatives"
></entry>
<schema>
<field
name=
"1"
type=
"richtext"
description=
"FZZongYi-M05S-Regular"
singleline=
"True"
location=
"1/1"
/>
<field
name=
"scroll_data.space_before"
type=
"float"
/>
<field
name=
"scroll_data.space_after"
type=
"float"
/>
<field
description=
"FZZongYi-M05S-Regular"
location=
"1/2"
singleline=
"True"
type=
"richtext"
name=
"1"
/>
<field
description=
"Image1"
location=
"1/1"
type=
"image"
name=
"Image1"
/>
<field
type=
"float"
name=
"scroll_data.space_before"
/>
<field
type=
"float"
name=
"scroll_data.space_after"
/>
</schema>
<entry
name=
"data"
>
<entry
name=
"1"
>
12345678
</entry>
<entry
name=
"scroll_data.space_before"
>
0
</entry>
<entry
name=
"scroll_data.space_after"
>
0
</entry>
</entry>
<entry
name=
"dblink"
>
<entry
name=
"1"
/>
</entry>
<entry
name=
"settings"
>
<entry
name=
"tabfields"
>
<entry
name=
"1"
/>
<entry
name=
"scroll_data"
>
<entry
name=
"type"
>
scroll_data
</entry>
</entry>
</entry>
<entry
name=
"isfilescript"
>
false
</entry>
<entry
name=
"modified"
>
2023-03-13T16:54:12
</entry>
<entry
name=
"1"
>
22222222
</entry>
<entry
name=
"Image1"
>
IMAGE*TITLES/2022/YC/mu_ad
</entry>
<entry
name=
"scroll_data.space_before"
>
0
</entry>
<entry
name=
"scroll_data.space_after"
>
0
</entry>
</entry>
</element>
</update>
\ No newline at end of file
VIZ.Package.Domain/Core/GridColumnScrollElementFieldDefinition.cs
0 → 100644
View file @
690f781e
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VIZ.Package.Storage
;
namespace
VIZ.Package.Domain
{
/// <summary>
/// 底飞字段定义
/// </summary>
public
class
GridColumnScrollElementFieldDefinition
:
GridColumnControlFieldDefinition
{
#
region
PageBase
--
关联页
private
PageModelBase
pageBase
;
/// <summary>
/// 关联页
/// </summary>
public
PageModelBase
PageBase
{
get
{
return
pageBase
;
}
set
{
pageBase
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
PageBase
));
}
}
#
endregion
}
}
VIZ.Package.Domain/Expand/PageModelExpand.cs
View file @
690f781e
...
...
@@ -14,7 +14,7 @@ namespace VIZ.Package.Domain
/// <summary>
/// 获取场景信息
/// </summary>
/// <param name="pageBase">
场景
模型基类</param>
/// <param name="pageBase">
页
模型基类</param>
/// <returns>场景信息</returns>
public
static
SceneInfoModel
GetSceneInfo
(
this
PageModelBase
pageBase
)
{
...
...
@@ -32,17 +32,31 @@ namespace VIZ.Package.Domain
}
}
/// <summary>
/// 获取场景父级
/// </summary>
/// <param name="pageBase">
场景父级
</param>
/// <param name="pageBase">
页模型基类
</param>
/// <returns>场景父级</returns>
public
static
string
GetSceneParent
(
this
PageModelBase
pageBase
)
{
string
parent
=
ApplicationDomainEx
.
CurrentPage
.
ScenePath
.
Substring
(
0
,
ApplicationDomainEx
.
CurrentPage
.
ScenePath
.
LastIndexOf
(
'/'
));
return
parent
;
}
/// <summary>
/// 获取模板ID或页ID
/// </summary>
/// <param name="pageBase">页模型基类</param>
/// <returns>模板ID或页ID</returns>
public
static
Guid
GetTemplateIdOrPageId
(
this
PageModelBase
pageBase
)
{
if
(
pageBase
is
PageModel
page
)
return
page
.
PageID
;
if
(
pageBase
is
PageTemplateModel
template
)
return
template
.
TemplateID
;
return
Guid
.
Empty
;
}
}
}
VIZ.Package.Domain/VIZ.Package.Domain.csproj
View file @
690f781e
...
...
@@ -77,6 +77,7 @@
<Compile Include="ApplicationDomainEx.cs" />
<Compile Include="Core\GridColumnControlFieldDefinition.cs" />
<Compile Include="Core\GridColumnDefinition.cs" />
<Compile Include="Core\GridColumnScrollElementFieldDefinition.cs" />
<Compile Include="Core\IHotkeySupport.cs" />
<Compile Include="Enum\ConnGroupStatus.cs" />
<Compile Include="Enum\MenuItemType.cs" />
...
...
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ListEdit/CellEdit/ImageListCellEdit.xaml.cs
View file @
690f781e
...
...
@@ -44,7 +44,7 @@ namespace VIZ.Package.Module
/// <summary>
/// 值改变时触发
/// </summary>
pr
ivate
void
EditValueChanged
(
object
sender
,
DevExpress
.
Xpf
.
Editors
.
EditValueChangedEventArgs
e
)
pr
otected
virtual
void
EditValueChanged
(
object
sender
,
DevExpress
.
Xpf
.
Editors
.
EditValueChangedEventArgs
e
)
{
// 是否需要发送至预览
if
(!
this
.
IsSendToPreview
)
...
...
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ListEdit/CellEdit/RichTextListCellEdit.xaml.cs
View file @
690f781e
...
...
@@ -54,7 +54,7 @@ namespace VIZ.Package.Module
/// <summary>
/// 值改变时触发
/// </summary>
pr
ivate
void
EditValueChanged
(
object
sender
,
DevExpress
.
Xpf
.
Editors
.
EditValueChangedEventArgs
e
)
pr
otected
virtual
void
EditValueChanged
(
object
sender
,
DevExpress
.
Xpf
.
Editors
.
EditValueChangedEventArgs
e
)
{
// 是否需要发送至预览
if
(!
this
.
IsSendToPreview
)
...
...
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ListEdit/CellEdit/TextListCellEdit.xaml.cs
View file @
690f781e
...
...
@@ -44,7 +44,7 @@ namespace VIZ.Package.Module
/// <summary>
/// 值改变时触发
/// </summary>
pr
ivate
void
EditValueChanged
(
object
sender
,
DevExpress
.
Xpf
.
Editors
.
EditValueChangedEventArgs
e
)
pr
otected
virtual
void
EditValueChanged
(
object
sender
,
DevExpress
.
Xpf
.
Editors
.
EditValueChangedEventArgs
e
)
{
// 是否需要发送至预览
if
(!
this
.
IsSendToPreview
)
...
...
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/CellEdit/ImageScrollElementCellEdit.cs
0 → 100644
View file @
690f781e
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VIZ.Package.Domain
;
namespace
VIZ.Package.Module
{
/// <summary>
/// 图片底飞单元格编辑
/// </summary>
public
class
ImageScrollElementCellEdit
:
ImageListCellEdit
{
/// <summary>
/// 值改变时触发
/// </summary>
protected
override
void
EditValueChanged
(
object
sender
,
DevExpress
.
Xpf
.
Editors
.
EditValueChangedEventArgs
e
)
{
// 是否需要发送至预览
if
(!
this
.
IsSendToPreview
)
return
;
// 预览连接不存在
if
(
ApplicationDomainEx
.
PreviewConn
==
null
)
return
;
DevExpress
.
Xpf
.
Grid
.
EditGridCellData
cellData
=
this
.
DataContext
as
DevExpress
.
Xpf
.
Grid
.
EditGridCellData
;
if
(
cellData
==
null
)
return
;
GridColumnControlFieldDefinition
columnDefinition
=
cellData
.
Column
.
DataContext
as
GridColumnControlFieldDefinition
;
if
(
columnDefinition
==
null
)
return
;
// 设置值
IDictionary
<
string
,
object
>
dic
=
cellData
.
Row
as
IDictionary
<
string
,
object
>;
dic
[
columnDefinition
.
FieldName
]
=
e
.
NewValue
?.
ToString
()
??
string
.
Empty
;
// 向Viz发送指令
//this.VizCommandControlObjectService.SetControlObjectListValue(
// ApplicationDomainEx.PreviewConn,
// columnDefinition.ControlObject.TreeNodePath,
// columnDefinition.ControlField.FieldIdentifier,
// cellData.RowData.RowHandle.Value,
// columnDefinition.FieldName,
// e.NewValue?.ToString() ?? string.Empty);
}
}
}
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/CellEdit/RichTextScrollElementCellEdit.cs
0 → 100644
View file @
690f781e
using
DevExpress.Xpf.Editors
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VIZ.Package.Domain
;
namespace
VIZ.Package.Module
{
/// <summary>
/// 富文本底飞单元格编辑
/// </summary>
public
class
RichTextScrollElementCellEdit
:
RichTextListCellEdit
{
/// <summary>
/// 值改变时触发
/// </summary>
protected
override
void
EditValueChanged
(
object
sender
,
EditValueChangedEventArgs
e
)
{
// 是否需要发送至预览
if
(!
this
.
IsSendToPreview
)
return
;
// 预览连接不存在
if
(
ApplicationDomainEx
.
PreviewConn
==
null
)
return
;
DevExpress
.
Xpf
.
Grid
.
EditGridCellData
cellData
=
this
.
DataContext
as
DevExpress
.
Xpf
.
Grid
.
EditGridCellData
;
if
(
cellData
==
null
)
return
;
GridColumnControlFieldDefinition
columnDefinition
=
cellData
.
Column
.
DataContext
as
GridColumnControlFieldDefinition
;
if
(
columnDefinition
==
null
)
return
;
string
richText
=
$"
{
RICH_TEXT_LEFT
}{
e
.
NewValue
?.
ToString
()
??
string
.
Empty
}{
RICH_TEXT_RIGHT
}
"
;
// 设置值
IDictionary
<
string
,
object
>
dic
=
cellData
.
Row
as
IDictionary
<
string
,
object
>;
dic
[
columnDefinition
.
FieldName
]
=
richText
;
// 向Viz发送指令
//this.VizCommandControlObjectService.SetControlObjectListValue(
// ApplicationDomainEx.PreviewConn,
// columnDefinition.ControlObject.TreeNodePath,
// columnDefinition.ControlField.FieldIdentifier,
// cellData.RowData.RowHandle.Value,
// columnDefinition.FieldName,
// richText);
}
}
}
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/CellEdit/TextScrollElementCellEdit.cs
0 → 100644
View file @
690f781e
using
DevExpress.Xpf.Editors
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VIZ.Package.Domain
;
namespace
VIZ.Package.Module
{
/// <summary>
///
/// </summary>
public
class
TextScrollElementCellEdit
:
TextListCellEdit
{
/// <summary>
/// 值改变时触发
/// </summary>
protected
override
void
EditValueChanged
(
object
sender
,
EditValueChangedEventArgs
e
)
{
// 是否需要发送至预览
if
(!
this
.
IsSendToPreview
)
return
;
// 预览连接不存在
if
(
ApplicationDomainEx
.
PreviewConn
==
null
)
return
;
DevExpress
.
Xpf
.
Grid
.
EditGridCellData
cellData
=
this
.
DataContext
as
DevExpress
.
Xpf
.
Grid
.
EditGridCellData
;
if
(
cellData
==
null
)
return
;
GridColumnControlFieldDefinition
columnDefinition
=
cellData
.
Column
.
DataContext
as
GridColumnControlFieldDefinition
;
if
(
columnDefinition
==
null
)
return
;
// 设置值
IDictionary
<
string
,
object
>
dic
=
cellData
.
Row
as
IDictionary
<
string
,
object
>;
dic
[
columnDefinition
.
FieldName
]
=
e
.
NewValue
?.
ToString
()
??
string
.
Empty
;
// 向Viz发送指令
//this.VizCommandControlObjectService.SetControlObjectListValue(
// ApplicationDomainEx.PreviewConn,
// columnDefinition.ControlObject.TreeNodePath,
// columnDefinition.ControlField.FieldIdentifier,
// cellData.RowData.RowHandle.Value,
// columnDefinition.FieldName,
// e.NewValue?.ToString() ?? string.Empty);
}
}
}
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/ScrollElementEditPanelCellTemplateSelector.cs
0 → 100644
View file @
690f781e
using
DevExpress.Xpf.Grid
;
using
System
;
using
System.Collections.Generic
;
using
System.Dynamic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows
;
using
System.Windows.Controls
;
using
VIZ.Package.Domain
;
using
VIZ.Package.Storage
;
namespace
VIZ.Package.Module
{
/// <summary>
/// 底飞编辑面板单元格模板选择器
/// </summary>
public
class
ScrollElementEditPanelCellTemplateSelector
:
DataTemplateSelector
{
/// <summary>
/// 文本模板
/// </summary>
public
DataTemplate
TextDataTemplate
{
get
;
set
;
}
/// <summary>
/// 富文本模板
/// </summary>
public
DataTemplate
RichTextDataTemplate
{
get
;
set
;
}
/// <summary>
/// 图片模板
/// </summary>
public
DataTemplate
ImageDataTemplate
{
get
;
set
;
}
/// <summary>
/// 筛选模板
/// </summary>
/// <param name="item">项</param>
/// <param name="container">容器</param>
/// <returns>数据模板</returns>
public
override
DataTemplate
SelectTemplate
(
object
item
,
DependencyObject
container
)
{
GridCellData
data
=
(
GridCellData
)
item
;
GridColumnScrollElementFieldDefinition
definition
=
data
.
Column
.
DataContext
as
GridColumnScrollElementFieldDefinition
;
if
(
definition
==
null
)
return
null
;
switch
(
definition
.
Type
)
{
case
VizControlFieldType
.
none
:
return
null
;
case
VizControlFieldType
.
text
:
return
this
.
TextDataTemplate
;
case
VizControlFieldType
.
richtext
:
return
this
.
RichTextDataTemplate
;
case
VizControlFieldType
.
image
:
return
this
.
ImageDataTemplate
;
default
:
return
null
;
}
}
}
}
\ No newline at end of file
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/ScrollElementsEditPanel.xaml
View file @
690f781e
...
...
@@ -17,19 +17,71 @@
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="800">
<UserControl.Resources>
<fcore:Bitmap2ImageSourceConverter x:Key="Bitmap2ImageSourceConverter"></fcore:Bitmap2ImageSourceConverter>
</UserControl.Resources>
<!-- 行号转化器 -->
<resource:RowHandleConverter x:Key="RowHandleConverter"></resource:RowHandleConverter>
<!-- 富文本转文本 -->
<resource:RichText2TextConverter x:Key="RichText2TextConverter"></resource:RichText2TextConverter>
<!-- 单元格编辑模板选择器 -->
<local:ScrollElementEditPanelCellTemplateSelector x:Key="CellTemplateSelector">
<!-- 富文本 -->
<local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value,Converter={StaticResource RichText2TextConverter},Mode=OneWay}" Margin="3,0,3,0"
TextTrimming="CharacterEllipsis" TextWrapping="NoWrap" VerticalAlignment="Center"></TextBlock>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
<!-- 图片 -->
<local:ScrollElementEditPanelCellTemplateSelector.ImageDataTemplate>
<DataTemplate>
<local:ImageListCellEdit></local:ImageListCellEdit>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.ImageDataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector>
<!-- 单元格编辑模板选择器 -->
<local:ScrollElementEditPanelCellTemplateSelector x:Key="CellEditTemplateSelector">
<!-- 文本 -->
<local:ScrollElementEditPanelCellTemplateSelector.TextDataTemplate>
<DataTemplate>
<local:TextListCellEdit></local:TextListCellEdit>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.TextDataTemplate>
<!-- 富文本 -->
<local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
<DataTemplate>
<local:RichTextScrollElementCellEdit></local:RichTextScrollElementCellEdit>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector>
<!-- 列定义模板 -->
<DataTemplate x:Key="ColumnTemplate">
<ContentControl>
<dxg:GridColumn FieldName="{Binding FieldName}"
MinWidth="320" Width="Auto"
Header="{Binding Header}" ReadOnly="{Binding ReadOnly}"
CellTemplateSelector="{StaticResource CellTemplateSelector}"
CellEditTemplateSelector="{StaticResource CellEditTemplateSelector}"
AllowEditing="{Binding AllowEditing}"
AllowResizing="True"
AllowSorting="False" AllowColumnFiltering="False"/>
</ContentControl>
</DataTemplate>
</UserControl.Resources>
<Grid VerticalAlignment="Stretch" AllowDrop="True">
<Grid.RowDefinitions>
<RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<!-- 模板 -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="
10
0"></ColumnDefinition>
<ColumnDefinition Width="
6
0"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
...
...
@@ -43,6 +95,36 @@
</Grid>
<!-- 数据 -->
<dxg:GridControl ItemsSource="{Binding Path=ItemsSource}" ShowBorder="True" Grid.Row="1" AllowDrop="True"
ColumnsSource="{Binding Path=Columns}" SelectionMode="Cell" Margin="10"
SelectedItem="{Binding Path=SelectedValue}"
ColumnGeneratorTemplate="{StaticResource ColumnTemplate}">
<dxmvvm:Interaction.Behaviors>
<dxmvvm:EventToCommand EventName="SelectionChanged" PassEventArgsToCommand="True" Command="{Binding Path=SelectionChangedCommand}"></dxmvvm:EventToCommand>
</dxmvvm:Interaction.Behaviors>
<dxg:GridControl.ContextMenu>
<ContextMenu>
<MenuItem Header="添加" Command="{Binding Path=PlacementTarget.DataContext.AddCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
<MenuItem Header="删除" Command="{Binding Path=PlacementTarget.DataContext.RemoveCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
</ContextMenu>
</dxg:GridControl.ContextMenu>
<dxg:GridControl.View>
<dxg:TableView x:Name="tabView" AllowEditing="True" ShowIndicator="False"
IsColumnMenuEnabled="False"
NavigationStyle="Cell" EditorShowMode="MouseDown" ShowVerticalLines="True"
ShowHorizontalLines="True"
AlternateRowBackground="#05ffffff"
ShowGroupPanel="False" RowMinHeight="24"
AllowDrop="True"
ShowBandsPanel="False"
ShowTotalSummary="False"
ShowFixedTotalSummary="False"
ShowDragDropHint="False"
ShowTargetInfoInDragDropHint="false">
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</UserControl>
VIZ.Package.Module/ControlObject/FieldEdit/Edit/ScrollElementsEdit/ScrollElementsEditPanelModel.cs
View file @
690f781e
...
...
@@ -25,6 +25,11 @@ namespace VIZ.Package.Module
/// </summary>
private
readonly
static
ILog
log
=
LogManager
.
GetLogger
(
typeof
(
ScrollElementsEditPanelModel
));
/// <summary>
/// 支持的控制字段类型
/// </summary>
private
readonly
static
List
<
VizControlFieldType
>
SUPPORT_CONTROL_FIELD_TYPE
=
new
List
<
VizControlFieldType
>
{
VizControlFieldType
.
text
,
VizControlFieldType
.
richtext
,
VizControlFieldType
.
image
};
public
ScrollElementsEditPanelModel
()
{
// 初始化命令
...
...
@@ -37,9 +42,10 @@ namespace VIZ.Package.Module
private
void
InitCommand
()
{
this
.
ApplyTemplateCommand
=
new
VCommand
(
this
.
ApplyTemplate
);
this
.
AddCommand
=
new
VCommand
(
this
.
Add
);
this
.
RemoveCommand
=
new
VCommand
(
this
.
Remove
);
}
// ============================================================
// Service & Controller
// ============================================================
...
...
@@ -54,28 +60,14 @@ namespace VIZ.Package.Module
/// </summary>
private
VizCommandControlObjectService
vizCommandControlObjectService
=
new
VizCommandControlObjectService
();
// ============================================================
// Property
// ============================================================
#
region
EditValue
--
编辑值
private
string
editValue
;
/// <summary>
///
编辑值
///
底飞服务
/// </summary>
public
string
EditValue
{
get
{
return
editValue
;
}
set
{
editValue
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
EditValue
));
this
.
OnEditValueChanged
();
}
}
private
ScrollElementService
scrollElementService
=
new
ScrollElementService
();
#
endregion
// ============================================================
// Property
// ============================================================
#
region
SceneTemplateModels
--
场景模板集合
...
...
@@ -105,6 +97,62 @@ namespace VIZ.Package.Module
#
endregion
#
region
Columns
--
列信息集合
private
ObservableCollection
<
GridColumnScrollElementFieldDefinition
>
columns
;
/// <summary>
/// 列信息集合
/// </summary>
public
ObservableCollection
<
GridColumnScrollElementFieldDefinition
>
Columns
{
get
{
return
columns
;
}
set
{
columns
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
Columns
));
}
}
#
endregion
#
region
ItemsSource
--
数据源
private
ObservableCollection
<
ExpandoObject
>
itemsSource
;
/// <summary>
/// 数据源
/// </summary>
public
ObservableCollection
<
ExpandoObject
>
ItemsSource
{
get
{
return
itemsSource
;
}
set
{
itemsSource
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
ItemsSource
));
}
}
#
endregion
#
region
SelectedValue
--
当前选中的数据项
private
ExpandoObject
selectedValue
;
/// <summary>
/// 当前选中的数据项
/// </summary>
public
ExpandoObject
SelectedValue
{
get
{
return
selectedValue
;
}
set
{
selectedValue
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
SelectedValue
));
}
}
#
endregion
#
region
ScrollElementPackage
--
底飞数据包
private
ScrollElementPackageEntity
scrollElementPackage
;
/// <summary>
/// 底飞数据包
/// </summary>
public
ScrollElementPackageEntity
ScrollElementPackage
{
get
{
return
scrollElementPackage
;
}
set
{
scrollElementPackage
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
ScrollElementPackage
));
}
}
#
endregion
// ============================================================
// Command
// ============================================================
...
...
@@ -132,8 +180,58 @@ namespace VIZ.Package.Module
this
.
vizCommandControlObjectService
.
UpdateControlObjectModel
(
controlObject
,
entity
);
// 只处理文本与图片类型
List
<
ControlFieldNodeModel
>
fields
=
controlObject
.
AllFiledNodes
.
Where
(
p
=>
p
.
Type
==
VizControlFieldType
.
text
||
p
.
Type
==
VizControlFieldType
.
image
).
ToList
();
List
<
ControlFieldNodeModel
>
scrollElementFields
=
controlObject
.
AllFiledNodes
.
Where
(
p
=>
SUPPORT_CONTROL_FIELD_TYPE
.
Contains
(
p
.
Type
)).
ToList
();
// 保存底飞控制字段
this
.
ScrollElementPackage
=
this
.
scrollElementService
.
GetScrollElementPackage
(
ApplicationDomainEx
.
CurrentPage
,
this
.
SelectedSceneTemplateModel
,
this
.
ControlField
,
scrollElementFields
);
this
.
Columns
=
this
.
scrollElementService
.
GetDynamicColumns
(
ApplicationDomainEx
.
CurrentPage
,
controlObject
,
scrollElementFields
).
ToObservableCollection
();
this
.
ItemsSource
=
this
.
scrollElementService
.
GetDynamicList
(
scrollElementFields
,
this
.
ControlField
.
Value
).
ToObservableCollection
();
}
#
endregion
#
region
AddCommand
--
添加项命令
/// <summary>
/// 添加项命令
/// </summary>
public
VCommand
AddCommand
{
get
;
set
;
}
/// <summary>
/// 添加
/// </summary>
private
void
Add
()
{
IDictionary
<
string
,
object
>
row
=
new
ExpandoObject
();
if
(
this
.
Columns
!=
null
)
{
foreach
(
GridColumnScrollElementFieldDefinition
field
in
this
.
Columns
)
{
row
[
field
.
FieldName
]
=
null
;
}
}
this
.
ItemsSource
.
Add
(
row
as
ExpandoObject
);
}
#
endregion
#
region
RemoveCommand
--
移除命令
/// <summary>
/// 移除命令
/// </summary>
public
VCommand
RemoveCommand
{
get
;
set
;
}
/// <summary>
/// 移除
/// </summary>
private
void
Remove
()
{
if
(
this
.
SelectedValue
==
null
)
return
;
this
.
ItemsSource
.
Remove
(
this
.
SelectedValue
);
}
#
endregion
...
...
@@ -157,12 +255,25 @@ namespace VIZ.Package.Module
this
.
IsSendToPreview
=
false
;
string
scrollElementValue
=
controlField
?.
Value
?.
ToString
();
this
.
TryUpdateScrollElementPackage
();
IPageTemplateService
service
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IPageTemplateService
>(
ViewServiceKeys
.
PAGE_TEMPLATE_SERVICE
);
this
.
SceneTemplateModels
=
service
.
SceneTemplateModels
.
Where
(
p
=>
p
.
TransitionLogic
&&
p
.
ScenePath
!=
ApplicationDomainEx
.
CurrentPage
?.
ScenePath
).
ToObservableCollection
();
this
.
SelectedSceneTemplateModel
=
null
;
this
.
SceneTemplateModels
=
service
.
SceneTemplateModels
.
Where
(
p
=>
p
.
ScenePath
!=
ApplicationDomainEx
.
CurrentPage
?.
ScenePath
).
ToObservableCollection
();
if
(
this
.
ScrollElementPackage
!=
null
)
{
this
.
SelectedSceneTemplateModel
=
this
.
SceneTemplateModels
.
FirstOrDefault
(
p
=>
p
.
ScenePath
==
this
.
ScrollElementPackage
.
TemplateScenePath
);
}
this
.
EditValue
=
controlField
?.
Value
?.
ToString
();
// 只处理文本与图片类型
List
<
ControlFieldNodeModel
>
fields
=
new
List
<
ControlFieldNodeModel
>();
foreach
(
var
field
in
this
.
ScrollElementPackage
.
TemplateFields
)
{
fields
.
Add
(
this
.
vizCommandControlObjectService
.
CreateControlFieldNodeModeFromEntity
(
field
));
}
this
.
Columns
=
this
.
scrollElementService
.
GetDynamicColumns
(
ApplicationDomainEx
.
CurrentPage
,
controlObject
,
fields
).
ToObservableCollection
();
this
.
ItemsSource
=
this
.
scrollElementService
.
GetDynamicList
(
fields
,
this
.
ControlField
.
Value
).
ToObservableCollection
();
this
.
IsSendToPreview
=
true
;
}
...
...
@@ -181,7 +292,27 @@ namespace VIZ.Package.Module
IDictionary
<
string
,
object
>
dic
=
row
as
IDictionary
<
string
,
object
>;
this
.
IsSendToPreview
=
false
;
this
.
EditValue
=
dic
?[
columnDefinition
.
FieldName
]?.
ToString
();
string
scrollElementValue
=
dic
?[
columnDefinition
.
FieldName
]?.
ToString
();
this
.
TryUpdateScrollElementPackage
();
IPageTemplateService
service
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IPageTemplateService
>(
ViewServiceKeys
.
PAGE_TEMPLATE_SERVICE
);
this
.
SceneTemplateModels
=
service
.
SceneTemplateModels
.
Where
(
p
=>
p
.
ScenePath
!=
ApplicationDomainEx
.
CurrentPage
?.
ScenePath
).
ToObservableCollection
();
if
(
this
.
ScrollElementPackage
!=
null
)
{
this
.
SelectedSceneTemplateModel
=
this
.
SceneTemplateModels
.
FirstOrDefault
(
p
=>
p
.
ScenePath
==
this
.
ScrollElementPackage
.
TemplateScenePath
);
}
// 只处理文本与图片类型
List
<
ControlFieldNodeModel
>
fields
=
new
List
<
ControlFieldNodeModel
>();
foreach
(
var
field
in
this
.
ScrollElementPackage
.
TemplateFields
)
{
fields
.
Add
(
this
.
vizCommandControlObjectService
.
CreateControlFieldNodeModeFromEntity
(
field
));
}
this
.
Columns
=
this
.
scrollElementService
.
GetDynamicColumns
(
ApplicationDomainEx
.
CurrentPage
,
this
.
ControlObject
,
fields
).
ToObservableCollection
();
this
.
ItemsSource
=
this
.
scrollElementService
.
GetDynamicList
(
fields
,
this
.
ControlField
.
Value
).
ToObservableCollection
();
this
.
IsSendToPreview
=
true
;
}
...
...
@@ -191,7 +322,9 @@ namespace VIZ.Package.Module
/// <returns>字段值</returns>
public
override
string
GetFieldValue
()
{
return
this
.
EditValue
;
string
value
=
this
.
scrollElementService
.
GetScrollElementValue
(
this
.
ScrollElementPackage
.
TemplateScenePath
,
this
.
ScrollElementPackage
.
TemplateFields
,
this
.
ItemsSource
,
VizScrollElementRootTag
.
entry
);
return
value
;
}
// ============================================================
...
...
@@ -199,57 +332,18 @@ namespace VIZ.Package.Module
// ============================================================
/// <summary>
///
值改变时触发
///
尝试更新底飞元素数据包
/// </summary>
private
void
OnEditValueChanged
()
private
void
TryUpdateScrollElementPackage
()
{
// 不需要向预览发送值
if
(!
this
.
IsSendToPreview
)
return
;
// 没有预览连接
if
(
ApplicationDomainEx
.
PreviewConn
==
null
)
return
;
Guid
teplateOrPageId
=
ApplicationDomainEx
.
CurrentPage
.
GetTemplateIdOrPageId
();
// 没有控制对象或控制字段
if
(
this
.
ControlObject
==
null
||
this
.
ControlField
==
null
)
// 当前拥有模板且模板与当前选择的页和控制字段匹配则不处理
if
(
this
.
ScrollElementPackage
!=
null
&&
this
.
ScrollElementPackage
.
TemplateOrPageID
==
teplateOrPageId
&&
this
.
ScrollElementPackage
.
FieldIdentifier
==
this
.
ControlField
.
FieldIdentifier
)
return
;
// 正常模式编辑
if
(
this
.
FieldEditMode
==
FieldEditMode
.
Normal
)
{
this
.
ControlField
.
Value
=
this
.
EditValue
;
if
(!
this
.
ControlField
.
IsCustom
)
{
this
.
VizCommandControlObjectService
.
SetControlObjectValue
(
ApplicationDomainEx
.
PreviewConn
,
this
.
ControlObject
.
TreeNodePath
,
this
.
ControlField
.
FieldIdentifier
,
this
.
ControlField
.
Value
);
}
else
{
this
.
VizCommandControlObjectService
.
SetCustomControlFieldValue
(
ApplicationDomainEx
.
PreviewConn
,
new
List
<
ControlFieldNodeModel
>
{
this
.
ControlField
});
}
return
;
}
// 没有列信息或行数据
if
(
this
.
ColumnDefinition
==
null
||
this
.
Row
==
null
)
return
;
// 动态模式编辑
if
(
this
.
FieldEditMode
==
FieldEditMode
.
Dynamic
)
{
IDictionary
<
string
,
object
>
dic
=
this
.
Row
as
IDictionary
<
string
,
object
>;
dic
[
this
.
ColumnDefinition
.
FieldName
]
=
this
.
EditValue
;
this
.
ListCellEdit
.
UpdateEditValue
(
this
.
ColumnDefinition
,
this
.
RowHandle
,
this
.
Row
);
return
;
}
this
.
ScrollElementPackage
=
this
.
scrollElementService
.
GetScrollElementPackageFromDB
(
ApplicationDomainEx
.
CurrentPage
,
this
.
ControlField
);
}
}
}
VIZ.Package.Module/ControlObject/FieldTree/ViewModel/FieldTreeViewModel.cs
View file @
690f781e
...
...
@@ -225,7 +225,7 @@ namespace VIZ.Package.Module
/// </summary>
public
void
TryUpdateControlFieldListValue
()
{
if
(
this
.
SelectedControlField
==
null
||
this
.
SelectedControlField
.
Type
!=
VizControlFieldType
.
list
)
if
(
this
.
SelectedControlField
==
null
||
this
.
SelectedControlField
.
Type
!=
VizControlFieldType
.
list
&&
this
.
SelectedControlField
.
Type
!=
VizControlFieldType
.
scroll_elements
)
return
;
IFieldEditService
service
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IFieldEditService
>(
ViewServiceKeys
.
FIELD_EDIT_SERVICE
);
...
...
VIZ.Package.Module/Help/About/View/AboutWindow.xaml
View file @
690f781e
...
...
@@ -21,7 +21,7 @@
<!-- 系统版本 -->
<TextBlock Text="系统版本:" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Row="1" Grid.Column="0" Margin="0,0,10,0"></TextBlock>
<TextBlock Text="V1.1.0.031
41048
_beta" VerticalAlignment="Center" HorizontalAlignment="Left"
<TextBlock Text="V1.1.0.031
71405
_beta" VerticalAlignment="Center" HorizontalAlignment="Left"
Grid.Row="1" Grid.Column="1"></TextBlock>
</Grid>
</dx:ThemedWindow>
VIZ.Package.Module/VIZ.Package.Module.csproj
View file @
690f781e
...
...
@@ -115,6 +115,10 @@
<Compile Include="ControlObject\FieldEdit\Edit\ListEdit\CellEdit\FontListCellEdit.xaml.cs">
<DependentUpon>FontListCellEdit.xaml</DependentUpon>
</Compile>
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\CellEdit\ImageScrollElementCellEdit.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\CellEdit\RichTextScrollElementCellEdit.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\CellEdit\TextScrollElementCellEdit.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\ScrollElementEditPanelCellTemplateSelector.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\ScrollElementsEditPanel.xaml.cs">
<DependentUpon>ScrollElementsEditPanel.xaml</DependentUpon>
</Compile>
...
...
VIZ.Package.Service/DB/ScrollElement/ScrollElementService.cs
0 → 100644
View file @
690f781e
using
System
;
using
System.Collections.Generic
;
using
System.Dynamic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Xml.Linq
;
using
VIZ.Package.Domain
;
using
VIZ.Package.Storage
;
namespace
VIZ.Package.Service
{
/// <summary>
/// 底飞服务
/// </summary>
public
class
ScrollElementService
{
/// <summary>
/// Viz命令控制对象服务
/// </summary>
private
VizCommandControlObjectService
vizCommandControlObjectService
=
new
VizCommandControlObjectService
();
/// <summary>
/// 保存底飞数据包
/// </summary>
/// <param name="pageBase">底飞页</param>
/// <param name="templatePageBase">底飞选用的模板页</param>
/// <param name="templatePageBaseScrollElementField">底飞页ScrollElement字段</param>
/// <param name="scrollElementFields">选用的模板页字段集合</param>
/// <returns>底飞数据包</returns>
public
ScrollElementPackageEntity
GetScrollElementPackage
(
PageModelBase
pageBase
,
PageModelBase
templatePageBase
,
ControlFieldNodeModel
templatePageBaseScrollElementField
,
List
<
ControlFieldNodeModel
>
scrollElementFields
)
{
ScrollElementPackageEntity
package
=
new
ScrollElementPackageEntity
();
package
.
TemplateOrPageID
=
pageBase
.
GetTemplateIdOrPageId
();
package
.
TemplateScenePath
=
templatePageBase
.
ScenePath
;
package
.
FieldIdentifier
=
templatePageBaseScrollElementField
.
FieldIdentifier
;
if
(
scrollElementFields
!=
null
&&
scrollElementFields
.
Count
!=
0
)
{
foreach
(
ControlFieldNodeModel
field
in
scrollElementFields
)
{
ControlFieldEntity
entity
=
new
ControlFieldEntity
();
entity
.
PageID
=
package
.
TemplateOrPageID
;
entity
.
FieldIdentifier
=
field
.
FieldIdentifier
;
entity
.
Value
=
field
.
Value
;
entity
.
Type
=
field
.
Type
;
entity
.
FieldDetail
=
field
.
FieldDetail
;
entity
.
IsCustom
=
field
.
IsCustom
;
package
.
TemplateFields
.
Add
(
entity
);
}
}
return
package
;
}
/// <summary>
/// 保存底飞数据包
/// </summary>
/// <param name="package">底飞数据包</param>
public
void
SaveScrollElementPackageToDB
(
ScrollElementPackageEntity
package
)
{
// 删除
ApplicationDomainEx
.
ProjectDbContext
.
ScrollElementPackage
.
DeleteMany
(
p
=>
p
.
TemplateOrPageID
==
package
.
TemplateOrPageID
&&
p
.
FieldIdentifier
==
package
.
FieldIdentifier
);
// 插入
ApplicationDomainEx
.
ProjectDbContext
.
ScrollElementPackage
.
Insert
(
package
);
}
/// <summary>
/// 获取底飞数据包
/// </summary>
/// <param name="pageBase">底飞页</param>
/// <param name="templatePageBaseScrollElementField">底飞页ScrollElement字段</param>
/// <returns></returns>
public
ScrollElementPackageEntity
GetScrollElementPackageFromDB
(
PageModelBase
pageBase
,
ControlFieldNodeModel
templatePageBaseScrollElementField
)
{
Guid
templateOrPageId
=
pageBase
.
GetTemplateIdOrPageId
();
ScrollElementPackageEntity
package
=
ApplicationDomainEx
.
ProjectDbContext
.
ScrollElementPackage
.
Find
(
p
=>
p
.
TemplateOrPageID
==
templateOrPageId
&&
p
.
FieldIdentifier
==
templatePageBaseScrollElementField
.
FieldIdentifier
).
FirstOrDefault
();
return
package
;
}
/// <summary>
/// 获取动态对象列信息
/// </summary>
/// <param name="pageBase">页或模板</param>
/// <param name="controlObject">控制对象</param>
/// <param name="scrollElementFields">选用的模板页字段集合</param>
/// <returns>动态对象列信息</returns>
public
List
<
GridColumnScrollElementFieldDefinition
>
GetDynamicColumns
(
PageModelBase
pageBase
,
ControlObjectModel
controlObject
,
List
<
ControlFieldNodeModel
>
scrollElementFields
)
{
List
<
GridColumnScrollElementFieldDefinition
>
columns
=
new
List
<
GridColumnScrollElementFieldDefinition
>();
if
(
pageBase
==
null
||
scrollElementFields
==
null
||
scrollElementFields
.
Count
==
0
)
return
columns
;
foreach
(
ControlFieldNodeModel
field
in
scrollElementFields
)
{
GridColumnScrollElementFieldDefinition
column
=
new
GridColumnScrollElementFieldDefinition
();
column
.
Header
=
(
field
.
FieldIdentifier
==
field
.
Description
)
?
field
.
FieldIdentifier
:
$"(
{
field
.
Description
}
)
{
field
.
FieldIdentifier
}
"
;
column
.
FieldName
=
field
.
FieldIdentifier
;
column
.
AllowEditing
=
!
VizCommandControlObjectService
.
ALLOW_EDITING_FALSE_TYPES
.
Contains
(
field
.
Type
);
column
.
PageBase
=
pageBase
;
column
.
ControlObject
=
controlObject
;
column
.
ControlField
=
field
;
column
.
Type
=
field
.
Type
;
columns
.
Add
(
column
);
}
return
columns
;
}
/// <summary>
/// 获取动态对象列表
/// </summary>
/// <param name="scrollElementFields">选用的模板页字段集合</param>
/// <param name="scrollElementValue">底飞元素值</param>
/// <returns>动态对象列表</returns>
public
List
<
ExpandoObject
>
GetDynamicList
(
List
<
ControlFieldNodeModel
>
scrollElementFields
,
string
scrollElementValue
)
{
List
<
ExpandoObject
>
list
=
new
List
<
ExpandoObject
>();
if
(
scrollElementFields
==
null
||
scrollElementFields
.
Count
==
0
||
string
.
IsNullOrWhiteSpace
(
scrollElementValue
))
return
list
;
ControlObject_Entry_Node
entry
=
new
ControlObject_Entry_Node
();
using
(
System
.
IO
.
MemoryStream
ms
=
new
System
.
IO
.
MemoryStream
(
Encoding
.
UTF8
.
GetBytes
(
scrollElementValue
)))
{
XElement
element
=
XElement
.
Load
(
ms
);
entry
.
FromXmlElement
(
element
);
}
for
(
int
i
=
0
;
i
<
entry
.
Elements
.
Count
;
i
++)
{
ControlObject_Element_Node
row
=
entry
.
Elements
[
i
];
IDictionary
<
string
,
object
>
item
=
new
ExpandoObject
();
ControlObject_Entry_Node
data
=
row
.
Entrys
.
FirstOrDefault
(
p
=>
p
.
Name
==
"data"
);
if
(
data
==
null
)
continue
;
foreach
(
ControlObject_Entry_Node
cell
in
data
.
Entrys
)
{
if
(
string
.
IsNullOrWhiteSpace
(
cell
.
Name
))
continue
;
item
[
cell
.
Name
]
=
cell
.
Value
;
}
list
.
Add
(
item
as
ExpandoObject
);
}
return
list
;
}
/// <summary>
/// 获取底飞值
/// </summary>
/// <param name="templateScenePath">模板场景路径</param>
/// <param name="templateFields">模板场景字段信息</param>
/// <param name="items"></param>
/// <param name="tag">根节点标志</param>
/// <returns></returns>
public
string
GetScrollElementValue
(
string
templateScenePath
,
List
<
ControlFieldEntity
>
templateFields
,
IList
<
ExpandoObject
>
items
,
VizScrollElementRootTag
tag
)
{
XElement
root
=
new
XElement
(
tag
.
ToString
());
if
(
string
.
IsNullOrWhiteSpace
(
templateScenePath
)
||
templateFields
==
null
||
templateFields
.
Count
==
0
||
items
==
null
||
items
.
Count
==
0
)
return
root
.
ToString
(
SaveOptions
.
DisableFormatting
);
for
(
int
i
=
0
;
i
<
items
.
Count
;
i
++)
{
IDictionary
<
string
,
object
>
item
=
items
[
i
];
ControlObject_Element_Node
element
=
new
ControlObject_Element_Node
();
element
.
Complete
=
true
;
element
.
Name
=
i
.
ToString
();
element
.
Scene
=
templateScenePath
;
// viz
ControlObject_Entry_Node
viz
=
new
ControlObject_Entry_Node
();
viz
.
Name
=
"viz"
;
viz
.
Entrys
.
Add
(
new
ControlObject_Entry_Node
{
Name
=
"location"
});
viz
.
Entrys
.
Add
(
new
ControlObject_Entry_Node
{
Name
=
"front"
,
Entrys
=
{
new
ControlObject_Entry_Node
{
Name
=
"scene"
,
Value
=
templateScenePath
}
}
});
viz
.
Entrys
.
Add
(
new
ControlObject_Entry_Node
{
Name
=
"load"
,
Value
=
"scene"
});
viz
.
Entrys
.
Add
(
new
ControlObject_Entry_Node
{
Name
=
"viz_layer"
});
viz
.
Entrys
.
Add
(
new
ControlObject_Entry_Node
{
Name
=
"use_all_directors"
,
Value
=
"yes"
});
element
.
Entrys
.
Add
(
viz
);
// schema
ControlObject_Schema_Node
schema
=
new
ControlObject_Schema_Node
();
foreach
(
ControlFieldEntity
field
in
templateFields
)
{
ControlFieldNodeModel
fieldModel
=
this
.
vizCommandControlObjectService
.
CreateControlFieldNodeModeFromEntity
(
field
);
ControlObject_Field_node
field_node
=
new
ControlObject_Field_node
();
field_node
.
Name
=
fieldModel
.
FieldIdentifier
;
field_node
.
Description
=
fieldModel
.
Description
;
field_node
.
Type
=
field
.
Type
.
ToString
().
Replace
(
"@"
,
string
.
Empty
);
field_node
.
Location
=
""
;
schema
.
Fields
.
Add
(
field_node
);
}
element
.
Schemas
.
Add
(
schema
);
// data
ControlObject_Entry_Node
data
=
new
ControlObject_Entry_Node
();
data
.
Name
=
"data"
;
foreach
(
var
kv
in
item
)
{
data
.
Entrys
.
Add
(
new
ControlObject_Entry_Node
{
Name
=
kv
.
Key
,
Value
=
kv
.
Value
?.
ToString
()
});
}
element
.
Entrys
.
Add
(
data
);
root
.
Add
(
element
.
ToXmlElement
());
}
return
root
.
ToString
(
SaveOptions
.
DisableFormatting
);
}
}
}
VIZ.Package.Service/VIZ.Package.Service.csproj
View file @
690f781e
...
...
@@ -102,9 +102,11 @@
<Compile Include="DB\RecordLog\RecordLogService.cs" />
<Compile Include="DB\RecordLog\RecordLogWriter.cs" />
<Compile Include="DB\Registry\RegistryService.cs" />
<Compile Include="DB\ScrollElement\ScrollElementService.cs" />
<Compile Include="Logic\Plugin\PluginService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Viz\VizCommandControlObjectService.Custom.cs" />
<Compile Include="Viz\VizCommandElementService.cs" />
<Compile Include="Viz\VizControlObjectDownloadService.cs" />
<Compile Include="Viz\GHResourceService.cs" />
<Compile Include="Viz\GHService.cs" />
...
...
VIZ.Package.Service/Viz/VizCommandControlObjectService.cs
View file @
690f781e
...
...
@@ -30,7 +30,7 @@ namespace VIZ.Package.Service
/// <remarks>
/// 不启用编辑则可以直接在GridControl的单元格中直径进行值修改
/// </remarks>
p
rivate
static
readonly
List
<
VizControlFieldType
>
ALLOW_EDITING_FALSE_TYPES
=
new
List
<
VizControlFieldType
>
p
ublic
static
readonly
List
<
VizControlFieldType
>
ALLOW_EDITING_FALSE_TYPES
=
new
List
<
VizControlFieldType
>
{
VizControlFieldType
.
none
,
VizControlFieldType
.
boolean
,
...
...
@@ -501,6 +501,35 @@ namespace VIZ.Package.Service
conn
.
EndpointManager
.
Send
(
string
.
Format
(
VizEngineCommands
.
SCRIPT_INVOKE
,
ApplicationConstants
.
VIZ_COMMAND_CUSTOM_CONTROL_FIELD_SET
,
command
));
}
/// <summary>
/// 根据控制字段实体创建控制对象字段模型
/// </summary>
/// <param name="entity">控制字段实体</param>
/// <returns>控制对象字段模型</returns>
public
ControlFieldNodeModel
CreateControlFieldNodeModeFromEntity
(
ControlFieldEntity
entity
)
{
if
(
string
.
IsNullOrWhiteSpace
(
entity
.
FieldDetail
))
return
null
;
string
[]
pars
=
entity
.
FieldDetail
.
Split
(
':'
);
string
num
=
pars
[
1
].
Split
(
'*'
).
FirstOrDefault
();
ControlFieldNodeModel
node
=
new
ControlFieldNodeModel
();
node
.
FieldDetail
=
entity
.
FieldDetail
;
node
.
FieldIdentifier
=
pars
[
0
];
node
.
Num
=
num
;
node
.
TypeSchema
=
pars
[
2
];
node
.
Type
=
this
.
GetControlFieldType
(
node
.
TypeSchema
);
node
.
Value
=
entity
.
Value
;
if
(
pars
.
Length
>=
7
)
{
node
.
Description
=
pars
[
6
];
}
return
node
;
}
/// <summary>
/// 获取控制字段类型
...
...
VIZ.Package.Service/Viz/VizCommandElementService.cs
0 → 100644
View file @
690f781e
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
VIZ.Package.Service
{
/// <summary>
/// Viz元素命令服务
/// </summary>
public
class
VizCommandElementService
{
}
}
VIZ.Package.Storage/Entity/ScrollElement/ScrollElement
FieldValue
.cs
→
VIZ.Package.Storage/Entity/ScrollElement/ScrollElement
PackageEntity
.cs
View file @
690f781e
...
...
@@ -8,9 +8,9 @@ using System.Threading.Tasks;
namespace
VIZ.Package.Storage
{
/// <summary>
/// 底飞
字段值
/// 底飞
数据包
/// </summary>
public
class
ScrollElement
FieldValue
public
class
ScrollElement
PackageEntity
{
/// <summary>
/// 编号
...
...
@@ -19,23 +19,23 @@ namespace VIZ.Package.Storage
public
int
Id
{
get
;
set
;
}
/// <summary>
/// 模板
ID或者
页ID
/// 模板
或
页ID
/// </summary>
public
Guid
TemplateOrPageID
{
get
;
set
;
}
/// <summary>
///
元素编号
///
关联底飞字段
/// </summary>
public
string
ElementNum
{
get
;
set
;
}
public
string
FieldIdentifier
{
get
;
set
;
}
/// <summary>
///
字段名称
///
模板场景路径
/// </summary>
public
string
FieldIdentifier
{
get
;
set
;
}
public
string
TemplateScenePath
{
get
;
set
;
}
/// <summary>
///
字段值
///
模板字段
/// </summary>
public
string
Value
{
get
;
set
;
}
public
List
<
ControlFieldEntity
>
TemplateFields
{
get
;
set
;
}
=
new
List
<
ControlFieldEntity
>();
}
}
VIZ.Package.Storage/Enum/VizScrollElementRootTag.cs
0 → 100644
View file @
690f781e
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
VIZ.Package.Storage
{
/// <summary>
/// 底飞元素根节点标志
/// </summary>
public
enum
VizScrollElementRootTag
{
/// <summary>
/// 全值更新
/// </summary>
entry
,
/// <summary>
/// 更新部分值
/// </summary>
update
,
/// <summary>
/// 插入值
/// </summary>
insert
}
}
VIZ.Package.Storage/ProjectDbContext.cs
View file @
690f781e
...
...
@@ -40,8 +40,7 @@ namespace VIZ.Package.Storage
this
.
ControlField
=
this
.
Database
.
GetCollection
<
ControlFieldEntity
>();
this
.
ControlObject
=
this
.
Database
.
GetCollection
<
ControlObjectEntity
>();
this
.
SceneThumbnailCache
=
this
.
Database
.
GetStorage
<
Guid
>(
"_SceneThumbnailFiles"
,
"_SceneThumbnailChunks"
);
this
.
ScrollElementTemplateControlField
=
this
.
Database
.
GetCollection
<
ControlFieldEntity
>(
"ScrollElementTemplate"
);
this
.
ScrollElementFieldValue
=
this
.
Database
.
GetCollection
<
ScrollElementFieldValue
>();
this
.
ScrollElementPackage
=
this
.
Database
.
GetCollection
<
ScrollElementPackageEntity
>();
}
/// <summary>
...
...
@@ -80,14 +79,9 @@ namespace VIZ.Package.Storage
public
ILiteStorage
<
Guid
>
SceneThumbnailCache
{
get
;
private
set
;
}
/// <summary>
/// 底飞
模板字段
/// 底飞
数据包
/// </summary>
public
ILiteCollection
<
ControlFieldEntity
>
ScrollElementTemplateControlField
{
get
;
private
set
;
}
/// <summary>
/// 底飞字段值
/// </summary>
public
ILiteCollection
<
ScrollElementFieldValue
>
ScrollElementFieldValue
{
get
;
private
set
;
}
public
ILiteCollection
<
ScrollElementPackageEntity
>
ScrollElementPackage
{
get
;
private
set
;
}
/// <summary>
/// 销毁
...
...
@@ -100,8 +94,7 @@ namespace VIZ.Package.Storage
this
.
ControlField
=
null
;
this
.
ControlObject
=
null
;
this
.
SceneThumbnailCache
=
null
;
this
.
ScrollElementTemplateControlField
=
null
;
this
.
ScrollElementFieldValue
=
null
;
this
.
ScrollElementPackage
=
null
;
this
.
Database
?.
Dispose
();
}
...
...
VIZ.Package.Storage/VIZ.Package.Storage.csproj
View file @
690f781e
...
...
@@ -107,7 +107,7 @@
<Compile Include="Entity\Page\PageGroupEntity.cs" />
<Compile Include="Entity\Page\PageTemplateEntity.cs" />
<Compile Include="Entity\Config\VizConfigEntity.cs" />
<Compile Include="Entity\ScrollElement\ScrollElement
FieldValue
.cs" />
<Compile Include="Entity\ScrollElement\ScrollElement
PackageEntity
.cs" />
<Compile Include="Enum\EngineFullType.cs" />
<Compile Include="Enum\EngineType.cs" />
<Compile Include="Enum\PageType.cs" />
...
...
@@ -119,6 +119,7 @@
<Compile Include="Enum\VizLayer.cs" />
<Compile Include="Enum\EnginePreviewMode.cs" />
<Compile Include="Enum\VizScene.cs" />
<Compile Include="Enum\VizScrollElementRootTag.cs" />
<Compile Include="Ini\LogConfig.cs" />
<Compile Include="Ini\VizConfig.cs" />
<Compile Include="LocalDbContext.cs" />
...
...
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Element_Node.cs
View file @
690f781e
...
...
@@ -14,6 +14,21 @@ namespace VIZ.Package.Storage
public
class
ControlObject_Element_Node
:
IXmlSerialize
{
/// <summary>
/// 名称
/// </summary>
public
string
Name
{
get
;
set
;
}
/// <summary>
/// 是否完成
/// </summary>
public
bool
?
Complete
{
get
;
set
;
}
/// <summary>
/// 关联场景
/// </summary>
public
string
Scene
{
get
;
set
;
}
/// <summary>
/// 描述
/// </summary>
public
string
Description
{
get
;
set
;
}
...
...
@@ -24,12 +39,20 @@ namespace VIZ.Package.Storage
public
List
<
ControlObject_Entry_Node
>
Entrys
{
get
;
set
;
}
=
new
List
<
ControlObject_Entry_Node
>();
/// <summary>
/// 字段定义
/// </summary>
public
List
<
ControlObject_Schema_Node
>
Schemas
{
get
;
set
;
}
=
new
List
<
ControlObject_Schema_Node
>();
/// <summary>
/// 从XElement节点获取数据
/// </summary>
/// <param name="element">XElement节点</param>
public
void
FromXmlElement
(
XElement
element
)
{
this
.
Name
=
element
.
GetAttributeValue
<
string
>(
"name"
);
this
.
Description
=
element
.
GetAttributeValue
<
string
>(
"description"
);
this
.
Complete
=
element
.
GetAttributeValue
<
bool
?>(
"complete"
);
this
.
Scene
=
element
.
GetAttributeValue
<
string
>(
"scene"
);
foreach
(
var
item
in
element
.
Elements
(
"entry"
))
{
...
...
@@ -38,6 +61,14 @@ namespace VIZ.Package.Storage
this
.
Entrys
.
Add
(
entry
);
}
foreach
(
var
item
in
element
.
Elements
(
"schema"
))
{
ControlObject_Schema_Node
schema
=
new
ControlObject_Schema_Node
();
schema
.
FromXmlElement
(
item
);
this
.
Schemas
.
Add
(
schema
);
}
}
/// <summary>
...
...
@@ -46,10 +77,27 @@ namespace VIZ.Package.Storage
public
XElement
ToXmlElement
()
{
XElement
element
=
new
XElement
(
"element"
);
element
.
SetAttributeValue
(
"description"
,
this
.
Description
);
element
.
SetAttributeValueIfValueNotNull
(
"name"
,
this
.
Name
);
element
.
SetAttributeValueIfValueNotNull
(
"description"
,
this
.
Description
);
element
.
SetAttributeValueIfValueNotNull
(
"complete"
,
this
.
Complete
);
element
.
SetAttributeValueIfValueNotNull
(
"scene"
,
this
.
Scene
);
foreach
(
var
item
in
this
.
Entrys
)
{
element
.
Add
(
item
.
ToXmlElement
());
XElement
entry
=
item
.
ToXmlElement
();
if
(
entry
==
null
)
continue
;
element
.
Add
(
entry
);
}
foreach
(
var
item
in
this
.
Schemas
)
{
XElement
schema
=
item
.
ToXmlElement
();
if
(
schema
==
null
)
continue
;
element
.
Add
(
schema
);
}
return
element
;
...
...
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Entry_Node.cs
View file @
690f781e
...
...
@@ -69,10 +69,7 @@ namespace VIZ.Package.Storage
public
XElement
ToXmlElement
()
{
XElement
entry
=
new
XElement
(
"entry"
);
if
(!
string
.
IsNullOrWhiteSpace
(
this
.
Name
))
{
entry
.
SetAttributeValue
(
"name"
,
this
.
Name
);
}
entry
.
SetAttributeValueIfValueNotNull
(
"name"
,
this
.
Name
);
if
(
this
.
Value
!=
null
)
{
...
...
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Field_node.cs
View file @
690f781e
...
...
@@ -30,6 +30,11 @@ namespace VIZ.Package.Storage
public
string
Description
{
get
;
set
;
}
/// <summary>
/// 位置
/// </summary>
public
string
Location
{
get
;
set
;
}
/// <summary>
/// 定义
/// </summary>
public
ControlObject_Schema_Node
Schema
{
get
;
set
;
}
...
...
@@ -43,6 +48,7 @@ namespace VIZ.Package.Storage
this
.
Name
=
element
.
GetAttributeValue
<
string
>(
"name"
);
this
.
Type
=
element
.
GetAttributeValue
<
string
>(
"type"
);
this
.
Description
=
element
.
GetAttributeValue
<
string
>(
"description"
);
this
.
Location
=
element
.
GetAttributeValue
<
string
>(
"location"
);
var
schema
=
element
.
Element
(
"schema"
);
if
(
schema
==
null
)
...
...
@@ -57,7 +63,13 @@ namespace VIZ.Package.Storage
/// </summary>
public
XElement
ToXmlElement
()
{
throw
new
NotImplementedException
();
XElement
entry
=
new
XElement
(
"field"
);
entry
.
SetAttributeValueIfValueNotNull
(
"name"
,
this
.
Name
);
entry
.
SetAttributeValueIfValueNotNull
(
"type"
,
this
.
Type
);
entry
.
SetAttributeValueIfValueNotNull
(
"description"
,
this
.
Description
);
entry
.
SetAttributeValueIfValueNotNull
(
"location"
,
this
.
Location
);
return
entry
;
}
}
}
VIZ.Package.Storage/Xml/ControlObject/Node/ControlObject_Schema_Node.cs
View file @
690f781e
...
...
@@ -37,7 +37,17 @@ namespace VIZ.Package.Storage
/// </summary>
public
XElement
ToXmlElement
()
{
throw
new
NotImplementedException
();
XElement
element
=
new
XElement
(
"schema"
);
if
(
this
.
Fields
.
Count
==
0
)
return
element
;
foreach
(
var
item
in
this
.
Fields
)
{
element
.
Add
(
item
.
ToXmlElement
());
}
return
element
;
}
}
}
VIZ.Package.sln
View file @
690f781e
...
...
@@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "00-Doc", "00-Doc", "{4F55B183-4696-461C-8284-040FA7472C39}"
ProjectSection(SolutionItems) = preProject
Doc\底飞_insert.xml = Doc\底飞_insert.xml
Doc\底飞_set.xml = Doc\底飞_set.xml
Doc\底飞_update.xml = Doc\底飞_update.xml
Doc\控制对象自定义字段.txt = Doc\控制对象自定义字段.txt
EndProjectSection
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment