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
79d34cd5
Commit
79d34cd5
authored
Jun 03, 2020
by
康振飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of git.mes123.com:zhouyx/mes-ui into product
parents
0b43b02c
271c9c1d
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
2414 additions
and
257 deletions
+2414
-257
productNumberSelect.vue
components/page/productNumberSelect.vue
+40
-36
api.js
pages/produce/api.js
+5
-0
functional.vue
pages/produce/execute/components/functional.vue
+71
-39
entryrecordMovie.vue
pages/produce/execute/datafilling/entryrecordMovie.vue
+266
-0
entryrecorddata.vue
pages/produce/execute/datafilling/entryrecorddata.vue
+319
-0
entryrecordfiles.vue
pages/produce/execute/datafilling/entryrecordfiles.vue
+282
-0
index.vue
pages/produce/execute/datafilling/index.vue
+696
-64
sendCheck.vue
pages/produce/execute/datafilling/sendCheck.vue
+223
-0
sendCheckRecord.vue
pages/produce/execute/datafilling/sendCheckRecord.vue
+127
-0
usercard.vue
pages/produce/execute/datafilling/usercard.vue
+224
-0
execute.less
pages/produce/execute/execute.less
+9
-8
index.vue
pages/produce/execute/index.vue
+136
-99
orderlist.vue
pages/produce/orderlist.vue
+12
-9
index.vue
pages/technology/details/routingqccard/index.vue
+2
-1
index.vue
pages/technology/index.vue
+2
-1
No files found.
components/page/productNumberSelect.vue
View file @
79d34cd5
...
...
@@ -14,8 +14,8 @@
<
script
>
export
default
{
model
:
{
prop
:
'value'
,
event
:
'on-change'
prop
:
"value"
,
event
:
"on-change"
},
data
()
{
return
{
...
...
@@ -24,15 +24,17 @@ export default {
orderId
:
null
,
isCodeIds
:
[],
codeIds
:
[]
}
};
},
created
()
{
this
.
getCodes
();
},
created
()
{},
props
:
{
eid
:
Number
,
value
:
[
String
,
Number
,
Array
],
placeholder
:
{
type
:
String
,
default
:
'请选择产品编号'
default
:
"请选择产品编号"
},
multiple
:
{
type
:
Boolean
,
...
...
@@ -41,71 +43,73 @@ export default {
},
methods
:
{
change
(
event
)
{
this
.
$emit
(
'on-change'
,
event
)
this
.
codeIds
=
[];
for
(
let
index
=
0
;
index
<
event
.
length
;
index
++
)
{
this
.
data
.
forEach
(
(
e
)
=>
{
if
(
event
[
index
]
==
e
.
prefix
+
e
.
code
)
{
this
.
codeIds
.
push
(
e
.
id
)
this
.
data
.
forEach
(
e
=>
{
if
(
event
[
index
]
==
e
.
code
)
{
this
.
codeIds
.
push
(
e
.
id
)
;
}
})
})
;
}
this
.
$emit
(
"on-change"
,
event
);
},
getCodes
(
e
)
{
let
url
=
`
${
PlanUrl
}
/orderproductcode/getbyorderid`
let
url
=
`
${
PlanUrl
}
/orderproductcode/getbyorderid`
;
if
(
this
.
eid
)
{
this
.
$api
.
get
(
url
,
{
id
:
this
.
eid
}).
then
(
(
r
)
=>
{
this
.
$api
.
get
(
url
,
{
id
:
this
.
eid
}).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
data
=
r
.
result
this
.
orderId
=
r
.
result
[
0
].
orderId
this
.
data
=
r
.
result
;
this
.
orderId
=
r
.
result
[
0
].
orderId
;
}
})
})
;
}
},
//获取所有的选中项
getSelectItems
()
{
var
items
=
[]
this
.
value
.
forEach
(
(
v
)
=>
{
var
item
=
this
.
dic
.
filter
(
(
u
)
=>
u
.
value
==
v
)
var
items
=
[]
;
this
.
value
.
forEach
(
v
=>
{
var
item
=
this
.
dic
.
filter
(
u
=>
u
.
value
==
v
);
if
(
item
&&
item
[
0
])
{
items
.
push
(
item
[
0
])
items
.
push
(
item
[
0
])
;
}
})
return
items
})
;
return
items
;
},
//获取所有选中项的名称
getSelectNames
()
{
var
names
=
[]
this
.
getSelectItems
().
forEach
(
(
v
)
=>
{
names
.
push
(
v
.
label
)
})
return
names
var
names
=
[]
;
this
.
getSelectItems
().
forEach
(
v
=>
{
names
.
push
(
v
.
label
)
;
})
;
return
names
;
}
},
computed
:
{
dic
()
{
let
result
=
[]
this
.
data
.
forEach
(
(
u
)
=>
{
let
result
=
[]
;
this
.
data
.
forEach
(
u
=>
{
result
.
push
({
value
:
u
.
prefix
+
u
.
code
,
label
:
u
.
prefix
+
u
.
code
})
})
return
result
value
:
u
.
code
,
label
:
u
.
code
// value: u.prefix + u.code,
// label: u.prefix + u.code
});
});
return
result
;
}
},
watch
:
{
value
:
{
handler
(
v
,
o
)
{
this
.
name
=
v
this
.
name
=
v
;
},
deep
:
true
},
eid
(
e
)
{
if
(
e
)
{
this
.
getCodes
(
e
)
this
.
getCodes
(
e
)
;
}
}
}
}
}
;
</
script
>
\ No newline at end of file
pages/produce/api.js
View file @
79d34cd5
...
...
@@ -7,4 +7,9 @@ export default {
getCardList
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutenew/list`
,
params
);
},
//过程质量填报表
getentryqcrecordlist_new
(
params
)
{
return
Api
.
get
(
`
${
PlanUrl
}
orderexecutequalityrecord/getentryqcrecordlist_new`
,
params
);
},
}
pages/produce/execute/components/functional.vue
View file @
79d34cd5
<
template
>
<div
class=
"addd"
>
<ul>
<!--
<li><a
@
click=
"gnFunto(0,'进度汇报')"
:class=
"
{active:gnFlag == 0}">
<Icon
type=
"ios-clipboard"
/>
进度汇报
</a></li>
<div
class=
"addd"
>
<ul>
<!--
<li><a
@
click=
"gnFunto(0,'进度汇报')"
:class=
"
{active:gnFlag == 0}">
<Icon
type=
"ios-clipboard"
/>
进度汇报
</a></li>
<li><a
@
click=
"gnFunto(1,'物料领用')"
:class=
"
{active:gnFlag == 1}">
<Icon
type=
"ios-cube"
/>
物料领用
</a></li>
<li><a
@
click=
"gnFunto(2,'产品装配')"
:class=
"
{active:gnFlag == 2}">
<Icon
type=
"md-build"
/>
产品装配
</a></li>
<li><a
@
click=
"gnFunto(3,'工时分配')"
:class=
"
{active:gnFlag == 3}">
<Icon
type=
"ios-time"
/>
工时分配
</a></li>
...
...
@@ -11,43 +11,75 @@
<li><a
@
click=
"gnFunto(6,'工艺案例')"
:class=
"
{active:gnFlag == 6}">
<Icon
type=
"ios-paper"
/>
工艺案例
</a></li>
<li><a
@
click=
"gnFunto(7,'质量判定')"
:class=
"
{active:gnFlag == 7}">
<Icon
type=
"ios-medal"
/>
质量判定
</a></li>
<li><a
@
click=
"gnFunto(8,'数据填报')"
:class=
"
{active:gnFlag == 8}">
<Icon
type=
"ios-create"
/>
数据填报
</a></li>
<li><a
@
click=
"gnFunto(9,'测试数据')"
:class=
"
{active:gnFlag == 9}">
<Icon
type=
"logo-codepen"
/>
测试数据
</a></li>
-->
<li><a
@
click=
"gnFunto(0,'进度汇报')"
:class=
"
{active:gnFlag == 0}">
<img
src=
"@/assets/imgicon/execute/ex01.png"
alt=
""
/>
进度汇报
</a></li>
<li><a
@
click=
"gnFunto(1,'物料领用')"
:class=
"
{active:gnFlag == 1}">
<img
src=
"@/assets/imgicon/execute/ex02.png"
alt=
""
/>
物料领用
</a></li>
<li><a
@
click=
"gnFunto(2,'产品装配')"
:class=
"
{active:gnFlag == 2}">
<img
src=
"@/assets/imgicon/execute/ex03.png"
alt=
""
/>
产品装配
</a></li>
<li><a
@
click=
"gnFunto(3,'工时分配')"
:class=
"
{active:gnFlag == 3}">
<img
src=
"@/assets/imgicon/execute/ex04.png"
alt=
""
/>
工时分配
</a></li>
<li><a
@
click=
"gnFunto(4,'生产准备')"
:class=
"
{active:gnFlag == 4}">
<img
src=
"@/assets/imgicon/execute/ex05.png"
alt=
""
/>
生产准备
</a></li>
<li><a
@
click=
"gnFunto(5,'工艺查看')"
:class=
"
{active:gnFlag == 5}">
<img
src=
"@/assets/imgicon/execute/ex06.png"
alt=
""
/>
工艺查看
</a></li>
<li><a
@
click=
"gnFunto(6,'工艺案例')"
:class=
"
{active:gnFlag == 6}">
<img
src=
"@/assets/imgicon/execute/ex07.png"
alt=
""
/>
工艺案例
</a></li>
<li><a
@
click=
"gnFunto(7,'质量判定')"
:class=
"
{active:gnFlag == 7}">
<img
src=
"@/assets/imgicon/execute/ex08.png"
alt=
""
/>
质量判定
</a></li>
<li><a
@
click=
"gnFunto(8,'数据填报')"
:class=
"
{active:gnFlag == 8}">
<img
src=
"@/assets/imgicon/execute/ex09.png"
alt=
""
/>
数据填报
</a></li>
<li><a
@
click=
"gnFunto(9,'测试数据')"
:class=
"
{active:gnFlag == 9}">
<img
src=
"@/assets/imgicon/execute/ex10.png"
alt=
""
/>
测试数据
</a></li>
</ul>
</div>
<li><a
@
click=
"gnFunto(9,'测试数据')"
:class=
"
{active:gnFlag == 9}">
<Icon
type=
"logo-codepen"
/>
测试数据
</a></li>
-->
<li>
<a
@
click=
"gnFunto(0,'进度汇报')"
:class=
"
{active:gnFlag == 0}">
<img
src=
"@/assets/imgicon/execute/ex01.png"
alt
/>
进度汇报
</a>
</li>
<li>
<a
@
click=
"gnFunto(1,'物料领用')"
:class=
"
{active:gnFlag == 1}">
<img
src=
"@/assets/imgicon/execute/ex02.png"
alt
/>
物料领用
</a>
</li>
<li>
<a
@
click=
"gnFunto(2,'产品装配')"
:class=
"
{active:gnFlag == 2}">
<img
src=
"@/assets/imgicon/execute/ex03.png"
alt
/>
产品装配
</a>
</li>
<li>
<a
@
click=
"gnFunto(3,'工时分配')"
:class=
"
{active:gnFlag == 3}">
<img
src=
"@/assets/imgicon/execute/ex04.png"
alt
/>
工时分配
</a>
</li>
<li>
<a
@
click=
"gnFunto(4,'生产准备')"
:class=
"
{active:gnFlag == 4}">
<img
src=
"@/assets/imgicon/execute/ex05.png"
alt
/>
生产准备
</a>
</li>
<li>
<a
@
click=
"gnFunto(5,'工艺查看')"
:class=
"
{active:gnFlag == 5}">
<img
src=
"@/assets/imgicon/execute/ex06.png"
alt
/>
工艺查看
</a>
</li>
<li>
<a
@
click=
"gnFunto(6,'工艺案例')"
:class=
"
{active:gnFlag == 6}">
<img
src=
"@/assets/imgicon/execute/ex07.png"
alt
/>
工艺案例
</a>
</li>
<li>
<a
@
click=
"gnFunto(7,'质量判定')"
:class=
"
{active:gnFlag == 7}">
<img
src=
"@/assets/imgicon/execute/ex08.png"
alt
/>
质量判定
</a>
</li>
<li>
<a
@
click=
"gnFunto(8,'数据填报')"
:class=
"
{active:gnFlag == 8}">
<img
src=
"@/assets/imgicon/execute/ex09.png"
alt
/>
数据填报
</a>
</li>
<li>
<a
@
click=
"gnFunto(9,'测试数据')"
:class=
"
{active:gnFlag == 9}">
<img
src=
"@/assets/imgicon/execute/ex10.png"
alt
/>
测试数据
</a>
</li>
</ul>
</div>
</
template
>
<
script
>
export
default
{
name
:
'functional'
,
data
(){
return
{
gnFlag
:
0
,
}
},
methods
:
{
gnFunto
(
number
,
type
){
this
.
gnFlag
=
number
;
this
.
$emit
(
'changeTitle'
,
number
,
type
);
}
},
}
name
:
"functional"
,
props
:
[
"orderId"
],
data
()
{
return
{
gnFlag
:
0
};
},
methods
:
{
gnFunto
(
number
,
type
)
{
// alert("a"+this.orderId)
this
.
gnFlag
=
number
;
this
.
$emit
(
"changeTitle"
,
number
,
type
,
this
.
orderId
);
}
}
};
</
script
>
\ No newline at end of file
pages/produce/execute/datafilling/entryrecordMovie.vue
0 → 100644
View file @
79d34cd5
<
template
>
<div
class=
"new_box"
style=
"overflow: hidden;"
>
<div
v-if=
"isedit"
class=
"photo"
>
<imgUploadFile
class=
"tphoto"
ref=
"refmovieFile1"
v-model=
"imgName"
:parms=
"entryMovieparms"
files
@
on-change=
"ok"
/>
</div>
<div
class=
"table"
>
<Table
stripe
ref=
"table"
border
:columns=
"moviecolumn"
:data=
"moviedata"
class=
"tableCommon"
></Table>
</div>
</div>
</
template
>
<
script
>
import
service
from
'@/plugins/request'
import
QS
from
'querystring'
export
default
{
name
:
'entryrecordMovie'
,
components
:
{},
data
()
{
return
{
datasearch
:
{
ids
:
0
,
MaxResultCount
:
10
,
SkipCount
:
0
},
entryMovieparms
:
'app=orderexecutequalitydataPhoto&eid=1&name=orderexecutequalitydataPhoto'
,
imgName
:
''
,
photoStyle
:
null
,
//传照片box样式
newModel
:
false
,
isedit
:
true
,
ids
:
[],
datafrom
:
{
id
:
0
,
record_id
:
0
,
dispatch_id
:
0
,
execute_id
:
0
,
order_id
:
''
,
qc_card_id
:
0
,
fill_in_user_type
:
0
,
movie_type
:
0
,
movie_name
:
''
,
movie_path
:
''
,
data_desc
:
''
},
moviedata
:
[],
moviecolumn
:
[
// { title: '', key: 'organizType1', type: 'expand',width:'60'},
{
title
:
'序号'
,
type
:
'index'
,
width
:
'100'
,
align
:
'center'
},
{
title
:
'名称'
,
key
:
'movie_name'
},
{
title
:
'操作'
,
key
:
'id'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
let
id
=
params
.
row
.
id
if
(
!
this
.
isedit
)
{
h
(
'div'
,
{
class
:
'icon_box'
},
[
h
(
'A'
,
{
attrs
:
{
href
:
fileUrlDown
+
params
.
row
.
movie_path
,
target
:
'_blank'
},
props
:
{},
style
:
{
color
:
'#249E91'
,
marginRight
:
'5px'
,
cursor
:
'pointer'
}
},
'查看'
)
]
)
}
return
h
(
'div'
,
{
class
:
'icon_box'
},
[
h
(
'A'
,
{
attrs
:
{
href
:
fileUrlDown
+
params
.
row
.
movie_path
,
target
:
'_blank'
},
props
:
{},
style
:
{
color
:
'#249E91'
,
marginRight
:
'5px'
,
cursor
:
'pointer'
}
},
'查看'
),
h
(
'span'
,
{
class
:
'del_icon'
,
attrs
:
{
title
:
'删除'
},
on
:
{
click
:
()
=>
{
this
.
deleteFun
(
params
)
}
}
},
'删除'
)
]
)
}
}
]
}
},
mounted
()
{},
watch
:
{
imgName
(
newName
,
oldName
)
{
if
(
newName
!=
''
)
{
let
obj
=
JSON
.
parse
(
newName
)
}
}
},
methods
:
{
loadpage
(
params
,
product_code
,
board_code
,
isedit
)
{
this
.
isedit
=
isedit
;(
this
.
datafrom
.
dispatch_id
=
params
.
dispatch_id
),
(
this
.
datafrom
.
execute_id
=
params
.
execute_id
),
(
this
.
datafrom
.
order_id
=
params
.
order_id
),
(
this
.
datafrom
.
qc_card_id
=
params
.
qc_card_id
),
(
this
.
datafrom
.
data_type
=
1
)
if
(
params
.
movieid
!=
''
)
{
this
.
ids
=
params
.
movieid
.
split
(
','
)
}
this
.
datafrom
.
product_code
=
product_code
this
.
datafrom
.
board_code
=
board_code
this
.
loaddata
()
},
loaddata
()
{
this
.
datasearch
.
ids
=
this
.
ids
.
join
(
','
)
var
url
=
`
${
PlanUrl
}
/orderexecutequalitymovie/getlist?`
+
QS
.
stringify
(
this
.
datasearch
)
service
.
get
(
`
${
url
}
`
).
then
((
response
)
=>
{
if
(
response
.
result
!=
null
)
{
this
.
moviedata
=
response
.
result
}
})
},
ok
(
files
)
{
if
(
files
==
''
)
{
return
}
let
obj
=
JSON
.
parse
(
files
)
this
.
datafrom
.
movie_name
=
obj
[
0
].
fileName
this
.
datafrom
.
movie_path
=
obj
[
0
].
filePath
var
url
=
`
${
PlanUrl
}
/orderexecutequalitymovie/createorupdate`
service
.
post
(
`
${
url
}
`
,
{
orderExecuteQualityMovie
:
this
.
datafrom
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
'保存成功'
)
this
.
ids
.
push
(
response
.
result
.
id
)
this
.
moviedata
.
push
(
response
.
result
)
this
.
cleardata
()
this
.
$emit
(
'bindPhotoid'
,
this
.
datafrom
.
qc_card_id
,
this
.
ids
.
join
(
','
)
)
//this.loaddata()
}
})
.
catch
((
error
)
=>
{
this
.
$Message
.
error
(
'保存失败'
)
})
},
cancel
()
{
this
.
cleardata
()
},
cleardata
()
{
this
.
datafrom
.
id
=
0
this
.
datafrom
.
movie_name
=
''
this
.
datafrom
.
movie_path
=
''
},
editFun
(
params
)
{
this
.
datafrom
=
params
.
row
this
.
newModel
=
true
},
deleteFun
(
params
)
{
let
id
=
params
.
row
.
id
this
.
$Modal
.
confirm
({
title
:
'提示'
,
content
:
'确定要删除当前行?'
,
onOk
:
()
=>
{
var
url
=
`
${
PlanUrl
}
/orderexecutequalitymovie/delete?id=`
+
params
.
row
.
id
+
'&record_id='
+
params
.
row
.
record_id
service
.
delete
(
`
${
url
}
`
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
'删除成功'
)
this
.
ids
.
splice
(
this
.
ids
.
indexOf
(
params
.
row
.
id
),
1
)
this
.
moviedata
.
splice
(
this
.
moviedata
.
indexOf
(
params
.
row
),
1
)
// this.loaddata()
this
.
$emit
(
'bindPhotoid'
,
this
.
datafrom
.
qc_card_id
,
this
.
ids
.
join
(
','
)
)
}
else
{
this
.
$Message
.
error
(
'删除失败'
)
}
})
.
catch
((
error
)
=>
{
this
.
$Message
.
error
(
'删除失败'
)
})
},
onCancel
:
()
=>
{}
})
}
}
}
</
script
>
\ No newline at end of file
pages/produce/execute/datafilling/entryrecorddata.vue
0 → 100644
View file @
79d34cd5
<
template
>
<div
class=
"new_box"
>
<div>
<Button
v-if=
"isedit"
style=
" margin-left:10px"
type=
"primary"
@
click=
"handleAdd"
>
添加
</Button>
<Table
class=
"tableCommon"
stripe
ref=
"table"
border
:columns=
"moviecolumn"
:data=
"moviedata"
>
<template
slot-scope=
"
{ row, index }" slot="data_content1">
<Input
type=
"text"
v-model=
"data_content1"
v-if=
"editIndex === index"
/>
<span
v-else
>
{{
row
.
data_content1
}}
</span>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"data_content2"
>
<Input
type=
"text"
v-model=
"data_content2"
v-if=
"editIndex === index"
/>
<span
v-else
>
{{
row
.
data_content2
}}
</span>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"data_content3"
>
<Input
type=
"text"
v-model=
"data_content3"
v-if=
"editIndex === index"
/>
<span
v-else
>
{{
row
.
data_content3
}}
</span>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<div
v-if=
"editIndex === index"
>
<Button
@
click=
"handleSave(index)"
>
保存
</Button>
<Button
@
click=
"handlecancel(row, index)"
>
取消
</Button>
</div>
<div
v-else
>
<template
v-if=
"isedit"
>
<Button
class=
"pl10"
@
click=
"handleEdit(row, index)"
>
编辑
</Button>
<Button
@
click=
"handledel(row, index)"
>
删除
</Button>
</
template
>
</div>
</template>
</Table>
</div>
</div>
</template>
<
script
>
import
service
from
"@/plugins/request"
;
import
QS
from
"querystring"
;
export
default
{
name
:
"entryrecorddata"
,
components
:
{},
data
()
{
return
{
datasearch
:
{
ids
:
0
,
MaxResultCount
:
10
,
SkipCount
:
0
},
isedit
:
true
,
editIndex
:
-
1
,
isadd
:
false
,
newModel
:
false
,
ids
:
[],
data_content1
:
""
,
data_content2
:
""
,
data_content3
:
""
,
datafrom
:
{
id
:
0
,
record_id
:
0
,
dispatch_id
:
0
,
execute_id
:
0
,
order_id
:
""
,
qc_card_id
:
0
,
fill_in_user_type
:
0
,
data_type
:
4
,
data_content1
:
""
,
data_content2
:
""
,
data_content3
:
""
,
data_content4
:
""
,
product_code
:
""
,
board_code
:
""
},
moviedata
:
[],
moviecolumn
:
[
// { title: '', key: 'organizType1', type: 'expand',width:'60'},
{
title
:
"序号"
,
type
:
"index"
,
width
:
"100"
,
align
:
"center"
},
{
title
:
"名称"
,
slot
:
"data_content1"
,
key
:
"data_content1"
},
{
title
:
"值"
,
slot
:
"data_content2"
,
key
:
"data_content2"
},
{
title
:
"备注"
,
slot
:
"data_content3"
,
key
:
"data_content3"
},
{
title
:
"操作"
,
slot
:
"action"
,
align
:
"center"
,
width
:
"201"
}
]
};
},
mounted
()
{},
watch
:
{},
methods
:
{
loadpage
(
params
,
fill_in_user_type
,
product_code
,
board_code
,
isedit
)
{
this
.
isedit
=
isedit
;
this
.
datafrom
.
dispatch_id
=
params
.
dispatch_id
;
this
.
datafrom
.
execute_id
=
params
.
execute_id
;
this
.
datafrom
.
order_id
=
params
.
order_id
;
this
.
datafrom
.
qc_card_id
=
params
.
qc_card_id
;
this
.
datafrom
.
fill_in_user_type
=
fill_in_user_type
;
this
.
datafrom
.
data_type
=
4
;
this
.
ids
=
[];
console
.
log
(
params
);
if
(
fill_in_user_type
==
1
&&
//自检
params
.
selfchecklist
!=
null
&&
params
.
selfchecklist
.
fill_in_content
!=
null
&&
params
.
selfchecklist
.
fill_in_content
!=
""
)
{
this
.
ids
=
params
.
selfchecklist
.
fill_in_content
.
split
(
","
);
this
.
datafrom
.
record_id
=
params
.
selfchecklist
.
record_id
==
null
?
0
:
params
.
selfchecklist
.
record_id
;
}
else
if
(
fill_in_user_type
==
2
&&
//互检
params
.
mutualchecklist
!=
null
&&
params
.
mutualchecklist
.
fill_in_content
!=
null
&&
params
.
mutualchecklist
.
fill_in_content
!=
""
)
{
this
.
ids
=
params
.
mutualchecklist
.
fill_in_content
.
split
(
","
);
this
.
datafrom
.
record_id
=
params
.
mutualchecklist
.
record_id
==
null
?
0
:
params
.
mutualchecklist
.
record_id
;
}
else
if
(
fill_in_user_type
==
3
&&
//专检
params
.
seizurechecklist
!=
null
&&
params
.
seizurechecklist
.
fill_in_content
!=
null
&&
params
.
seizurechecklist
.
fill_in_content
!=
""
)
{
this
.
ids
=
params
.
seizurechecklist
.
fill_in_content
.
split
(
","
);
this
.
datafrom
.
record_id
=
params
.
seizurechecklist
.
record_id
==
null
?
0
:
params
.
seizurechecklist
.
record_id
;
}
this
.
datafrom
.
product_code
=
product_code
.
join
(
","
);
// this.datafrom.board_code = board_code
alert
(
2
)
this
.
loaddata
();
},
loaddata
()
{
this
.
moviedata
=
[];
this
.
datasearch
.
ids
=
this
.
ids
.
join
(
","
);
var
url
=
`
${
PlanUrl
}
/orderexecutequalitydata/getlist?`
+
QS
.
stringify
(
this
.
datasearch
);
service
.
get
(
`
${
url
}
`
).
then
(
response
=>
{
if
(
response
.
result
!=
null
)
{
this
.
moviedata
=
response
.
result
;
}
});
},
handlecancel
(
row
,
index
)
{
this
.
editIndex
=
-
1
;
this
.
isadd
=
false
;
if
(
row
.
isnewadd
)
{
this
.
data01
.
splice
(
index
,
1
);
}
},
handleAdd
()
{
if
(
this
.
isadd
==
false
)
{
let
row
=
{
id
:
0
,
record_id
:
0
,
dispatch_id
:
0
,
execute_id
:
0
,
order_id
:
""
,
qc_card_id
:
0
,
fill_in_user_type
:
0
,
data_type
:
0
,
data_content1
:
""
,
data_content2
:
""
,
data_content3
:
""
,
data_content4
:
""
,
product_code
:
""
,
board_code
:
""
,
isnewadd
:
true
};
this
.
data_content1
=
""
;
this
.
data_content2
=
""
;
this
.
data_content3
=
""
;
this
.
isadd
=
true
;
this
.
moviedata
.
push
(
row
);
this
.
editIndex
=
this
.
moviedata
.
length
-
1
;
}
else
{
let
lastindex
=
this
.
moviedata
.
length
-
1
;
this
.
data_content1
=
this
.
moviedata
[
lastindex
].
data_content1
;
this
.
data_content2
=
this
.
moviedata
[
lastindex
].
data_content2
;
this
.
data_content3
=
this
.
moviedata
[
lastindex
].
data_content3
;
this
.
editIndex
=
lastindex
;
}
this
.
datafrom
.
product_code
=
this
.
datafrom
.
product_code
.
join
(
","
);
},
handleEdit
(
row
,
index
)
{
this
.
data_content1
=
row
.
data_content1
;
this
.
data_content2
=
row
.
data_content2
;
this
.
data_content3
=
row
.
data_content3
;
this
.
editIndex
=
index
;
},
handleSave
(
index
)
{
this
.
datafrom
.
data_content1
=
this
.
data_content1
;
this
.
datafrom
.
data_content2
=
this
.
data_content2
;
this
.
datafrom
.
data_content3
=
this
.
data_content3
;
this
.
datafrom
.
id
=
this
.
moviedata
[
index
].
id
;
this
.
ok
(
index
);
if
(
this
.
editIndex
==
this
.
moviedata
.
length
-
1
)
{
this
.
isadd
=
false
;
this
.
moviedata
[
index
].
isnewadd
=
false
;
}
this
.
editIndex
=
-
1
;
},
ok
(
index
)
{
// this.datafrom.product_code=this.datafrom.product_code.join(',')
var
url
=
`
${
PlanUrl
}
/orderexecutequalitydata/createorupdate`
;
service
.
post
(
`
${
url
}
`
,
{
OrderExecuteQualityData
:
this
.
datafrom
})
.
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
ids
.
push
(
response
.
result
.
id
);
this
.
moviedata
.
splice
(
index
,
1
);
this
.
moviedata
.
push
(
response
.
result
);
this
.
cleardata
();
this
.
$emit
(
"binddataid"
,
this
.
datafrom
.
qc_card_id
,
this
.
datafrom
.
fill_in_user_type
,
this
.
ids
.
join
(
","
),
true
);
// this.loaddata();
}
})
.
catch
(
error
=>
{
this
.
$Message
.
error
(
"保存失败"
);
});
},
cancel
()
{
this
.
cleardata
();
},
cleardata
()
{
this
.
datafrom
.
id
=
0
;
this
.
datafrom
.
data_content1
=
""
;
this
.
datafrom
.
data_content2
=
""
;
this
.
datafrom
.
data_content3
=
""
;
},
handledel
(
row
,
index
)
{
let
id
=
row
.
id
;
if
(
id
==
0
)
{
this
.
moviedata
.
splice
(
index
,
1
);
}
else
{
this
.
$Modal
.
confirm
({
title
:
"提示"
,
content
:
"确定要删除当前行?"
,
onOk
:
()
=>
{
var
url
=
`
${
PlanUrl
}
/orderexecutequalitydata/delete?id=`
+
row
.
id
+
"&record_id="
+
row
.
record_id
;
service
.
delete
(
`
${
url
}
`
)
.
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
"删除成功"
);
this
.
ids
.
splice
(
index
,
1
);
this
.
moviedata
.
splice
(
index
,
1
);
// this.loaddata()
this
.
$emit
(
"binddataid"
,
this
.
datafrom
.
qc_card_id
,
this
.
datafrom
.
fill_in_user_type
,
this
.
ids
.
join
(
","
)
);
}
else
{
this
.
$Message
.
error
(
"删除失败"
);
}
})
.
catch
(
error
=>
{
this
.
$Message
.
error
(
"删除失败"
);
});
},
onCancel
:
()
=>
{}
});
}
}
}
};
</
script
>
\ No newline at end of file
pages/produce/execute/datafilling/entryrecordfiles.vue
0 → 100644
View file @
79d34cd5
<
template
>
<div
class=
"new_box"
>
<div
v-if=
"isedit"
>
<inputFile
class=
"tphoto"
ref=
"refmovieFile1"
v-model=
"imgName"
:parms=
"entryMovieparms"
files
@
on-change=
"ok"
/>
</div>
<div
>
<Table
stripe
ref=
"table"
border
:columns=
"moviecolumn"
:data=
"moviedata"
class=
"tableCommon"
></Table>
</div>
</div>
</
template
>
<
script
>
import
service
from
'@/plugins/request'
import
QS
from
'querystring'
export
default
{
name
:
'entryrecordfiles'
,
components
:
{},
data
()
{
return
{
datasearch
:
{
ids
:
0
,
MaxResultCount
:
10
,
SkipCount
:
0
},
entryMovieparms
:
'app=orderexecutequalitydatafile&eid=1&name=orderexecutequalitydatafile'
,
imgName
:
''
,
photoStyle
:
null
,
//传照片box样式
newModel
:
false
,
ids
:
[],
isedit
:
false
,
datafrom
:
{
id
:
0
,
record_id
:
0
,
dispatch_id
:
0
,
execute_id
:
0
,
order_id
:
''
,
qc_card_id
:
0
,
fill_in_user_type
:
0
,
data_type
:
3
,
data_content1
:
''
,
data_content2
:
''
,
data_content3
:
''
,
data_content4
:
''
,
product_code
:
''
,
board_code
:
''
},
moviedata
:
[],
moviecolumn
:
[
// { title: '', key: 'organizType1', type: 'expand',width:'60'},
{
title
:
'序号'
,
type
:
'index'
,
width
:
'100'
,
align
:
'center'
},
{
title
:
'名称'
,
key
:
'data_content1'
},
{
title
:
'操作'
,
key
:
'id'
,
align
:
'center'
,
render
:
(
h
,
params
)
=>
{
let
id
=
params
.
row
.
id
if
(
!
this
.
isedit
)
{
return
h
(
'div'
,
''
)
}
else
{
return
h
(
'div'
,
{
class
:
'icon_box'
},
[
h
(
'A'
,
{
attrs
:
{
href
:
fileUrlDown
+
params
.
row
.
data_content2
,
target
:
'_blank'
},
props
:
{},
style
:
{
color
:
'#249E91'
,
marginRight
:
'5px'
,
cursor
:
'pointer'
}
},
'查看'
),
h
(
'span'
,
{
class
:
'del_icon'
,
attrs
:
{
title
:
'删除'
},
on
:
{
click
:
()
=>
{
this
.
deleteFun
(
params
)
}
}
},
'删除'
)
]
)
}
}
}
]
}
},
mounted
()
{},
watch
:
{
imgName
(
newName
,
oldName
)
{
if
(
newName
!=
''
)
{
let
obj
=
JSON
.
parse
(
newName
)
}
}
},
methods
:
{
loadpage
(
params
,
fill_in_user_type
,
product_code
,
board_code
,
isedit
)
{
this
.
isedit
=
isedit
;
;(
this
.
datafrom
.
dispatch_id
=
params
.
dispatch_id
),
(
this
.
datafrom
.
execute_id
=
params
.
execute_id
),
(
this
.
datafrom
.
order_id
=
params
.
order_id
),
(
this
.
datafrom
.
qc_card_id
=
params
.
qc_card_id
),
(
this
.
datafrom
.
fill_in_user_type
=
fill_in_user_type
),
(
this
.
datafrom
.
data_type
=
3
)
this
.
ids
=
[]
if
(
fill_in_user_type
==
1
&&
params
.
selfchecklist
!=
null
&&
params
.
selfchecklist
.
fill_in_content
!=
null
&&
params
.
selfchecklist
.
fill_in_content
!=
''
)
{
this
.
ids
=
params
.
selfchecklist
.
fill_in_content
.
split
(
','
)
this
.
datafrom
.
record_id
=
params
.
selfchecklist
.
record_id
==
null
?
0
:
params
.
selfchecklist
.
record_id
}
else
if
(
fill_in_user_type
==
2
&&
params
.
mutualchecklist
!=
null
&&
params
.
mutualchecklist
.
fill_in_content
!=
null
&&
params
.
mutualchecklist
.
fill_in_content
!=
''
)
{
this
.
ids
=
params
.
mutualchecklist
.
fill_in_content
.
split
(
','
)
this
.
datafrom
.
record_id
=
params
.
mutualchecklist
.
record_id
==
null
?
0
:
params
.
mutualchecklist
.
record_id
}
else
if
(
fill_in_user_type
==
3
&&
params
.
seizurechecklist
!=
null
&&
params
.
seizurechecklist
.
fill_in_content
!=
null
&&
params
.
seizurechecklist
.
fill_in_content
!=
''
)
{
this
.
ids
=
params
.
seizurechecklist
.
fill_in_content
.
split
(
','
)
this
.
datafrom
.
record_id
=
params
.
seizurechecklist
.
record_id
==
null
?
0
:
params
.
seizurechecklist
.
record_id
}
this
.
datafrom
.
product_code
=
product_code
this
.
datafrom
.
board_code
=
board_code
this
.
loaddata
()
},
loaddata
()
{
this
.
datasearch
.
ids
=
this
.
ids
.
join
(
','
)
this
.
moviedata
=
[]
var
url
=
`
${
PlanUrl
}
/orderexecutequalitydata/getlist?`
+
QS
.
stringify
(
this
.
datasearch
)
service
.
get
(
`
${
url
}
`
).
then
((
response
)
=>
{
if
(
response
.
result
!=
null
)
{
this
.
moviedata
=
response
.
result
}
})
},
ok
(
files
)
{
if
(
files
==
''
)
{
return
}
let
obj
=
JSON
.
parse
(
files
)
this
.
datafrom
.
data_content1
=
obj
[
0
].
fileName
this
.
datafrom
.
data_content2
=
obj
[
0
].
filePath
var
url
=
`
${
PlanUrl
}
/orderexecutequalitydata/createorupdate`
service
.
post
(
`
${
url
}
`
,
{
OrderExecuteQualityData
:
this
.
datafrom
}
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
'保存成功'
)
this
.
ids
.
push
(
response
.
result
.
id
)
this
.
moviedata
.
push
(
response
.
result
)
this
.
cleardata
()
this
.
$emit
(
'binddataid'
,
this
.
datafrom
.
qc_card_id
,
this
.
datafrom
.
fill_in_user_type
,
this
.
ids
.
join
(
','
)
)
//this.loaddata()
}
})
.
catch
((
error
)
=>
{
this
.
$Message
.
error
(
'保存失败'
)
})
},
cancel
()
{
this
.
cleardata
()
},
cleardata
()
{
this
.
datafrom
.
id
=
0
this
.
datafrom
.
data_content1
=
''
this
.
datafrom
.
data_content2
=
''
},
editFun
(
params
)
{
this
.
datafrom
=
params
.
row
this
.
newModel
=
true
},
deleteFun
(
params
)
{
let
id
=
params
.
row
.
id
this
.
$Modal
.
confirm
({
title
:
'提示'
,
content
:
'确定要删除当前行?'
,
onOk
:
()
=>
{
var
url
=
`
${
PlanUrl
}
/orderexecutequalitydata/delete?id=`
+
params
.
row
.
id
+
'&record_id='
+
params
.
row
.
record_id
service
.
delete
(
`
${
url
}
`
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
'删除成功'
)
this
.
ids
.
splice
(
this
.
ids
.
indexOf
(
params
.
row
.
id
),
1
)
this
.
moviedata
.
splice
(
this
.
moviedata
.
indexOf
(
params
.
row
),
1
)
// this.loaddata()
this
.
$emit
(
'binddataid'
,
this
.
datafrom
.
qc_card_id
,
this
.
datafrom
.
fill_in_user_type
,
this
.
ids
.
join
(
','
)
)
}
else
{
this
.
$Message
.
error
(
'删除失败'
)
}
})
.
catch
((
error
)
=>
{
this
.
$Message
.
error
(
'删除失败'
)
})
},
onCancel
:
()
=>
{}
})
}
}
}
</
script
>
\ No newline at end of file
pages/produce/execute/datafilling/index.vue
View file @
79d34cd5
<
template
>
<div
class=
""
>
<div
class=
"star"
v-if=
"!starmodal"
>
<a
class=
"start"
@
click=
"starFun"
>
<Icon
type=
"md-play"
/>
数据填报
</a>
</div>
<div
class=
"star flex fc-b"
v-else-if=
"starmodal"
>
<Button
class=
"button"
size=
'large'
type=
"primary"
><Icon
type=
"ios-pause"
/>
暂停
</Button>
<Button
class=
"button"
size=
'large'
type=
"primary"
><Icon
type=
"logo-angular"
/>
交检
</Button>
<Button
class=
"button"
size=
'large'
type=
"primary"
><Icon
type=
"ios-checkmark-circle-outline"
/>
完工
</Button>
<Button
class=
"button"
size=
'large'
type=
"primary"
><Icon
type=
"md-swap"
/>
转序交接
</Button>
</div>
<div
class=
"footer_box"
>
<div
class=
"ul_box fl"
>
<ul>
<li>
名称:名称1
</li>
<li>
图号:UIGT-763245
</li>
<li>
状态:未开工
</li>
<li>
订单编号:097543346
</li>
<li>
订单属性1:
</li>
<li>
订单属性2:
</li>
<li>
订单属性3:
</li>
<li>
计划数量:10
</li>
<li>
节点日期:2020-02-25
</li>
</ul>
</div>
<div
class=
"ul_box fl"
>
<ul>
<li>
工序名称:名称1
</li>
<li>
工序序号:UIGT-763245
</li>
<li>
派工数量:66
</li>
<li>
资源名称:23366
</li>
<li>
资源编号:986732038
</li>
<li>
人员信息:
</li>
<li>
开始时间:
</li>
<li>
结束时间:
</li>
<li>
单件工时:10
</li>
<li>
准备工时:2020-02-25
</li>
</ul>
</div>
<div
class=
"img_box fl"
>
图片区
</div>
</div>
<div
class=
"data-filling"
>
<div
class=
"data-title"
>
<span
class=
"ml20"
>
产品号
</span>
<ProductNumberSelect
v-model=
"product_ID"
:eid=
"row.orderId"
ref=
"codes"
@
on-change=
"change"
class=
"select-produt-name"
/>
<!--
<template
v-if=
"datasearch.isMain!=1"
>
<span
class=
"ml20"
>
汇报板次
</span>
<Select
@
on-change=
"boardonchange"
v-model=
"board_ID"
class=
"w200"
>
<Option
v-for=
"item in board_List"
:value=
"item.boardNumber"
:key=
"item.index"
>
{{
item
.
boardNumber
}}
</Option>
</Select>
</
template
>
-->
<Button
type=
"primary"
@
click=
"QcCardChecker(1)"
class=
"title_btn ml10"
>
自检
</Button>
<Button
type=
"primary"
:disabled=
"ishavhj"
@
click=
"QcCardChecker(2)"
class=
"title_btn ml10"
>
互检
</Button>
<Button
type=
"primary"
:disabled=
"ishavzj"
@
click=
"SendCheck()"
class=
"title_btn ml10"
>
送检
</Button>
<Button
type=
"primary"
:disabled=
"ishavzj"
@
click=
"SendCheckRecord()"
class=
"title_btn ml10"
>
送检记录
</Button>
</div>
<div
class=
"table-i"
>
<Table
border
:columns=
"columns12"
:data=
"recorddata"
>
<!-- 自检 -->
<
template
slot-scope=
"{ row,index }"
slot=
"selffillin"
>
<template
v-if=
"row.selfchecklist.fillinstatus==0||productobj.productstatus==4"
>
<Checkbox
v-model=
"row.selfchecklist.checkstatus"
@
on-change=
"selfchecklistcheck(index,$event)"
v-if=
"row.fillintype == 1"
></Checkbox>
<Input
v-model=
"row.selfchecklist.fill_in_content"
v-else-if=
"row.fillintype == 2"
placeholder=
"请输入..."
@
on-blur=
"selfchecklistinput(index,row.selfchecklist.fill_in_content)"
></Input>
<template
v-else
>
<op
class=
"view"
@
click=
"showrecordData(row,1,true)"
v-if=
"row.selfchecklist.fill_in_content==''"
v-text=
"row.fillintype_str"
></op>
<op
class=
"view"
@
click=
"showrecordData(row,1,true)"
v-else
v-text=
"look"
></op>
</
template
>
</template>
<
template
v-else
>
<template
v-if=
"row.fillintype == 1"
>
{{
row
.
selfchecklist
.
user_name
}}
{{
row
.
selfchecklist
.
addTime
}}
</
template
>
<
template
v-else-if=
"row.fillintype ==2"
>
<op
class=
"view"
>
{{
row
.
selfchecklist
.
fill_in_content
}}
</op>
{{
row
.
selfchecklist
.
user_name
}}
{{
row
.
selfchecklist
.
addTime
}}
</
template
>
<
template
v-else
>
<op
class=
"view"
@
click=
"showrecordData(row,1,false)"
v-text=
"row.selfchecklist.user_name+' '+row.selfchecklist.addTime"
></op>
</
template
>
</template>
</template>
<!--互检-->
<
template
slot-scope=
"{ row,index }"
slot=
"mutualfillin"
>
<template
v-if=
"row.check_type==2||row.check_type==4"
>
<!--未填报-->
<template
v-if=
"row.mutualchecklist.fillinstatus==0||productobj.productstatus==4"
>
<!--自检完成-->
<template
v-if=
"productobj.productstatus==2||productobj.productstatus==4"
>
<Checkbox
v-model=
"row.mutualchecklist.checkstatus"
@
on-change=
"mutualchecklistcheck(index,$event)"
v-if=
"row.fillintype == 1"
></Checkbox>
<Input
v-model=
"row.mutualchecklist.fill_in_content"
v-else-if=
"row.fillintype == 2"
placeholder=
"请输入..."
@
on-blur=
"mutualchecklistinput(index,row.mutualchecklist.fill_in_content)"
></Input>
<template
v-else
>
<op
class=
"view"
@
click=
"showrecordData(row,2,true)"
v-if=
"row.mutualchecklist.fill_in_content==''"
v-text=
"row.fillintype_str"
></op>
<op
class=
"view"
@
click=
"showrecordData(row,2,true)"
v-else
v-text=
"look"
></op>
</
template
>
</template>
</template>
<
template
v-else
>
<template
v-if=
"row.fillintype == 1"
>
{{
row
.
mutualchecklist
.
user_name
}}
{{
row
.
mutualchecklist
.
addTime
}}
</
template
>
<
template
v-else-if=
"row.fillintype ==2"
>
<op
class=
"view"
>
{{
row
.
mutualchecklist
.
fill_in_content
}}
</op>
{{
row
.
mutualchecklist
.
user_name
}}
{{
row
.
mutualchecklist
.
addTime
}}
</
template
>
<
template
v-else
>
<op
class=
"view"
@
click=
"showrecordData(row,2,false)"
v-text=
"row.mutualchecklist.user_name+' '+row.mutualchecklist.addTime"
></op>
</
template
>
</template>
</template>
</template>
<!-- 检验员 -->
<
template
slot-scope=
"{ row,index }"
slot=
"seizurefillin"
>
<template
v-if=
"row.check_type==3||row.check_type==4"
>
<template
v-if=
"row.seizurechecklist.fillinstatus==1"
>
<template
v-if=
"row.fillintype == 1"
>
{{
row
.
seizurechecklist
.
user_name
}}
{{
row
.
seizurechecklist
.
addTime
}}
</
template
>
<
template
v-else-if=
"row.fillintype ==2"
>
<op
class=
"view"
>
{{
row
.
seizurechecklist
.
fill_in_content
}}
</op>
{{
row
.
seizurechecklist
.
user_name
}}
{{
row
.
seizurechecklist
.
addTime
}}
</
template
>
<
template
v-else
>
<op
class=
"view"
@
click=
"showrecordData(row,3,false)"
v-text=
"row.seizurechecklist.user_name+' '+row.seizurechecklist.addTime"
></op>
</
template
>
</template>
</template>
</template>
<
template
slot-scope=
"{ row,index }"
slot=
"isPhotograph"
>
<template
v-if=
"row.isPhotograph==0"
>
<op
class=
"view"
></op>
</
template
>
<
template
v-else
>
<op
class=
"view"
@
click=
"showPhoto(row,false)"
>
查看
</op>
</
template
>
</template>
</Table>
</div>
<Modal
v-model=
"usercardModal"
title=
"刷卡汇报"
width=
"500"
:footer-hide=
"true"
:mask-closable=
"false"
>
<usercard
ref=
"usercard"
@
on-ok=
"ok"
></usercard>
</Modal>
<Modal
v-model=
"sendCheckModal"
title=
"产品送检"
width=
"500"
:footer-hide=
"true"
:mask-closable=
"false"
>
<sendCheck
ref=
"sendCheck"
></sendCheck>
</Modal>
<Modal
v-model=
"entryrecorddataModal"
title=
"数据包列表"
width=
"940"
:footer-hide=
"true"
:mask-closable=
"false"
>
<entryrecorddata
ref=
"entryrecorddata"
@
binddataid=
"binddataid"
></entryrecorddata>
</Modal>
<Modal
v-model=
"entryrecordfilesModal"
title=
"附件列表"
width=
"940"
:footer-hide=
"true"
:mask-closable=
"false"
>
<entryrecordfiles
@
binddataid=
"binddataid"
ref=
"entryrecordfiles"
></entryrecordfiles>
</Modal>
<Modal
v-model=
"entryrecordmovieModal"
title=
"上传照片"
width=
"1340"
height=
"500"
:footer-hide=
"true"
:mask-closable=
"false"
>
<entryrecordMovie
@
bindPhotoid=
"bindPhotoid"
ref=
"entryrecordMovie"
></entryrecordMovie>
</Modal>
<Modal
v-model=
"sendCheckRecordModal"
title=
"送检记录"
width=
"1340"
:footer-hide=
"true"
:mask-closable=
"false"
>
<sendCheckRecord
ref=
"sendCheckRecord"
></sendCheckRecord>
</Modal>
</div>
</template>
<
script
>
import
service
from
"@/plugins/request"
;
import
usercard
from
"./usercard.vue"
;
import
sendCheck
from
"./sendCheck.vue"
;
import
entryrecorddata
from
"./entryrecorddata.vue"
;
import
entryrecordMovie
from
"./entryrecordMovie.vue"
;
import
sendCheckRecord
from
"./sendCheckRecord.vue"
;
import
entryrecordfiles
from
"./entryrecordfiles.vue"
;
export
default
{
name
:
'starOrder'
,
data
(){
return
{
starmodal
:
false
,
name
:
"starOrder"
,
props
:
[
"row"
],
components
:
{
usercard
,
sendCheck
,
entryrecorddata
,
entryrecordMovie
,
sendCheckRecord
,
entryrecordfiles
},
data
()
{
return
{
product_ID
:
""
,
disabled
:
false
,
ishavhj
:
false
,
ishavzj
:
true
,
board_ID
:
""
,
board_List
:
[],
usercardModal
:
false
,
sendCheckModal
:
false
,
entryrecorddataModal
:
false
,
entryrecordfilesModal
:
false
,
entryrecordmovieModal
:
false
,
sendCheckRecordModal
:
false
,
recorddata
:
[],
entryModel
:
{},
look
:
"查看"
,
qc_show_data
:
null
,
//表格列表row
qc_show_fill_in_user_type
:
null
,
//1,2,3;自检,互检,检验员
datasearch
:
{
entryID
:
this
.
row
.
id
,
isMain
:
1
,
productcode
:
""
,
execute_id
:
this
.
row
.
executeId
,
order_id
:
this
.
row
.
orderId
},
columns12
:
[
{
title
:
"序号"
,
type
:
"index"
,
width
:
"70"
,
align
:
"center"
},
{
title
:
"参数名称"
,
key
:
"check_params"
},
{
title
:
"检验标记"
,
key
:
"check_type_str"
},
{
title
:
"汇报类型"
,
key
:
"fillintype_str"
},
{
title
:
"标准指标"
,
key
:
"standard"
},
{
title
:
"生产要求"
,
key
:
"production_requirement"
,
tooltip
:
true
},
{
title
:
"检测内容"
,
key
:
"check_content"
,
tooltip
:
true
},
{
title
:
"操作员"
,
key
:
"fillintype"
,
renderHeader
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
[
h
(
"Checkbox"
,
{
props
:
{
value
:
this
.
isselfCheckAll
},
on
:
{
"on-change"
:
()
=>
{
this
.
handleselfCheckAll
();
//点击修改下面Checkbox的状态
}
}
},
"操作员"
)
]);
},
slot
:
"selffillin"
},
{
title
:
"互检员"
,
key
:
"mutual"
,
renderHeader
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
[
h
(
"Checkbox"
,
{
props
:
{
value
:
this
.
ismutualCheckAll
},
on
:
{
"on-change"
:
()
=>
{
this
.
handlemutualCheckAll
();
//点击修改下面Checkbox的状态
}
}
},
"互检员"
)
]);
},
slot
:
"mutualfillin"
},
{
title
:
"检验员"
,
key
:
"seizure"
,
renderHeader
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
[
h
(
"Checkbox"
,
{
props
:
{
value
:
this
.
isseizureCheckAll
},
on
:
{
"on-change"
:
()
=>
{
this
.
handleseizureCheckAll
();
//点击修改下面Checkbox的状态
}
}
},
"检验员"
)
]);
},
slot
:
"seizurefillin"
},
{
title
:
"是否拍照"
,
key
:
"isPhotograph"
,
slot
:
"isPhotograph"
},
{
title
:
"模板"
,
key
:
"qualityTemplate"
,
render
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
{
class
:
"icon_box"
},
[
h
(
"A"
,
{
attrs
:
{
href
:
fileUrlDown
+
params
.
row
.
qualityTemplate
,
target
:
"_blank"
},
props
:
{},
style
:
{
color
:
"#249E91"
,
marginRight
:
"5px"
,
cursor
:
"pointer"
}
},
params
.
row
.
qualityTemplateName
)
]
);
}
}
]
};
},
created
()
{
this
.
datasearch
.
entryID
=
this
.
row
.
id
;
this
.
datasearch
.
isMain
=
1
;
this
.
datasearch
.
productcode
=
this
.
datasearch
.
productcode
;
this
.
datasearch
.
execute_id
=
this
.
row
.
executeId
;
this
.
datasearch
.
order_id
=
this
.
row
.
orderId
;
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{
this
.
loaddata
();
},
methods
:
{
loaddata
()
{
// if (
// this.datasearch.productcode == '' ||
// typeof this.datasearch.productcode == 'undefined'
// ) {
// return
// }
var
url
=
`
${
PlanUrl
}
/orderexecutequalityrecord/getentryqcrecordlist_new`
;
service
.
get
(
url
,
this
.
datasearch
).
then
(
response
=>
{
this
.
recorddata
=
response
.
result
;
let
gh
=
this
.
recorddata
.
filter
(
function
(
obj
)
{
return
obj
.
check_type
===
2
;
});
if
(
gh
!=
null
&&
gh
.
length
>
0
)
{
this
.
ishavhj
=
false
;
}
else
{
this
.
ishavhj
=
true
;
}
let
gh1
=
this
.
recorddata
.
filter
(
function
(
obj
)
{
return
obj
.
check_type
===
3
||
obj
.
check_type
===
4
;
});
if
(
gh1
!=
null
&&
gh1
.
length
>
0
)
{
this
.
ishavzj
=
false
;
}
else
{
this
.
ishavzj
=
true
;
}
});
},
created
()
{
// this.treeHeight = window.innerHeight - 120;
change
(
v
)
{
this
.
datasearch
.
productcode
=
v
.
join
(
","
);
this
.
loaddata
();
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
showrecordData
(
params
,
fill_in_user_type
,
isedit
)
{
this
.
qc_show_data
=
params
;
//表格列表row
this
.
qc_show_fill_in_user_type
=
fill_in_user_type
;
//1,2,3;自检,互检,检验员
if
(
params
.
fillintype
==
3
)
{
//fillintype 1 选择框 2 输入框 3 附件 4 键值对数据
//附件页面
this
.
entryrecordfilesModal
=
true
;
this
.
$refs
.
entryrecordfiles
.
loadpage
(
params
,
fill_in_user_type
,
this
.
product_ID
,
this
.
board_ID
,
isedit
);
}
else
if
(
params
.
fillintype
==
4
)
{
//数据包页面
this
.
entryrecorddataModal
=
true
;
this
.
$refs
.
entryrecorddata
.
loadpage
(
params
,
fill_in_user_type
,
this
.
product_ID
,
this
.
board_ID
,
isedit
);
}
},
mounted
()
{
window
.
onresize
=
()
=>
{
///浏览器窗口大小变化
return
(()
=>
{
this
.
treeHeight
=
window
.
innerHeight
-
120
;
})();
};
binddataid
(
qc_card_id
,
fill_in_user_type
,
content
)
{
for
(
let
i
=
0
;
i
<
this
.
recorddata
.
length
;
i
++
)
{
let
obj
=
this
.
recorddata
[
i
];
if
(
obj
.
qc_card_id
==
qc_card_id
)
{
if
(
fill_in_user_type
==
1
)
{
obj
.
selfchecklist
.
fill_in_content
=
content
;
}
else
if
(
fill_in_user_type
==
2
)
{
obj
.
mutualchecklist
.
fill_in_content
=
content
;
}
else
if
(
fill_in_user_type
==
3
)
{
obj
.
seizurechecklist
.
fill_in_content
=
content
;
}
}
}
},
methods
:
{
starFun
(){
this
.
$Message
.
success
(
"开工..."
)
},
// loadproduct() {
// var url =
// `${PlanUrl}/orderexecutequalityrecord/getentryproductcode?entryID=` +
// this.datasearch.entryID;
// service.get(`${url}`).then(response => {
// this.product_List = response.result;
// this.board_List = response.result;
// for (let i = 0; i
<
this
.
product_List
.
length
;
i
++
)
{
// let obj = this.product_List[i];
// if (obj.productstatus == 1 || obj.productstatus == 2) {
// if (this.datasearch.isMain == 1) {
// this.datasearch.productcode = obj.productids;
// this.product_ID = obj.productids;
// this.disabled = false;
// } else {
// this.datasearch.productcode = obj.boardNumber;
// // this.board_ID = obj.boardNumber;
// this.product_ID = obj.productids;
// this.disabled = true;
// }
// this.productobj = obj;
// break;
// }
// if (
// this.productobj == null ||
// this.datasearch.productcode == "" ||
// typeof this.datasearch.productcode == "undefined"
// ) {
// let obj = this.product_List[0];
// if (this.datasearch.isMain == 1) {
// this.datasearch.productcode = obj.productids;
// this.product_ID = obj.productids;
// this.disabled = false;
// } else {
// this.datasearch.productcode = obj.boardNumber;
// // this.board_ID = obj.boardNumber;
// this.product_ID = obj.productids;
// this.disabled = true;
// }
// this.productobj = obj;
// }
// }
// this.loaddata();
// });
// },
showPhoto
(
params
,
isedit
)
{
this
.
entryrecordmovieModal
=
true
;
this
.
$refs
.
entryrecordMovie
.
loadpage
(
params
,
this
.
product_ID
,
this
.
board_ID
,
isedit
);
},
}
ok
()
{
this
.
usercardModal
=
false
;
this
.
loaddata
();
},
bindPhotoid
(
qc_card_id
,
content
)
{
for
(
let
i
=
0
;
i
<
this
.
recorddata
.
length
;
i
++
)
{
let
obj
=
this
.
recorddata
[
i
];
if
(
obj
.
qc_card_id
==
qc_card_id
)
{
obj
.
movieid
=
content
;
}
}
},
handleselfCheckAll
()
{
this
.
isselfCheckAll
=
!
this
.
isselfCheckAll
;
console
.
log
(
this
.
recorddata
);
for
(
let
i
=
0
;
i
<
this
.
recorddata
.
length
;
i
++
)
{
let
obj
=
this
.
recorddata
[
i
];
if
(
obj
.
fillintype
==
1
)
{
obj
.
selfchecklist
.
fill_in_content
=
this
.
isselfCheckAll
?
"1"
:
"0"
;
obj
.
selfchecklist
.
checkstatus
=
this
.
isselfCheckAll
;
}
}
},
handlemutualCheckAll
()
{
this
.
ismutualCheckAll
=
!
this
.
ismutualCheckAll
;
for
(
let
i
=
0
;
i
<
this
.
recorddata
.
length
;
i
++
)
{
let
obj
=
this
.
recorddata
[
i
];
if
(
obj
.
fillintype
==
1
)
{
obj
.
mutualchecklist
.
fill_in_content
=
this
.
ismutualCheckAll
?
"1"
:
"0"
;
obj
.
mutualchecklist
.
checkstatus
=
this
.
ismutualCheckAll
;
}
}
},
handleseizureCheckAll
()
{
this
.
isseizureCheckAll
=
!
this
.
isseizureCheckAll
;
for
(
let
i
=
0
;
i
<
this
.
recorddata
.
length
;
i
++
)
{
let
obj
=
this
.
recorddata
[
i
];
if
(
obj
.
fillintype
==
1
)
{
obj
.
seizurechecklist
.
fill_in_content
=
this
.
isseizureCheckAll
?
"1"
:
"0"
;
obj
.
seizurechecklist
.
checkstatus
=
this
.
isseizureCheckAll
;
}
}
},
show
(
index
)
{
this
.
$Modal
.
info
({
title
:
"User Info"
,
content
:
`Name:
${
this
.
data6
[
index
].
name
}
<br>Age:
${
this
.
data6
[
index
].
age
}
<br>Address:
${
this
.
data6
[
index
].
address
}
`
});
},
remove
(
index
)
{
this
.
data6
.
splice
(
index
,
1
);
},
// change(e) {
// this.entity.productQuantity = e.length + ''
// },
QcCardChecker
(
fill_in_user_type
)
{
// console.log(this.$refs.codes.dic);
this
.
$refs
.
usercard
.
product_List
=
this
.
$refs
.
codes
.
dic
;
this
.
usercardModal
=
true
;
let
fillModel
=
{
fill_in_user_type
:
fill_in_user_type
,
//自检,互检
// productisabled: this.productisabled,
product_ID
:
this
.
product_ID
,
// board_ID: this.board_ID,
product_List
:
this
.
$refs
.
codes
.
dic
// board_List: this.board_List
};
let
recordList
=
[];
for
(
let
i
=
0
;
i
<
this
.
recorddata
.
length
;
i
++
)
{
let
obj
=
this
.
recorddata
[
i
];
console
.
log
(
obj
);
if
(
fill_in_user_type
==
1
)
{
//自检
// &&
// obj.selfchecklist != null &&
// obj.selfchecklist.fill_in_content != null &&
// obj.selfchecklist.fill_in_content != ""
if
(
obj
.
selfchecklist
.
fillinstatus
==
"0"
||
this
.
productobj
.
productstatus
==
4
//打回重写填报
)
{
let
qc
=
{
qc_card_id
:
obj
.
qc_card_id
,
movieid
:
obj
.
movieid
,
Fillintype
:
obj
.
fillintype
,
fill_in_content
:
obj
.
selfchecklist
.
fill_in_content
,
fillinstatus
:
"1"
,
dispatch_id
:
obj
.
dispatch_id
};
recordList
.
push
(
qc
);
}
}
else
if
(
fill_in_user_type
==
2
)
{
//互检
if
(
obj
.
check_type
==
2
||
obj
.
check_type
==
3
)
{
//是否需要互检,2和3需要互检和专检 inspect_type
if
(
(
obj
.
mutualchecklist
.
fillinstatus
==
"0"
&&
obj
.
mutualchecklist
!=
null
&&
obj
.
mutualchecklist
.
fill_in_content
!=
null
&&
obj
.
mutualchecklist
.
fill_in_content
!=
""
)
||
this
.
productobj
.
productstatus
==
4
//打回重写填报
)
{
let
qc
=
{
qc_card_id
:
obj
.
qc_card_id
,
movieid
:
obj
.
movieid
,
Fillintype
:
obj
.
fillintype
,
fill_in_content
:
obj
.
mutualchecklist
.
fill_in_content
,
fillinstatus
:
"1"
,
dispatch_id
:
obj
.
dispatch_id
};
recordList
.
push
(
qc
);
}
}
}
else
if
(
inspect_type
==
3
)
{
}
}
if
(
recordList
.
length
==
0
)
{
this
.
$Message
.
success
(
"填报项为空,请进行填报"
);
return
;
}
this
.
$refs
.
usercard
.
loadentry
(
this
.
entryModel
,
fillModel
,
recordList
);
},
selfchecklistcheck
(
index
,
e
)
{
alert
(
e
);
this
.
recorddata
[
index
].
selfchecklist
.
checkstatus
=
e
;
this
.
recorddata
[
index
].
selfchecklist
.
fill_in_content
=
e
?
"1"
:
"0"
;
},
selfchecklistinput
(
index
,
e
)
{
this
.
recorddata
[
index
].
selfchecklist
.
fill_in_content
=
e
;
},
mutualchecklistcheck
(
index
,
e
)
{
this
.
recorddata
[
index
].
mutualchecklist
.
checkstatus
=
e
;
this
.
recorddata
[
index
].
mutualchecklist
.
fill_in_content
=
e
?
"1"
:
"0"
;
},
mutualchecklistinput
(
index
,
e
)
{
this
.
recorddata
[
index
].
mutualchecklist
.
fill_in_content
=
e
;
},
seizurechecklistcheck
(
index
,
e
)
{
this
.
recorddata
[
index
].
seizurechecklist
.
checkstatus
=
e
;
this
.
recorddata
[
index
].
seizurechecklist
.
fill_in_content
=
e
?
"1"
:
"0"
;
},
seizurechecklistinput
(
index
,
e
)
{
this
.
recorddata
[
index
].
seizurechecklist
.
fill_in_content
=
e
.
target
.
value
;
},
SendCheck
()
{
this
.
sendCheckModal
=
true
;
this
.
$refs
.
sendCheck
.
loadentry
(
this
.
entryModel
);
},
SendCheckRecord
()
{
this
.
sendCheckRecordModal
=
true
;
this
.
$refs
.
sendCheckRecord
.
load
(
this
.
entryModel
.
id
);
}
}
};
</
script
>
<
style
lang=
"less"
>
.data-filling {
padding: 10px;
width: 100%;
.data-title {
margin-bottom: 10px;
.ml20 {
padding: 8px;
float: left;
}
.select-produt-name {
width: 200px;
float: left;
}
}
.table-i {
margin: 0 20px;
}
}
</
style
>
pages/produce/execute/datafilling/sendCheck.vue
0 → 100644
View file @
79d34cd5
<
template
>
<Form
ref=
"form"
:model=
"user"
:label-width=
"100"
>
<Row
class=
"rowTitle100"
>
<Col
:span=
"12"
>
<Checkbox
v-model=
"isall"
@
on-change=
"peoductAllOnchange"
></Checkbox>
<span
class=
"ml20"
>
产品号
</span>
<Select
:disabled=
"disabled"
multiple
@
on-change=
"productonchange"
v-model=
"product_ID"
class=
"w200"
>
<Option
v-for=
"item in product_List"
:value=
"item.productids"
:key=
"item.index"
>
{{
item
.
productcodes
}}
</Option>
</Select>
</Col>
</Row>
<Row
class=
"rowTitle100"
>
<Col
:span=
"12"
>
<FormItem
label=
"检验员"
>
<CheckboxGroup
v-model=
"checker"
class=
"radio_option"
>
<Checkbox
v-for=
"(item,index) in checkerlist"
:label=
"item.id"
:key=
"index"
>
<span>
{{
item
.
userName
}}
</span>
</Checkbox>
</CheckboxGroup>
</FormItem>
</Col>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
确定
</Button>
</FormItem>
</Form>
</
template
>
<
script
>
import
service
from
'@/plugins/request'
import
QS
from
'querystring'
export
default
{
name
:
'sendCheck'
,
components
:
{},
data
()
{
return
{
disabled
:
false
,
isCurrentUser
:
false
,
checkerlist
:
[],
checker
:
[],
user
:
{
id
:
0
,
dispatch_id
:
0
,
execute_id
:
0
,
order_id
:
''
,
routingHeaderId
:
0
,
routingDetailId
:
0
,
product_code
:
''
,
board_code
:
''
,
checkerIds
:
''
,
checkerNames
:
''
,
check_Status
:
0
,
check_Result
:
''
,
checker
:
0
,
check_time
:
null
},
isall
:[],
isMain
:
1
,
productisabled
:
false
,
product_ID
:
[],
board_ID
:
[],
product_List
:
[],
board_List
:
[]
}
},
mounted
()
{},
watch
:
{},
methods
:
{
handleSubmit
()
{
let
state
=
true
if
(
this
.
product_ID
.
length
==
0
)
{
state
=
false
this
.
$Message
.
error
(
'请选择要送检的产品'
)
return
}
this
.
user
.
product_code
=
this
.
product_ID
.
join
(
','
)
this
.
user
.
board_code
=
this
.
board_ID
.
join
(
','
)
if
(
this
.
checker
.
length
==
0
)
{
state
=
false
this
.
$Message
.
error
(
'请选择检验员'
)
return
}
else
{
let
checkername
=
[]
for
(
let
i
=
0
;
i
<
this
.
checker
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
this
.
checkerlist
.
length
;
j
++
)
{
if
(
this
.
checkerlist
[
j
].
id
==
this
.
checker
[
i
])
{
checkername
.
push
(
this
.
checkerlist
[
j
].
userName
)
}
}
}
this
.
user
.
checkerIds
=
this
.
checker
.
join
(
','
)
this
.
user
.
checkerNames
=
checkername
.
join
(
','
)
}
if
(
state
)
{
var
url
=
`
${
PlanUrl
}
/ordercheckresult/sendcheck`
service
.
post
(
`
${
url
}
`
,
this
.
user
)
.
then
((
response
)
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
'保存成功'
)
this
.
$parent
.
$parent
.
loadproduct
()
this
.
$parent
.
$parent
.
sendCheckModal
=
false
}
})
.
catch
((
error
)
=>
{
this
.
$Message
.
error
(
'保存失败'
)
})
}
},
handleClose
()
{},
loadentry
(
entryModel
)
{
this
.
user
.
dispatch_id
=
entryModel
.
id
this
.
user
.
execute_id
=
entryModel
.
executeId
this
.
user
.
order_id
=
entryModel
.
order_id
this
.
user
.
routingHeaderId
=
entryModel
.
routingHeaderId
this
.
user
.
routingDetailId
=
entryModel
.
routingDetailId
this
.
isMain
=
entryModel
.
isMain
if
(
this
.
isMain
==
1
)
{
this
.
disabled
=
false
}
else
{
this
.
disabled
=
true
}
this
.
checker
=
[]
;(
this
.
product_ID
=
[]),
(
this
.
board_ID
=
[]),
this
.
loadproduct
()
this
.
loaduser
()
},
loadproduct
()
{
var
url
=
`
${
PlanUrl
}
/ordercheck/sendcheckproductcode?entryID=`
+
this
.
user
.
dispatch_id
service
.
post
(
`
${
url
}
`
).
then
((
response
)
=>
{
this
.
product_List
=
response
.
result
this
.
board_List
=
response
.
result
})
},
loaduser
()
{
let
params
=
{
role_type
:
1
,
name
:
'检验'
,
isSelect
:
1
,
pageSize
:
10
,
page
:
1
}
var
url
=
systemUrl
+
'/MyRole/GetRolesAsync?'
+
QS
.
stringify
(
params
)
service
.
get
(
`
${
url
}
`
).
then
((
response
)
=>
{
let
roles
=
response
.
result
.
items
let
roleids
=
[]
for
(
let
i
=
0
;
i
<
roles
.
length
;
i
++
)
{
roleids
.
push
(
roles
[
i
].
id
)
}
// let userInfo = this.$store.admin.user.info;
// var url =
// `${systemUrl}/myuserrole/GetUsersByRoleAndorgan?ids=` +
// roleids.join(',') +
// '&&organId=0&userid=' +
// userInfo.userId
var
url
=
`
${
systemUrl
}
/myuserrole/GetUsersByRole?ids=`
+
roleids
.
join
(
','
)
service
.
get
(
`
${
url
}
`
).
then
((
response
)
=>
{
for
(
let
j
=
0
;
j
<
response
.
result
.
length
;
j
++
)
{
let
user
=
response
.
result
[
j
]
var
index
=
this
.
checkerlist
.
filter
(
function
(
item
)
{
return
item
.
id
===
user
.
id
})
if
(
index
.
length
==
0
)
{
this
.
checkerlist
.
push
(
user
)
}
}
})
})
},
peoductAllOnchange
(
e
)
{
if
(
e
)
{
// if (!this.isMain) {
// for (let i = 0; i
<
this
.
board_List
.
length
;
i
++
)
{
// let obj = this.board_List[i]
// this.board_ID.push(obj.boardNumber)
// }
// }
for
(
let
i
=
0
;
i
<
this
.
product_List
.
length
;
i
++
)
{
let
obj
=
this
.
product_List
[
i
]
this
.
product_ID
.
push
(
obj
.
productids
)
}
}
else
{
this
.
product_ID
=
[]
// this.board_ID = []
}
},
productonchange
(
e
)
{},
boardonchange
(
e
)
{
this
.
product_ID
=
[]
for
(
let
i
=
0
;
i
<
this
.
board_List
.
length
;
i
++
)
{
let
obj
=
this
.
board_List
[
i
]
for
(
let
j
=
0
;
j
<
e
.
length
;
j
++
)
{
if
(
obj
.
boardNumber
==
e
[
j
])
{
this
.
product_ID
.
push
(
obj
.
productids
)
}
}
}
}
}
}
</
script
>
\ No newline at end of file
pages/produce/execute/datafilling/sendCheckRecord.vue
0 → 100644
View file @
79d34cd5
<
template
>
<div
class=
"new_box"
>
<Table
stripe
ref=
"table"
border
:columns=
"moviecolumn"
:data=
"moviedata"
class=
"tableCommon"
></Table>
<Page
:total=
"datatotal"
:current=
"pageindex"
:page-size=
"pagesize"
@
on-change=
"onPageChanged"
@
on-page-size-change=
"onPagesizeChanged"
show-sizer
class=
"pt10 pl10"
show-elevator
show-total
/>
</div>
</
template
>
<
script
>
import
service
from
'@/plugins/request'
import
QS
from
'querystring'
export
default
{
name
:
'sendCheckRecord'
,
components
:
{},
data
()
{
return
{
pageindex
:
1
,
pagesize
:
10
,
datatotal
:
0
,
datasearch
:
{
dispatch_id
:
0
,
MaxResultCount
:
10
,
SkipCount
:
0
},
moviedata
:
[],
moviecolumn
:
[
// { title: '', key: 'organizType1', type: 'expand',width:'60'},
{
title
:
'序号'
,
type
:
'index'
,
width
:
'100'
,
align
:
'center'
},
{
title
:
'产品号'
,
width
:
'100'
,
key
:
'product_code'
},
{
title
:
'板号'
,
width
:
'100'
,
key
:
'board_code'
},
{
title
:
'送检检验员'
,
width
:
'150'
,
key
:
'checkerNames'
},
{
title
:
'送检时间'
,
width
:
'180'
,
key
:
'creationTime'
},
{
title
:
'状态'
,
key
:
'check_Status'
,
align
:
'center'
,
width
:
'120'
,
render
:
(
h
,
params
)
=>
{
let
desc
=
''
if
(
params
.
row
.
check_Status
==
1
)
{
desc
=
'待检验'
}
else
if
(
params
.
row
.
check_Status
==
2
)
{
desc
=
'检验成功'
}
else
if
(
params
.
row
.
check_Status
==
3
)
{
desc
=
'检验打回'
}
return
h
(
'div'
,
desc
)
}
},
{
title
:
'检验员'
,
width
:
'100'
,
key
:
'checkName'
},
{
title
:
'检验时间'
,
width
:
'180'
,
key
:
'check_time'
},
{
title
:
'备注'
,
key
:
'check_Result'
}
]
}
},
mounted
()
{},
methods
:
{
load
(
dispatch_id
)
{
console
.
log
(
dispatch_id
)
this
.
datasearch
.
dispatch_id
=
dispatch_id
this
.
loaddata
()
},
loaddata
()
{
this
.
datasearch
.
SkipCount
=
(
this
.
pageindex
-
1
)
*
this
.
datasearch
.
MaxResultCount
var
url
=
`
${
PlanUrl
}
/ordercheckresult/getpaged?`
+
QS
.
stringify
(
this
.
datasearch
)
service
.
get
(
`
${
url
}
`
).
then
((
response
)
=>
{
if
(
response
.
result
!=
null
)
{
this
.
moviedata
=
response
.
result
.
items
this
.
datatotal
=
response
.
result
.
totalCount
}
})
},
onPageChanged
(
page_index
)
{
this
.
pageindex
=
page_index
this
.
loaddata
()
},
onPagesizeChanged
(
page_size
)
{
this
.
pagesize
=
page_size
this
.
loaddata
()
}
}
}
</
script
>
\ No newline at end of file
pages/produce/execute/datafilling/usercard.vue
0 → 100644
View file @
79d34cd5
<
template
>
<Form
ref=
"form"
:model=
"user"
:rules=
"rules"
:label-width=
"80"
class=
"shua-ka"
>
<Row
class=
"rowTitle100"
>
<Col
:span=
"24"
>
<Checkbox
v-model=
"isall"
@
on-change=
"peoductAllOnchange"
class=
"check"
></Checkbox>
<span>
产品号
</span>
<Select
multiple
@
on-change=
"productonchange"
v-model=
"product_ID"
class=
"w200"
>
<Option
v-for=
"item in product_List"
:value=
"item.value"
:key=
"item.index"
>
{{
item
.
label
}}
</Option>
</Select>
</Col>
</Row>
<Row
class=
"rowTitle100"
>
<Col
:span=
"24"
>
<FormItem
label=
"员工编号"
prop=
"cardno"
>
<Input
v-model=
"user.cardno"
></Input>
<Checkbox
v-model=
"isCurrentUser"
@
on-change=
"getCurrentUser"
>
当前用户
</Checkbox>
</FormItem>
</Col>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
确定
</Button>
</FormItem>
</Form>
</
template
>
<
script
>
import
service
from
"@/plugins/request"
;
export
default
{
name
:
"usercard"
,
components
:
{},
data
()
{
const
validateCarNo
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
"员工编号不能为空"
));
}
var
params
=
{
conditions
:
[
{
fieldName
:
"cardNo"
,
fieldValue
:
value
,
conditionalType
:
"Equal"
}
],
pageSize
:
3
};
service
.
post
(
`
${
systemUrl
}
/user/list`
,
params
).
then
(
response
=>
{
if
(
response
.
result
.
length
>
0
)
{
this
.
user
.
user_name
=
response
.
result
[
0
].
userName
;
this
.
user
.
user_id
=
response
.
result
[
0
].
id
;
callback
();
}
else
{
this
.
user
.
cardno
=
""
;
return
callback
(
new
Error
(
"员工编号不存在"
));
}
});
};
return
{
disabled
:
false
,
isCurrentUser
:
false
,
isall
:
false
,
width1
:
"400"
,
user
:
{
dispatch_id
:
0
,
execute_id
:
0
,
order_id
:
""
,
routingHeaderId
:
0
,
routingDetailId
:
0
,
product_code
:
[],
// board_code: [],
cardno
:
""
,
user_id
:
""
,
user_name
:
""
,
remarks
:
""
,
fill_in_user_type
:
0
,
reportdate
:
null
,
isreplace
:
0
},
recordList
:
[],
isMain
:
1
,
productisabled
:
false
,
product_ID
:
[],
// board_ID: [],
product_List
:
[],
board_List
:
[],
rules
:
{
cardno
:
[
{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
},
{
validator
:
validateCarNo
,
trigger
:
"blur"
}
]
}
};
},
mounted
()
{},
watch
:
{},
methods
:
{
handleSubmit
()
{
let
state
=
true
;
if
(
this
.
product_ID
.
length
==
0
)
{
state
=
false
;
this
.
$Message
.
error
(
"请选择要送检的产品"
);
return
;
}
this
.
user
.
product_code
=
this
.
product_ID
.
join
(
","
);
// this.user.board_code = this.board_ID.join(",");
if
(
state
)
{
this
.
$refs
.
form
.
validate
(
v
=>
{
if
(
v
)
{
var
url
=
`
${
PlanUrl
}
/orderexecutequalityrecord/qccardchecker`
;
service
.
post
(
`
${
url
}
`
,
{
user
:
this
.
user
,
card
:
this
.
recordList
})
.
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
// this.$parent.loadproduct();
// this.$parent.$parent.usercardModal = false;
this
.
$emit
(
'on-ok'
)
}
})
.
catch
(
error
=>
{
this
.
$Message
.
error
(
"保存失败"
);
});
}
});
}
},
handleClose
()
{},
loadentry
(
entryModel
,
fillModel
,
recordList
)
{
this
.
user
.
dispatch_id
=
recordList
[
0
].
dispatch_id
this
.
user
.
execute_id
=
entryModel
.
executeId
;
this
.
user
.
order_id
=
entryModel
.
order_id
;
this
.
user
.
routingHeaderId
=
entryModel
.
routingHeaderId
;
this
.
user
.
routingDetailId
=
entryModel
.
routingDetailId
;
this
.
user
.
fill_in_user_type
=
fillModel
.
fill_in_user_type
;
this
.
user
.
cardno
=
""
;
this
.
user
.
user_id
=
""
;
this
.
user
.
user_name
=
""
;
this
.
product_code
=
""
;
// this.board_code = "";
this
.
isCurrentUser
=
false
;
// this.isMain = entryModel.isMain;
this
.
product_ID
=
[];
// this.board_ID = [];
this
.
productisabled
=
fillModel
.
productisabled
;
this
.
product_List
=
fillModel
.
product_List
;
console
.
log
(
this
.
product_List
);
// if (this.isMain == 1) {
// this.productdisabled = false;
// } else {
// this.productdisabled = true;
// }
this
.
product_ID
.
push
(
fillModel
.
product_ID
);
alert
(
this
.
product_ID
);
// this.board_ID.push(fillModel.board_ID);
if
(
fillModel
.
fill_in_user_type
==
1
||
fillModel
.
fill_in_user_type
==
3
)
{
this
.
board_List
=
fillModel
.
board_List
;
}
else
{
this
.
board_List
=
[];
this
.
product_List
=
[];
for
(
let
i
=
0
;
i
<
fillModel
.
product_List
.
length
;
i
++
)
{
let
obj
=
fillModel
.
product_List
[
i
];
if
(
obj
.
productstatus
==
2
||
obj
.
productstatus
==
4
)
{
this
.
board_List
.
push
(
obj
);
this
.
product_List
.
push
(
obj
);
}
}
}
this
.
recordList
=
recordList
;
},
peoductAllOnchange
(
e
)
{
if
(
e
)
{
this
.
product_ID
=
[];
for
(
let
i
=
0
;
i
<
this
.
product_List
.
length
;
i
++
)
{
let
obj
=
this
.
product_List
[
i
];
this
.
product_ID
.
push
(
obj
.
value
);
}
}
else
{
this
.
product_ID
=
[];
// this.board_ID = [];
}
},
productonchange
(
e
)
{},
getCurrentUser
(
e
)
{
if
(
e
)
{
console
.
log
(
this
.
$store
.
state
.
admin
.
user
.
info
);
let
userInfo
=
this
.
$store
.
state
.
admin
.
user
.
info
;
this
.
user
.
cardno
=
userInfo
.
cardNo
;
this
.
user
.
user_name
=
userInfo
.
name
;
this
.
user
.
user_id
=
userInfo
.
id
;
}
else
{
this
.
user
.
cardno
=
""
;
}
}
}
};
</
script
>
<
style
lang=
"less"
>
.shua-ka {
padding: 0 20px;
.rowTitle100 {
margin-top: 10px;
.w200 {
width: 330px;
}
}
}
</
style
>
\ No newline at end of file
pages/produce/execute/execute.less
View file @
79d34cd5
...
...
@@ -2,14 +2,15 @@
.execute_box{
position: relative;
margin: 0px -10px;
// .top_title{
// height: 50px;
// line-height: 49px;
// text-align: center;
// font-weight: 600;
// padding: 0 15px;
// border-bottom: 1px solid #CACBD0;
// }
height:88vh;
.top_title{
height: 50px;
line-height: 49px;
text-align: center;
font-weight: 600;
padding: 0 15px;
border-bottom: 1px solid #CACBD0;
}
.star{
height: 33vh;
padding: 6vh 0;
...
...
pages/produce/execute/index.vue
View file @
79d34cd5
...
...
@@ -3,11 +3,11 @@
</
style
>
<
template
>
<div
class=
"execute_box"
>
<
!--
<
div
class=
"top_title"
>
<div
class=
"top_title"
>
<span
class=
"fl"
>
{{
orderTitle
}}
</span>
<div>
工单编号: 12001011
</div>
</div>
-->
<component
:is=
"detail"
:gdid=
"gdId"
/>
</div>
<component
:is=
"detail"
:gdid=
"gdId"
:row=
"row"
/>
<a
class=
"gd_list"
@
click=
"orderlistMode = true"
>
工单列表
</a>
<a
class=
"gn_area"
@
click=
"functionalMode = true"
>
功能区
</a>
<!-- 工单列表 -->
...
...
@@ -24,111 +24,148 @@
ref=
"state"
class=
"fr"
:value=
"item.value"
type=
"text"
></state>
-->
<!--
</Option>
</Select>
-->
</div>
<div
class=
"select_t"
>
<Button
class=
""
>
时间正序排列
</Button>
</div>
</div>
<orderlist
ref=
"orderlist"
/>
</Drawer>
<!-- title="功能区" -->
<Drawer
class=
"gn_box"
:closable=
"false"
:inner=
"true"
:transfer=
"false"
v-model=
"functionalMode"
>
<functional
@
changeTitle=
'changeTitle'
ref=
"functional"
/>
</Drawer>
</div>
></state>
-->
</Option>
</Select>
<!--
<a
class=
"openAll"
><Icon
type=
"ios-list"
size=
"18"
/>
展开全部列表
</a>
-->
</div>
<div
class=
"select_t"
>
<!--
<Select
v-model=
"odermodel"
style=
"width:100px"
@
on-change=
"searchOrder"
>
<Option
v-for=
"item in oderList"
:value=
"item.value"
:key=
"item.index"
>
{{
item
.
label
}}
</Option>
</Select>
-->
<!--
<span
class=
"gd_length"
>
{{
listLength
}}
</span>
-->
<Button
class
>
时间正序排列
</Button>
</div>
</div>
<orderlist
ref=
"orderlist"
/>
</Drawer>
<!-- title="功能区" -->
<Drawer
class=
"gn_box"
:closable=
"false"
:inner=
"true"
:transfer=
"false"
v-model=
"functionalMode"
>
<functional
@
changeTitle=
"changeTitle"
ref=
"functional"
/>
</Drawer>
</div>
</
template
>
<
script
>
import
functional
from
"./components/functional"
;
import
orderlist
from
"./components/orderlist"
;
export
default
{
components
:
{
functional
,
orderlist
,},
data
(){
return
{
orderTitle
:
'进度汇报'
,
orderindex
:
0
,
gdId
:
0
,
listLength
:
0
,
//工单数量
starmodal
:
true
,
orderlistMode
:
false
,
functionalMode
:
false
,
detail
:
null
,
odermodel
:
-
9
,
oderList
:[
{
value
:
-
9
,
label
:
'全部'
},{
value
:
12
,
label
:
'未开工'
},{
value
:
14
,
label
:
'执行中'
},{
value
:
0
,
label
:
'已完成'
},{
value
:
5
,
label
:
'暂停中'
},{
value
:
7
,
label
:
'已终止'
},{
value
:
-
1
,
label
:
'待派工'
},
// value: '交检中',
// label: '交检中'
// },{
// value: '交接中',
// label: '交接中'
// },{
],
condition
:[]
}
},
created
()
{
this
.
detail
=
()
=>
import
(
"./starOrder/index"
);
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{
},
comments
:{
},
methods
:
{
starFun
(){
this
.
$Message
.
success
(
"开工..."
)
components
:
{
functional
,
orderlist
},
data
()
{
return
{
orderTitle
:
"进度汇报"
,
orderindex
:
0
,
gdId
:
0
,
listLength
:
0
,
//工单数量
starmodal
:
true
,
orderlistMode
:
false
,
functionalMode
:
false
,
detail
:
null
,
odermodel
:
-
9
,
orderId
:
null
,
row
:{},
oderList
:
[
{
value
:
-
9
,
label
:
"全部"
},
// getListLength(len){ this.listLength = len },
// 返回工单列表
goToOrder
(){
this
.
$router
.
push
(
"/produce/orderlist"
);
{
value
:
12
,
label
:
"未开工"
},
searchOrder
(
value
){
this
.
$refs
.
orderlist
.
loadTree
(
value
);
{
value
:
14
,
label
:
"执行中"
},
changeTitle
(
number
,
type
){
this
.
orderTitle
=
type
this
.
orderindex
=
number
if
(
number
==
0
){
this
.
detail
=
()
=>
import
(
"./starOrder/index"
);}
//进度汇报
if
(
number
==
1
){
this
.
detail
=
()
=>
import
(
"./MaterialCollec/index"
);}
//物料领用
if
(
number
==
2
){
this
.
detail
=
()
=>
import
(
"./productSet/index"
);}
//产品装配
if
(
number
==
3
){
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);}
//工时分配
if
(
number
==
4
){
this
.
detail
=
()
=>
import
(
"./preparation/index"
);}
//生产准备
if
(
number
==
5
){
this
.
detail
=
()
=>
import
(
"./ProcessCheck/index"
);}
//工艺查看
if
(
number
==
6
){
this
.
detail
=
()
=>
import
(
"./ProcessCase/index"
);}
//工艺案例
if
(
number
==
7
){
this
.
detail
=
()
=>
import
(
"./judgment/index"
);}
//质量判定
if
(
number
==
8
){
this
.
detail
=
()
=>
import
(
"./datafilling/index"
);}
//数据填报
if
(
number
==
9
){
this
.
detail
=
()
=>
import
(
"./testdata/index"
);}
//测试数据
{
value
:
0
,
label
:
"已完成"
},
{
value
:
5
,
label
:
"暂停中"
},
{
value
:
7
,
label
:
"已终止"
},
{
value
:
-
1
,
label
:
"待派工"
}
// value: '交检中',
// label: '交检中'
// },{
// value: '交接中',
// label: '交接中'
// },{
],
condition
:
[]
};
},
created
()
{
// this.orderId = this.$route.query.orderId;
this
.
row
=
this
.
$route
.
query
.
row
;
this
.
detail
=
()
=>
import
(
"./starOrder/index"
);
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{},
comments
:
{},
methods
:
{
starFun
()
{
this
.
$Message
.
success
(
"开工..."
);
},
watch
:{
// getListLength(len){ this.listLength = len },
// 返回工单列表
goToOrder
()
{
this
.
$router
.
push
(
"/produce/orderlist"
);
},
}
searchOrder
(
value
)
{
this
.
$refs
.
orderlist
.
loadTree
(
value
);
},
changeTitle
(
number
,
type
)
{
this
.
orderTitle
=
type
;
this
.
orderindex
=
number
;
if
(
number
==
0
)
{
this
.
detail
=
()
=>
import
(
"./starOrder/index"
);
}
//进度汇报
if
(
number
==
1
)
{
this
.
detail
=
()
=>
import
(
"./MaterialCollec/index"
);
}
//物料领用
if
(
number
==
2
)
{
this
.
detail
=
()
=>
import
(
"./productSet/index"
);
}
//产品装配
if
(
number
==
3
)
{
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);
}
//工时分配
if
(
number
==
4
)
{
this
.
detail
=
()
=>
import
(
"./preparation/index"
);
}
//生产准备
if
(
number
==
5
)
{
this
.
detail
=
()
=>
import
(
"./ProcessCheck/index"
);
}
//工艺查看
if
(
number
==
6
)
{
this
.
detail
=
()
=>
import
(
"./ProcessCase/index"
);
}
//工艺案例
if
(
number
==
7
)
{
this
.
detail
=
()
=>
import
(
"./judgment/index"
);
}
//质量判定
if
(
number
==
8
)
{
this
.
detail
=
()
=>
import
(
"./datafilling/index"
);
}
//数据填报
if
(
number
==
9
)
{
this
.
detail
=
()
=>
import
(
"./testdata/index"
);
}
//测试数据
}
},
watch
:
{}
};
</
script
>
pages/produce/orderlist.vue
View file @
79d34cd5
...
...
@@ -29,7 +29,7 @@
<Button
:icon=
"iconInfo"
shape=
"circle"
:title=
"titleInfo"
@
click=
"changeShwo"
></Button>
</
template
>
<
template
slot=
"card"
slot-scope=
"{row}"
>
<div
class=
"body"
@
click=
"toExecute(row.id)"
>
<div
class=
"body"
@
click=
"toExecute(row.id
,row.orderId,row
)"
>
<Row
class=
"title-i"
>
<Col
:span=
"10"
class=
"order-code"
>
{{
row
.
productName
}}
</Col>
<Col
:span=
"10"
class=
"order-code"
>
{{
row
.
mesCode
}}
</Col>
...
...
@@ -176,7 +176,7 @@ export default {
"op"
,
{
attrs
:
{
oprate
:
"edit"
},
on
:
{
click
:
()
=>
this
.
toExecute
(
params
.
row
.
id
)
}
on
:
{
click
:
()
=>
this
.
toExecute
(
params
.
row
.
id
,
row
)
}
},
"查看"
)
...
...
@@ -184,11 +184,11 @@ export default {
}
}
],
set
:
false
,
set
:
false
,
typeInfo
:
"card"
,
iconInfo
:
"md-apps"
,
titleInfo
:
"卡片模式"
,
nowTime
:
new
Date
().
getTime
()
//页面当前打开时间
nowTime
:
new
Date
().
getTime
()
//页面当前打开时间
};
},
created
()
{
...
...
@@ -209,9 +209,12 @@ export default {
search
()
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
},
toExecute
(
id
)
{
toExecute
(
id
,
orderId
,
row
)
{
//跳转到对应操作页面 获取id:this.$route.query.id
this
.
$router
.
push
({
path
:
"/produce/execute"
,
query
:
{
id
:
id
}});
this
.
$router
.
push
({
path
:
"/produce/execute"
,
query
:
{
id
:
id
,
orderId
:
orderId
,
row
}
});
},
tdStyle
(
val
)
{
//动态根据状态值加载状态值对应的颜色
...
...
@@ -229,12 +232,12 @@ export default {
changeShwo
()
{
//显示模式切换
if
(
this
.
typeInfo
==
"card"
)
{
this
.
set
=
true
;
this
.
set
=
true
;
this
.
typeInfo
=
"table"
;
this
.
iconInfo
=
"md-list"
;
this
.
titleInfo
=
"列表模式"
;
}
else
{
this
.
set
=
false
;
this
.
set
=
false
;
this
.
typeInfo
=
"card"
;
this
.
iconInfo
=
"md-apps"
;
this
.
titleInfo
=
"卡片模式"
;
...
...
@@ -270,7 +273,7 @@ export default {
}
else
{
res
=
false
;
}
return
res
return
res
;
},
getUrl
(
url
)
{
//返回img需要显示的src值
...
...
pages/technology/details/routingqccard/index.vue
View file @
79d34cd5
...
...
@@ -200,7 +200,8 @@ export default {
attrs
:
{
oprate
:
"edit"
},
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
.
id
)
}
},
this
.
headerStatus
==
4
||
this
.
headerStatus
==
0
?
"编辑"
:
""
'编辑'
// this.headerStatus == 4||this.headerStatus == 0 ? "编辑" : ""
),
h
(
"op"
,
...
...
pages/technology/index.vue
View file @
79d34cd5
...
...
@@ -309,7 +309,8 @@ export default {
attrs
:
{
oprate
:
"edit"
},
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
)
}
},
params
.
row
.
approvalStatus
==
4
||
params
.
row
.
approvalStatus
==
0
?
"编辑"
:
""
'编辑'
// params.row.approvalStatus == 4||params.row.approvalStatus == 0 ? "编辑" : ""
),
h
(
"op"
,
...
...
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