Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
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
周远喜
mes-ui
Commits
ed1b43bc
Commit
ed1b43bc
authored
Oct 20, 2020
by
renjintao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of git.mes123.com:zhouyx/mes-ui into product-rjt
parents
901606f3
dacc7af0
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
1322 additions
and
1057 deletions
+1322
-1057
actions.vue
components/page/actions.vue
+40
-16
editDuration.vue
pages/aps/ai/editDuration.vue
+1
-1
options.vue
pages/aps/ai/options.vue
+1
-1
editDuration.vue
pages/aps/aps/editDuration.vue
+1
-1
options.vue
pages/aps/aps/options.vue
+1
-1
index.vue
pages/aps/complete/index.vue
+108
-95
index.vue
pages/aps/dispatch/index.vue
+1
-1
addAccessory.vue
pages/aps/plan/addAccessory.vue
+0
-1
detailAccessory.vue
pages/aps/plan/detailAccessory.vue
+1
-1
dispatch.vue
pages/aps/plan/dispatch.vue
+46
-41
index.vue
pages/aps/stream/index.vue
+160
-149
userInfo.vue
pages/basicData/userManagent/userInfo.vue
+1
-1
split.vue
pages/mesPlan/split.vue
+1
-1
index.vue
pages/mordent/OQCcarry/waitReview/index.vue
+1
-1
index.vue
pages/mordent/Sluggish/powder/index.vue
+1
-1
quotationBox2.vue
pages/processDesign/Process/quotationBox2.vue
+3
-3
quotationBox3.vue
pages/processDesign/Process/quotationBox3.vue
+1
-1
routingchangeorder.vue
pages/processDesign/Process/routingchangeorder.vue
+1
-1
index.vue
pages/processDesign/setProcess/index.vue
+1
-1
add.vue
pages/project/plan/add.vue
+2
-8
edit.vue
pages/project/plan/edit.vue
+165
-104
index.vue
pages/project/plan/index.vue
+13
-12
add.vue
pages/project/project/add.vue
+20
-5
detail.vue
pages/project/project/detail.vue
+20
-4
edit.vue
pages/project/project/edit.vue
+5
-2
index.vue
pages/project/project/index.vue
+32
-18
edit.vue
pages/qc/certificate/endIssued/edit.vue
+73
-20
add.vue
pages/qc/certificate/waitOpened/add.vue
+4
-2
index.vue
pages/resource/resource/index.vue
+604
-547
add.vue
pages/store/add.vue
+1
-2
edit.vue
pages/store/edit.vue
+2
-4
index.vue
pages/technology/details/routingsupporting/index.vue
+9
-9
add.vue
pages/word/classification/add.vue
+1
-1
design.vue
pages/workflow/form/design.vue
+1
-1
No files found.
components/page/actions.vue
View file @
ed1b43bc
<
template
>
<ul
class=
"actions"
>
<li
class=
"item"
v-for=
"(li, i) in items"
@
click=
"detail(li)"
>
<div
class=
"actions"
>
<div
:class=
"li.confirm ? 'confirm' : 'item'"
v-for=
"(li, i) in items"
@
click=
"detail(li)"
>
<span
v-if=
"mode == 'text'"
class=
"text"
v-text=
"li.label"
></span>
<Tooltip
v-if=
"mode == 'icon'"
:content=
"li.label"
><Icon
:type=
"li.icon"
...
...
@@ -9,8 +13,8 @@
<Icon
type=
"li.icon"
/>
<span
class=
"text"
v-text=
"li.label"
></span>
</div>
</
li
>
</
ul
>
</
div
>
</
div
>
</
template
>
<
script
>
...
...
@@ -29,9 +33,14 @@ export default {
return
[
{
label
:
"复制"
,
icon
:
"md-copy"
,
vclick
:
""
},
{
label
:
"新增"
,
icon
:
"md-add"
,
vclick
:
""
},
{
label
:
"删除"
,
icon
:
"md-trash"
,
vclick
:
""
},
{
label
:
"删除"
,
icon
:
"md-trash"
,
vclick
:
""
,
confirm
:
true
},
{
label
:
"移动"
,
icon
:
"md-move"
,
vclick
:
""
},
{
label
:
"派发"
,
icon
:
"ios-alarm"
,
vclick
:
""
},
{
label
:
"派发"
,
icon
:
"ios-alarm"
,
vclick
:
""
,
confirm
:
"确认要进行派发吗?"
,
},
];
},
},
...
...
@@ -77,17 +86,32 @@ export default {
</
script
>
<
style
lang=
"less"
>
@size:20px;//按钮大小
@distince:5px;//按钮间距
@color:black;//主色
@color-hover:#106ffe;//主悬浮色
@color-confirm:red;// 二次确认色
.actions {
ul {
li {
float: left;
list-style: none;
width: 20px;
height: 20px;
text-align: center;
margin-left: 5px;
color: red;
}
display: inline-block;
.item,
.confirm {
display: inline-block;
list-style: none;
width: @size;
height: @size;
text-align: center;
margin-left:@distince;
cursor: pointer;
border: 1px dotted @color;
line-height: @size;
}
.item:hover {
border: 1px solid @color-hover;
color: @color-hover;
}
.confirm:hover {
border: 1px solid @color-confirm;
color: @color-confirm;
}
}
</
style
>
\ No newline at end of file
pages/aps/ai/editDuration.vue
View file @
ed1b43bc
...
...
@@ -21,7 +21,7 @@
</Form>
<Row>
<Col
span=
"24"
style=
"text-align:right;height:60px;line-height:60px"
>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
确定
</Button>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
确定
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</Col>
</Row>
...
...
pages/aps/ai/options.vue
View file @
ed1b43bc
...
...
@@ -138,7 +138,7 @@
</Col>
</Row>
<FormItem
class=
"click-btn"
>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
确定
</Button>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
确定
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
...
...
pages/aps/aps/editDuration.vue
View file @
ed1b43bc
...
...
@@ -21,7 +21,7 @@
</Form>
<Row>
<Col
span=
"24"
style=
"text-align:right;height:60px;line-height:60px"
>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
确定
</Button>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
确定
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</Col>
</Row>
...
...
pages/aps/aps/options.vue
View file @
ed1b43bc
...
...
@@ -138,7 +138,7 @@
</Col>
</Row>
<FormItem
class=
"click-btn"
>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
确定
</Button>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
确定
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
...
...
pages/aps/complete/index.vue
View file @
ed1b43bc
<
template
>
<div
class=
"scheduling"
>
<div
class=
"aps-l"
>
<Row
class=
"row-p"
>
<Col
:span=
"10"
class=
"chan-chi"
>
整机排产-排产池
</Col>
<Col
:span=
"14"
class=
"l-ringht"
>
<!--
<RadioGroup
v-model=
"status"
type=
"button"
@
on-change=
"changeStatus"
size=
"small"
>
<div>
<div
class=
"back-href"
>
<a
@
click=
"viewClose"
>
<Icon
type=
"ios-undo-outline"
size=
"24"
/>
返回计划管理
</a>
</div>
<div
class=
"scheduling"
>
<div
class=
"aps-l"
>
<Row
class=
"row-p"
>
<Col
:span=
"10"
class=
"chan-chi"
>
整机排产-排产池
</Col>
<Col
:span=
"14"
class=
"l-ringht"
>
<!--
<RadioGroup
v-model=
"status"
type=
"button"
@
on-change=
"changeStatus"
size=
"small"
>
<Radio
label=
"0"
>
未排产
</Radio>
-->
<!--
<Radio
label=
"2"
>
已排查
</Radio>
-->
<!--
<Radio
label=
"-1"
>
全部
</Radio>
-->
<!--
</RadioGroup>
-->
</Col>
</Row>
<div
class=
"left-down"
>
<div
class=
"left-body"
v-for=
"(li, index) in list"
:key=
"index"
:class=
"li.checked == true ? 'addclass' : ''"
>
<Row
class=
"title-i"
>
<Col
:span=
"20"
class=
"order-code"
>
<Checkbox
v-model=
"li.checked"
@
on-change=
"checkData(li)"
:disabled=
"li.status == 0 ? false : true"
>
订单号:
{{
li
.
mesCode
}}
</Checkbox
>
</Col>
<Col
:span=
"4"
class=
"order-ringht"
>
<Icon
type=
"md-close"
@
click=
"close(li.id)"
/>
</Col>
</Row>
<div
class=
"fa"
>
产品名称:
{{
li
.
productName
}}
</div>
<div
class=
"time-s"
>
产品数量:
{{
li
.
quantity
}}
</div>
<!--
<div
class=
"time-s"
>
<!--
<Radio
label=
"2"
>
已排查
</Radio>
-->
<!--
<Radio
label=
"-1"
>
全部
</Radio>
-->
<!--
</RadioGroup>
-->
</Col>
</Row>
<div
class=
"left-down"
>
<div
class=
"left-body"
v-for=
"(li, index) in list"
:key=
"index"
:class=
"li.checked == true ? 'addclass' : ''"
>
<Row
class=
"title-i"
>
<Col
:span=
"20"
class=
"order-code"
>
<Checkbox
v-model=
"li.checked"
@
on-change=
"checkData(li)"
:disabled=
"li.status == 0 ? false : true"
>
订单号:
{{
li
.
mesCode
}}
</Checkbox
>
</Col>
<Col
:span=
"4"
class=
"order-ringht"
>
<Icon
type=
"md-close"
@
click=
"close(li.id)"
/>
</Col>
</Row>
<div
class=
"fa"
>
产品名称:
{{
li
.
productName
}}
</div>
<div
class=
"time-s"
>
产品数量:
{{
li
.
quantity
}}
</div>
<!--
<div
class=
"time-s"
>
<span>
工序:
{{
li
.
drawnNumber
}}
</span>
</div>
-->
<div
class=
"time-s"
>
{{
li
.
demandFinishDate
}}
~
{{
li
.
demandStartDate
}}
<div
class=
"time-s"
>
{{
li
.
demandFinishDate
}}
~
{{
li
.
demandStartDate
}}
</div>
</div>
</div>
</div>
</div
>
<div
class=
"aps-r"
v-show=
"showSet"
>
<div
class=
"r-title"
>
排产设置盘
</div
>
<Form
:model=
"formItem"
:label-width=
"100
"
>
<FormItem
label=
"工时"
>
<DatePicker
type=
"datetimerange
"
format=
"yyyy-MM-dd HH:mm:ss
"
placeholder=
"请选择工时
"
@
on-change=
"changeFormat
"
v-model=
"formItem.time
"
style=
"width: 300px"
></DatePicker
>
</FormItem
>
<FormItem
label=
"类型
"
>
<RadioGroup
v-model=
"formItem.radio"
>
<Radio
label=
"0"
>
人员
</Radio>
<
Radio
label=
"1"
>
班组
</Radio
>
</
RadioGroup
>
</FormItem
>
<FormItem
v-if=
"formItem.radio == 0"
>
<
UserSelect
v-model=
"user"
:multiple=
"true"
/
>
</FormItem
>
<FormItem
label=
"班组"
v-if=
"formItem.radio == 1"
>
<!--
<DepartmentSelect
:type=
"3"
v-model=
"formItem.shopId"
/>
-->
<Select
v-model=
"formItem.shopId
"
placeholder=
"请选择
"
style=
"width: 300px"
>
<Option
v-for=
"(item, index) in listClass
"
:key=
"index
"
:value=
"item.value
"
:label=
"item.label
"
style=
"display: none"
></Option>
<Tree
key=
"mytree
"
:data=
"workShop
"
ref=
"mytree
"
:render=
"renderContent"
></Tree
>
</
Select
>
</FormItem
>
<FormItem
label=
"备注"
>
<Input
v-model=
"formItem.remark
"
type=
"textarea
"
:autosize=
"
{ minRows: 2, maxRows: 5 }
"
placeholder="请输入备注信息"
>
</Input
>
</
FormItem>
<FormItem
>
<Button
style=
"margin-left: 8px"
@
click=
"closeOk"
>
取消
</Button>
<
Button
type=
"primary"
@
click=
"lowerHair"
>
下发
</Button
>
</Form
Item
>
</
Form
>
<div
class=
"aps-r"
v-show=
"showSet"
>
<div
class=
"r-title"
>
排产设置盘
</div
>
<Form
:model=
"formItem"
:label-width=
"100"
>
<FormItem
label=
"工时
"
>
<DatePicker
type=
"datetimerange"
format=
"yyyy-MM-dd HH:mm:ss
"
placeholder=
"请选择工时
"
@
on-change=
"changeFormat
"
v-model=
"formItem.time
"
style=
"width: 300px
"
></DatePicker>
</FormItem
>
<FormItem
label=
"类型"
>
<RadioGroup
v-model=
"formItem.radio
"
>
<Radio
label=
"0"
>
人员
</Radio
>
<Radio
label=
"1"
>
班组
</Radio>
<
/RadioGroup
>
</
FormItem
>
<FormItem
v-if=
"formItem.radio == 0"
>
<UserSelect
v-model=
"user"
:multiple=
"true"
/
>
<
/FormItem
>
<FormItem
label=
"班组"
v-if=
"formItem.radio == 1"
>
<!--
<DepartmentSelect
:type=
"3"
v-model=
"formItem.shopId"
/>
--
>
<Select
v-model=
"formItem.shopId"
placeholder=
"请选择
"
style=
"width: 300px
"
>
<Option
v-for=
"(item, index) in listClass"
:key=
"index
"
:value=
"item.value
"
:label=
"item.label
"
style=
"display: none
"
></Option>
<Tree
key=
"mytree"
:data=
"workShop
"
ref=
"mytree
"
:render=
"renderContent
"
></Tree>
</Select
>
</
FormItem
>
<FormItem
label=
"备注"
>
<Input
v-model=
"formItem.remark"
type=
"textarea
"
:autosize=
"
{ minRows: 2, maxRows: 5 }
"
placeholder="请输入备注信息
"
>
</Input>
</FormItem
>
<
FormItem>
<Button
style=
"margin-left: 8px"
@
click=
"closeOk"
>
取消
</Button
>
<Button
type=
"primary"
@
click=
"lowerHair"
v-noClick
>
下发
</Button>
<
/FormItem
>
</Form>
</
div
>
</div>
</div>
</
template
>
...
...
@@ -126,7 +133,7 @@ export default {
showSet
:
false
,
// userName: ""
},
user
:
''
,
user
:
""
,
showSet
:
false
,
// listGroup: [
// {
...
...
@@ -169,6 +176,9 @@ export default {
this
.
orderlist
(
0
);
},
methods
:
{
viewClose
()
{
this
.
$router
.
push
(
"/aps/plan"
);
},
// 过滤条件
changeStatus
(
name
)
{
this
.
status
=
name
;
...
...
@@ -338,6 +348,9 @@ export default {
</
script
>
<
style
lang=
"less"
scoped
>
@import "../../../assets/css/custom.less";
.back-href {
height: 35px;
}
.addclass {
border-color: rgba(38, 128, 235, 0.2) !important;
.title-i {
...
...
pages/aps/dispatch/index.vue
View file @
ed1b43bc
...
...
@@ -254,7 +254,7 @@
</Row>
<FormItem>
<Button
style=
"margin-right: 8px"
@
click=
"cancle"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"sendSheBei"
>
派工
</Button>
<Button
type=
"primary"
@
click=
"sendSheBei"
v-noClick
>
派工
</Button>
</FormItem>
</Form>
</Drawer>
...
...
pages/aps/plan/addAccessory.vue
View file @
ed1b43bc
...
...
@@ -42,7 +42,6 @@ export default {
name
:
"addAccessory"
,
data
()
{
return
{
disabled
:
false
,
deletelModal
:
false
,
curId
:
0
,
editIndex
:
-
1
,
...
...
pages/aps/plan/detailAccessory.vue
View file @
ed1b43bc
...
...
@@ -43,7 +43,7 @@ export default {
name
:
"detailAccessory"
,
data
()
{
return
{
disabled
:
false
,
deletelModal
:
false
,
statuList
:
this
.
$store
.
getters
.
dictionaryByKey
(
"accessory.status"
)
||
[],
statuList1
:
this
.
$store
.
getters
.
dictionaryByKey
(
"outstore.status"
)
||
[],
...
...
pages/aps/plan/dispatch.vue
View file @
ed1b43bc
...
...
@@ -2,99 +2,104 @@
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
span=
"12"
>
<FormItem
:label=
"l('DistributeMainRouting')"
prop=
"DistributeMainRouting"
>
<UserSelect
ref=
"userSelected"
v-model=
"entity.DistributeMainRouting"
/>
<FormItem
:label=
"l('DistributeMainRouting')"
prop=
"DistributeMainRouting"
>
<UserSelect
ref=
"userSelected"
v-model=
"entity.DistributeMainRouting"
/>
</FormItem>
</Col>
<Col
span=
"12"
>
<FormItem
label=
"完成时间"
style=
"width:100%"
prop=
"MainRoutingFinishDate"
>
<FormItem
label=
"完成时间"
style=
"width: 100%"
prop=
"MainRoutingFinishDate"
>
<DatePicker
v-model=
"entity.MainRoutingFinishDate"
type=
"datetime"
placeholder=
"请选择日期"
style=
"width:240px"
style=
"width:
240px"
@
on-change=
"getTimeMainRFD"
></DatePicker>
</FormItem>
</Col>
</Row>
<Row
>
</Row>
<Row
>
</Row>
<Row>
</Row>
<Row>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
</
template
>
<
script
>
import
Api
from
'./api'
import
Api
from
"./api"
;
export
default
{
name
:
'Dispatch'
,
name
:
"Dispatch"
,
props
:
{
ids
:
Array
ids
:
Array
,
},
data
()
{
return
{
disabled
:
false
,
entity
:
{
DistributeMainRouting
:
null
,
MainRoutingFinishDate
:
''
MainRoutingFinishDate
:
""
,
},
rules
:
{
DistributeMainRouting
:
[
{
required
:
true
,
message
:
'请选择人员'
,
trigger
:
'change'
,
type
:
'number'
}
message
:
"请选择人员"
,
trigger
:
"change"
,
type
:
"number"
,
}
,
],
MainRoutingFinishDate
:
[
{
required
:
true
,
message
:
'请选择时间'
,
trigger
:
'change'
}
]
}
}
message
:
"请选择时间"
,
trigger
:
"change"
,
}
,
]
,
}
,
}
;
},
methods
:
{
handleSubmit
()
{
this
.
$refs
.
form
.
validate
((
v
)
=>
{
if
(
v
)
{
this
.
entity
.
ids
=
this
.
ids
this
.
entity
.
ids
=
this
.
ids
;
Api
.
routingdistribute
(
this
.
entity
)
.
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'工艺派发成功'
)
this
.
$emit
(
'on-ok'
)
this
.
$Message
.
success
(
"工艺派发成功"
);
this
.
$emit
(
"on-ok"
);
}
else
{
this
.
$Message
.
error
(
'工艺派发失败'
)
this
.
$Message
.
error
(
"工艺派发失败"
);
}
this
.
$emit
(
'on-ok'
)
this
.
$emit
(
"on-ok"
);
})
.
catch
((
err
)
=>
{
this
.
$Message
.
error
(
'工艺派发失败'
)
})
this
.
$Message
.
error
(
"工艺派发失败"
);
})
;
}
})
})
;
},
handleClose
()
{
this
.
$emit
(
'on-close'
)
this
.
$emit
(
"on-close"
);
},
l
(
key
)
{
key
=
'mes_order'
+
'.'
+
key
return
this
.
$t
(
key
)
key
=
"mes_order"
+
"."
+
key
;
return
this
.
$t
(
key
)
;
},
getTimeMainRFD
(
value
)
{
this
.
entity
.
MainRoutingFinishDate
=
value
}
this
.
entity
.
MainRoutingFinishDate
=
value
;
}
,
},
watch
:
{}
}
watch
:
{}
,
}
;
</
script
>
pages/aps/stream/index.vue
View file @
ed1b43bc
This diff is collapsed.
Click to expand it.
pages/basicData/userManagent/userInfo.vue
View file @
ed1b43bc
...
...
@@ -75,7 +75,7 @@
</Row>
<Row>
<FormItem
label=
" "
>
<Button
type=
"primary"
@
click=
"pwdOk"
>
保存
</Button>
<Button
type=
"primary"
@
click=
"pwdOk"
v-noClick
>
保存
</Button>
</FormItem>
</Row>
</Form>
...
...
pages/mesPlan/split.vue
View file @
ed1b43bc
...
...
@@ -40,7 +40,7 @@
<Col
span=
"12"
>
<FormItem
label=
"分解数量"
style=
"width:100%"
prop=
"splitQuantity"
>
<InputNumber
:min=
"0"
v-model=
"orderForm.splitQuantity"
style=
"width:180px"
></InputNumber>
<Button
type=
"primary"
@
click=
"addSplitOrder"
>
确定
</Button>
<Button
type=
"primary"
@
click=
"addSplitOrder"
v-noClick
>
确定
</Button>
</FormItem>
</Col>
</Row>
...
...
pages/mordent/OQCcarry/waitReview/index.vue
View file @
ed1b43bc
...
...
@@ -38,7 +38,7 @@
<Col
span=
"15"
>
</Col>
<Col
span=
"9"
>
<Button
@
click=
"handleClose"
class=
"mr20"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"suerUp()"
>
保存
</Button>
<Button
type=
"primary"
@
click=
"suerUp()"
v-noClick
>
保存
</Button>
</Col>
</Row>
</Form>
...
...
pages/mordent/Sluggish/powder/index.vue
View file @
ed1b43bc
...
...
@@ -68,7 +68,7 @@
<Col
span=
"16"
>
</Col>
<Col
span=
"8"
>
<Button
@
click=
"cancel"
class=
"ml20"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"setNumOk"
>
设置
</Button>
<Button
type=
"primary"
@
click=
"setNumOk"
v-noClick
>
设置
</Button>
</Col>
</Row>
</Form>
...
...
pages/processDesign/Process/quotationBox2.vue
View file @
ed1b43bc
...
...
@@ -35,7 +35,7 @@
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<div
v-if=
"editIndex === index"
>
<Button
@
click=
"handleSave(index)"
>
保存
</Button>
<Button
@
click=
"handleSave(index)"
v-noClick
>
保存
</Button>
<Button
@
click=
"editIndex = -1"
>
取消
</Button>
</div>
<div
v-else
>
...
...
@@ -67,7 +67,7 @@
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<div
v-if=
"editIndex02 === index"
>
<Button
@
click=
"handleSave02(index)"
>
保存
</Button>
<Button
@
click=
"handleSave02(index)"
v-noClick
>
保存
</Button>
<Button
@
click=
"editIndex02 = -1"
>
取消
</Button>
</div>
<div
v-else
>
...
...
@@ -99,7 +99,7 @@
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<div
v-if=
"editIndex03 === index"
>
<Button
@
click=
"handleSave03(index)"
>
保存
</Button>
<Button
@
click=
"handleSave03(index)"
v-noClick
>
保存
</Button>
<Button
@
click=
"handlecancel(row, index)"
>
取消
</Button>
</div>
<div
v-else
>
...
...
pages/processDesign/Process/quotationBox3.vue
View file @
ed1b43bc
...
...
@@ -75,7 +75,7 @@
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<div
v-if=
"editIndex02 === index"
>
<Button
@
click=
"handleSave02(index)"
>
保存
</Button>
<Button
@
click=
"handleSave02(index)"
v-noClick
>
保存
</Button>
<Button
@
click=
"editIndex02 = -1"
>
取消
</Button>
</div>
<div
v-else
>
...
...
pages/processDesign/Process/routingchangeorder.vue
View file @
ed1b43bc
...
...
@@ -194,7 +194,7 @@
</div>
<div
slot=
"footer"
>
<Button
type=
"text"
size=
"large"
@
click=
"saveCancelModel"
>
取消
</Button>
<Button
type=
"primary"
size=
"large"
@
click=
"modalOk"
>
保存
</Button>
<Button
type=
"primary"
size=
"large"
@
click=
"modalOk"
v-noClick
>
保存
</Button>
<Checkbox
v-show=
"submitShow"
v-model=
"checked"
class=
"ml10"
label=
"送审"
>
送审
</Checkbox>
</div>
<changeSendReview
ref=
"changeSendReview"
></changeSendReview>
...
...
pages/processDesign/setProcess/index.vue
View file @
ed1b43bc
...
...
@@ -260,7 +260,7 @@
<template
v-if=
"createtype==1"
>
<Button
type=
"text"
size=
"large"
@
click=
"saveCancelModel"
>
取消
</Button>
<Checkbox
v-model=
"issendAudit"
label=
"送审"
>
送审
</Checkbox>
<Button
type=
"primary"
size=
"large"
@
click=
"modalOk"
>
保存
</Button>
<Button
type=
"primary"
size=
"large"
@
click=
"modalOk"
v-noClick
>
保存
</Button>
<Button
type=
"primary"
size=
"large"
@
click=
"nextStepandSave"
>
下一步
</Button>
</
template
>
<
template
v-else-if=
"createtype==2"
>
...
...
pages/project/plan/add.vue
View file @
ed1b43bc
<
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<!--
<Col
:span=
"12"
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('creationTime')"
prop=
"creationTime"
>
<DatePicker
type=
"date"
...
...
@@ -101,9 +101,7 @@
></Col>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button
>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
...
...
@@ -114,7 +112,6 @@ export default {
name
:
"Add"
,
data
()
{
return
{
disabled
:
false
,
entity
:
{
// creationTime: null,
// creatorUserId: null,
...
...
@@ -152,10 +149,8 @@ export default {
handleSubmit
()
{
this
.
$refs
.
form
.
validate
((
v
)
=>
{
if
(
v
)
{
this
.
disabled
=
true
;
Api
.
create
(
this
.
entity
)
.
then
((
r
)
=>
{
this
.
disabled
=
false
;
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
...
...
@@ -164,7 +159,6 @@ export default {
}
})
.
catch
((
err
)
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
console
.
warn
(
err
);
});
...
...
pages/project/plan/edit.vue
View file @
ed1b43bc
This diff is collapsed.
Click to expand it.
pages/project/plan/index.vue
View file @
ed1b43bc
...
...
@@ -79,18 +79,19 @@ export default {
key
:
"action"
,
width
:
150
,
align
:
"center"
,
// render:(h,params)=>{
// return h("Actions"
// ,{
// attrs:{
// row:params,
// },
// on:{
// 'on-click':()=>this.rowclick
// }
// }
// )
// }
render
:(
h
,
params
)
=>
{
return
h
(
"Actions"
,{
attrs
:{
row
:
params
,
},
on
:{
'on-click'
:
this
.
rowclick
}
}
)
}
// render: (h, params) => {
// return h("div", { class: "action" }, [
// h(
...
...
pages/project/project/add.vue
View file @
ed1b43bc
<
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
span=
"8"
>
<Col
span=
"8"
class=
"projct-img"
>
<FormItem
:label=
"l('picture')"
prop=
"picture"
>
<inputFile
class=
"tphoto"
...
...
@@ -137,7 +137,7 @@ export default {
name
:
"Add"
,
data
()
{
return
{
disabled
:
false
,
imgName
:
""
,
avatorPath
:
""
,
entity
:
{
...
...
@@ -196,7 +196,7 @@ export default {
}
Api
.
create
(
this
.
entity
)
.
then
((
r
)
=>
{
this
.
disabled
=
false
;
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
...
...
@@ -205,7 +205,7 @@ export default {
}
})
.
catch
((
err
)
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
console
.
warn
(
err
);
});
...
...
@@ -245,4 +245,19 @@ export default {
},
},
};
</
script
>
\ No newline at end of file
</
script
>
<
style
lang=
"less"
>
.projct-img {
.img-touxiang {
width: 300px;
height: 300px;
margin: 0px 10px 15px 20px;
overflow: hidden;
border-radius: 5px;
.img1 {
width: 100%;
height: 100%;
}
}
}
</
style
>
\ No newline at end of file
pages/project/project/detail.vue
View file @
ed1b43bc
...
...
@@ -33,8 +33,12 @@
<Filed
:span=
"12"
:name=
"l('type')"
>
<state
code=
"project.main.type"
:value=
"entity.type"
/>
</Filed>
<Filed
:span=
"12"
:name=
"l('picture')"
>
{{
entity
.
picture
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('attachment')"
>
{{
entity
.
attachment
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('picture')"
><a
@
click=
"imgClick(entity.picture)"
>
查看图片
</a></Filed
>
<Filed
:span=
"12"
:name=
"l('attachment')"
>
<files
ref=
"refFile"
:parms=
"parms"
fileFormat
:showList=
"false"
/>
</Filed>
<Filed
:span=
"24"
:name=
"l('note')"
>
{{
entity
.
note
}}
</Filed>
</Row>
</div>
...
...
@@ -50,6 +54,12 @@ export default {
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
code
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
},
parms
:
{
app
:
"material"
,
eid
:
null
,
name
:
""
,
field
:
""
,
},
};
},
props
:
[
"eid"
],
...
...
@@ -57,11 +67,17 @@ export default {
this
.
load
(
this
.
eid
);
},
methods
:
{
imgClick
(
img
)
{
window
.
open
(
fileUrlDown
+
img
,
"_blank"
);
},
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
((
r
)
=>
{
this
.
entity
=
r
.
result
;
this
.
entity
.
type
=
r
.
result
.
type
+
''
;
this
.
entity
.
state
=
r
.
result
.
state
+
''
;
this
.
entity
.
type
=
r
.
result
.
type
+
""
;
this
.
entity
.
state
=
r
.
result
.
state
+
""
;
this
.
parms
.
eid
=
r
.
result
.
attachment
;
this
.
$emit
(
"on-load"
);
});
},
...
...
pages/project/project/edit.vue
View file @
ed1b43bc
<
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
span=
"8"
>
<Col
span=
"8"
class=
"projct-img"
>
<FormItem
:label=
"l('picture')"
prop=
"picture"
>
<inputFile
class=
"tphoto"
...
...
@@ -173,4 +173,7 @@ export default {
},
},
};
</
script
>
\ No newline at end of file
</
script
>
<
style
lang=
"less"
>
</
style
>
\ No newline at end of file
pages/project/project/index.vue
View file @
ed1b43bc
...
...
@@ -7,6 +7,7 @@
:conditions=
"easySearch"
:type=
"typeInfo"
:span=
"6"
:format=
"formatFun"
><template
slot=
"easySearch"
><Form
ref=
"formInline"
:model=
"easySearch"
inline
><FormItem
prop=
"keys"
...
...
@@ -34,11 +35,16 @@
></Button>
</
template
>
<
template
slot=
"card"
slot-scope=
"{ row }"
>
<div
class=
"body-card"
>
<Card
class=
"body-card"
:style=
"row._checked ? 'border:1px solid #2680eb;' : ''"
>
<Row
class=
"title-i"
>
<Col
:span=
"10"
class=
"title-l"
>
<Checkbox
v-model=
"row._checked"
></Checkbox>
<Ellipsis
:text=
"row.title"
:length=
"18"
tooltip
/>
</Col>
<Col
:span=
"10"
class=
"btn-click"
>
<!--
<Ellipsis
:text=
"row.code"
:length=
"18"
tooltip
/>
-->
</Col>
...
...
@@ -104,10 +110,10 @@
</div>
</Col>
</Row>
</
div
>
</
Card
>
</
template
>
</DataGrid>
<Modal
v-model=
"modal"
:title=
"title"
width=
"1200"
footer-hide
>
<Modal
v-model=
"modal"
:title=
"title"
width=
"1200"
footer-hide
:mask-closable=
"false"
>
<component
:is=
"detail"
:eid=
"curId"
@
on-close=
"cancel"
@
on-ok=
"ok"
/>
</Modal>
</div>
...
...
@@ -131,6 +137,7 @@ export default {
easySearch
:
{
keys
:
{
op
:
"title"
,
value
:
null
},
},
// single: false,
modal
:
false
,
title
:
"新增"
,
detail
:
null
,
...
...
@@ -338,10 +345,17 @@ export default {
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
methods
:
{
//格式化原始数据
formatFun
(
data
)
{
data
.
map
((
e
)
=>
{
return
(
e
.
_checked
=
false
);
});
return
data
;
},
tdStyle
(
val
)
{
//动态根据状态值加载状态值对应的颜色
let
temDic
=
this
.
$store
.
getters
.
dictionaryByKey
(
"
taskList.status
"
);
let
temColor
=
"#
666
"
;
//动态根据状态值加载状态值对应的颜色
#19c919
let
temDic
=
this
.
$store
.
getters
.
dictionaryByKey
(
"
project.main.state
"
);
let
temColor
=
"#
19c919
"
;
temDic
.
forEach
((
data
)
=>
{
if
(
Number
(
data
.
code
)
==
val
)
{
temColor
=
data
.
color
;
...
...
@@ -425,21 +439,25 @@ export default {
</
script
>
<
style
lang=
"less"
>
.project {
.ivu-card-body {
padding: 0 !important;
}
.body-card {
border: 1px solid rgba(38, 128, 235, 1);
//
border: 1px solid rgba(38, 128, 235, 1);
margin: 5px 0;
border-radius: 4px;
height: 280px;
//
height: 280px;
.title-i {
border-bottom: 1px solid #2680eb;
//
border-bottom: 1px solid #2680eb;
// padding: 0 10px;
height: 35px;
line-height: 35px;
background: rgba(38, 128, 235, 0.2);
color: #2680eb;
padding-left: 10px;
.title-l {
padding-left: 10p
x;
display: -webkit-inline-bo
x;
}
.btn-click {
text-align: right;
...
...
@@ -477,22 +495,18 @@ export default {
}
.row-down {
padding: 14px;
// height: 110px;
.img-i {
height: 170px;
width: 170px;
// img {
// width: 90px;
// height: 90px;
// }
}
.c {
padding-left: 14px;
height: 170px;
div {
height: 30px;
height: 33px;
line-height: 33px;
}
}
.shuo-ming {
...
...
@@ -501,8 +515,8 @@ export default {
}
}
.bottom-b {
line-height: 40px;
padding
-left:
14px;
//
line-height: 40px;
padding
: 0 0 6px
14px;
.a-icon {
text-align: right;
}
...
...
pages/qc/certificate/endIssued/edit.vue
View file @
ed1b43bc
...
...
@@ -23,7 +23,10 @@
</FormItem>
</Col>
<Col
:span=
"6"
>
<FormItem
:label=
"l('productSerialNumber')"
prop=
"productSerialNumber"
>
<FormItem
:label=
"l('productSerialNumber')"
prop=
"productSerialNumber"
>
<ProductNumberSelect
v-model=
"entity.productSerialNumber"
:eid=
"eid"
...
...
@@ -43,50 +46,92 @@
</FormItem>
</Col>
<Col
:span=
"6"
>
<FormItem
:label=
"l('materialSerialNumber')"
prop=
"materialSerialNumber"
>
<FormItem
:label=
"l('materialSerialNumber')"
prop=
"materialSerialNumber"
>
<Input
v-model=
"entity.materialSerialNumber"
></Input>
</FormItem>
</Col>
<Col
:span=
"6"
>
<FormItem
:label=
"l('materialCertificationNumber')"
prop=
"materialCertificationNumber"
>
<FormItem
:label=
"l('materialCertificationNumber')"
prop=
"materialCertificationNumber"
>
<Input
v-model=
"entity.materialCertificationNumber"
></Input>
</FormItem>
</Col>
<Col
:span=
"6"
>
<FormItem
:label=
"l('productQuantity')"
prop=
"productQuantity"
>
<Input
v-model=
"entity.productQuantity"
:disabled=
"isDisabled"
></Input>
<Input
v-model=
"entity.productQuantity"
:disabled=
"isDisabled"
></Input>
</FormItem>
</Col>
<Col
:span=
"24"
style=
"margin:
20px 0;
"
>
<div
style=
"margin-left:
10px;font-weight:
bold"
>
检验内容
</div>
<Col
:span=
"24"
style=
"margin:
20px 0
"
>
<div
style=
"margin-left:
10px; font-weight:
bold"
>
检验内容
</div>
<div
class=
"jy-boder"
></div>
</Col>
<Col
:span=
"24"
style=
"padding:20px 0 0px 10px;margin-bottom:10px;"
class=
"table-solt"
>
<Table
border
:columns=
"columns"
:data=
"checkList"
class=
"tableCommon"
>
<Col
:span=
"24"
style=
"padding: 20px 0 0px 10px; margin-bottom: 10px"
class=
"table-solt"
>
<Table
border
:columns=
"columns"
:data=
"checkList"
class=
"tableCommon"
>
<template
slot-scope=
"
{ row, index }" slot="name">
<Input
v-model=
"row.name"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
<Input
v-model=
"row.name"
placeholder=
"请输入"
@
on-blur=
"setRow(row, index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"require"
>
<Input
v-model=
"row.require"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
<Input
v-model=
"row.require"
placeholder=
"请输入"
@
on-blur=
"setRow(row, index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"result"
>
<Input
v-model=
"row.result"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
<Input
v-model=
"row.result"
placeholder=
"请输入"
@
on-blur=
"setRow(row, index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"pash"
>
<inputFile
v-model=
"row.file"
:files=
"true"
:parms=
"getParams(row.fileId)"
/>
<inputFile
v-model=
"row.file"
:files=
"true"
:parms=
"getParams(row.fileId)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"conclusion"
class=
"dd"
>
<Dictionary
code=
"qms.certificate.conclusion"
v-model=
"row.conclusion"
type=
"select"
></Dictionary>
<Dictionary
code=
"qms.certificate.conclusion"
v-model=
"row.conclusion"
type=
"select"
></Dictionary>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"remark"
>
<Input
v-model=
"row.remark"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
<Input
v-model=
"row.remark"
placeholder=
"请输入"
@
on-blur=
"setRow(row, index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<a
@
click=
"remove(index)"
style=
"color:
#FF7A8B
"
>
删除
</a>
<a
@
click=
"remove(index)"
style=
"color:
#ff7a8b
"
>
删除
</a>
</
template
>
</Table>
</Col>
<Col
:span=
"24"
style=
"margin-bottom:
20px;
"
>
<Col
:span=
"24"
style=
"margin-bottom:
20px
"
>
<Button
type=
"primary"
long
@
click=
"addNew"
class=
"mt10"
>
添加
</Button>
</Col>
<Col
:span=
"6"
>
...
...
@@ -117,7 +162,13 @@
<Checkbox
v-model=
"submit"
class=
"ml20"
>
是否送审
</Checkbox>
</FormItem>
</Form>
<Modal
v-model=
"examineModal"
title=
"合格证送审"
footer-hide
fullscreen
:mask-closable=
"false"
>
<Modal
v-model=
"examineModal"
title=
"合格证送审"
footer-hide
fullscreen
:mask-closable=
"false"
>
<Examine
:isId=
"isId"
ref=
"examine"
></Examine>
</Modal>
</div>
...
...
@@ -213,14 +264,15 @@ export default {
created
()
{
this
.
addNew
();
this
.
isDisabled
=
true
;
this
.
load
(
this
.
eid
);
},
methods
:
{
load
(
v
)
{
Api
.
getCertificate
({
id
:
v
}).
then
((
r
)
=>
{
this
.
entity
=
r
.
result
;
let
productSerialNumber
=
[];
productSerialNumber
=
r
.
result
.
productSerialNumber
.
split
(
","
);
r
.
result
.
productSerialNumber
=
productSerialNumber
;
this
.
entity
=
r
.
result
;
this
.
entity
.
productSerialNumber
=
productSerialNumber
.
map
(
Number
);
this
.
checkList
=
r
.
result
.
items
;
console
.
log
(
this
.
entity
);
});
...
...
@@ -234,7 +286,8 @@ export default {
},
handleSubmit
()
{
this
.
entity
.
items
=
this
.
checkList
;
this
.
entity
.
items
.
forEach
((
c
)
=>
{
this
.
entity
.
items
.
forEach
((
c
,
index
)
=>
{
c
.
index
=
index
;
return
delete
c
.
id
;
});
this
.
$refs
.
form
.
validate
((
v
)
=>
{
...
...
pages/qc/certificate/waitOpened/add.vue
View file @
ed1b43bc
...
...
@@ -211,7 +211,7 @@ export default {
disabled
:
false
,
entity
:
{
id
:
0
,
status
:
""
,
status
:
0
,
items
:
[],
},
rules
:
{
...
...
@@ -225,6 +225,7 @@ export default {
columns
:
[
{
title
:
"序号"
,
// key: "index",
type
:
"index"
,
width
:
80
,
align
:
"center"
,
...
...
@@ -308,7 +309,8 @@ export default {
let
item
=
[];
item
=
this
.
checkList
;
if
(
item
)
{
item
.
forEach
((
c
)
=>
{
item
.
forEach
((
c
,
index
)
=>
{
c
.
index
=
index
;
return
delete
c
.
id
;
});
}
...
...
pages/resource/resource/index.vue
View file @
ed1b43bc
This diff is collapsed.
Click to expand it.
pages/store/add.vue
View file @
ed1b43bc
...
...
@@ -116,12 +116,11 @@ export default {
let
obj
=
this
.
list
[
i
];
for
(
let
j
=
0
;
j
<
val
.
length
;
j
++
)
{
if
(
obj
.
id
==
val
[
j
])
{
code
.
push
(
obj
.
cod
e
);
code
.
push
(
obj
.
nam
e
);
type
.
push
(
obj
.
codeRuleType
);
}
}
}
this
.
entity
.
materialTypeName
=
code
.
join
(
","
);
this
.
entity
.
codeRuleType
=
type
.
join
(
","
);
},
...
...
pages/store/edit.vue
View file @
ed1b43bc
...
...
@@ -57,9 +57,7 @@ export default {
materialType
:
[],
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
materialType
:
[
{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
,
},
],
materialType
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
},
};
},
...
...
@@ -101,7 +99,7 @@ export default {
let
obj
=
this
.
list
[
i
];
for
(
let
j
=
0
;
j
<
val
.
length
;
j
++
)
{
if
(
obj
.
id
==
val
[
j
])
{
code
.
push
(
obj
.
cod
e
);
code
.
push
(
obj
.
nam
e
);
type
.
push
(
obj
.
codeRuleType
);
}
}
...
...
pages/technology/details/routingsupporting/index.vue
View file @
ed1b43bc
...
...
@@ -94,15 +94,15 @@ export default {
import
:
true
,
},
{
key
:
"materialType"
,
title
:
this
.
l
(
"materialType"
),
align
:
"center"
,
easy
:
true
,
high
:
true
,
code
:
"mes_xingchi_resource.material.materialReType"
,
width
:
100
,
},
//
{
//
key: "materialType",
//
title: this.l("materialType"),
//
align: "center",
//
easy: true,
//
high: true,
//
code: "mes_xingchi_resource.material.materialReType",
//
width: 100,
//
},
{
key
:
"materialNumber"
,
title
:
this
.
l
(
"materialNumber"
),
...
...
pages/word/classification/add.vue
View file @
ed1b43bc
...
...
@@ -461,7 +461,7 @@ export default {
}
})
.
catch
((
err
)
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
console
.
warn
(
err
);
});
...
...
pages/workflow/form/design.vue
View file @
ed1b43bc
...
...
@@ -2,7 +2,7 @@
<fm-making-form
ref=
"makingform"
style=
"height: 880px;"
:data=
"jsonData"
generate-json
>
<template
slot=
"action"
>
<!-- 自定义操作区域插槽 -->
<el-button
type=
"text"
icon=
"el-icon-upload"
>
保存
</el-button>
<el-button
type=
"text"
icon=
"el-icon-upload"
v-noClick
>
保存
</el-button>
</
template
>
</fm-making-form>
</template>
...
...
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