Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
CivManage
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ReactWeb5
CivManage
Commits
e1f52db7
Commit
e1f52db7
authored
Nov 10, 2020
by
陈前坚
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: app config
parent
05817a55
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
721 additions
and
364 deletions
+721
-364
AppMenu.js
src/pages/appConfig/AppMenu.js
+350
-0
SevenParams.js
src/pages/appConfig/SevenParams.js
+343
-0
index.js
src/pages/appConfig/index.js
+7
-364
api.js
src/services/appConfig/api.js
+21
-0
No files found.
src/pages/appConfig/AppMenu.js
0 → 100644
View file @
e1f52db7
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
message
,
Form
,
Input
,
notification
,
Button
,
Select
}
from
'antd'
;
import
{
get
,
post
}
from
'../../services'
;
const
SevenParams
=
()
=>
{
const
{
Option
}
=
Select
;
// const [transParams, setTransParams] = useState({});
// 根据转换类型 transType 渲染 输入框参数 params
const
[
transType
,
setTransType
]
=
useState
(
'1'
);
const
[
sevenForm
]
=
Form
.
useForm
();
const
transTypeChange
=
value
=>
{
// console.log(`selected ${value}`);
setTransType
(
value
);
get
(
`/Cityinterface/rest/services/OMS.svc/M_GetSevenParamsByTransType`
,
{
_version
:
9999
,
_dc
:
new
Date
().
getTime
(),
transType
:
value
,
})
.
then
(
res
=>
{
if
(
res
)
{
sevenForm
.
setFieldsValue
({
// transType 1 2
angle
:
res
.
angle
,
m
:
res
.
m
,
// transType 1 3 5 6
x_off
:
res
.
x_off
,
y_off
:
res
.
y_off
,
// transType 2
x0_gps
:
res
.
x0_gps
,
x0_local
:
res
.
x0_local
,
y0_gps
:
res
.
y0_gps
,
y0_local
:
res
.
y0_local
,
// transType 3 4 6
seven_m
:
res
.
seven_m
,
seven_x_angle
:
res
.
seven_x_angle
,
seven_x_off
:
res
.
seven_x_off
,
seven_y_angle
:
res
.
seven_y_angle
,
seven_y_off
:
res
.
seven_y_off
,
seven_z_angle
:
res
.
seven_z_angle
,
seven_z_off
:
res
.
seven_z_off
,
// transType 4
four_angle
:
res
.
four_angle
,
four_m
:
res
.
four_m
,
four_x_off
:
res
.
four_x_off
,
four_y_off
:
res
.
four_y_off
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
};
const
submitSevenParams
=
()
=>
{
const
sevenFormData
=
new
FormData
();
sevenFormData
.
append
(
'ellipseType'
,
sevenForm
.
getFieldValue
(
'ellipseType'
));
sevenFormData
.
append
(
'transType'
,
sevenForm
.
getFieldValue
(
'transType'
));
sevenFormData
.
append
(
'middleLine'
,
sevenForm
.
getFieldValue
(
'middleLine'
));
sevenFormData
.
append
(
'rev'
,
sevenForm
.
getFieldValue
(
'rev'
));
if
(
transType
===
'1'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'angle'
,
sevenForm
.
getFieldValue
(
'angle'
));
sevenFormData
.
append
(
'm'
,
sevenForm
.
getFieldValue
(
'm'
));
}
if
(
transType
===
'2'
)
{
sevenFormData
.
append
(
'angle'
,
sevenForm
.
getFieldValue
(
'angle'
));
sevenFormData
.
append
(
'm'
,
sevenForm
.
getFieldValue
(
'm'
));
sevenFormData
.
append
(
'x0_local'
,
sevenForm
.
getFieldValue
(
'x0_local'
));
sevenFormData
.
append
(
'y0_local'
,
sevenForm
.
getFieldValue
(
'y0_local'
));
sevenFormData
.
append
(
'x0_gps'
,
sevenForm
.
getFieldValue
(
'x0_gps'
));
sevenFormData
.
append
(
'y0_gps'
,
sevenForm
.
getFieldValue
(
'y0_gps'
));
}
if
(
transType
===
'3'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
}
if
(
transType
===
'4'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
sevenFormData
.
append
(
'four_x_off'
,
sevenForm
.
getFieldValue
(
'four_x_off'
));
sevenFormData
.
append
(
'four_y_off'
,
sevenForm
.
getFieldValue
(
'four_y_off'
));
sevenFormData
.
append
(
'four_angle'
,
sevenForm
.
getFieldValue
(
'four_angle'
));
sevenFormData
.
append
(
'four_m'
,
sevenForm
.
getFieldValue
(
'four_m'
));
}
if
(
transType
===
'5'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
}
if
(
transType
===
'6'
)
{
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
}
post
(
`/Cityinterface/rest/services/OMS.svc/M_SetSevenParams?_version=9999`
,
sevenFormData
,
)
.
then
(
res
=>
{
if
(
res
.
success
)
{
notification
.
success
({
message
:
'提交成功'
,
});
}
else
{
notification
.
error
({
message
:
'提交失败'
,
description
:
res
.
message
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
};
useEffect
(()
=>
{
get
(
`/Cityinterface/rest/services/OMS.svc/M_GetSevenParams`
,
{
_version
:
9999
,
_dc
:
new
Date
().
getTime
(),
})
.
then
(
res
=>
{
if
(
res
.
success
)
{
sevenForm
.
setFieldsValue
({
middleLine
:
res
.
transParams
.
middleLine
,
rev
:
res
.
transParams
.
rev
,
x_off
:
res
.
params
.
x_off
,
y_off
:
res
.
params
.
y_off
,
angle
:
res
.
params
.
angle
,
m
:
res
.
params
.
m
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
},
[]);
return
(
<
Form
form
=
{
sevenForm
}
labelCol
=
{{
span
:
4
,
offset
:
4
}}
wrapperCol
=
{{
span
:
16
,
offset
:
1
}}
style
=
{{
width
:
'900px'
}}
onFinish
=
{
submitSevenParams
}
initialValues
=
{{
ellipseType
:
'1'
,
transType
:
'1'
}}
>
<
Form
.
Item
name
=
"ellipseType"
label
=
"椭球类型"
>
<
Select
>
<
Option
value
=
"1"
>
54
椭球
<
/Option
>
<
Option
value
=
"2"
>
80
椭球
<
/Option
>
<
Option
value
=
"3"
>
84
椭球
<
/Option
>
<
Option
value
=
"4"
>
2000
椭球
<
/Option
>
<
/Select
>
<
/Form.Item
>
<
Form
.
Item
name
=
"transType"
label
=
"转换类型"
>
<
Select
onChange
=
{
transTypeChange
}
>
<
Option
value
=
"1"
>
四参数
<
/Option
>
<
Option
value
=
"2"
>
六参数
<
/Option
>
<
Option
value
=
"3"
>
七参数
<
/Option
>
<
Option
value
=
"4"
>
七参数
+
四参数
<
/Option
>
<
Option
value
=
"5"
>
中央经线投影(二参数)
<
/Option
>
<
Option
value
=
"6"
>
七参数
+
二参数反转
<
/Option
>
<
/Select
>
<
/Form.Item
>
<
Form
.
Item
name
=
"middleLine"
label
=
"中央经线"
rules
=
{[{
required
:
true
,
message
:
'不能为空'
}]}
>
<
Input
placeholder
=
"请输入中央经线"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"rev"
label
=
"rev"
rules
=
{[{
required
:
true
,
message
:
'不能为空'
}]}
>
<
Input
placeholder
=
"请输入rev"
/>
<
/Form.Item
>
{(
transType
===
'1'
||
transType
===
'2'
)
&&
(
<>
<
Form
.
Item
name
=
"angle"
label
=
"angle"
>
<
Input
placeholder
=
"请输入旋转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"m"
label
=
"m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
/
>
)}
{(
transType
===
'1'
||
transType
===
'3'
||
transType
===
'5'
||
transType
===
'6'
)
&&
(
<>
<
Form
.
Item
name
=
"x_off"
label
=
"x_off"
>
<
Input
placeholder
=
"请输入x坐标平移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y_off"
label
=
"y_off"
>
<
Input
placeholder
=
"请输入y坐标平移量"
/>
<
/Form.Item
>
<
/
>
)}
{
transType
===
'2'
&&
(
<>
<
Form
.
Item
name
=
"x0_gps"
label
=
"x0_gps"
>
<
Input
placeholder
=
"请输入gps-x坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y0_gps"
label
=
"y0_gps"
>
<
Input
placeholder
=
"请输入gps-y坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"x0_local"
label
=
"x0_local"
>
<
Input
placeholder
=
"请输入local-x坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y0_local"
label
=
"y0_local"
>
<
Input
placeholder
=
"请输入local-y坐标"
/>
<
/Form.Item
>
<
/
>
)}
{(
transType
===
'3'
||
transType
===
'4'
||
transType
===
'6'
)
&&
(
<>
<
Form
.
Item
name
=
"seven_m"
label
=
"seven_m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_x_off"
label
=
"seven_x_off"
>
<
Input
placeholder
=
"请输入x方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_y_off"
label
=
"seven_y_off"
>
<
Input
placeholder
=
"请输入y方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_z_off"
label
=
"seven_z_off"
>
<
Input
placeholder
=
"请输入z方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_x_angle"
label
=
"seven_x_angle"
>
<
Input
placeholder
=
"请输入x方向偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_y_angle"
label
=
"seven_y_angle"
>
<
Input
placeholder
=
"请输入y方向偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_z_angle"
label
=
"seven_z_angle"
>
<
Input
placeholder
=
"请输入z方向偏转角度"
/>
<
/Form.Item
>
<
/
>
)}
{
transType
===
'4'
&&
(
<>
<
Form
.
Item
name
=
"four_x_off"
label
=
"four_x_off"
>
<
Input
placeholder
=
"请输入x方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_y_off"
label
=
"four_y_off"
>
<
Input
placeholder
=
"请输入y方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_angle"
label
=
"four_angle"
>
<
Input
placeholder
=
"请输入偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_m"
label
=
"four_m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
/
>
)}
<
Form
.
Item
wrapperCol
=
{{
sm
:
{
span
:
16
,
offset
:
16
,
},
}}
>
<
Button
type
=
"primary"
htmlType
=
"submit"
>
提交
<
/Button
>
<
/Form.Item
>
<
/Form
>
);
};
export
default
SevenParams
;
src/pages/appConfig/SevenParams.js
0 → 100644
View file @
e1f52db7
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
message
,
Form
,
Input
,
notification
,
Button
,
Select
}
from
'antd'
;
import
{
getSevenParams
,
getSevenParamsByTransType
,
postSevenParams
,
}
from
'../../services/appConfig/api'
;
const
SevenParams
=
()
=>
{
const
{
Option
}
=
Select
;
// 根据转换类型 transType 渲染 输入框参数 params
const
[
transType
,
setTransType
]
=
useState
(
'1'
);
const
[
sevenForm
]
=
Form
.
useForm
();
const
transTypeChange
=
value
=>
{
// console.log(`selected ${value}`);
setTransType
(
value
);
getSevenParamsByTransType
(
value
)
.
then
(
res
=>
{
if
(
res
)
{
sevenForm
.
setFieldsValue
({
// transType 1 2
angle
:
res
.
angle
,
m
:
res
.
m
,
// transType 1 3 5 6
x_off
:
res
.
x_off
,
y_off
:
res
.
y_off
,
// transType 2
x0_gps
:
res
.
x0_gps
,
x0_local
:
res
.
x0_local
,
y0_gps
:
res
.
y0_gps
,
y0_local
:
res
.
y0_local
,
// transType 3 4 6
seven_m
:
res
.
seven_m
,
seven_x_angle
:
res
.
seven_x_angle
,
seven_x_off
:
res
.
seven_x_off
,
seven_y_angle
:
res
.
seven_y_angle
,
seven_y_off
:
res
.
seven_y_off
,
seven_z_angle
:
res
.
seven_z_angle
,
seven_z_off
:
res
.
seven_z_off
,
// transType 4
four_angle
:
res
.
four_angle
,
four_m
:
res
.
four_m
,
four_x_off
:
res
.
four_x_off
,
four_y_off
:
res
.
four_y_off
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
};
// 提交七参数,根据转换类型提交不同的参数
const
submitSevenParams
=
()
=>
{
const
sevenFormData
=
new
FormData
();
sevenFormData
.
append
(
'ellipseType'
,
sevenForm
.
getFieldValue
(
'ellipseType'
));
sevenFormData
.
append
(
'transType'
,
sevenForm
.
getFieldValue
(
'transType'
));
sevenFormData
.
append
(
'middleLine'
,
sevenForm
.
getFieldValue
(
'middleLine'
));
sevenFormData
.
append
(
'rev'
,
sevenForm
.
getFieldValue
(
'rev'
));
if
(
transType
===
'1'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'angle'
,
sevenForm
.
getFieldValue
(
'angle'
));
sevenFormData
.
append
(
'm'
,
sevenForm
.
getFieldValue
(
'm'
));
}
if
(
transType
===
'2'
)
{
sevenFormData
.
append
(
'angle'
,
sevenForm
.
getFieldValue
(
'angle'
));
sevenFormData
.
append
(
'm'
,
sevenForm
.
getFieldValue
(
'm'
));
sevenFormData
.
append
(
'x0_local'
,
sevenForm
.
getFieldValue
(
'x0_local'
));
sevenFormData
.
append
(
'y0_local'
,
sevenForm
.
getFieldValue
(
'y0_local'
));
sevenFormData
.
append
(
'x0_gps'
,
sevenForm
.
getFieldValue
(
'x0_gps'
));
sevenFormData
.
append
(
'y0_gps'
,
sevenForm
.
getFieldValue
(
'y0_gps'
));
}
if
(
transType
===
'3'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
}
if
(
transType
===
'4'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
sevenFormData
.
append
(
'four_x_off'
,
sevenForm
.
getFieldValue
(
'four_x_off'
));
sevenFormData
.
append
(
'four_y_off'
,
sevenForm
.
getFieldValue
(
'four_y_off'
));
sevenFormData
.
append
(
'four_angle'
,
sevenForm
.
getFieldValue
(
'four_angle'
));
sevenFormData
.
append
(
'four_m'
,
sevenForm
.
getFieldValue
(
'four_m'
));
}
if
(
transType
===
'5'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
}
if
(
transType
===
'6'
)
{
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
}
postSevenParams
(
sevenFormData
)
.
then
(
res
=>
{
if
(
res
.
success
)
{
notification
.
success
({
message
:
'提交成功'
,
});
}
else
{
notification
.
error
({
message
:
'提交失败'
,
description
:
res
.
message
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
};
// 七参数初始化
useEffect
(()
=>
{
getSevenParams
()
.
then
(
res
=>
{
if
(
res
.
success
)
{
sevenForm
.
setFieldsValue
({
middleLine
:
res
.
transParams
.
middleLine
,
rev
:
res
.
transParams
.
rev
,
x_off
:
res
.
params
.
x_off
,
y_off
:
res
.
params
.
y_off
,
angle
:
res
.
params
.
angle
,
m
:
res
.
params
.
m
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
},
[]);
return
(
<
Form
form
=
{
sevenForm
}
labelCol
=
{{
span
:
4
,
offset
:
4
}}
wrapperCol
=
{{
span
:
16
,
offset
:
1
}}
style
=
{{
width
:
'900px'
}}
onFinish
=
{
submitSevenParams
}
initialValues
=
{{
ellipseType
:
'1'
,
transType
:
'1'
}}
>
<
Form
.
Item
name
=
"ellipseType"
label
=
"椭球类型"
>
<
Select
>
<
Option
value
=
"1"
>
54
椭球
<
/Option
>
<
Option
value
=
"2"
>
80
椭球
<
/Option
>
<
Option
value
=
"3"
>
84
椭球
<
/Option
>
<
Option
value
=
"4"
>
2000
椭球
<
/Option
>
<
/Select
>
<
/Form.Item
>
<
Form
.
Item
name
=
"transType"
label
=
"转换类型"
>
<
Select
onChange
=
{
transTypeChange
}
>
<
Option
value
=
"1"
>
四参数
<
/Option
>
<
Option
value
=
"2"
>
六参数
<
/Option
>
<
Option
value
=
"3"
>
七参数
<
/Option
>
<
Option
value
=
"4"
>
七参数
+
四参数
<
/Option
>
<
Option
value
=
"5"
>
中央经线投影(二参数)
<
/Option
>
<
Option
value
=
"6"
>
七参数
+
二参数反转
<
/Option
>
<
/Select
>
<
/Form.Item
>
<
Form
.
Item
name
=
"middleLine"
label
=
"中央经线"
rules
=
{[{
required
:
true
,
message
:
'不能为空'
}]}
>
<
Input
placeholder
=
"请输入中央经线"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"rev"
label
=
"rev"
rules
=
{[{
required
:
true
,
message
:
'不能为空'
}]}
>
<
Input
placeholder
=
"请输入rev"
/>
<
/Form.Item
>
{(
transType
===
'1'
||
transType
===
'2'
)
&&
(
<>
<
Form
.
Item
name
=
"angle"
label
=
"angle"
>
<
Input
placeholder
=
"请输入旋转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"m"
label
=
"m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
/
>
)}
{(
transType
===
'1'
||
transType
===
'3'
||
transType
===
'5'
||
transType
===
'6'
)
&&
(
<>
<
Form
.
Item
name
=
"x_off"
label
=
"x_off"
>
<
Input
placeholder
=
"请输入x坐标平移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y_off"
label
=
"y_off"
>
<
Input
placeholder
=
"请输入y坐标平移量"
/>
<
/Form.Item
>
<
/
>
)}
{
transType
===
'2'
&&
(
<>
<
Form
.
Item
name
=
"x0_gps"
label
=
"x0_gps"
>
<
Input
placeholder
=
"请输入gps-x坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y0_gps"
label
=
"y0_gps"
>
<
Input
placeholder
=
"请输入gps-y坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"x0_local"
label
=
"x0_local"
>
<
Input
placeholder
=
"请输入local-x坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y0_local"
label
=
"y0_local"
>
<
Input
placeholder
=
"请输入local-y坐标"
/>
<
/Form.Item
>
<
/
>
)}
{(
transType
===
'3'
||
transType
===
'4'
||
transType
===
'6'
)
&&
(
<>
<
Form
.
Item
name
=
"seven_m"
label
=
"seven_m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_x_off"
label
=
"seven_x_off"
>
<
Input
placeholder
=
"请输入x方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_y_off"
label
=
"seven_y_off"
>
<
Input
placeholder
=
"请输入y方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_z_off"
label
=
"seven_z_off"
>
<
Input
placeholder
=
"请输入z方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_x_angle"
label
=
"seven_x_angle"
>
<
Input
placeholder
=
"请输入x方向偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_y_angle"
label
=
"seven_y_angle"
>
<
Input
placeholder
=
"请输入y方向偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_z_angle"
label
=
"seven_z_angle"
>
<
Input
placeholder
=
"请输入z方向偏转角度"
/>
<
/Form.Item
>
<
/
>
)}
{
transType
===
'4'
&&
(
<>
<
Form
.
Item
name
=
"four_x_off"
label
=
"four_x_off"
>
<
Input
placeholder
=
"请输入x方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_y_off"
label
=
"four_y_off"
>
<
Input
placeholder
=
"请输入y方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_angle"
label
=
"four_angle"
>
<
Input
placeholder
=
"请输入偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_m"
label
=
"four_m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
/
>
)}
<
Form
.
Item
wrapperCol
=
{{
sm
:
{
span
:
16
,
offset
:
16
,
},
}}
>
<
Button
type
=
"primary"
htmlType
=
"submit"
>
提交
<
/Button
>
<
/Form.Item
>
<
/Form
>
);
};
export
default
SevenParams
;
src/pages/appConfig/index.js
View file @
e1f52db7
import
React
,
{
useState
,
useEffect
,
useCallback
}
from
'react'
;
import
React
from
'react'
;
import
{
import
{
Tabs
}
from
'antd'
;
Tree
,
Table
,
Space
,
message
,
Modal
,
Form
,
Input
,
notification
,
Tooltip
,
Row
,
Col
,
Divider
,
Tabs
,
Checkbox
,
Button
,
Select
,
}
from
'antd'
;
import
{
PageContainer
}
from
'@ant-design/pro-layout'
;
import
{
PageContainer
}
from
'@ant-design/pro-layout'
;
import
{
get
,
post
}
from
'../../services'
;
import
SevenParams
from
'./SevenParams'
;
// import AppMenu from './AppMenu';
const
AppConfigPage
=
props
=>
{
const
AppConfigPage
=
()
=>
{
const
{
TabPane
}
=
Tabs
;
const
{
TabPane
}
=
Tabs
;
const
{
Option
}
=
Select
;
// const [transParams, setTransParams] = useState({});
// 根据转换类型 transType 渲染 输入框参数 params
const
[
transType
,
setTransType
]
=
useState
(
'1'
);
const
[
sevenForm
]
=
Form
.
useForm
();
const
ellipseTypeChange
=
value
=>
{
console
.
log
(
`selected
${
value
}
`
);
};
const
transTypeChange
=
value
=>
{
console
.
log
(
`selected
${
value
}
`
);
setTransType
(
value
);
get
(
`/Cityinterface/rest/services/OMS.svc/M_GetSevenParamsByTransType`
,
{
_version
:
9999
,
_dc
:
new
Date
().
getTime
(),
transType
:
value
,
})
.
then
(
res
=>
{
if
(
res
)
{
sevenForm
.
setFieldsValue
({
// transType 1 2
angle
:
res
.
angle
,
m
:
res
.
m
,
// transType 1 3 5 6
x_off
:
res
.
x_off
,
y_off
:
res
.
y_off
,
// transType 2
x0_gps
:
res
.
x0_gps
,
x0_local
:
res
.
x0_local
,
y0_gps
:
res
.
y0_gps
,
y0_local
:
res
.
y0_local
,
// transType 3 4 6
seven_m
:
res
.
seven_m
,
seven_x_angle
:
res
.
seven_x_angle
,
seven_x_off
:
res
.
seven_x_off
,
seven_y_angle
:
res
.
seven_y_angle
,
seven_y_off
:
res
.
seven_y_off
,
seven_z_angle
:
res
.
seven_z_angle
,
seven_z_off
:
res
.
seven_z_off
,
// transType 4
four_angle
:
res
.
four_angle
,
four_m
:
res
.
four_m
,
four_x_off
:
res
.
four_x_off
,
four_y_off
:
res
.
four_y_off
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
};
const
submitSevenParams
=
()
=>
{
const
sevenFormData
=
new
FormData
();
sevenFormData
.
append
(
'ellipseType'
,
sevenForm
.
getFieldValue
(
'ellipseType'
));
sevenFormData
.
append
(
'transType'
,
sevenForm
.
getFieldValue
(
'transType'
));
sevenFormData
.
append
(
'middleLine'
,
sevenForm
.
getFieldValue
(
'middleLine'
));
sevenFormData
.
append
(
'rev'
,
sevenForm
.
getFieldValue
(
'rev'
));
if
(
transType
===
'1'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'angle'
,
sevenForm
.
getFieldValue
(
'angle'
));
sevenFormData
.
append
(
'm'
,
sevenForm
.
getFieldValue
(
'm'
));
}
if
(
transType
===
'2'
)
{
sevenFormData
.
append
(
'angle'
,
sevenForm
.
getFieldValue
(
'angle'
));
sevenFormData
.
append
(
'm'
,
sevenForm
.
getFieldValue
(
'm'
));
sevenFormData
.
append
(
'x0_local'
,
sevenForm
.
getFieldValue
(
'x0_local'
));
sevenFormData
.
append
(
'y0_local'
,
sevenForm
.
getFieldValue
(
'y0_local'
));
sevenFormData
.
append
(
'x0_gps'
,
sevenForm
.
getFieldValue
(
'x0_gps'
));
sevenFormData
.
append
(
'y0_gps'
,
sevenForm
.
getFieldValue
(
'y0_gps'
));
}
if
(
transType
===
'3'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
}
if
(
transType
===
'4'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
sevenFormData
.
append
(
'four_x_off'
,
sevenForm
.
getFieldValue
(
'four_x_off'
));
sevenFormData
.
append
(
'four_y_off'
,
sevenForm
.
getFieldValue
(
'four_y_off'
));
sevenFormData
.
append
(
'four_angle'
,
sevenForm
.
getFieldValue
(
'four_angle'
));
sevenFormData
.
append
(
'four_m'
,
sevenForm
.
getFieldValue
(
'four_m'
));
}
if
(
transType
===
'5'
)
{
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
}
if
(
transType
===
'6'
)
{
sevenFormData
.
append
(
'seven_x_off'
,
sevenForm
.
getFieldValue
(
'seven_x_off'
),
);
sevenFormData
.
append
(
'seven_y_off'
,
sevenForm
.
getFieldValue
(
'seven_y_off'
),
);
sevenFormData
.
append
(
'seven_z_off'
,
sevenForm
.
getFieldValue
(
'seven_z_off'
),
);
sevenFormData
.
append
(
'seven_x_angle'
,
sevenForm
.
getFieldValue
(
'seven_x_angle'
),
);
sevenFormData
.
append
(
'seven_y_angle'
,
sevenForm
.
getFieldValue
(
'seven_y_angle'
),
);
sevenFormData
.
append
(
'seven_z_angle'
,
sevenForm
.
getFieldValue
(
'seven_z_angle'
),
);
sevenFormData
.
append
(
'seven_m'
,
sevenForm
.
getFieldValue
(
'seven_m'
));
sevenFormData
.
append
(
'x_off'
,
sevenForm
.
getFieldValue
(
'x_off'
));
sevenFormData
.
append
(
'y_off'
,
sevenForm
.
getFieldValue
(
'y_off'
));
}
post
(
`/Cityinterface/rest/services/OMS.svc/M_SetSevenParams?_version=9999`
,
sevenFormData
,
)
.
then
(
res
=>
{
if
(
res
.
success
)
{
notification
.
success
({
message
:
'提交成功'
,
});
}
else
{
notification
.
error
({
message
:
'提交失败'
,
description
:
res
.
message
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
};
useEffect
(()
=>
{
get
(
`/Cityinterface/rest/services/OMS.svc/M_GetSevenParams`
,
{
_version
:
9999
,
_dc
:
new
Date
().
getTime
(),
})
.
then
(
res
=>
{
if
(
res
.
success
)
{
sevenForm
.
setFieldsValue
({
middleLine
:
res
.
transParams
.
middleLine
,
rev
:
res
.
transParams
.
rev
,
x_off
:
res
.
params
.
x_off
,
y_off
:
res
.
params
.
y_off
,
angle
:
res
.
params
.
angle
,
m
:
res
.
params
.
m
,
});
}
})
.
catch
(
err
=>
{
message
.
error
(
err
);
});
},
[]);
return
(
return
(
<
PageContainer
>
<
PageContainer
>
<
Tabs
defaultActiveKey
=
"1"
>
<
Tabs
defaultActiveKey
=
"1"
>
<
TabPane
tab
=
"七参数"
key
=
"1"
>
<
TabPane
tab
=
"七参数"
key
=
"1"
>
<
Form
<
SevenParams
/>
form
=
{
sevenForm
}
labelCol
=
{{
span
:
4
,
offset
:
4
}}
wrapperCol
=
{{
span
:
16
,
offset
:
1
}}
style
=
{{
width
:
'900px'
}}
onFinish
=
{
submitSevenParams
}
initialValues
=
{{
ellipseType
:
'1'
,
transType
:
'1'
}}
>
<
Form
.
Item
name
=
"ellipseType"
label
=
"椭球类型"
>
<
Select
onChange
=
{
ellipseTypeChange
}
>
<
Option
value
=
"1"
>
54
椭球
<
/Option
>
<
Option
value
=
"2"
>
80
椭球
<
/Option
>
<
Option
value
=
"3"
>
84
椭球
<
/Option
>
<
Option
value
=
"4"
>
2000
椭球
<
/Option
>
<
/Select
>
<
/Form.Item
>
<
Form
.
Item
name
=
"transType"
label
=
"转换类型"
>
<
Select
onChange
=
{
transTypeChange
}
>
<
Option
value
=
"1"
>
四参数
<
/Option
>
<
Option
value
=
"2"
>
六参数
<
/Option
>
<
Option
value
=
"3"
>
七参数
<
/Option
>
<
Option
value
=
"4"
>
七参数
+
四参数
<
/Option
>
<
Option
value
=
"5"
>
中央经线投影(二参数)
<
/Option
>
<
Option
value
=
"6"
>
七参数
+
二参数反转
<
/Option
>
<
/Select
>
<
/Form.Item
>
<
Form
.
Item
name
=
"middleLine"
label
=
"中央经线"
rules
=
{[{
required
:
true
,
message
:
'不能为空'
}]}
>
<
Input
placeholder
=
"请输入中央经线"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"rev"
label
=
"rev"
rules
=
{[{
required
:
true
,
message
:
'不能为空'
}]}
>
<
Input
placeholder
=
"请输入rev"
/>
<
/Form.Item
>
{(
transType
===
'1'
||
transType
===
'2'
)
&&
(
<>
<
Form
.
Item
name
=
"angle"
label
=
"angle"
>
<
Input
placeholder
=
"请输入旋转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"m"
label
=
"m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
/
>
)}
{(
transType
===
'1'
||
transType
===
'3'
||
transType
===
'5'
||
transType
===
'6'
)
&&
(
<>
<
Form
.
Item
name
=
"x_off"
label
=
"x_off"
>
<
Input
placeholder
=
"请输入x坐标平移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y_off"
label
=
"y_off"
>
<
Input
placeholder
=
"请输入y坐标平移量"
/>
<
/Form.Item
>
<
/
>
)}
{
transType
===
'2'
&&
(
<>
<
Form
.
Item
name
=
"x0_gps"
label
=
"x0_gps"
>
<
Input
placeholder
=
"请输入gps-x坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y0_gps"
label
=
"y0_gps"
>
<
Input
placeholder
=
"请输入gps-y坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"x0_local"
label
=
"x0_local"
>
<
Input
placeholder
=
"请输入local-x坐标"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"y0_local"
label
=
"y0_local"
>
<
Input
placeholder
=
"请输入local-y坐标"
/>
<
/Form.Item
>
<
/
>
)}
{(
transType
===
'3'
||
transType
===
'4'
||
transType
===
'6'
)
&&
(
<>
<
Form
.
Item
name
=
"seven_m"
label
=
"seven_m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_x_off"
label
=
"seven_x_off"
>
<
Input
placeholder
=
"请输入x方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_y_off"
label
=
"seven_y_off"
>
<
Input
placeholder
=
"请输入y方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_z_off"
label
=
"seven_z_off"
>
<
Input
placeholder
=
"请输入z方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_x_angle"
label
=
"seven_x_angle"
>
<
Input
placeholder
=
"请输入x方向偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_y_angle"
label
=
"seven_y_angle"
>
<
Input
placeholder
=
"请输入y方向偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"seven_z_angle"
label
=
"seven_z_angle"
>
<
Input
placeholder
=
"请输入z方向偏转角度"
/>
<
/Form.Item
>
<
/
>
)}
{
transType
===
'4'
&&
(
<>
<
Form
.
Item
name
=
"four_x_off"
label
=
"four_x_off"
>
<
Input
placeholder
=
"请输入x方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_y_off"
label
=
"four_y_off"
>
<
Input
placeholder
=
"请输入y方向偏移量"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_angle"
label
=
"four_angle"
>
<
Input
placeholder
=
"请输入偏转角度"
/>
<
/Form.Item
>
<
Form
.
Item
name
=
"four_m"
label
=
"four_m"
>
<
Input
placeholder
=
"请输入尺度因子"
/>
<
/Form.Item
>
<
/
>
)}
<
Form
.
Item
wrapperCol
=
{{
sm
:
{
span
:
16
,
offset
:
16
,
},
}}
>
<
Button
type
=
"primary"
htmlType
=
"submit"
>
提交
<
/Button
>
<
/Form.Item
>
<
/Form
>
<
/TabPane
>
<
/TabPane
>
<
TabPane
tab
=
"菜单管理"
key
=
"2"
>
<
TabPane
tab
=
"菜单管理"
key
=
"2"
>
{
/* <AppMenu /> */
}
123
123
<
/TabPane
>
<
/TabPane
>
<
/Tabs
>
<
/Tabs
>
...
...
src/services/appConfig/api.js
0 → 100644
View file @
e1f52db7
import
{
get
,
post
}
from
'@/services/index'
;
// 七参数初始化
export
const
getSevenParams
=
()
=>
get
(
`/Cityinterface/rest/services/OMS.svc/M_GetSevenParams`
,
{
_version
:
9999
,
_dc
:
new
Date
().
getTime
(),
});
// 根据转换类型获取七参数
export
const
getSevenParamsByTransType
=
value
=>
get
(
`/Cityinterface/rest/services/OMS.svc/M_GetSevenParamsByTransType`
,
{
_version
:
9999
,
_dc
:
new
Date
().
getTime
(),
transType
:
value
,
});
// 提交七参数
export
const
postSevenParams
=
sevenFormData
=>
post
(
`/Cityinterface/rest/services/OMS.svc/M_SetSevenParams?_version=9999`
,
sevenFormData
,
);
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