Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
9
91isoft_vue_manage
Project
Project
Details
Activity
Releases
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
杨硕
91isoft_vue_manage
Commits
25913730
Commit
25913730
authored
Jul 18, 2023
by
杨硕
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改按钮
parent
f329a8f0
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
587 additions
and
985 deletions
+587
-985
index.vue
src/views/system/dept/index.vue
+54
-23
data.vue
src/views/system/dict/data.vue
+353
-863
index.vue
src/views/system/dict/index.vue
+85
-54
index.vue
src/views/system/menu/index.vue
+50
-24
index.vue
src/views/system/role/index.vue
+45
-21
No files found.
src/views/system/dept/index.vue
View file @
25913730
...
...
@@ -25,15 +25,21 @@
class=
"filter-item"
type=
"primary"
size=
"small"
style=
"padding: 8px 7px;"
icon=
"el-icon-search"
@
click=
"getList"
>
查询
</el-button>
<!--
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
-->
</el-form-item>
<el-form-item
style=
"float: right"
>
<el-button
style=
"padding: 8px 7px;"
class=
"filter-item"
type=
"primary"
size=
"small"
icon=
"el-icon-plus"
@
click=
"handleAdd"
>
新增
</el-button>
<!--
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
-->
</el-form-item>
</el-form>
...
...
@@ -98,13 +104,14 @@
<!-- >删除</el-button>-->
<!-- </template>-->
<
template
slot-scope=
"scope"
>
<el-button
v-hasPermi=
"['sys:dept:update']"
size=
"mini"
type=
"text"
style=
"color: #49cec9"
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dept:update']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- style="color: #49cec9"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- >修改
</el-button>
-->
<coolbutton
style=
"color: #49cec9"
:type=
"typeParent"
:name=
"updataName"
:size=
"size"
:haspermi=
"updateHaspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<!--
<el-switch-->
<!-- v-model="scope.row.flag"-->
<!-- v-hasPermi="['system:dept:toggle']"-->
...
...
@@ -112,19 +119,21 @@
<!-- inactive-value="1"-->
<!-- @change="handleStatusChange(scope.row)"-->
<!-- />-->
<el-button
v-hasPermi=
"['sys:dept:add']"
size=
"mini"
type=
"text"
@
click=
"handleAdd(scope.row)"
>
新增
</el-button>
<el-button
v-if=
"scope.row.parentId !== 0"
v-hasPermi=
"['sys:dept:delete']"
size=
"mini"
type=
"text"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dept:add']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleAdd(scope.row)"-->
<!-- >新增
</el-button>
-->
<coolbutton
:type=
"typeParent"
:name=
"addName"
:size=
"size"
:haspermi=
"addHaspermi"
@
btn-click=
"handleAdd(scope.row)"
/>
<!--
<el-button-->
<!-- v-if="scope.row.parentId !== 0"-->
<!-- v-hasPermi="['sys:dept:delete']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- >删除
</el-button>
-->
<coolbutton
:type=
"typeParent"
:name=
"nameParent"
:size=
"size"
:icon=
"delicon"
:haspermi=
"delHaspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -196,12 +205,34 @@
import
{
addDept
,
delDept
,
getDept
,
listDept
,
listDeptExcludeChild
,
updateDept
}
from
'@/api/system/dept'
import
Treeselect
from
'@riophae/vue-treeselect'
import
'@riophae/vue-treeselect/dist/vue-treeselect.css'
import
Coolbutton
from
'@/components/coolbutton'
export
default
{
name
:
'Dept'
,
components
:
{
Treeselect
},
components
:
{
Treeselect
,
Coolbutton
},
data
()
{
return
{
typeParent
:
'text'
,
typePrimary
:
'primary'
,
typeSuccess
:
'success'
,
nameParent
:
'删除'
,
resetName
:
'重置'
,
addName
:
'新增'
,
queryName
:
'查询'
,
exportName
:
'导出'
,
updataName
:
'修改'
,
size
:
'mini'
,
smallSize
:
'small'
,
delicon
:
'el-icon-delete'
,
addIcon
:
'el-icon-plus'
,
exportIcon
:
'el-icon-download'
,
queryIcon
:
'el-icon-search'
,
resetIcon
:
''
,
delHaspermi
:
[
'sys:dept:delete'
],
resetHaspermi
:
[
'sys:user:resetPwd'
],
updateHaspermi
:
[
'sys:dept:update'
],
addHaspermi
:
[
'sys:dept:add'
],
exportHaspermi
:
[
'sys:role:export'
],
queryHaspermi
:
[
'sys:menu:query'
],
// 搜索条件
showSearch
:
true
,
// 遮罩
...
...
src/views/system/dict/data.vue
View file @
25913730
This diff is collapsed.
Click to expand it.
src/views/system/dict/index.vue
View file @
25913730
...
...
@@ -57,44 +57,48 @@
</el-form-item>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
v-hasPermi=
"['sys:dict:add']"
type=
"primary"
icon=
"el-icon-plus"
size=
"small"
@
click=
"handleAdd"
>
新增
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:add']"-->
<!-- type="primary"-->
<!-- icon="el-icon-plus"-->
<!-- size="small"-->
<!-- @click="handleAdd"-->
<!-- >新增
</el-button>
-->
<coolbutton
:type=
"typePrimary"
:name=
"addName"
:size=
"smallSize"
:icon=
"addIcon"
:haspermi=
"addHaspermi"
@
btn-click=
"handleAdd"
/>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
v-hasPermi=
"['sys:dict:update']"
type=
"success"
icon=
"el-icon-edit"
size=
"mini"
:disabled=
"single"
@
click=
"handleUpdate"
>
修改
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:update']"-->
<!-- type="success"-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- >修改-->
<!--
</el-button>
-->
<coolbutton
:type=
"typeSuccess"
:name=
"updataName"
:icon=
"updateIcon"
:size=
"size"
:haspermi=
"updateHaspermi"
@
btn-click=
"handleUpdate"
/>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
v-hasPermi=
"['sys:dict:delete']"
type=
"danger"
icon=
"el-icon-delete"
size=
"mini"
:disabled=
"multiple"
@
click=
"handleDelete"
>
删除
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:delete']"-->
<!-- type="danger"-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- >删除-->
<!--
</el-button>
-->
<coolbutton
:type=
"typeDanger"
:name=
"nameParent"
:icon=
"delicon"
:size=
"size"
:haspermi=
"delHaspermi"
@
btn-click=
"handleDelete"
/>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
v-hasPermi=
"['sys:dict:export']"
type=
"success"
icon=
"el-icon-download"
size=
"small"
@
click=
"handleExport"
>
导出
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:export']"-->
<!-- type="success"-->
<!-- icon="el-icon-download"-->
<!-- size="small"-->
<!-- @click="handleExport"-->
<!-- >导出
</el-button>
-->
<coolbutton
:type=
"typeSuccess"
:name=
"exportName"
:icon=
"exportIcon"
:size=
"size"
:haspermi=
"exportHaspermi"
@
btn-click=
"handleExport"
/>
</el-col>
<right-toolbar
:show-search
.
sync=
"showSearch"
@
queryTable=
"getList"
/>
</el-row>
...
...
@@ -115,11 +119,10 @@
<!-- v-hasPermi="['system:dictConfig:list']"-->
<router-link
v-if=
"scope.row.businessId"
:style=
"
{ pointerEvents: $haveAuth('sys:dictConfig:list') ? '' : 'none' }"
:to=
"'/dict/type/data/' + scope.row.businessId"
class=
"link-type"
>
<span
:style=
"
{color: $haveAuth('sys:dictConfig:list') ? '#20a0ff' : '#333333' }
">
{{
scope
.
row
.
dictType
}}
</span>
<span
style=
"color: #20a0ff
"
>
{{
scope
.
row
.
dictType
}}
</span>
</router-link>
<div
v-else
>
-
</div>
</
template
>
...
...
@@ -147,19 +150,21 @@
</el-table-column>
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
v-hasPermi=
"['sys:dict:edit']"
size=
"mini"
type=
"text"
style=
"color: #49cec9"
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<el-button
v-hasPermi=
"['sys:dict:remove']"
size=
"mini"
type=
"text"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:edit']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- style="color: #49cec9"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- >修改
</el-button>
-->
<coolbutton
:type=
"typeParent"
style=
"color: #49cec9"
:name=
"updataName"
:size=
"size"
:haspermi=
"editHaspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<!--
<el-button-->
<!-- v-hasPermi="['sys:dict:remove']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- >删除
</el-button>
-->
<coolbutton
:type=
"typeParent"
:icon=
"delicon"
:name=
"nameParent"
:size=
"size"
:haspermi=
"removeHaspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -242,10 +247,10 @@ import { listType,
}
from
'@/api/system/dict/type'
import
dictCons
from
'@/utils/dictCons'
import
Template
from
'@/views/instance/Template'
import
Coolbutton
from
'@/components/coolbutton'
export
default
{
name
:
'Dict'
,
components
:
{
Template
},
components
:
{
Template
,
Coolbutton
},
data
()
{
const
verifyTypeProp
=
(
rule
,
value
,
callback
)
=>
{
if
(
value
===
''
||
value
===
undefined
||
value
===
null
)
{
...
...
@@ -302,6 +307,32 @@ export default {
return
{
test
:
''
,
options
:
[],
typeParent
:
'text'
,
typePrimary
:
'primary'
,
typeSuccess
:
'success'
,
typeDanger
:
'danger'
,
nameParent
:
'删除'
,
resetName
:
'重置'
,
addName
:
'新增'
,
queryName
:
'查询'
,
exportName
:
'导出'
,
updataName
:
'修改'
,
size
:
'mini'
,
smallSize
:
'small'
,
delicon
:
'el-icon-delete'
,
addIcon
:
'el-icon-plus'
,
exportIcon
:
'el-icon-download'
,
queryIcon
:
'el-icon-search'
,
updateIcon
:
'el-icon-edit'
,
resetIcon
:
''
,
delHaspermi
:
[
'sys:dict:delete'
],
removeHaspermi
:
[
'sys:dict:remove'
],
resetHaspermi
:
[
'sys:user:resetPwd'
],
updateHaspermi
:
[
'sys:dict:update'
],
editHaspermi
:
[
'sys:dict:edit'
],
addHaspermi
:
[
'sys:dict:add'
],
exportHaspermi
:
[
'sys:dict:export'
],
queryHaspermi
:
[
'sys:menu:query'
],
optionsDict
:
[],
// 遮罩层
loading
:
true
,
...
...
@@ -373,9 +404,9 @@ export default {
this
.
getDicts
(
dictCons
[
'NORMAL_DISABLE'
]).
then
(
response
=>
{
this
.
statusOptions
=
response
.
data
})
optionselect
().
then
(
response
=>
{
this
.
options
=
response
.
data
})
//
optionselect().then(response => {
//
this.options = response.data
//
})
},
methods
:
{
/** 查询字典类型列表 */
...
...
@@ -389,12 +420,12 @@ export default {
)
},
// 获取当前父字典数据
/*
getOptions(val) {
getOptions
(
val
)
{
selectDictType
(
this
.
options
.
find
(
item
=>
{
return
item
.
businessId
===
val
}).
dictType
).
then
(
response
=>
{
this
.
optionsDict
=
response
.
data
})
this
.
form
.
dataId
=
''
},
*/
},
clearSelected
(
flag
)
{
// flag = true 为下拉框选项展开时的标识
if
(
flag
)
{
...
...
src/views/system/menu/index.vue
View file @
25913730
...
...
@@ -12,11 +12,13 @@
/>
</el-form-item>
<el-form-item>
<el-button
v-hasPermi=
"['sys:menu:query']"
type=
"primary"
size=
"small"
@
click=
"handleQuery"
>
查询
</el-button>
<!--
<el-button
v-hasPermi=
"['sys:menu:query']"
type=
"primary"
size=
"small"
@
click=
"handleQuery"
>
查询
</el-button>
-->
<coolbutton
style=
"padding: 8px 7px;"
:icon=
"queryIcon"
:type=
"typePrimary"
:name=
"queryName"
:size=
"smallSize"
:haspermi=
"queryHaspermi"
@
btn-click=
"handleQuery"
/>
</el-form-item>
<div
style=
"float: right"
>
<el-form-item>
<el-button
v-hasPermi=
"['sys:menu:add']"
type=
"primary"
size=
"small"
@
click=
"handleAdd"
>
新增
</el-button>
<!--
<el-button
v-hasPermi=
"['sys:menu:add']"
type=
"primary"
size=
"small"
@
click=
"handleAdd"
>
新增
</el-button>
-->
<coolbutton
style=
"padding: 8px 7px;"
:type=
"typePrimary"
:name=
"addName"
:size=
"smallSize"
:icon=
"addIcon"
:haspermi=
"addHaspermi"
@
btn-click=
"handleAdd"
/>
<!--
<el-button
size=
"small"
@
click=
"resetQuery"
>
重置
</el-button>
-->
</el-form-item>
</div>
...
...
@@ -83,16 +85,16 @@
>删除</el-button>
</template>-->
<
template
slot-scope=
"scope"
>
<el-button
v-hasPermi=
"['sys:menu:update']"
size=
"mini"
type=
"text"
style=
"color: #49cec9"
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:menu:update']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- style="color: #49cec9"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- >修改
</el-button>
-->
<coolbutton
style=
"color: #49cec9"
:type=
"typeParent"
:name=
"updataName"
:size=
"size"
:haspermi=
"updateHaspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<el-switch
v-model=
"scope.row.flag"
v-hasPermi=
"['sys:menu:toggle']"
active-value=
"1"
inactive-value=
"0"
@
change=
"handleStatusChange(scope.row)"
...
...
@@ -103,20 +105,22 @@
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item>
<el-button
v-hasPermi=
"['sys:menu:delete']"
size=
"mini"
type=
"text"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:menu:delete']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- >删除
</el-button>
-->
<coolbutton
:type=
"typeParent"
:name=
"nameParent"
:size=
"size"
:haspermi=
"delHaspermi"
@
btn-click=
"handleDelete(scope.row)"
/>
</el-dropdown-item>
<el-dropdown-item>
<el-button
v-hasPermi=
"['sys:menu:add']"
size=
"mini"
type=
"text"
@
click=
"handleAdd(scope.row)"
>
新增
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:menu:add']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- @click="handleAdd(scope.row)"-->
<!-- >新增
</el-button>
-->
<coolbutton
:type=
"typeParent"
:name=
"addName"
:size=
"size"
:haspermi=
"addHaspermi"
@
btn-click=
"handleAdd(scope.row)"
/>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
...
...
@@ -259,10 +263,10 @@ import Treeselect from '@riophae/vue-treeselect'
import
'@riophae/vue-treeselect/dist/vue-treeselect.css'
import
IconSelect
from
'@/components/IconSelect'
import
dictCons
from
'@/utils/dictCons'
import
Coolbutton
from
'@/components/coolbutton'
export
default
{
name
:
'Menu'
,
components
:
{
Treeselect
,
IconSelect
},
components
:
{
Treeselect
,
IconSelect
,
Coolbutton
},
data
()
{
var
trueGroupName
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
.
trim
())
{
...
...
@@ -271,6 +275,28 @@ export default {
callback
()
}
return
{
typeParent
:
'text'
,
typePrimary
:
'primary'
,
typeSuccess
:
'success'
,
nameParent
:
'删除'
,
resetName
:
'重置'
,
addName
:
'新增'
,
queryName
:
'查询'
,
exportName
:
'导出'
,
updataName
:
'修改'
,
size
:
'mini'
,
smallSize
:
'small'
,
delicon
:
'el-icon-delete'
,
addIcon
:
'el-icon-plus'
,
exportIcon
:
'el-icon-download'
,
queryIcon
:
'el-icon-search'
,
resetIcon
:
''
,
delHaspermi
:
[
'sys:menu:delete'
],
resetHaspermi
:
[
'sys:user:resetPwd'
],
updateHaspermi
:
[
'sys:menu:update'
],
addHaspermi
:
[
'sys:menu:add'
],
exportHaspermi
:
[
'sys:role:export'
],
queryHaspermi
:
[
'sys:menu:query'
],
isWorkFlow
:
'0'
,
workFlow
:
''
,
workFlows
:
[],
...
...
src/views/system/role/index.vue
View file @
25913730
...
...
@@ -43,20 +43,22 @@
</el-form-item>
<div
style=
"float: right"
>
<el-form-item>
<el-button
v-hasPermi=
"['sys:role:add']"
type=
"primary"
size=
"small"
@
click=
"handleAdd"
>
新增
</el-button>
<el-button
v-hasPermi=
"['sys:role:export']"
style=
"padding: 8px 7px;"
type=
"success"
size=
"small"
icon=
"el-icon-download"
@
click=
"handleExport"
>
导出
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:role:add']"-->
<!-- type="primary"-->
<!-- size="small"-->
<!-- @click="handleAdd"-->
<!-- >新增
</el-button>
-->
<coolbutton
style=
"padding: 8px 7px;"
:type=
"typePrimary"
:name=
"addName"
:size=
"smallSize"
:icon=
"addIcon"
:haspermi=
"addHaspermi"
@
btn-click=
"handleAdd"
/>
<!--
<el-button-->
<!-- v-hasPermi="['sys:role:export']"-->
<!-- style="padding: 8px 7px;"-->
<!-- type="success"-->
<!-- size="small"-->
<!-- icon="el-icon-download"-->
<!-- @click="handleExport"-->
<!-- >导出
</el-button>
-->
<coolbutton
style=
"padding: 8px 7px;"
:type=
"typeSuccess"
:name=
"exportName"
:size=
"smallSize"
:icon=
"exportIcon"
:haspermi=
"exportHaspermi"
@
btn-click=
"handleExport"
/>
</el-form-item>
</div>
</el-form>
...
...
@@ -102,13 +104,14 @@
</el-table-column>
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"240px"
>
<
template
slot-scope=
"scope"
>
<el-button
v-hasPermi=
"['sys:role:update']"
size=
"mini"
type=
"text"
style=
"color: #49cec9"
@
click=
"handleUpdate(scope.row)"
>
修改
</el-button>
<!--
<el-button-->
<!-- v-hasPermi="['sys:role:update']"-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- style="color: #49cec9"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- >修改
</el-button>
-->
<coolbutton
style=
"color: #49cec9"
:type=
"typeParent"
:name=
"updataName"
:size=
"size"
:haspermi=
"updateHaspermi"
@
btn-click=
"handleUpdate(scope.row)"
/>
<!--
<el-button-->
<!-- v-hasPermi="['sys:role:update']"-->
<!-- size="mini"-->
...
...
@@ -264,10 +267,31 @@ import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope,
import
{
roleMenuTreeselectMC
,
treeselect
as
menuTreeselect
,
roleMenuTreeselect
}
from
'@/api/system/menu'
import
{
treeselect
as
deptTreeselect
,
roleDeptTreeselect
}
from
'@/api/system/dept'
// import { getRolesByInsId } from '../../../api/businessManage/template'
import
Coolbutton
from
'@/components/coolbutton'
export
default
{
name
:
'Role'
,
components
:
{
Coolbutton
},
data
()
{
return
{
typeParent
:
'text'
,
typePrimary
:
'primary'
,
typeSuccess
:
'success'
,
nameParent
:
'删除'
,
resetName
:
'重置'
,
addName
:
'新增'
,
exportName
:
'导出'
,
updataName
:
'修改'
,
size
:
'mini'
,
smallSize
:
'small'
,
delicon
:
'el-icon-delete'
,
addIcon
:
'el-icon-plus'
,
exportIcon
:
'el-icon-download'
,
resetIcon
:
''
,
haspermi
:
[
'sys:user:delete'
],
resetHaspermi
:
[
'sys:user:resetPwd'
],
updateHaspermi
:
[
'sys:role:update'
],
addHaspermi
:
[
'sys:role:add'
],
exportHaspermi
:
[
'sys:role:export'
],
// 遮罩层
loading
:
true
,
// 选中数组
...
...
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