Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
22
议题
22
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7
提交
39f27640
提交
39f27640
编写于
11月 08, 2022
作者:
Shine-zwj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update:更新面板属性
上级
1fdb8808
变更
15
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
177 行增加
和
123 行删除
+177
-123
DEFAULT.vue.ftl
@EDITOR/@MACRO/PANEL/DEFAULT.vue.ftl
+7
-7
PANELEDITOR.vue.ftl
@EDITOR/下拉列表框/PANELEDITOR.vue.ftl
+16
-14
PANELEDITOR.vue.ftl
@EDITOR/下拉列表框(多选)/PANELEDITOR.vue.ftl
+15
-12
PANELEDITOR.vue.ftl
@EDITOR/单选项列表/PANELEDITOR.vue.ftl
+12
-11
PANELEDITOR.vue.ftl
@EDITOR/图片控件/PANELEDITOR.vue.ftl
+7
-6
PANELEDITOR.vue.ftl
@EDITOR/密码框/PANELEDITOR.vue.ftl
+6
-6
PANELEDITOR.vue.ftl
@EDITOR/数值框/PANELEDITOR.vue.ftl
+7
-6
PANELEDITOR.vue.ftl
@EDITOR/数据选择/PANELEDITOR.vue.ftl
+37
-15
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件/PANELEDITOR.vue.ftl
+7
-8
PANELEDITOR.vue.ftl
@EDITOR/标签/PANELEDITOR.vue.ftl
+23
-17
PANELEDITOR.vue.ftl
@EDITOR/步进器/PANELEDITOR.vue.ftl
+5
-4
PANELEDITOR.vue.ftl
@EDITOR/滑动输入条/PANELEDITOR.vue.ftl
+9
-5
PANELEDITOR.vue.ftl
@EDITOR/评分器/PANELEDITOR.vue.ftl
+12
-8
PANELEDITOR.vue.ftl
@EDITOR/选项框/PANELEDITOR.vue.ftl
+7
-3
VIEW_LAYOUTPANEL_RENDER.ftl
@VIEW/@MACRO/VIEW_LAYOUTPANEL/VIEW_LAYOUTPANEL_RENDER.ftl
+7
-1
未找到文件。
@EDITOR/@MACRO/PANEL/DEFAULT.vue.ftl
浏览文件 @
39f27640
...
...
@@ -2,12 +2,12 @@
${editor.render.code}
<#else>
<input-box
v-model="data.${editor.getName()?lower_case}"
style="${item.getEditorCssStyle()}"
type="text"
:disabled="detailsModel.${item.getCodeName()}.disabled"
style="${item.getEditorCssStyle()}"
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
<#if item.getUnitName?? && item.getUnitName()??>unit="${item.getUnitName()}"</#if>
<#if item.getPlaceHolder()??>placeholder="${item.getPlaceHolder()}"</#if>
@change="($event)=>{panelEditItemChange(data, '${editor.getName()?lower_case}', $event)}
">
@change="(value) => handleValueChange({ name: '${editor.name}', value})
">
</input-box>
</#if>
\ No newline at end of file
@EDITOR/下拉列表框/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
<#ibizinclude>../@MACRO/FUNC/PUBLIC.vue.ftl</#ibizinclude>
<#ibizinclude>../@MACRO/FUNC/PUBLIC.vue.ftl</#ibizinclude>
<#if editor?? && editor.render??>
${editor.render.code}
<#else>
<dropdown-list
v-model="data.${editor.name?lower_case}"
:disabled="detailsModel.${item.getCodeName()}.disabled"
:data="data"
:value="layoutData.${editor.name}"
:data="layoutData"
:context="context"
:viewparams="viewparams"
:localContext =<@getNavigateContext editor />
:localParam =<@getNavigateParams editor />
<#if item.getPSCodeList()??>
<#assign codelist=item.getPSCodeList()>
tag='${codelist.codeName}'
codelistType='${codelist.getCodeListType()}'
</#if>
:formState="viewState"
:disabled="layoutModelDetails.${editor.name}.disabled"
:localContext=<@getNavigateContext editor />
:localParam=<@getNavigateParams editor />
<#if editor.getPSCodeList()??>
<#assign codelist=editor.getPSCodeList()>
tag="${codelist.codeName}"
codelistType="${codelist.getCodeListType()}"
</#if>
placeholder=<#if item.getPlaceHolder()??>'${item.getPlaceHolder()}'<#else>'请选择...'</#if>
style="${item.getEditorCssStyle()}"
@change="($event)=>{panelEditItemChange(data, '${editor.name?lower_case}', $event)}
">
style="${editor.getEditorCssStyle()}"
@change="(value) => handleValueChange({ name: '${editor.name}', value})
">
</dropdown-list>
</#if>
</#if>
\ No newline at end of file
@EDITOR/下拉列表框(多选)/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -3,21 +3,23 @@
${editor.render.code}
<#else>
<dropdown-list-mpicker
v-model="data.${editor.name?lower_case}"
:data="d
ata"
:value="layoutData.${editor.name}"
:data="layoutD
ata"
:context="context"
:viewparams="viewparams"
:localContext
=<@getNavigateContext editor />
:localParam
=<@getNavigateParams editor />
:disabled="detailsModel.${item.getCodeName()}.disabled"
<#if item
.getPSCodeList()??>
:localContext
=<@getNavigateContext editor />
:localParam
=<@getNavigateParams editor />
:disabled="layoutModelDetails.${editor.name}.disabled"
<#if editor
.getPSCodeList()??>
<#assign codelist=editor.getPSCodeList()>
tag='${codelist.codeName}'
codelistType='${codelist.getCodeListType()}'
<#if codelist.valueSeparator?has_content>valueSeparator="${codelist.valueSeparator}"</#if>
</#if>
tag="${codelist.codeName}"
codelistType="${codelist.getCodeListType()}"
<#if codelist.valueSeparator?has_content>
valueSeparator="${codelist.valueSeparator}"
</#if>
</#if>
placeholder=<#if item.getPlaceHolder()??>'${item.getPlaceHolder()}'<#else>'请选择...'</#if>
@change="($event)=>{panelEditItemChange(data, '${editor.name?lower_case}', $event
)}"
style="${item.getEditorCssStyle()}
">
style="${editor.getEditorCssStyle(
)}"
@change="(value) => handleValueChange({ name: '${editor.name}', value})
">
</dropdown-list-mpicker>
</#if>
\ No newline at end of file
@EDITOR/单选项列表/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -3,20 +3,20 @@
${editor.render.code}
<#else>
<app-radio-group
v-model="data.${editor.name?lower_case}"
:disabled="detailsModel.${item.getCodeName()}.disabled"
name="${editor.name?lower_case}"
:data="data"
name="${editor.name}"
:value="layoutData.${editor.name}"
:data="layoutData"
:context="context"
:viewparams="viewparams"
:localContext =<@getNavigateContext editor />
:localParam =<@getNavigateParams
editor />
@change="($event)=>{panelEditItemChange(data, '${editor.name?lower_case}', $event)}"
<#if editor.getPSCodeList?? &&
editor.getPSCodeList()??>
<#assign codelist=item
.getPSCodeList()>
:disabled="layoutModelDetails.${editor.name}.disabled"
:localContext=<@getNavigateContext
editor />
:localParam=<@getNavigateParams editor />
<#if
editor.getPSCodeList()??>
<#assign codelist=editor
.getPSCodeList()>
tag='${codelist.codeName}'
codelistType='${codelist.getCodeListType()}'
</#if>
style="${item.getEditorCssStyle()}">
</#if>
style="${editor.getEditorCssStyle()}"
@change="(value) => handleValueChange({ name: '${editor.name}', value})">
</app-radio-group>
</#if>
\ No newline at end of file
@EDITOR/图片控件/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -2,18 +2,18 @@
${editor.render.code}
<#else>
<app-file-upload
name="${editor.name}"
:formState="viewState"
:ignorefieldvaluechange="false"
@formitemvaluechange="($event)=>{onPanelItemValueChange(data,$event)}"
:data="JSON.stringify(data)"
name='${editor.name?lower_case}'
:value="data.${editor.name?lower_case}"
:disabled="detailsModel.${item.getCodeName()}.disabled"
:data="JSON.stringify(layoutData)"
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
:rowPreview="true"
:imageOnly="true"
:uploadparams='<#if editor.getEditorParam('uploadparams','') != ''>${editor.getEditorParam('uploadparams','')}<#else>{}</#if>'
:exportparams='<#if editor.getEditorParam('exportparams','') != ''>${editor.getEditorParam('exportparams','')}<#else>{}</#if>'
:multiple='<#if editor.getEditorParam('multiple','') != ''>${editor.getEditorParam('multiple','')}<#else>true</#if>'
style="${editor.getEditorCssStyle()}overflow: auto;">
style="${editor.getEditorCssStyle()}overflow: auto;"
@formitemvaluechange="handleValueChange">
</app-file-upload>
</#if>
\ No newline at end of file
@EDITOR/密码框/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -3,12 +3,11 @@
<#else>
<input-box
type="password"
:disabled="detailsModel.${item.getCodeName()}.disabled"
<#if item.getPlaceHolder()??>
placeholder="${item.getPlaceHolder()}"
</#if>
v-model="data.${editor.name?lower_case}"
name="${editor.name}"
style="${item.getEditorCssStyle()}"
@change="($event)=>{panelEditItemChange(data, '${editor.name?lower_case}', $event)}">
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
<#if item.getPlaceHolder()??>placeholder="${item.getPlaceHolder()}"</#if>
@change="(value) => handleValueChange({ name: '${editor.name}', value})">
</input-box>
</#if>
\ No newline at end of file
@EDITOR/数值框/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -3,12 +3,12 @@
<#else>
<input-box
type="number"
:disabled="detailsModel.${item.getCodeName()}.disabled"
<#if item.getUnitName?? && item.getUnitName()??>unit="${item.getUnitName()}"</#if>
:precision="2"
v-model="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}"
<#if item.getPlaceHolder()??>placeholder="${item.getPlaceHolder()}"</#if>
@change="($event)=>{panelEditItemChange(data, '${editor.name?lower_case}', $event)}">
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
<#if editor.getUnitName?? && editor.getUnitName()??>unit="${editor.getUnitName()}"</#if>
<#if editor.getPlaceHolder()??>placeholder="${editor.getPlaceHolder()}"</#if>
style="${editor.getEditorCssStyle()}"
@change="(value) => handleValueChange({ name: '${editor.name}', value})">
</input-box>
</#if>
\ No newline at end of file
@EDITOR/数据选择/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -6,36 +6,58 @@
<#if editor.getPickupPSAppView()??>
<app-picker
:formState="viewState"
:data="d
ata"
:data="layoutD
ata"
:context="context"
:viewparams="viewparams"
:localContext
=<@getNavigateContext editor />
:localParam
=<@getNavigateParams editor />
:disabled="detailsModel.${item.getCodeName()}.disabled"
:localContext
=<@getNavigateContext editor />
:localParam
=<@getNavigateParams editor />
:disabled="layoutModelDetails.${editor.name}.disabled"
<#if item.getPlaceHolder()??>
placeholder="${item.getPlaceHolder()}"
</#if>
name='${editor.name}'
<#-- 自填模式文本属性、值属性start --
>
<#if editor.getPSAppDEACMode?? && editor.getPSAppDEACMode()??>
<#assign appDeAcMode = editor.getPSAppDEACMode() />
<#if editor.getEditorParam("PICKUPDATA", "") != "">pickUpData="${editor.getEditorParam("PICKUPDATA", "")}"</#if
>
<#if editor.getPSAppDEACMode?? && editor.getPSAppDEACMode()??>
<#assign appDeAcMode = editor.getPSAppDEACMode() />
deMajorField='${appDeAcMode.getTextPSAppDEField().getCodeName()?lower_case}'
deKeyField='<#if appDeAcMode.getValuePSAppDEField().getCodeName() == editor.getPSAppDataEntity().getKeyPSAppDEField().getCodeName()>${editor.getPSAppDataEntity().getCodeName()?lower_case}<#else>${appDeAcMode.getValuePSAppDEField().getCodeName()?lower_case}</#if>'
<#else>
<#if editor.getPSAppDataEntity?? && editor.getPSAppDataEntity()??>
<#else>
<#if editor.getPSAppDataEntity?? && editor.getPSAppDataEntity()??>
deMajorField='${editor.getPSAppDataEntity().getMajorPSAppDEField().getCodeName()?lower_case}'
deKeyField='${editor.getPSAppDataEntity().getCodeName()?lower_case}'
</#if>
</#if>
<#-- 自填模式文本属性、值属性end -->
</#if>
</#if>
:service="service"
<#if editor.getPSAppDEACMode?? && editor.getPSAppDEACMode()??>
<#if editor.getPSAppDEACMode().getMinorSortPSDEF?? && editor.getPSAppDEACMode().getMinorSortPSDEF()?? && editor.getPSAppDEACMode().getMinorSortDir?? && editor.getPSAppDEACMode().getMinorSortDir()??>
<#if editor.getPSAppDEACMode().getMinorSortDir() == 'ASC' || editor.getPSAppDEACMode().getMinorSortDir() == 'DESC'>
sort='${editor.getPSAppDEACMode().getMinorSortPSDEF().getCodeName()?lower_case},${editor.getPSAppDEACMode().getMinorSortDir()?lower_case}'
</#if>
</#if>
<#if editor.getPSAppDEACMode().getPSDEUIActionGroup?? && editor.getPSAppDEACMode().getPSDEUIActionGroup()??>
<#assign editorActionGroup = editor.getPSAppDEACMode().getPSDEUIActionGroup() />
<#if editorActionGroup.getPSUIActionGroupDetails?? && editorActionGroup.getPSUIActionGroupDetails()??>
:actionDetails="[<#compress>
<#list editorActionGroup.getPSUIActionGroupDetails() as actionDetail>
<#if actionDetail.getPSUIAction?? && actionDetail.getPSUIAction()??>
<#assign uiaction = actionDetail.getPSUIAction() />
{caption:'${uiaction.getCaption()}',tag:${editor.name}_editor_${actionDetail.getName()}_click}<#if actionDetail_has_next>,</#if>
</#if>
</#list>
</#compress>]"
@editoractionclick="onFormItemActionClick"
</#if>
</#if>
</#if>
:acParams=<@getAcParams editor />
valueitem='${editor.getValueItemName()}'
:value="data[${editor.name}]"
<#if editor.getValueItemName??>
valueitem="${editor.getValueItemName()}"
</#if>
:value="layoutData.${editor.name}"
editortype=""
:pickupView=<@getPickupView editor />
style="${editor.getEditorCssStyle()}"
@formitemvaluechange="($event)=>{onPanelItemValueChange(data,$event)}
">
@formitemvaluechange="handleValueChange
">
<@getItemRender editor />
</app-picker>
</#if>
...
...
@EDITOR/时间选择控件/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -3,14 +3,12 @@
<#else>
<date-picker
type="date"
:transfer="true"
format="yyyy-MM-dd"
<#if item.getPlaceHolder()??>
placeholder="${item.getPlaceHolder()}"
</#if>
:disabled="detailsModel.${item.getCodeName()}.disabled"
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val1, val2) => { data.${editor.name?lower_case} = val1; panelEditItemChange(data, '${editor.name?lower_case}', val1)}">
<#if item.getPlaceHolder()??>placeholder="${item.getPlaceHolder()}"</#if>
:transfer="true"
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
style="min-width: 150px;${editor.getEditorCssStyle()}<#if editor.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(value, val2) => handleValueChange({ name: '${editor.name}', value})">
</date-picker>
</#if>
\ No newline at end of file
@EDITOR/标签/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -2,22 +2,28 @@
<#if editor?? && editor.render??>
${editor.render.code}
<#else>
<app-span <#t>
:value="data.${editor.name?lower_case}" <#t>
name="${editor.name?lower_case}" <#t>
:data="data" <#t>
:context="context" <#t>
:viewparams="viewparams" <#t>
:localContext =<@getNavigateContext editor /> <#t>
:localParam =<@getNavigateParams editor /> <#t>
<#if item.getPSCodeList?? && item.getPSCodeList()??>
<#assign codelist=item.getPSCodeList()>
tag='${codelist.codeName}' <#t>
codelistType='${codelist.getCodeListType()}' <#t>
<#if codelist.getValueSeparator?? && codelist.getValueSeparator()?? && codelist.getValueSeparator() != ''>
valueSeparator='${codelist.getValueSeparator()}' <#t>
<app-span
name="${editor.name}"
:value="layoutData.${editor.name}"
<#if item.getPSCodeList?? && item.getPSCodeList()??>
<#assign codelist=item.getPSCodeList() />
tag="${codelist.codeName}"
codelistType="${codelist.getCodeListType()}"
<#if codelist.getOrMode?? && codelist.getOrMode()?has_content>
renderMode="${codelist.getOrMode()}"
</#if>
</#if>
style="${item.getEditorCssStyle()}"> <#t>
</app-span> <#lt>
<#if codelist.valueSeparator?has_content>
valueSeparator="${codelist.valueSeparator}"
</#if>
<#if codelist.textSeparator?has_content>
textSeparator="${codelist.textSeparator}"
</#if>
</#if>
:data="layoutData"
:context="context"
:viewparams="viewparams"
:localContext=<@getNavigateContext editor />
:localParam=<@getNavigateParams editor />
style="${editor.getEditorCssStyle()}">
</app-span>
</#if>
@EDITOR/步进器/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -3,9 +3,9 @@
<#else>
<app-stepper
name='${editor.name}'
:value="data.${editor.name?lower_case}"
@change="($event)=>{onPanelItemValueChange(data,$event)} "
:disabled="detailsModel.${item.getCodeName()
}.disabled"
style="${item.getEditorCssStyle()}
">
style="${item.getEditorCssStyle()}"
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name
}.disabled"
@change="handleValueChange
">
</app-stepper>
</#if>
\ No newline at end of file
@EDITOR/滑动输入条/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -2,10 +2,13 @@
${editor.render.code}
<#else>
<app-slider
name='${editor.name?lower_case}'
:value="data.${editor.name?lower_case}"
@change="($event)=>{onPanelItemValueChange(data,$event)} "
:disabled="detailsModel.${item.getCodeName()}.disabled"
style="${item.getEditorCssStyle()}">
name="${editor.name}"
style="${editor.getEditorCssStyle()}"
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
:step="<#if editor.getEditorParam('step','') != ''>${editor.getEditorParam('step','')}<#else>1</#if>"
:min="<#if editor.getEditorParam('min','') != ''>${editor.getEditorParam('min','')}<#else>0</#if>"
:max="<#if editor.getEditorParam('max','') != ''>${editor.getEditorParam('max','')}<#else>100</#if>"
@change="handleValueChange">
</app-slider>
</#if>
\ No newline at end of file
@EDITOR/评分器/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
...
...
@@ -2,18 +2,21 @@
${editor.render.code}
<#else>
<app-rate
name='${editor.name?lower_case}'
:value="data.${editor.name?lower_case}"
@change="($event)=>{data.${editor.name?lower_case} = $event; panelEditItemChange(data, '${editor.name?lower_case}', $event)} "
:disabled="detailsModel.${item.getCodeName()}.disabled"
name="${editor.name}"
style="${editor.getEditorCssStyle()}"
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
<#if item.getEditorParam('max','') != ''>
:max="${item.getEditorParam('max','')}"
</#if>
<#if item.getPSCodeList?? && item.getPSCodeList()??>
<#assign codelist=item.getPSCodeList()>
tag='${codelist.codeName}' <#t>
codelistType='${codelist.getCodeListType()}' <#t>
tag="${codelist.codeName}"
codelistType="${codelist.getCodeListType()}"
<#if codelist.getValueSeparator?? && codelist.getValueSeparator()?? && codelist.getValueSeparator() != ''>
valueSeparator='${codelist.getValueSeparator()}' <#t>
valueSeparator="${codelist.getValueSeparator()}"
</#if>
</#if>
style="${item.getEditorCssStyle()}
">
@change="(value) => handleValueChange({ name: '${editor.name}', value})
">
</app-rate>
</#if>
\ No newline at end of file
@EDITOR/选项框/PANELEDITOR.vue.ftl
浏览文件 @
39f27640
<#if editor?? && editor.render??>
${editor.render.code}
<#else>
<div style="${item.getEditorCssStyle()}">
<app-checkbox :value="data.${editor.name?lower_case}" @change="($event)=>{data.${editor.name?lower_case} = $event;panelEditItemChange(data, '${editor.name?lower_case}', $event)} " :disabled="detailsModel.${item.getCodeName()}.disabled"></app-checkbox>
</div>
<app-checkbox
style="${editor.getEditorCssStyle()}"
:value="layoutData.${editor.name}"
:disabled="layoutModelDetails.${editor.name}.disabled"
@change="(value) => handleValueChange({ name: '${editor.name}', value})">
</app-checkbox>
</#if>
\ No newline at end of file
@VIEW/@MACRO/VIEW_LAYOUTPANEL/VIEW_LAYOUTPANEL_RENDER.ftl
浏览文件 @
39f27640
...
...
@@ -168,7 +168,13 @@
:data="layoutData"
:layoutModelDetails="layoutModelDetails"/></@compress>
<#else>
<@compress single_line=true><span>属性项</span></@compress>
<@compress single_line=true><app-panel-field
name="${panelDetail.getName()}"
<#if isMultiData == true >:index="slotProps.data.index"</#if>
:data="layoutData"
:value=<#if isMultiData == true >"layoutData[`${panelDetail.getName()}_<#noparse>${slotProps.data.index}</#noparse>`]"<#else>"layoutData.${panelDetail.getName()}"</#if>>
${P.getEditorCode(item, "PANELEDITOR.vue").code}
</app-panel-field></@compress>
</#if>
<#elseif panelDetail.getItemType()?? && panelDetail.getItemType() == "RAWITEM">
<#if panelDetail.getPSRawItem?? && panelDetail.getPSRawItem()??>
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录