提交 8862f88a 编写于 作者: ibizdev's avatar ibizdev

ibiz4j 发布系统代码 [ibz-dst,应用]

上级 3fd32f7f
......@@ -31,6 +31,7 @@ function getLocaleResourceBase(){
details: {
tabpage1: commonLogic.appcommonhandle("规则设置",null),
tabpage2: commonLogic.appcommonhandle("属性集合",null),
tabpage3: commonLogic.appcommonhandle("调试参数",null),
tabpanel1: commonLogic.appcommonhandle("",null),
group1: commonLogic.appcommonhandle("指标基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
......@@ -48,6 +49,7 @@ function getLocaleResourceBase(){
refmetric: commonLogic.appcommonhandle("参照列",null),
cfg: commonLogic.appcommonhandle("配置",null),
fieldset: commonLogic.appcommonhandle("属性集合",null),
debugkey: commonLogic.appcommonhandle("主键",null),
createdate: commonLogic.appcommonhandle("建立时间",null),
updatedate: commonLogic.appcommonhandle("更新时间",null),
modelid: commonLogic.appcommonhandle("模型标识",null),
......
......@@ -31,6 +31,7 @@ function getLocaleResourceBase(){
details: {
tabpage1: commonLogic.appcommonhandle("规则设置",null),
tabpage2: commonLogic.appcommonhandle("属性集合",null),
tabpage3: commonLogic.appcommonhandle("调试参数",null),
tabpanel1: commonLogic.appcommonhandle("",null),
group1: commonLogic.appcommonhandle("指标基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
......@@ -48,6 +49,7 @@ function getLocaleResourceBase(){
refmetric: commonLogic.appcommonhandle("参照列",null),
cfg: commonLogic.appcommonhandle("配置",null),
fieldset: commonLogic.appcommonhandle("属性集合",null),
debugkey: commonLogic.appcommonhandle("主键",null),
createdate: commonLogic.appcommonhandle("建立时间",null),
updatedate: commonLogic.appcommonhandle("更新时间",null),
modelid: commonLogic.appcommonhandle("模型标识",null),
......
......@@ -31,6 +31,7 @@ function getLocaleResourceBase(){
details: {
tabpage1: commonLogic.appcommonhandle("规则设置",null),
tabpage2: commonLogic.appcommonhandle("属性集合",null),
tabpage3: commonLogic.appcommonhandle("调试参数",null),
tabpanel1: commonLogic.appcommonhandle("",null),
group1: commonLogic.appcommonhandle("指标基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
......@@ -48,6 +49,7 @@ function getLocaleResourceBase(){
refmetric: commonLogic.appcommonhandle("参照列",null),
cfg: commonLogic.appcommonhandle("配置",null),
fieldset: commonLogic.appcommonhandle("属性集合",null),
debugkey: commonLogic.appcommonhandle("主键",null),
createdate: commonLogic.appcommonhandle("建立时间",null),
updatedate: commonLogic.appcommonhandle("更新时间",null),
modelid: commonLogic.appcommonhandle("模型标识",null),
......
......@@ -45,6 +45,7 @@ function getLocaleResourceBase(){
details: {
tabpage1: commonLogic.appcommonhandle("规则设置",null),
tabpage2: commonLogic.appcommonhandle("属性集合",null),
tabpage3: commonLogic.appcommonhandle("调试参数",null),
tabpanel1: commonLogic.appcommonhandle("",null),
group1: commonLogic.appcommonhandle("规则基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
......@@ -63,6 +64,7 @@ function getLocaleResourceBase(){
rulegroup: commonLogic.appcommonhandle("规则分组",null),
cfg: commonLogic.appcommonhandle("配置",null),
fieldset: commonLogic.appcommonhandle("属性集合",null),
debugkey: commonLogic.appcommonhandle("主键",null),
cond: commonLogic.appcommonhandle("条件",null),
memo: commonLogic.appcommonhandle("备注",null),
custag: commonLogic.appcommonhandle("自定义",null),
......@@ -166,6 +168,14 @@ function getLocaleResourceBase(){
},
},
editviewtoolbar_toolbar: {
tbitem1_testrule: {
caption: commonLogic.appcommonhandle("调试规则",null),
tip: commonLogic.appcommonhandle("调试规则",null),
},
tbitem2: {
caption: commonLogic.appcommonhandle("-",null),
tip: commonLogic.appcommonhandle("",null),
},
tbitem3: {
caption: commonLogic.appcommonhandle("保存",null),
tip: commonLogic.appcommonhandle("保存",null),
......
......@@ -45,6 +45,7 @@ function getLocaleResourceBase(){
details: {
tabpage1: commonLogic.appcommonhandle("规则设置",null),
tabpage2: commonLogic.appcommonhandle("属性集合",null),
tabpage3: commonLogic.appcommonhandle("调试参数",null),
tabpanel1: commonLogic.appcommonhandle("",null),
group1: commonLogic.appcommonhandle("规则基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
......@@ -63,6 +64,7 @@ function getLocaleResourceBase(){
rulegroup: commonLogic.appcommonhandle("规则分组",null),
cfg: commonLogic.appcommonhandle("配置",null),
fieldset: commonLogic.appcommonhandle("属性集合",null),
debugkey: commonLogic.appcommonhandle("主键",null),
cond: commonLogic.appcommonhandle("条件",null),
memo: commonLogic.appcommonhandle("备注",null),
custag: commonLogic.appcommonhandle("自定义",null),
......@@ -166,6 +168,14 @@ function getLocaleResourceBase(){
},
},
editviewtoolbar_toolbar: {
tbitem1_testrule: {
caption: commonLogic.appcommonhandle("调试规则",null),
tip: commonLogic.appcommonhandle("调试规则",null),
},
tbitem2: {
caption: commonLogic.appcommonhandle("-",null),
tip: commonLogic.appcommonhandle("",null),
},
tbitem3: {
caption: commonLogic.appcommonhandle("Save",null),
tip: commonLogic.appcommonhandle("Save",null),
......
......@@ -45,6 +45,7 @@ function getLocaleResourceBase(){
details: {
tabpage1: commonLogic.appcommonhandle("规则设置",null),
tabpage2: commonLogic.appcommonhandle("属性集合",null),
tabpage3: commonLogic.appcommonhandle("调试参数",null),
tabpanel1: commonLogic.appcommonhandle("",null),
group1: commonLogic.appcommonhandle("规则基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
......@@ -63,6 +64,7 @@ function getLocaleResourceBase(){
rulegroup: commonLogic.appcommonhandle("规则分组",null),
cfg: commonLogic.appcommonhandle("配置",null),
fieldset: commonLogic.appcommonhandle("属性集合",null),
debugkey: commonLogic.appcommonhandle("主键",null),
cond: commonLogic.appcommonhandle("条件",null),
memo: commonLogic.appcommonhandle("备注",null),
custag: commonLogic.appcommonhandle("自定义",null),
......@@ -166,6 +168,14 @@ function getLocaleResourceBase(){
},
},
editviewtoolbar_toolbar: {
tbitem1_testrule: {
caption: commonLogic.appcommonhandle("调试规则",null),
tip: commonLogic.appcommonhandle("调试规则",null),
},
tbitem2: {
caption: commonLogic.appcommonhandle("-",null),
tip: commonLogic.appcommonhandle("",null),
},
tbitem3: {
caption: commonLogic.appcommonhandle("保存",null),
tip: commonLogic.appcommonhandle("保存",null),
......
......@@ -6,6 +6,14 @@
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem1_testrule.visabled" :disabled="toolBarModels.tbitem1_testrule.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem1_testrule' }, $event)">
<i class=''></i>
<span class='caption'>{{$t('entities.ruleitem.editviewtoolbar_toolbar.tbitem1_testrule.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ruleitem.editviewtoolbar_toolbar.tbitem1_testrule.tip')}}</div>
</tooltip>
<span class='seperator'>|</span>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-save'></i>
......@@ -378,6 +386,9 @@ export default class RuleItemEditViewBase extends Vue {
* @memberof RuleItemEditView
*/
public toolBarModels: any = {
tbitem1_testrule: { name: 'tbitem1_testrule', actiontarget: 'NONE', caption: '调试规则', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'TestRule', target: 'SINGLEDATA' } },
tbitem2: { name: 'tbitem2', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem3: { name: 'tbitem3', actiontarget: 'NONE', caption: '保存', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Save', target: '' } },
tbitem6: { name: 'tbitem6', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
......@@ -738,6 +749,9 @@ export default class RuleItemEditViewBase extends Vue {
* @memberof RuleItemEditViewBase
*/
public toolbar_click($event: any, $event2?: any) {
if (Object.is($event.tag, 'tbitem1_testrule')) {
this.toolbar_tbitem1_testrule_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem3')) {
this.toolbar_tbitem3_click(null, '', $event2);
}
......@@ -820,6 +834,35 @@ export default class RuleItemEditViewBase extends Vue {
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem1_testrule_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.form;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
const curUIService:RuleItemUIService = new RuleItemUIService();
curUIService.RuleItem_TestRule(datas,contextJO, paramJO, $event, xData,this,"RuleItem");
}
/**
* 逻辑事件
*
......
......@@ -119,6 +119,22 @@ export default class RuleItemUIServiceBase extends UIService {
public initDeMainStateOPPrivsMap(){
}
/**
* 调试规则
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
* @returns {Promise<any>}
*/
public async RuleItem_TestRule(args: any[],context:any = {}, params:any = {}, $event?: any, xData?: any,actionContext?: any,srfParentDeName?:string){
actionContext.$Notice.error({ title: '错误', desc: '不支持单项数据' });
}
/**
* 获取指定数据的重定向页面
......
......@@ -115,6 +115,25 @@
<app-form-json-metric v-model="data.fieldset" :formState="formState" :data="data" :disabled="detailsModel.fieldset.disabled" ></app-form-json-metric>
</i-col>
</tab-pane>
<tab-pane v-show="detailsModel.tabpage3.visible" name='tabpage3' :index="2" tab='tabpanel1' class=''
:label="(h) =>{
return h('span',{
class:'caption'
},[
$t('entities.dametric.main_form.details.tabpage3')
])
}">
<i-col v-show="detailsModel.debugkey.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='debugkey' :itemRules="this.rules().debugkey" class='' :caption="$t('entities.dametric.main_form.details.debugkey')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.debugkey.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.debugkey" :disabled="detailsModel.debugkey.disabled" type='textarea' style="" ></input-box>
</app-form-item>
</i-col>
......@@ -556,6 +575,7 @@ export default class MainBase extends Vue implements ControlInterface {
refmetric: null,
cfg: null,
fieldset: null,
debugkey: null,
createdate: null,
updatedate: null,
modelid: null,
......@@ -637,6 +657,10 @@ export default class MainBase extends Vue implements ControlInterface {
{ required: this.detailsModel.fieldset.required, type: 'string', message: '属性集合 值不能为空', trigger: 'change' },
{ required: this.detailsModel.fieldset.required, type: 'string', message: '属性集合 值不能为空', trigger: 'blur' },
],
debugkey: [
{ required: this.detailsModel.debugkey.required, type: 'string', message: '主键 值不能为空', trigger: 'change' },
{ required: this.detailsModel.debugkey.required, type: 'string', message: '主键 值不能为空', trigger: 'blur' },
],
createdate: [
{ required: this.detailsModel.createdate.required, type: 'string', message: '建立时间 值不能为空', trigger: 'change' },
{ required: this.detailsModel.createdate.required, type: 'string', message: '建立时间 值不能为空', trigger: 'blur' },
......@@ -756,7 +780,9 @@ export default class MainBase extends Vue implements ControlInterface {
,
tabpage2: new FormTabPageModel({ caption: '属性集合', detailType: 'TABPAGE', name: 'tabpage2', visible: true, isShowCaption: true, form: this, isControlledContent: false })
,
tabpanel1: new FormTabPanelModel({ caption: '', detailType: 'TABPANEL', name: 'tabpanel1', visible: true, isShowCaption: false, form: this, isControlledContent: false , tabPages: [{ name: 'tabpage1', index: 0, visible: true }, { name: 'tabpage2', index: 1, visible: true }] })
tabpage3: new FormTabPageModel({ caption: '调试参数', detailType: 'TABPAGE', name: 'tabpage3', visible: true, isShowCaption: true, form: this, isControlledContent: false })
,
tabpanel1: new FormTabPanelModel({ caption: '', detailType: 'TABPANEL', name: 'tabpanel1', visible: true, isShowCaption: false, form: this, isControlledContent: false , tabPages: [{ name: 'tabpage1', index: 0, visible: true }, { name: 'tabpage2', index: 1, visible: true }, { name: 'tabpage3', index: 2, visible: true }] })
,
group1: new FormGroupPanelModel({ caption: '指标基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, isControlledContent: false , uiActionGroup: { caption: '', langbase: 'entities.dametric.main_form', extractMode: 'ITEM', details: [] }, isManageContainer: false, showMoreModeItems: [] })
,
......@@ -789,6 +815,8 @@ export default class MainBase extends Vue implements ControlInterface {
cfg: new FormItemModel({ caption: '配置', detailType: 'FORMITEM', name: 'cfg', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
fieldset: new FormItemModel({ caption: '属性集合', detailType: 'FORMITEM', name: 'fieldset', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
debugkey: new FormItemModel({ caption: '主键', detailType: 'FORMITEM', name: 'debugkey', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
createdate: new FormItemModel({ caption: '建立时间', detailType: 'FORMITEM', name: 'createdate', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
......@@ -972,6 +1000,18 @@ export default class MainBase extends Vue implements ControlInterface {
this.formDataChange({ name: 'fieldset', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 debugkey 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof MainBase
*/
@Watch('data.debugkey')
onDebugkeyChange(newVal: any, oldVal: any) {
this.formDataChange({ name: 'debugkey', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 createdate 值
*
......@@ -1120,6 +1160,8 @@ export default class MainBase extends Vue implements ControlInterface {
......
......@@ -85,6 +85,10 @@ export default class MainModel {
prop: 'field_set',
dataType: 'LONGTEXT',
},
{
name: 'debugkey',
dataType:'FORMITEM',
},
{
name: 'createdate',
prop: 'createdate',
......
......@@ -130,6 +130,25 @@
<app-form-json-field-set v-model="data.fieldset" :formState="formState" :data="data" :disabled="detailsModel.fieldset.disabled" ></app-form-json-field-set>
</i-col>
</tab-pane>
<tab-pane v-show="detailsModel.tabpage3.visible" name='tabpage3' :index="2" tab='tabpanel1' class=''
:label="(h) =>{
return h('span',{
class:'caption'
},[
$t('entities.ruleitem.main_form.details.tabpage3')
])
}">
<i-col v-show="detailsModel.debugkey.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='debugkey' :itemRules="this.rules().debugkey" class='' :caption="$t('entities.ruleitem.main_form.details.debugkey')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.debugkey.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.debugkey" :disabled="detailsModel.debugkey.disabled" type='textarea' style="" ></input-box>
</app-form-item>
</i-col>
......@@ -607,6 +626,7 @@ export default class MainBase extends Vue implements ControlInterface {
rulegroup: null,
cfg: null,
fieldset: null,
debugkey: null,
cond: null,
memo: null,
custag: null,
......@@ -695,6 +715,10 @@ export default class MainBase extends Vue implements ControlInterface {
{ required: this.detailsModel.fieldset.required, type: 'string', message: '属性集合 值不能为空', trigger: 'change' },
{ required: this.detailsModel.fieldset.required, type: 'string', message: '属性集合 值不能为空', trigger: 'blur' },
],
debugkey: [
{ required: this.detailsModel.debugkey.required, type: 'string', message: '主键 值不能为空', trigger: 'change' },
{ required: this.detailsModel.debugkey.required, type: 'string', message: '主键 值不能为空', trigger: 'blur' },
],
cond: [
{ required: this.detailsModel.cond.required, type: 'string', message: '条件 值不能为空', trigger: 'change' },
{ required: this.detailsModel.cond.required, type: 'string', message: '条件 值不能为空', trigger: 'blur' },
......@@ -826,7 +850,9 @@ export default class MainBase extends Vue implements ControlInterface {
,
tabpage2: new FormTabPageModel({ caption: '属性集合', detailType: 'TABPAGE', name: 'tabpage2', visible: true, isShowCaption: true, form: this, isControlledContent: false })
,
tabpanel1: new FormTabPanelModel({ caption: '', detailType: 'TABPANEL', name: 'tabpanel1', visible: true, isShowCaption: false, form: this, isControlledContent: false , tabPages: [{ name: 'tabpage1', index: 0, visible: true }, { name: 'tabpage2', index: 1, visible: true }] })
tabpage3: new FormTabPageModel({ caption: '调试参数', detailType: 'TABPAGE', name: 'tabpage3', visible: true, isShowCaption: true, form: this, isControlledContent: false })
,
tabpanel1: new FormTabPanelModel({ caption: '', detailType: 'TABPANEL', name: 'tabpanel1', visible: true, isShowCaption: false, form: this, isControlledContent: false , tabPages: [{ name: 'tabpage1', index: 0, visible: true }, { name: 'tabpage2', index: 1, visible: true }, { name: 'tabpage3', index: 2, visible: true }] })
,
group1: new FormGroupPanelModel({ caption: '规则基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, isControlledContent: false , uiActionGroup: { caption: '', langbase: 'entities.ruleitem.main_form', extractMode: 'ITEM', details: [] }, isManageContainer: false, showMoreModeItems: [] })
,
......@@ -861,6 +887,8 @@ export default class MainBase extends Vue implements ControlInterface {
cfg: new FormItemModel({ caption: '配置', detailType: 'FORMITEM', name: 'cfg', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
fieldset: new FormItemModel({ caption: '属性集合', detailType: 'FORMITEM', name: 'fieldset', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
debugkey: new FormItemModel({ caption: '主键', detailType: 'FORMITEM', name: 'debugkey', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
cond: new FormItemModel({ caption: '条件', detailType: 'FORMITEM', name: 'cond', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
......@@ -1062,6 +1090,18 @@ export default class MainBase extends Vue implements ControlInterface {
this.formDataChange({ name: 'fieldset', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 debugkey 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof MainBase
*/
@Watch('data.debugkey')
onDebugkeyChange(newVal: any, oldVal: any) {
this.formDataChange({ name: 'debugkey', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 cond 值
*
......@@ -1250,6 +1290,8 @@ export default class MainBase extends Vue implements ControlInterface {
......
......@@ -90,6 +90,10 @@ export default class MainModel {
prop: 'field_set',
dataType: 'LONGTEXT',
},
{
name: 'debugkey',
dataType:'FORMITEM',
},
{
name: 'cond',
prop: 'cond',
......
......@@ -54,7 +54,7 @@
<!--输出实体[DA_METRIC]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-da_metric-2-3">
<changeSet author="a_A_5d9d78509" id="tab-da_metric-15-3">
<createTable tableName="IBZDAMETRIC">
<column name="DA_METRICID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_DA_METRIC_DA_METRICID"/>
......@@ -496,7 +496,7 @@
<!--输出实体[RU_ITEM]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-ru_item-3-18">
<changeSet author="a_A_5d9d78509" id="tab-ru_item-12-18">
<createTable tableName="IBZRULE">
<column name="RULEID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_RU_ITEM_RULEID"/>
......@@ -587,7 +587,7 @@
<!--输出实体[DA_BUILD]外键关系 -->
<!--输出实体[DA_CHART]外键关系 -->
<!--输出实体[DA_METRIC]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-da_metric-2-20">
<changeSet author="a_A_5d9d78509" id="fk-da_metric-15-20">
<addForeignKeyConstraint baseColumnNames="BUILDID" baseTableName="IBZDAMETRIC" constraintName="DER1N_DA_METRIC_DA_BUILD_BUILD" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="BUILDID" referencedTableName="IBZDABUILD" validate="true"/>
</changeSet>
<!--输出实体[DA_REPORT]外键关系 -->
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册