Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
founder_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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
founder_vue
Commits
7e0beca0
Commit
7e0beca0
authored
Sep 14, 2021
by
liupeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改了一些页面上的字段
parent
953d59d6
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
765 additions
and
1 deletions
+765
-1
src/api/xxtk/ryhd.js
+14
-0
src/router/modules/xxtk.js
+19
-1
src/utils/params.js
+108
-0
src/views/xxtk/ryhd/addRyhd.vue
+139
-0
src/views/xxtk/ryhd/detailRyhd.vue
+260
-0
src/views/xxtk/ryhd/queryRyhd.vue
+222
-0
src/views/zdxx/zdcyryxx/addZdcyryxx.vue
+3
-0
No files found.
src/api/xxtk/ryhd.js
0 → 100644
View file @
7e0beca0
import
{
post
,
postform
,
postdown
}
from
"@/utils/http.js"
;
import
base
from
"@/api/base"
;
//新增人员话单道信息
export
const
insertRyhd
=
params
=>
postform
(
`
${
base
.
alyIP
}
gzryHd/insertgzryHd`
,
params
);
//关注人员话单信息修改
export
const
updateRyhd
=
params
=>
postform
(
`
${
base
.
alyIP
}
/gzryHd/updategzryHd`
,
params
);
//人员话单信息删除
export
const
deleteRyhd
=
params
=>
postform
(
`
${
base
.
alyIP
}
/gzryHd/deletegzryHdById`
,
params
);
//查询人员话单详情信息
export
const
selectRyhdById
=
params
=>
postform
(
`
${
base
.
alyIP
}
/gzryHd/selectHdById`
,
params
);
src/router/modules/xxtk.js
View file @
7e0beca0
...
...
@@ -272,11 +272,29 @@ const menuLayouts = [
path
:
"/queryRyhd"
,
name
:
"queryRyhd"
,
meta
:
{
title
:
'人员话单信息
管理
'
title
:
'人员话单信息
列表
'
},
component
:
()
=>
import
(
"@/views/xxtk/ryhd/queryRyhd.vue"
)
},
{
path
:
"/addRyhd"
,
name
:
"addRyhd"
,
meta
:
{
title
:
'人员话单信息管理'
,
isAdd
:
true
},
component
:
()
=>
import
(
"@/views/xxtk/ryhd/addRyhd.vue"
)
},
{
path
:
"/detailRyhd"
,
name
:
"detailRyhd"
,
meta
:
{
title
:
'人员轨道信息详情'
,
isAdd
:
true
},
component
:
()
=>
import
(
"@/views/xxtk/ryhd/detailRyhd.vue"
)
},
{
path
:
"/queryRysc"
,
name
:
"queryRysc"
,
meta
:
{
...
...
src/utils/params.js
View file @
7e0beca0
...
...
@@ -2517,4 +2517,111 @@ export const hdgj = [
placeholder
:
"请输入"
,
col
:
"2"
,
},
]
//服务标识号
export
const
fwbsh
=
[
]
//人员话单信息
export
const
ryhd
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
//人员照片
export
const
ryzp
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
//人员收藏
export
const
rysc
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
//人员人工研判
export
const
ryrgtp
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
//人员通话记录
export
const
rythjl
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
//人员关联服务标识号
export
const
ryglfw
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
//人员通讯录
export
const
rytxl
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
//工作中可疑线索
export
const
gzzkyxws
=
[
// {
// name: "关联信息_信息主键编号:",
// id: "glxxXxzjbh",
// type: "text",
// value: "",
// placeholder: "请输入",
// col: "2",
// },
]
\ No newline at end of file
src/views/xxtk/ryhd/addRyhd.vue
0 → 100644
View file @
7e0beca0
<
template
>
<div>
<form-compontent
:formField=
"propFormField"
:formLabelAligns=
"formLabelAlign"
@
submit=
"submit"
>
</form-compontent>
</div>
</
template
>
<
script
>
import
formCompontent
from
"@c/form.vue"
;
import
{
insertgzryJsjdc
,
updategzryJsjdc
,
selectJsjdcById
,
}
from
"@/api/xxtk/ryhd.js"
;
import
{
ryhd
}
from
"@/utils/params.js"
;
export
default
{
name
:
"addGzry"
,
components
:
{
formCompontent
,
},
data
()
{
return
{
propFormField
:
[
//基本信息
{
title
:
"新增机动车信息"
,
id
:
1
,
objStr
:
""
,
index
:
0
,
data
:
ryhd
,
},
],
formLabelAlign
:
{},
breadcrumbList
:
[
{
name
:
"刑嫌列控管理"
,
to
:
"/queryGzry"
,
isActive
:
false
,
},
{
name
:
"机动车信息列表"
,
to
:
"/queryRyhd"
,
isActive
:
false
,
},
{
name
:
this
.
$route
.
query
.
xxzjbh
?
"修改人员话单信息"
:
"新增人员话单信息"
,
to
:
"/addRyhd"
,
isActive
:
true
,
},
],
};
},
methods
:
{
submit
(
params
)
{
let
loading
=
this
.
$loading
({
lock
:
true
,
text
:
"正在保存..."
,
spinner
:
"el-icon-loading"
,
background
:
"rgba(255, 255, 255, 0.7)"
,
});
if
(
!
this
.
xxzjbh
)
{
this
.
addSubmit
(
params
,
loading
);
}
else
{
this
.
editSubmit
(
params
,
loading
);
}
},
addSubmit
(
params
,
loading
)
{
insertgzryJsjdc
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
&&
res
.
code
==
200
)
{
this
.
$alert
(
"保存成功!"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
type
:
"success"
,
callback
:
()
=>
{
loading
.
close
();
this
.
$router
.
push
(
"queryJdc"
);
},
});
}
else
{
this
.
$message
.
error
(
"添加失败,请检查数据格式是否正确"
);
}
});
},
editSubmit
(
params
,
loading
)
{
params
.
append
(
"xxzjbh"
,
this
.
xxzjbh
);
updategzryJsjdc
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
&&
res
.
code
==
200
)
{
this
.
$alert
(
"保存成功!"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
type
:
"success"
,
callback
:
()
=>
{
loading
.
close
();
this
.
$router
.
push
(
"queryJdc"
);
},
});
}
else
{
this
.
$message
.
error
(
"添加失败,请检查数据格式是否正确"
);
}
});
},
getshuju
()
{
var
self
=
this
;
selectJsjdcById
({
xxzjbh
:
this
.
xxzjbh
,
}).
then
((
res
)
=>
{
var
result
=
res
.
data
.
jsjdc
;
self
.
propFormField
.
forEach
((
fieldItem
)
=>
{
if
(
fieldItem
.
data
&&
fieldItem
.
data
.
length
>
0
)
{
fieldItem
.
data
.
forEach
((
i
)
=>
{
this
.
$set
(
this
.
formLabelAlign
,
i
.
id
,
result
[
i
.
id
]);
});
}
this
.
$forceUpdate
();
});
self
.
$set
(
self
.
formLabelAlign
,
"editing"
,
true
);
self
.
$forceUpdate
();
});
setTimeout
(()
=>
{
self
.
loading
=
false
;
},
1000
);
},
},
created
()
{
this
.
$store
.
commit
(
"user/SET_Breadcrumb"
,
this
.
breadcrumbList
);
if
(
this
.
$route
.
query
.
xxzjbh
)
{
this
.
$set
(
this
.
propFormField
[
0
],
"title"
,
"修改机动车信息"
);
this
.
xxzjbh
=
this
.
$route
.
query
.
xxzjbh
;
this
.
getshuju
();
}
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
\ No newline at end of file
src/views/xxtk/ryhd/detailRyhd.vue
0 → 100644
View file @
7e0beca0
<!--
* @Author: your name
* @Date: 2021-08-31 09:52:33
* @LastEditTime: 2021-09-10 17:05:06
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\hnksh\ceshi.vue
-->
<
template
>
<div
class=
"Content"
id=
"hmxsDetail"
>
<right-content
:cxQueryField=
"cxQueryField"
:pageObject=
"pageObject"
:pageFooterProps=
"pageFooterProps"
labelWidth=
"110px"
title=
"机动车信息详情"
>
</right-content>
</div>
</
template
>
<
script
>
import
rightContent
from
"@c/PersonInfor.vue"
;
import
{
selectJsjdcById
}
from
"@/api/xxtk/jdc.js"
;
import
axios
from
"@/utils/http.js"
;
export
default
{
name
:
"queryAj"
,
components
:
{
rightContent
,
},
data
()
{
return
{
cxQueryField
:
[
{
label
:
"信息编号:"
,
prop
:
"xxzjbh"
,
col
:
"3"
,
},
{
label
:
"关联信息_信息主键编号:"
,
prop
:
"glxxXxzjbh"
,
col
:
"3"
,
},
{
label
:
"常用证件_常用证件:"
,
prop
:
"cyzjCyzjdm"
,
col
:
"3"
,
type
:
"codeTree"
,
codeTree
:
"CODE_ZJ"
,
},
{
label
:
"常用证件_补充描述:"
,
prop
:
"cyzjDmbcms"
,
col
:
"6"
,
},
{
label
:
"证件号码:"
,
prop
:
"zjhm"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_物权类别:"
,
prop
:
"ryjsjdcWqlbdm"
,
type
:
"codeTree"
,
codeTree
:
"CODE_WQLB"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_车辆使用_简要情况:"
,
prop
:
"ryjsjdcClsyJyqk"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_机动车使用性质:"
,
prop
:
"ryjsjdcJdcsyxzdm"
,
type
:
"codeTree"
,
codeTree
:
"CODE_CLSYXZ"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_非法营运_判断标识:"
,
prop
:
"ryjsjdcFfyyPdbz"
,
type
:
"codeTree"
,
codeTree
:
"CODE_IF"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_品牌型号:"
,
prop
:
"ryjsjdcPpxh"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_涉案物品:"
,
prop
:
"ryjsjdcSawpdm"
,
type
:
"codeTree"
,
codeTree
:
"CODE_YS"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_机动车号牌种类:"
,
prop
:
"ryjsjdcJdchpzldm"
,
type
:
"codeTree"
,
codeTree
:
"CODE_HPZL"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_机动车号牌号码:"
,
prop
:
"ryjsjdcJdchphm"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_机动车号牌号码真伪_判断标识:"
,
prop
:
"ryjsjdcJdchphmzwPdbz"
,
type
:
"codeTree"
,
codeTree
:
"CODE_IF"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_车辆识别代号:"
,
prop
:
"ryjsjdcClsbdh"
,
col
:
"6"
,
},
{
label
:
"人员驾驶机动车_是否修改车辆识别代号:"
,
prop
:
"ryjsjdcSfxgclsbdhPdbz"
,
type
:
"codeTree"
,
codeTree
:
"CODE_IF"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_机动车发动机(电动机)号:"
,
prop
:
"ryjsjdcJdcfdjddjxh"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_是否修改机动车发动机(电动机)号:"
,
prop
:
"ryjsjdcSfxgjdcfdjddjhPdbz"
,
type
:
"codeTree"
,
codeTree
:
"CODE_IF"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_机动车车身颜色:"
,
prop
:
"ryjsjdcJdccsysdm"
,
type
:
"codeTree"
,
codeTree
:
"CODE_YS"
,
col
:
"3"
,
},
{
label
:
"人员驾驶机动车_物品特征描述:"
,
prop
:
"ryjsjdcWptzms"
,
col
:
"6"
,
},
// {
// label: "物权类别:",
// prop: "rysyfwbzhWqlbdm",
// type: "codeTree",
// codeTree: "CODE_WQLB",
// col: "3",
// },
],
pageFooterProps
:
[
{
label
:
"填表单位:"
,
prop
:
"xxdjdwGajgmc"
,
col
:
"3"
,
},
{
label
:
"填表人:"
,
prop
:
"xxdjryXm"
,
col
:
"3"
,
},
{
label
:
"填表时间:"
,
prop
:
"djsj"
,
col
:
"3"
,
},
],
defaultProps
:
{
parent
:
"parentId"
,
// 父级唯一标识
value
:
"id"
,
// 唯一标识
label
:
"label"
,
// 标签显示
children
:
"children"
,
// 子级
},
pageObject
:
{},
xxzjbh
:
""
,
breadcrumbList
:
[
{
name
:
"刑嫌列控管理"
,
to
:
"/queryGzry"
,
isActive
:
false
,
},
{
name
:
"机动车信息列表"
,
to
:
"/queryJdc"
,
isActive
:
false
,
},
{
name
:
"机动车信息详情"
,
to
:
"/detailJdc"
,
isActive
:
true
,
},
],
};
},
mounted
()
{},
methods
:
{
getInfor
()
{
let
_this
=
this
;
selectJsjdcById
({
xxzjbh
:
_this
.
xxzjbh
,
}).
then
((
res
)
=>
{
var
result
=
res
.
data
.
jsjdc
;
_this
.
filterTreeCode
(
result
);
});
},
filterTreeCode
(
obj
)
{
let
_this
=
this
;
let
arr
=
[...
_this
.
cxQueryField
,
...
_this
.
pageFooterProps
];
arr
.
forEach
((
i
)
=>
{
if
(
i
.
type
&&
i
.
type
==
"codeTree"
)
{
axios
.
get
(
`JsonData/
${
i
.
codeTree
}
.json`
)
.
then
((
codRes
)
=>
{
let
value
=
_this
.
queryTree
(
codRes
.
data
.
rows
,
obj
[
i
.
prop
]);
_this
.
$set
(
_this
.
pageObject
,
i
.
prop
,
value
);
})
.
catch
((
err
)
=>
{
console
.
log
(
err
);
});
}
else
{
_this
.
$set
(
_this
.
pageObject
,
i
.
prop
,
obj
[
i
.
prop
]);
}
});
console
.
log
(
_this
.
pageObject
);
},
queryTree
(
tree
,
id
)
{
let
stark
=
[];
stark
=
stark
.
concat
(
tree
);
while
(
stark
.
length
)
{
const
temp
=
stark
.
shift
();
if
(
temp
[
this
.
defaultProps
.
children
])
{
stark
=
stark
.
concat
(
temp
[
this
.
defaultProps
.
children
]);
}
if
(
temp
[
this
.
defaultProps
.
value
]
===
id
)
{
return
temp
[
this
.
defaultProps
.
label
];
}
}
return
""
;
},
},
created
()
{
this
.
$store
.
commit
(
"user/SET_Breadcrumb"
,
this
.
breadcrumbList
);
this
.
xxzjbh
=
this
.
$route
.
query
.
xxzjbh
;
this
.
getInfor
();
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/xxtk/ryhd/queryRyhd.vue
View file @
7e0beca0
<
template
>
<div
class=
"Content"
>
<right-content
:pageBs=
"pageBs"
:header=
"header"
:cxFormData=
"cxFormData"
:cxQueryField=
"cxQueryField"
:cxDefaultFormThead=
"cxDefaultFormThead"
:cxUrl=
"cxUrl"
@
add=
"add"
@
dele=
"dele"
@
toInfor=
"toInfor"
@
edit=
"edit"
ref=
"rightContent"
></right-content>
</div>
</
template
>
<
script
>
import
rightContent
from
"@c/ptCxForm_components.vue"
;
import
{
deletegzryJsjdcById
}
from
"@/api/xxtk/jdc.js"
;
export
default
{
name
:
"queryJdc"
,
components
:
{
rightContent
,
},
data
()
{
return
{
header
:
"人员话单信息"
,
pageBs
:
"ryhd"
,
cxFormData
:
{
limit
:
10
,
page
:
1
,
glxxXxzjbh
:
""
,
// ryjsjdcJdchpzldm: "",
// ryjsjdcJdchphm: "",
// xxdjdwGajgjgdm: "",
// djkssj: "",
// djjssj: "",
},
cxQueryField
:
[
{
name
:
"证件号码"
,
id
:
"zjhm"
,
type
:
"text"
,
value
:
""
,
placeholder
:
""
,
col
:
"3"
,
},
{
name
:
"机动车号牌类型"
,
id
:
"ryjsjdcJdchpzldm"
,
type
:
"codeTreeDialog"
,
props
:
[],
//字典弹框需要的字段
value
:
""
,
col
:
"3"
,
codeOptions
:
[],
codeTree
:
"CODE_XB"
,
},
{
name
:
"机动车号"
,
id
:
"ryjsjdcJdchphm"
,
type
:
"codeTreeDialog"
,
props
:
[],
//字典弹框需要的字段
value
:
""
,
col
:
"3"
,
codeOptions
:
[],
codeTree
:
"CODE_XB"
,
},
{
name
:
"登记单位"
,
id
:
"xxdjdwGajgjgdm"
,
type
:
"codeTreeDialog"
,
props
:
[],
//字典弹框需要的字段
value
:
""
,
col
:
"3"
,
codeOptions
:
[],
codeTree
:
"CODE_XB"
,
},
{
name
:
"登记时间"
,
id
:
"djkssj"
,
id2
:
"djjssj"
,
type
:
"zdyDate"
,
value
:
""
,
col
:
"3"
,
},
],
cxDefaultFormThead
:
[
{
label
:
"信息主键编号"
,
prop
:
"xxzjbh"
,
},
{
label
:
"常用证件"
,
prop
:
"cyzjCyzjdm"
,
},
{
label
:
"证件号码"
,
prop
:
"zjhm"
,
width
:
"200"
,
},
{
label
:
"涉案物品"
,
prop
:
"ryjsjdcSawpdm"
,
},
{
label
:
"机动车号牌种类"
,
prop
:
"ryjsjdcJdchpzldm"
,
},
{
label
:
"机动车号牌"
,
prop
:
"ryjsjdcJdchphm"
,
},
{
label
:
"登记时间"
,
prop
:
"djsj"
,
},
],
cxUrl
:
"/gzryHd/selectgzryHd"
,
};
},
created
()
{},
methods
:
{
add
()
{
this
.
$router
.
push
(
"addRyhd"
);
},
dele
(
obj
)
{
this
.
$confirm
(
"此操作将永久删除该文件, 是否继续?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
deletegzryJsjdcById
({
xxzjbh
:
obj
.
row
.
xxzjbh
,
}).
then
((
res
)
=>
{
if
(
res
.
success
&&
res
.
code
==
200
)
{
this
.
$message
({
type
:
"success"
,
message
:
"删除成功"
,
});
this
.
$refs
.
rightContent
.
doQuery
(
"yes"
);
}
});
})
.
catch
(()
=>
{
this
.
$message
({
type
:
"info"
,
message
:
"已取消删除"
,
});
});
},
toInfor
(
obj
)
{
this
.
$router
.
push
({
path
:
"/detailRyhd"
,
query
:
{
xxzjbh
:
obj
.
xxzjbh
,
},
});
},
edit
(
obj
)
{
this
.
$router
.
push
({
path
:
"/addRyhd"
,
query
:
{
xxzjbh
:
obj
.
row
.
xxzjbh
,
},
});
},
},
};
</
script
>
<
style
>
.el-dialog__body
{
padding
:
10px
15px
!important
;
}
.rightContent
.el-input__inner
,
#formCommonPage
.el-input__inner
{
height
:
32px
;
line-height
:
32px
;
font-family
:
inherit
;
}
.el-table__header-wrapper
th
,
.el-table__header-wrapper
tr
{
background
:
#f4f6f7
;
}
.rightContent
.el-input__icon
,
#formCommonPage
.el-input__icon
,
.el-input__suffix-inner
{
line-height
:
36px
;
}
.rightContent
.el-range-separator
{
position
:
relative
;
top
:
-4px
;
}
.rightContent
.el-textarea__inner
,
#formCommonPage
.el-textarea__inner
{
width
:
100%
;
font-family
:
inherit
;
}
.rightContent
.el-range-input
,
#formCommonPage
.el-range-input
{
vertical-align
:
top
;
}
.rightContent
.el-date-editor
.el-range__close-icon
{
margin-top
:
-4px
;
}
.rightContent
.el-form-item__error
{
left
:
calc
(
66%
-
27px
);
top
:
12px
;
}
.success-row
{
background-color
:
#fbf9f4
!important
;
}
.Content
.el-input
,
.Content
.el-date-editor--daterange.el-input__inner
{
width
:
100%
!important
;
}
</
style
>
<
style
scoped
lang=
"scss"
>
@import
"@/assets/styles/rightContent.scss"
;
</
style
>
src/views/zdxx/zdcyryxx/addZdcyryxx.vue
View file @
7e0beca0
...
...
@@ -33,6 +33,7 @@ export default {
id
:
"xm"
,
type
:
"text"
,
value
:
""
,
prop
:
"checkEmpty"
,
placeholder
:
"请输入"
,
col
:
"2"
,
},
...
...
@@ -41,6 +42,7 @@ export default {
id
:
"zjhm"
,
type
:
"text"
,
value
:
""
,
prop
:
"checkEmpty"
,
placeholder
:
"请输入"
,
col
:
"2"
,
},
...
...
@@ -49,6 +51,7 @@ export default {
id
:
"lxdh"
,
type
:
"text"
,
value
:
""
,
prop
:
"checkEmpty"
,
placeholder
:
"请输入"
,
col
:
"2"
,
},
...
...
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