Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
weiqiao-vue
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
金民
weiqiao-vue
Commits
b74e23fb
Commit
b74e23fb
authored
Jan 22, 2026
by
张珈源
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/weiqiao-vue3' into weiqiao-vue3
parents
7ec95129
88d1980f
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
428 additions
and
29 deletions
+428
-29
xjrsoft-vue3/src/api/sbgl/shebeigl/model/ShebeiglModel.ts
+44
-0
xjrsoft-vue3/src/components/Designer/src/types/index.ts
+93
-3
xjrsoft-vue3/src/views/sbgl/shebeigl/components/config.ts
+288
-23
xjrsoft-vue3/src/views/sbgl/shebeigl/components/workflowPermission.ts
+1
-1
xjrsoft-vue3/src/views/sbgl/shebeigl/index.vue
+2
-2
No files found.
xjrsoft-vue3/src/api/sbgl/shebeigl/model/ShebeiglModel.ts
View file @
b74e23fb
...
...
@@ -6,9 +6,35 @@ import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
export
interface
MesEquipmentPageParams
extends
BasicPageParams
{
name
:
string
;
workCenterId
:
string
;
specification
:
string
;
archivesCode
:
string
;
code
:
string
;
location
:
string
;
registerCode
:
string
;
createArchivesUserId
:
string
;
categoryId
:
string
;
userId
:
string
;
usePermitCode
:
string
;
manufacturer
:
string
;
eState
:
string
;
companyId
:
string
;
indexCode
:
string
;
manufactureDate
:
string
;
}
/**
...
...
@@ -30,6 +56,24 @@ export interface MesEquipmentPageModel {
eState
:
string
;
companyId
:
string
;
workCenterId
:
string
;
archivesCode
:
string
;
location
:
string
;
registerCode
:
string
;
createArchivesUserId
:
string
;
usePermitCode
:
string
;
manufacturer
:
string
;
indexCode
:
string
;
manufactureDate
:
string
;
}
/**
...
...
xjrsoft-vue3/src/components/Designer/src/types/index.ts
View file @
b74e23fb
...
...
@@ -22,6 +22,19 @@ export interface WidgetForm {
};
formWidth
:
number
;
formHeight
?:
number
;
formStyle
?:
{
background
:
{
isShow
:
boolean
;
bgColor
:
string
;
bgImgUrl
:
string
;
fontColor
:
string
;
borderColor
:
string
;
bgType
:
string
;
gradientAngle
?:
number
|
null
;
gradientColors
?:
string
;
repeat
?:
string
;
};
};
};
hiddenComponent
:
HiddenComponentInfo
[];
buttonList
:
buttonListInfo
[];
...
...
@@ -40,6 +53,20 @@ export const widgetForm: WidgetForm = {
},
formWidth
:
900
,
formHeight
:
500
,
// 背景样式
formStyle
:
{
background
:
{
isShow
:
false
,
bgColor
:
''
,
bgImgUrl
:
''
,
fontColor
:
''
,
borderColor
:
''
,
bgType
:
''
,
gradientAngle
:
null
,
gradientColors
:
''
,
repeat
:
''
,
},
},
},
hiddenComponent
:
[],
buttonList
:
[],
...
...
@@ -130,7 +157,7 @@ export const basicComponents = [
options
:
{
width
:
'100%'
,
span
:
''
,
defaultValue
:
0
,
defaultValue
:
''
,
min
:
0
,
max
:
100
,
step
:
1
,
...
...
@@ -143,6 +170,7 @@ export const basicComponents = [
isShow
:
true
,
rules
:
[],
events
:
{},
placeholder
:
'请输入计数组件'
,
tooltipConfig
:
defaultTooltipConfig
,
},
},
...
...
@@ -1128,6 +1156,36 @@ export const layoutComponents = [
showLabel
:
true
,
showComponentBorder
:
true
,
showBorder
:
false
,
// 背景样式
backgroundStyle
:
{
isShow
:
false
,
bgColor
:
'#ffffff'
,
bgImgUrl
:
''
,
fontColor
:
''
,
borderColor
:
''
,
},
theadStyle
:
{
isShow
:
false
,
fontSize
:
14
,
fontColor
:
'#000000'
,
bgType
:
'color'
,
gradientDegree
:
''
,
gradientColors
:
''
,
bgImageUrl
:
''
,
bgColor
:
''
,
bgRepeat
:
'no-repeat'
,
},
tbodyStyle
:
{
isShow
:
false
,
fontSize
:
14
,
fontColor
:
'#000000'
,
bgType
:
'color'
,
gradientDegree
:
''
,
gradientColors
:
''
,
bgImageUrl
:
''
,
bgColor
:
''
,
bgRepeat
:
'no-repeat'
,
},
bordercolor
:
'#f0f0f0'
,
bordershowtype
:
[
true
,
true
,
true
,
true
],
borderwidth
:
1
,
...
...
@@ -1144,6 +1202,8 @@ export const layoutComponents = [
isShowAdd
:
true
,
isShowDelete
:
true
,
hasCheckedCol
:
false
,
checkedColType
:
'checkbox'
,
pageSize
:
10
,
events
:
{},
},
},
...
...
@@ -1193,6 +1253,34 @@ export const layoutComponents = [
events
:
{},
defaultValue
:
''
,
multiple
:
true
,
// 背景样式
backgroundStyle
:
{
isShow
:
false
,
bgColor
:
'#ffffff'
,
bgImgUrl
:
''
,
fontColor
:
''
,
borderColor
:
''
,
},
backgroundTheadStyle
:
{
isShow
:
false
,
bgType
:
'color'
,
fontColor
:
''
,
fontSize
:
14
,
bgImgUrl
:
''
,
gradientDegree
:
''
,
gradientColors
:
''
,
bgRepeat
:
'no-repeat'
,
},
backgroundTbodyStyle
:
{
isShow
:
false
,
bgType
:
'color'
,
fontColor
:
''
,
fontSize
:
14
,
bgImgUrl
:
''
,
gradientDegree
:
''
,
gradientColors
:
''
,
bgRepeat
:
'no-repeat'
,
},
},
},
{
...
...
@@ -1305,11 +1393,13 @@ export const layoutComponents = [
isShow
:
false
,
bgColor
:
'#ffffff'
,
bgImgUrl
:
''
,
bgRepeat
:
'no-repeat'
,
},
content
:
{
isShow
:
false
,
bgColor
:
'#ffffff'
,
bgImgUrl
:
''
,
bgRepeat
:
'no-repeat'
,
},
divider
:
{
isShow
:
true
,
...
...
@@ -1731,7 +1821,7 @@ export const noHaveTableAndField = [
'title'
,
'button'
,
'opinion'
,
'qrcode'
,
//
'qrcode',
'iframe'
,
'table-layout'
,
'text'
,
...
...
@@ -1754,7 +1844,7 @@ export const noHaveField = [
'form'
,
'time-range'
,
'date-range'
,
'qrcode'
,
//
'qrcode',
'iframe'
,
'table-layout'
,
'text'
,
...
...
xjrsoft-vue3/src/views/sbgl/shebeigl/components/config.ts
View file @
b74e23fb
...
...
@@ -9,12 +9,111 @@ export const searchFormSchema: FormSchema[] = [
component
:
'Input'
,
},
{
field
:
'workCenterId'
,
label
:
'工作中心'
,
defaultValue
:
undefined
,
component
:
'XjrSelect'
,
componentProps
:
{
datasourceType
:
'api'
,
apiConfig
:
{
path
:
'/sbgl/getAllGzzx'
,
method
:
'GET'
,
apiId
:
'ed40dde8ce3b41b98cf269ded9d4d4fc'
,
apiParams
:
[
{
key
:
'1'
,
title
:
'Query Params'
,
tableInfo
:
[]
},
{
key
:
'2'
,
title
:
'Header'
,
tableInfo
:
[]
},
{
key
:
'3'
,
title
:
'Body'
},
],
script
:
"var sql ='select id as value,gzzxmc as label from mes_base_gzzx where delete_mark=0';
\
r
\
nreturn db.select(sql)"
,
},
labelField
:
'label'
,
valueField
:
'value'
,
mode
:
'multiple'
,
showSearch
:
true
,
getPopupContainer
:
()
=>
document
.
body
,
},
},
{
field
:
'specification'
,
label
:
'规格型号'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'archivesCode'
,
label
:
'建档号'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'code'
,
label
:
'内部编号'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'location'
,
label
:
'当前位置'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'registerCode'
,
label
:
'注册代码'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'createArchivesUserId'
,
label
:
'建档人'
,
defaultValue
:
undefined
,
component
:
'User'
,
componentProps
:
{
suffix
:
'ant-design:setting-outlined'
,
placeholder
:
'请选择'
,
},
},
{
field
:
'categoryId'
,
label
:
'设备类别'
,
defaultValue
:
undefined
,
component
:
'XjrSelect'
,
componentProps
:
{
datasourceType
:
'dic'
,
params
:
{
itemId
:
'2009172338943287298'
},
labelField
:
'name'
,
valueField
:
'value'
,
mode
:
'multiple'
,
showSearch
:
true
,
getPopupContainer
:
()
=>
document
.
body
,
},
},
{
field
:
'userId'
,
label
:
'负责人'
,
defaultValue
:
undefined
,
component
:
'User'
,
componentProps
:
{
suffix
:
'ant-design:setting-outlined'
,
placeholder
:
'请选择'
,
},
},
{
field
:
'usePermitCode'
,
label
:
'使用证编号'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'manufacturer'
,
label
:
'厂家'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'eState'
,
label
:
'设备状态'
,
defaultValue
:
undefined
,
...
...
@@ -29,6 +128,49 @@ export const searchFormSchema: FormSchema[] = [
getPopupContainer
:
()
=>
document
.
body
,
},
},
{
field
:
'companyId'
,
label
:
'公司'
,
defaultValue
:
undefined
,
component
:
'XjrSelect'
,
componentProps
:
{
datasourceType
:
'api'
,
apiConfig
:
{
path
:
'/bmxx/getCompanyList'
,
method
:
'GET'
,
apiId
:
'copy1765431632890d13798'
,
apiParams
:
[
{
key
:
'1'
,
title
:
'Query Params'
,
tableInfo
:
[]
},
{
key
:
'2'
,
title
:
'Header'
,
tableInfo
:
[]
},
{
key
:
'3'
,
title
:
'Body'
},
],
script
:
'var sql="select id as value,name as label from res_company";
\
r
\
nreturn db.select(sql);'
,
},
labelField
:
'label'
,
valueField
:
'value'
,
mode
:
'multiple'
,
showSearch
:
true
,
getPopupContainer
:
()
=>
document
.
body
,
},
},
{
field
:
'indexCode'
,
label
:
'整机编号'
,
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
field
:
'manufactureDate'
,
label
:
'生产日期'
,
defaultValue
:
undefined
,
component
:
'RangePicker'
,
componentProps
:
{
format
:
'YYYY-MM-DD'
,
style
:
{
width
:
'100%'
},
getPopupContainer
:
()
=>
document
.
body
,
},
},
];
export
const
columns
:
BasicColumn
[]
=
[
...
...
@@ -122,6 +264,123 @@ export const columns: BasicColumn[] = [
styleConfig
:
undefined
,
listStyle
:
undefined
,
},
{
resizable
:
true
,
dataIndex
:
'workCenterId'
,
title
:
'工作中心'
,
componentType
:
'select'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
undefined
,
},
{
resizable
:
true
,
dataIndex
:
'archivesCode'
,
title
:
'建档号'
,
componentType
:
'input'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
''
,
},
{
resizable
:
true
,
dataIndex
:
'location'
,
title
:
'当前位置'
,
componentType
:
'input'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
''
,
},
{
resizable
:
true
,
dataIndex
:
'registerCode'
,
title
:
'注册代码'
,
componentType
:
'input'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
''
,
},
{
resizable
:
true
,
dataIndex
:
'createArchivesUserId'
,
title
:
'建档人'
,
componentType
:
'user'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
undefined
,
},
{
resizable
:
true
,
dataIndex
:
'usePermitCode'
,
title
:
'使用证编号'
,
componentType
:
'input'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
''
,
},
{
resizable
:
true
,
dataIndex
:
'manufacturer'
,
title
:
'厂家'
,
componentType
:
'input'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
''
,
},
{
resizable
:
true
,
dataIndex
:
'indexCode'
,
title
:
'整机编号'
,
componentType
:
'input'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
''
,
},
{
resizable
:
true
,
dataIndex
:
'manufactureDate'
,
title
:
'生产日期'
,
componentType
:
'date'
,
fixed
:
false
,
sorter
:
true
,
styleConfig
:
undefined
,
listStyle
:
undefined
,
},
];
//表头合并配置
export
const
headerMergingData
=
[];
...
...
@@ -135,6 +394,7 @@ export const formEventConfigs = {
icon
:
'#icon-kaishi'
,
bgcColor
:
'#D8E5FF'
,
isUserDefined
:
false
,
isClick
:
false
,
},
{
color
:
'#F6AB01'
,
...
...
@@ -143,6 +403,7 @@ export const formEventConfigs = {
bgcColor
:
'#f9f5ea'
,
isUserDefined
:
false
,
nodeInfo
:
{
processEvent
:
[]
},
isClick
:
false
,
},
],
1
:
[
...
...
@@ -154,6 +415,25 @@ export const formEventConfigs = {
bgcColor
:
'#F8F2FC'
,
isUserDefined
:
false
,
nodeInfo
:
{
processEvent
:
[]
},
isClick
:
false
,
},
{
color
:
'#2774FF'
,
icon
:
'#icon-yonghu-xianxing'
,
text
:
'用户自定义节点'
,
bgcColor
:
'#F5F8FA'
,
isUserDefined
:
true
,
isLogRecord
:
false
,
nodeInfo
:
{
processEvent
:
[
{
operateType
:
'js'
,
operateConfig
:
"formActionType.refreshAPI('p10')
\
n"
,
showValue
:
'已配置'
,
},
],
},
isClick
:
true
,
},
],
2
:
[
...
...
@@ -164,6 +444,7 @@ export const formEventConfigs = {
bgcColor
:
'#FFF1F1'
,
isUserDefined
:
false
,
nodeInfo
:
{
processEvent
:
[]
},
isClick
:
false
,
},
],
3
:
[
...
...
@@ -174,6 +455,7 @@ export const formEventConfigs = {
bgcColor
:
'#F5F4FF'
,
isUserDefined
:
false
,
nodeInfo
:
{
processEvent
:
[]
},
isClick
:
false
,
},
],
4
:
[
...
...
@@ -185,6 +467,7 @@ export const formEventConfigs = {
bgcColor
:
'#FFD6D6'
,
isLast
:
true
,
isUserDefined
:
false
,
isClick
:
false
,
},
],
};
...
...
@@ -218,7 +501,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入设备名称'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -260,9 +542,7 @@ export const formProps: FormProps = {
{
key
:
2
,
label
:
'Option 2'
,
value
:
'Option 2'
},
{
key
:
3
,
label
:
'Option 3'
,
value
:
'Option 3'
},
],
defaultSelect
:
null
,
datasourceType
:
'api'
,
params
:
null
,
labelField
:
'label'
,
valueField
:
'value'
,
apiConfig
:
{
...
...
@@ -299,7 +579,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入规格型号'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -333,7 +612,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入建档号'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -395,7 +673,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入当前位置'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -429,7 +706,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入注册代码'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -502,7 +778,6 @@ export const formProps: FormProps = {
{
key
:
2
,
label
:
'Option 2'
,
value
:
'Option 2'
},
{
key
:
3
,
label
:
'Option 3'
,
value
:
'Option 3'
},
],
defaultSelect
:
null
,
datasourceType
:
'dic'
,
params
:
{
itemId
:
'2009172338943287298'
},
labelField
:
'name'
,
...
...
@@ -561,7 +836,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入使用证编号'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -595,7 +869,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入厂家'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -685,7 +958,6 @@ export const formProps: FormProps = {
],
defaultSelect
:
''
,
datasourceType
:
'api'
,
params
:
null
,
labelField
:
'label'
,
valueField
:
'value'
,
apiConfig
:
{
...
...
@@ -722,7 +994,6 @@ export const formProps: FormProps = {
span
:
7
,
defaultValue
:
''
,
placeholder
:
'请输入整机编号'
,
maxlength
:
null
,
prefix
:
''
,
suffix
:
''
,
addonBefore
:
''
,
...
...
@@ -788,7 +1059,7 @@ export const formProps: FormProps = {
},
{
key
:
'5a4372bc13d147ad9de505bd53ed966d'
,
field
:
''
,
field
:
'
p10
'
,
label
:
'设备二维码'
,
type
:
'qrcode'
,
component
:
'XjrQrcode'
,
...
...
@@ -797,7 +1068,7 @@ export const formProps: FormProps = {
componentProps
:
{
span
:
''
,
defaultValue
:
''
,
showLabel
:
tru
e
,
showLabel
:
fals
e
,
isShow
:
true
,
codeType
:
'api'
,
apiConfig
:
{
...
...
@@ -812,15 +1083,9 @@ export const formProps: FormProps = {
{
name
:
'code'
,
value
:
'{"bindField":"code","fieldKey":"50abeb905e2e4f67adb855ffe71108a4"}'
,
description
:
null
,
required
:
false
,
dataType
:
null
,
type
:
null
,
defaultValue
:
'0'
,
validateType
:
null
,
error
:
null
,
expression
:
null
,
children
:
null
,
dataType
:
'String'
,
defaultValue
:
''
,
bindType
:
'data'
,
},
],
...
...
@@ -828,7 +1093,7 @@ export const formProps: FormProps = {
{
key
:
'2'
,
title
:
'Header'
,
tableInfo
:
[]
},
{
key
:
'3'
,
title
:
'Body'
},
],
script
:
"return db.select('select #{code} code')"
,
script
:
'return code'
,
},
tooltipConfig
:
{
visible
:
false
,
title
:
'提示文本'
},
type
:
1
,
...
...
xjrsoft-vue3/src/views/sbgl/shebeigl/components/workflowPermission.ts
View file @
b74e23fb
...
...
@@ -275,7 +275,7 @@ export const permissionList = [
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'设备二维码'
,
fieldId
:
''
,
fieldId
:
'
p10
'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'qrcode'
,
...
...
xjrsoft-vue3/src/views/sbgl/shebeigl/index.vue
View file @
b74e23fb
...
...
@@ -133,7 +133,7 @@
//展示在列表内的按钮
const
actionButtons
=
ref
<
string
[]
>
([
"view"
,
"edit"
,
"delete"
]);
const
buttonConfigs
=
computed
(()
=>
{
const
list
=
[{
"
isUse"
:
true
,
"name"
:
"查看"
,
"code"
:
"view"
,
"icon"
:
"ant-design:eye-outlined"
,
"isDefault"
:
true
},{
"isUse"
:
true
,
"name"
:
"新增"
,
"code"
:
"add"
,
"icon"
:
"ant-design:plus-outlined"
,
"isDefault"
:
true
},{
"isUse"
:
true
,
"name"
:
"编辑"
,
"code"
:
"edit"
,
"icon"
:
"ant-design:form-outlined"
,
"isDefault"
:
true
,
"isEnableLock"
:
true
},{
"isUse"
:
true
,
"name"
:
"删除"
,
"code"
:
"delete"
,
"icon"
:
"ant-design:delete-outlined"
,
"isDefault
"
:
true
}]
const
list
=
[{
"
buttonId"
:
"2013864545785094144"
,
"name"
:
"查看"
,
"code"
:
"view"
,
"icon"
:
"ant-design:eye-outlined"
,
"isDefault"
:
true
,
"isUse"
:
true
},{
"buttonId"
:
"2013864545789288448"
,
"name"
:
"新增"
,
"code"
:
"add"
,
"icon"
:
"ant-design:plus-outlined"
,
"isDefault"
:
true
,
"isUse"
:
true
},{
"buttonId"
:
"2013864545789288449"
,
"name"
:
"编辑"
,
"code"
:
"edit"
,
"icon"
:
"ant-design:form-outlined"
,
"isDefault"
:
true
,
"isUse"
:
true
,
"isEnableLock"
:
true
},{
"buttonId"
:
"2013864545789288450"
,
"name"
:
"删除"
,
"code"
:
"delete"
,
"icon"
:
"ant-design:delete-outlined"
,
"isDefault"
:
true
,
"isUse
"
:
true
}]
return
filterButtonAuth
(
list
);
})
...
...
@@ -176,7 +176,7 @@
formConfig
:
{
labelWidth
:
100
,
schemas
:
searchFormSchema
,
fieldMapToTime
:
[],
fieldMapToTime
:
[
[
'manufactureDate'
,
[
'manufactureDateStart'
,
'manufactureDateEnd'
],
'YYYY-MM-DD '
,
true
],
],
showResetButton
:
false
,
},
bordered
:
false
,
...
...
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