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
2532dae0
Commit
2532dae0
authored
May 13, 2020
by
康振飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of git.mes123.com:zhouyx/mes-ui into product
parents
e8b6bf31
9342746e
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
490 additions
and
236 deletions
+490
-236
inputFile.vue
components/page/inputFile.vue
+87
-68
package-lock.json
package-lock.json
+2
-1
userInfo.vue
pages/basicData/userManagent/userInfo.vue
+24
-15
api.js
pages/order/monitoring/api.js
+16
-0
entryPause.vue
pages/order/monitoring/entryPause.vue
+129
-0
index.vue
pages/order/monitoring/index.vue
+7
-3
record.vue
pages/order/monitoring/record.vue
+43
-28
speed.vue
pages/order/monitoring/speed.vue
+102
-63
add.vue
pages/technology/details/routingqccard/add.vue
+34
-26
edit.vue
pages/technology/details/routingqccard/edit.vue
+40
-29
edit.vue
pages/technology/edit.vue
+6
-3
No files found.
components/page/inputFile.vue
View file @
2532dae0
<!--一次只能上传一个文件 -->
<
template
>
<div>
<Input
v-model=
"newName"
style=
"height:30px;width:240px;float:left"
placeholder=
"请选择上传文件"
disabled
/>
<Upload
v-model=
"name"
:action=
"postUrl"
:on-success=
"uploadSuccess"
:on-error=
"uploadError"
:on-remove=
"removeFile"
:format=
"formatList"
:max-size=
"maxSize"
:on-exceeded-size=
"onExceededSize"
:on-format-error=
"onFormatError"
:show-upload-list=
"false"
:files=
"files"
:on-progress=
"onProgress"
>
<Button
icon=
"ios-cloud-upload-outline"
>
上传文件
</Button>
</Upload>
<Progress
:percent=
"per"
:stroke-width=
"5"
v-show=
"vshowPro"
/>
<div>
<Input
v-model=
"newName"
style=
"height:30px;width:240px;float:left;"
placeholder=
"请选择上传文件"
disabled
/>
<Upload
v-model=
"name"
:action=
"postUrl"
:on-success=
"uploadSuccess"
:on-error=
"uploadError"
:on-remove=
"removeFile"
:format=
"formatList"
:max-size=
"maxSize"
:on-exceeded-size=
"onExceededSize"
:on-format-error=
"onFormatError"
:show-upload-list=
"false"
:files=
"files"
:on-progress=
"onProgress"
style=
"width:120px;float:left"
>
<Button
icon=
"ios-cloud-upload-outline"
>
上传文件
</Button>
</Upload>
<a
v-show=
"newName.length>2&&showButton"
:href=
"fileUrlPath"
@
click=
"downFile(newPath)"
target=
"_blank"
style=
"float:left"
>
查看
</a>
</div>
<Progress
:percent=
"per"
:stroke-width=
"5"
v-show=
"vshowPro"
/>
</div>
</
template
>
<
script
>
export
default
{
name
:
'inputFile'
,
name
:
"inputFile"
,
model
:
{
prop
:
'value'
,
event
:
'on-change'
prop
:
"value"
,
event
:
"on-change"
},
data
()
{
return
{
file
:
null
,
name
:
this
.
value
,
downUrl
:
fileUrlDown
,
fileUrlPath
:
''
,
fileUrlPath
:
""
,
nameList
:
[],
postUrl
:
fileUrl
+
'/upload/?token=Bearer '
+
window
.
sessionStorage
.
getItem
(
'token'
)
+
'&'
+
"/upload/?token=Bearer "
+
window
.
sessionStorage
.
getItem
(
"token"
)
+
"&"
+
this
.
parms
,
formatList
:
[
'png'
,
'jpg'
,
'gif'
],
newName
:
''
,
formatList
:
[
"png"
,
"jpg"
,
"gif"
],
newName
:
""
,
newPath
:
''
,
per
:
0
,
vshowPro
:
false
}
}
;
},
created
()
{},
props
:
{
...
...
@@ -60,55 +70,60 @@ export default {
},
parms
:
{
type
:
String
,
default
:
''
default
:
""
},
showButton
:{
type
:
Boolean
,
default
:
true
,
}
},
methods
:
{
onProgress
(
event
,
file
,
fileList
)
{
this
.
per
=
0
this
.
vshowPro
=
true
this
.
per
=
0
;
this
.
vshowPro
=
true
;
},
// change(event) {
// this.$emit('on-change', event.target.value)
// },
//上传成功文件
uploadSuccess
(
response
,
file
,
fileList
)
{
this
.
per
=
60
this
.
vshowPro
=
true
const
hbaseFileList
=
[]
const
filesList
=
[]
this
.
per
=
60
;
this
.
vshowPro
=
true
;
const
hbaseFileList
=
[]
;
const
filesList
=
[]
;
if
(
file
.
response
.
status
==
0
)
{
let
objImag
=
{}
objImag
.
fileName
=
file
.
response
.
data
.
fileName
objImag
.
filePath
=
file
.
response
.
data
.
downloadPath
filesList
.
push
(
objImag
)
this
.
newName
=
file
.
response
.
data
.
fileName
this
.
$emit
(
'on-change'
,
JSON
.
stringify
(
filesList
))
this
.
per
=
100
let
objImag
=
{};
objImag
.
fileName
=
file
.
response
.
data
.
fileName
;
objImag
.
filePath
=
file
.
response
.
data
.
downloadPath
;
filesList
.
push
(
objImag
);
this
.
newName
=
file
.
response
.
data
.
fileName
;
this
.
newPath
=
file
.
response
.
data
.
downloadPath
this
.
$emit
(
"on-change"
,
JSON
.
stringify
(
filesList
));
this
.
per
=
100
;
setTimeout
(()
=>
{
this
.
per
=
0
this
.
vshowPro
=
false
},
2000
)
this
.
per
=
0
;
this
.
vshowPro
=
false
;
},
2000
)
;
}
else
{
this
.
$Message
.
error
(
'上传失败,请重新上传!'
)
this
.
$Message
.
error
(
"上传失败,请重新上传!"
);
}
},
//上传文件失败
uploadError
(
response
,
file
,
fileList
)
{
this
.
$Message
.
error
(
'上传失败,请重新上传!'
)
this
.
$Message
.
error
(
"上传失败,请重新上传!"
);
},
//文件大小验证返回
onExceededSize
(
file
,
fileList
)
{
if
(
Object
.
keys
(
file
).
length
==
0
)
{
this
.
$Message
.
error
(
'上传文件不能大于'
+
this
.
maxSize
+
'k,请重新上传!'
)
"上传文件不能大于"
+
this
.
maxSize
+
"k,请重新上传!"
)
;
}
},
//文件格式验证
onFormatError
(
file
,
fileList
)
{
if
(
Object
.
keys
(
file
).
length
==
0
)
{
this
.
$Message
.
error
(
'上传文件格式不正确,请重新上传!'
)
this
.
$Message
.
error
(
"上传文件格式不正确,请重新上传!"
);
}
},
//删除上传
...
...
@@ -116,36 +131,40 @@ export default {
formatL
()
{
if
(
this
.
files
)
{
this
.
formatList
=
[
'pdf'
,
'docx'
,
'doc'
,
'xls'
,
'xlsx'
,
'txt'
,
'png'
,
'jpg'
,
'gif'
,
'zip'
,
'rar'
]
"pdf"
,
"docx"
,
"doc"
,
"xls"
,
"xlsx"
,
"txt"
,
"png"
,
"jpg"
,
"gif"
,
"zip"
,
"rar"
]
;
}
return
this
.
formatList
}
return
this
.
formatList
;
},
downFile
(
path
)
{
this
.
fileUrlPath
=
this
.
downUrl
+
path
;
},
},
mounted
()
{
this
.
formatL
()
this
.
formatL
()
;
},
computed
:
{
nativeInputValue
()
{
return
this
.
value
===
null
||
this
.
value
===
undefined
?
''
:
this
.
value
return
this
.
value
===
null
||
this
.
value
===
undefined
?
""
:
this
.
value
;
}
},
watch
:
{
value
(
v
)
{
this
.
name
=
v
this
.
name
=
v
;
}
}
}
}
;
</
script
>
<
style
lang=
"less"
>
</
style
>
\ No newline at end of file
package-lock.json
View file @
2532dae0
...
...
@@ -9558,7 +9558,8 @@
"dependencies"
:
{
"deepmerge"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
false
"resolved"
:
"https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz"
,
"integrity"
:
"sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA=="
}
}
},
...
...
pages/basicData/userManagent/userInfo.vue
View file @
2532dae0
...
...
@@ -4,8 +4,13 @@
<p
slot=
"title"
>
个人头像
</p>
<div
style=
"height:415px;"
>
<p
style=
"text-align:center;padding-top:100px;"
>
<Avatar
:src=
"avatorPath"
size=
"150"
v-if=
"avatorPath"
/>
<Avatar
size=
"150"
style=
"background-color: #87d068"
v-else-if=
"!avatorPath"
icon=
"ios-person"
/>
<Avatar
:src=
"avatorPath"
size=
"150"
v-if=
"avatorPath"
/>
<Avatar
size=
"150"
style=
"background-color: #87d068"
v-else-if=
"!avatorPath"
icon=
"ios-person"
/>
</p>
<p
style=
"text-align:center;padding:10px;"
>
<Button
@
click=
"openModalAvatar"
>
修改头像
</Button>
...
...
@@ -80,15 +85,19 @@
</Card>
<Modal
v-model=
"modalAvatar"
title=
"修改头像"
:width=
"460"
>
<Form
:model=
"imageModel"
>
<div
class=
"imgBg"
>
<img
:src=
"avatorPath"
/>
</div>
<inputFiles
v-model=
"imgName"
:parms=
"parms"
/>
<Row>
<div
class=
"imgBg"
>
<img
:src=
"avatorPath"
/>
</div>
<inputFiles
v-model=
"imgName"
:parms=
"parms"
:showButton=
"false"
/>
</Row>
</Form>
<div
slot=
"footer"
>
<Button
@
click=
"cancelAvatar"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"upAvatar"
>
确定
</Button>
</div>
<Row>
<div
slot=
"footer"
style=
"clear:both"
>
<Button
@
click=
"cancelAvatar"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"upAvatar"
>
确定
</Button>
</div>
</Row>
</Modal>
</div>
</
template
>
...
...
@@ -132,7 +141,7 @@ export default {
remark
:
""
,
avatarUrl
:
""
},
userInfos
:{},
userInfos
:
{},
imageModel
:
{
id
:
null
,
avatar_Url
:
""
,
...
...
@@ -208,7 +217,7 @@ export default {
this
.
$http
.
sysUser
.
getuserinfo
(
parma
).
then
(
res
=>
{
if
(
res
.
result
)
{
this
.
userInfo
=
res
.
result
;
this
.
userInfos
=
res
.
result
;
this
.
userInfos
=
res
.
result
;
this
.
imageModel
.
id
=
this
.
userInfo
.
id
;
if
(
res
.
result
.
avatarUrl
&&
...
...
@@ -268,9 +277,9 @@ export default {
};
</
script
>
<
style
lang=
"less"
>
.img_top01{
width:350px;
float:left;
.img_top01
{
width:
350px;
float:
left;
.ivu-card-body {
padding: 0px;
}
...
...
pages/order/monitoring/api.js
View file @
2532dae0
...
...
@@ -20,6 +20,22 @@ export default {
info
(
params
)
{
//工单信息
return
Api
.
post
(
`
${
PlanUrl
}
/dispatch/orderdispatchsummary`
,
params
);
},
mesordersplitcard
(
params
)
{
//分卡操作
return
Api
.
post
(
`
${
PlanUrl
}
/mesorders/mesordersplitcard`
,
params
);
},
createorupdate
(
params
)
{
//暂停工单
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutepausecause/createorupdate`
,
params
);
},
entrycontinue
(
params
)
{
//继续开始工单
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecute/entrycontinue`
,
params
);
},
getentryproductcode
(
params
){
//更加工单id获取产品号
return
Api
.
get
(
`
${
PlanUrl
}
/orderexecutequalityrecord/getentryproductcode`
,
params
);
},
pauseCauseGetpaged
(
params
){
//获取工单暂停记录
return
Api
.
get
(
`
${
PlanUrl
}
/orderexecutepausecause/getpaged`
,
params
);
},
// getplantdepartments(params) {// 组织为”车间“的部门
// return Api.get(`${systemUrl}/department/getplantdepartments`, params);
// },
...
...
pages/order/monitoring/entryPause.vue
0 → 100644
View file @
2532dae0
<
template
>
<div
class=
"new_box"
>
<Form
ref=
"cardModeldata"
:model=
"cardModeldata"
:rules=
"ruleValidate"
:label-width=
"120"
>
<Row>
<Col
span=
"22"
>
<FormItem
label=
"暂停原因"
>
<Dictionary
code=
"plan.dispatch.pauseCause"
v-model=
"cardModeldata.pausecause_id"
type=
"select"
style=
"width:100%"
></Dictionary>
</FormItem>
</Col>
</Row>
<Row>
<Col
span=
"22"
>
<FormItem
label=
"详细描述"
prop=
"desc"
>
<Input
type=
"textarea"
:rows=
"6"
style=
"width:100%;"
size=
"large"
v-model=
"cardModeldata.desc"
placeholder=
"请输入..."
/>
</FormItem>
</Col>
</Row>
<Row>
<Col
span=
"24"
>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
保存
</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</
template
>
<
script
>
import
Api
from
"./api"
;
export
default
{
name
:
"entryPause"
,
props
:
{
info
:
Object
},
data
()
{
return
{
newModel
:
false
,
cardModeldata
:
{
id
:
0
,
dispatch_id
:
0
,
execute_id
:
0
,
order_id
:
""
,
pausecause_type
:
1
,
pausecause_id
:
0
,
title
:
""
,
desc
:
""
,
userids
:
""
,
status
:
0
,
layersnum
:
0
,
height
:
0
},
ruleValidate
:
{
// pausecause_id: [{ required: true, message: '原因不能为空', trigger: 'blur' }],
desc
:
[{
required
:
true
,
message
:
"详细描述不能为空"
,
trigger
:
"blur"
}]
}
};
},
created
()
{},
methods
:
{
handleSubmit
()
{
this
.
$refs
[
"cardModeldata"
].
validate
(
valid
=>
{
if
(
valid
)
{
var
url
=
`
${
PlanUrl
}
/orderexecutepausecause/createorupdate`
;
let
parms
=
{
orderExecutePausecause
:
{
dispatch_id
:
this
.
info
.
dispatch_id
,
execute_id
:
this
.
info
.
execute_id
,
order_id
:
this
.
info
.
order_id
,
pausecause_type
:
1
,
pausecause_id
:
this
.
cardModeldata
.
pausecause_id
,
desc
:
this
.
cardModeldata
.
desc
,
title
:
""
,
userids
:
""
,
status
:
0
,
layersnum
:
0
,
height
:
0
}
};
Api
.
createorupdate
(
parms
)
.
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
cleardata
();
this
.
$emit
(
"on-ok"
)
}
})
.
catch
(
error
=>
{
console
.
log
(
error
);
this
.
$Message
.
error
(
"保存失败"
);
});
}
});
},
cancel
()
{
this
.
cleardata
();
},
cleardata
()
{
this
.
cardModeldata
.
title
=
""
;
this
.
cardModeldata
.
desc
=
""
;
this
.
cardModeldata
.
userids
=
""
;
this
.
cardModeldata
.
layersnum
=
0
;
this
.
cardModeldata
.
height
=
0
;
}
},
watch
:
{
info
(
v
)
{
if
(
v
&&
JSON
.
stringify
(
v
)
!=
"{}"
)
{
}
}
}
};
</
script
>
pages/order/monitoring/index.vue
View file @
2532dae0
...
...
@@ -28,7 +28,7 @@
<Record
:eid=
"recordId"
/>
</Modal>
<Modal
v-model=
"SpeedModal"
title=
"工单信息"
fullscreen
footer-hide
class=
"recordM"
>
<Speed
:result=
"result"
:load=
"loading"
/>
<Speed
:result=
"result"
:load=
"loading"
:executeId=
"dispatchExecuteId"
:orderId=
"orderId"
/>
</Modal>
</div>
</template>
...
...
@@ -50,6 +50,8 @@ export default {
data
()
{
return
{
result
:
[],
dispatchExecuteId
:
null
,
//任务id
orderId
:
null
,
//订单id
SpeedModal
:
false
,
rowSuspend
:
{},
recordId
:
0
,
...
...
@@ -360,7 +362,7 @@ export default {
render
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
{
class
:
"action"
},
[
h
(
params
.
row
.
status
==
5
?
"Button"
:
""
,
//订单状态暂停,启动
params
.
row
.
status
==
5
&&
params
.
row
.
upSplitId
==
0
?
"Button"
:
""
,
//订单状态暂停,启动
{
props
:
{
type
:
"error"
,
...
...
@@ -383,7 +385,7 @@ export default {
""
),
h
(
params
.
row
.
status
==
6
?
"Button"
:
""
,
//订单状态执行中,暂停
params
.
row
.
status
==
6
&&
params
.
row
.
upSplitId
==
0
?
"Button"
:
""
,
//订单状态执行中,暂停
{
props
:
{
type
:
"success"
,
...
...
@@ -436,6 +438,8 @@ export default {
this
.
result
=
[];
this
.
loading
=
true
;
this
.
SpeedModal
=
true
;
this
.
dispatchExecuteId
=
row
.
dispatchExecuteId
this
.
orderId
=
row
.
id
Api
.
info
({
routingHeaderId
:
row
.
routingHeaderId
,
dispatchExecuteId
:
row
.
dispatchExecuteId
...
...
pages/order/monitoring/record.vue
View file @
2532dae0
...
...
@@ -5,7 +5,13 @@
<DataGrid
:columns=
"columns"
ref=
"grid"
:action=
"action"
:tool=
"false"
:height=
"tdHeight"
></DataGrid>
</TabPane>
<TabPane
label=
"工单暂停记录"
name=
"name2"
>
<DataGrid
:columns=
"columnsProcess"
ref=
"gridProcess"
:tool=
"false"
:height=
"tdHeight"
></DataGrid>
<DataGrid
:columns=
"columnsProcess"
ref=
"gridProcess"
:data=
"list"
:tool=
"false"
:height=
"tdHeight"
></DataGrid>
</TabPane>
</Tabs>
<Modal
v-model=
"detailModal"
title=
"详情"
width=
"800"
>
...
...
@@ -122,67 +128,53 @@ export default {
],
columnsProcess
:
[
{
key
:
"
productName
"
,
key
:
"
dispatch_id
"
,
title
:
"工序Id"
,
align
:
"left"
,
width
:
90
},
{
key
:
"
productName
"
,
key
:
"
dispatch_id
"
,
title
:
"工序号"
,
align
:
"left"
,
width
:
90
},
{
key
:
"
productName
"
,
key
:
"
dispatch_id
"
,
title
:
"工序名称"
,
align
:
"left"
,
width
:
350
,
width
:
350
},
{
key
:
"
remark
"
,
key
:
"
desc
"
,
title
:
"暂停原因"
,
align
:
"left"
},
{
key
:
"
productName
"
,
key
:
"
creatorUserId
"
,
title
:
"暂停人"
,
align
:
"left"
,
high
:
true
,
width
:
180
width
:
180
,
type
:
"user"
},
{
key
:
"
productNa
me"
,
key
:
"
creationTi
me"
,
title
:
"暂停时间"
,
align
:
"left"
,
width
:
180
},
{
key
:
"productName"
,
title
:
"恢复人"
,
align
:
"left"
,
width
:
180
},
{
key
:
"productName"
,
title
:
"恢复时间"
,
align
:
"left"
,
width
:
180
},
{
key
:
"productName"
,
title
:
"相关人"
,
align
:
"left"
,
width
:
"180"
}
]
],
list
:
[]
};
},
props
:
{
eid
:
Number
},
mounted
()
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
this
.
loadList
()
window
.
onresize
=
()
=>
{
///浏览器窗口大小变化
return
(()
=>
{
...
...
@@ -198,6 +190,29 @@ export default {
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
methods
:
{
// tabClick(tabIndex) {
// if (tabIndex == 2) {
// this.loadList();
// } else {
// this.$refs.grid.reload(this.easySearch);
// }
// },
loadList
()
{
let
params
=
{
FilterText
:
"dispatch_id=104"
};
Api
.
pauseCauseGetpaged
(
params
)
.
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
list
=
res
.
result
.
items
;
}
else
{
this
.
$Message
.
error
(
"获取数据失败"
);
}
})
.
catch
(
err
=>
{
this
.
$Message
.
error
(
"连接失败"
);
});
},
search
()
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
},
...
...
pages/order/monitoring/speed.vue
View file @
2532dae0
...
...
@@ -6,6 +6,9 @@
<div
v-show=
"!load"
>
<DataGrid
:columns=
"columns"
:data=
"result"
border
:tool=
"false"
:height=
"820"
:page=
"false"
></DataGrid>
</div>
<Modal
v-model=
"workOrderPauseModal"
title=
"工单暂停原因"
width=
"800"
footer-hide
class=
"suspend"
>
<EntryPause
@
on-ok=
"pauseOk"
ref=
"addBug"
:info=
"info"
/>
</Modal>
<Modal
v-model=
"modalSplit"
title=
"订单分卡"
width=
"650"
footer-hide
>
<div
slot=
"close"
>
<Icon
type=
"ios-close"
size=
"31"
color=
"gray"
@
click=
"handleClose"
/>
...
...
@@ -17,9 +20,9 @@
<Select
v-model=
"entity.num"
multiple
>
<Option
v-for=
"(item,index) in numList"
:value=
"item.
value
"
:value=
"item.
productcodes
"
:key=
"index"
>
{{
item
.
label
}}
</Option>
>
{{
item
.
productcodes
}}
</Option>
</Select>
</FormItem>
</Col>
...
...
@@ -72,19 +75,28 @@
</
template
>
<
script
>
import
Api
from
"./api"
;
import
EntryPause
from
"./entryPause"
;
export
default
{
name
:
""
,
components
:
{
EntryPause
},
data
()
{
return
{
modalSplit
:
false
,
workOrderPauseModal
:
false
,
index
:
null
,
entity
:
{
num
:
[],
//序列号组合
reason
:
null
,
//分卡原因
remark
:
""
,
//备注信息
action
:
null
,
//操作
scheduleType
:
null
//排产类型
count
:
0
,
code
:
""
,
routingDetailId
:
0
,
orderId
:
0
,
dispatchId
:
0
},
info
:
{},
initeId
:
{
routingDetailId
:
null
,
dispatchId
:
null
},
columns
:
[
{
...
...
@@ -197,12 +209,12 @@ export default {
"op"
,
{
props
:
{
oprate
:
"
delete
"
,
title
:
"暂停"
,
msg
:
"确定暂停工序:"
+
params
.
row
.
detailName
+
"?"
oprate
:
"
edit
"
,
title
:
"暂停"
//
msg: "确定暂停工序:" + params.row.detailName + "?"
},
style
:
params
.
row
.
status
==
14
?
""
:
"display:none"
,
on
:
{
click
:
()
=>
this
.
pause
(
params
.
row
)
}
on
:
{
click
:
()
=>
this
.
pause
(
params
.
row
,
params
.
index
)
}
},
"暂停"
),
...
...
@@ -211,7 +223,7 @@ export default {
{
props
:
{
oprate
:
"edit"
,
title
:
"分卡"
},
style
:
params
.
row
.
status
==
5
?
""
:
"display:none"
,
on
:
{
click
:
()
=>
this
.
split
(
params
.
row
)
}
on
:
{
click
:
()
=>
this
.
split
(
params
.
row
,
params
.
index
)
}
},
"分卡"
),
...
...
@@ -223,8 +235,8 @@ export default {
title
:
"继续"
,
msg
:
"确定继续执行工序:"
+
params
.
row
.
detailName
+
"?"
},
style
:
params
.
row
.
status
==
5
?
""
:
"display:none"
,
on
:
{
click
:
()
=>
this
.
continue
(
params
.
row
)
}
style
:
params
.
row
.
status
==
5
?
""
:
"display:none"
,
on
:
{
click
:
()
=>
this
.
continue
(
params
.
row
,
params
.
index
)
}
},
"继续"
)
...
...
@@ -233,40 +245,7 @@ export default {
}
],
listTask
:
[],
numList
:
[
{
value
:
1
,
label
:
"SKJC-001"
},
{
value
:
2
,
label
:
"SKJC-002"
},
{
value
:
3
,
label
:
"SKJC-003"
},
{
value
:
4
,
label
:
"SKJC-004"
},
{
value
:
5
,
label
:
"SKJC-005"
},
{
value
:
6
,
label
:
"SKJC-006"
},
{
value
:
7
,
label
:
"SKJC-007"
},
{
value
:
8
,
label
:
"SKJC-008"
}
],
numList
:
[],
reasonList
:
[
{
value
:
1
,
...
...
@@ -319,16 +298,23 @@ export default {
},
props
:
{
result
:
Array
,
load
:
Boolean
load
:
Boolean
,
executeId
:
Number
,
orderId
:
Number
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
created
()
{},
methods
:
{
split
(
row
)
{
split
(
row
,
index
)
{
//工单分卡
this
.
modalSplit
=
true
;
this
.
getProduct
(
row
.
id
);
(
this
.
initeId
=
{
routingDetailId
:
row
.
detailId
,
dispatchId
:
row
.
id
}),
(
this
.
modalSplit
=
true
);
},
onchangeAction
(
val
)
{
//选择移入排产时显示排产模型下拉框
...
...
@@ -336,18 +322,44 @@ export default {
this
.
entity
.
scheduleType
=
null
;
}
},
getProduct
(
id
)
{
let
params
=
{
entryID
:
id
};
Api
.
getentryproductcode
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
numList
=
[];
this
.
numList
=
res
.
result
;
}
});
},
splitOk
()
{
//确定分卡
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
let
params
=
{
num
:
this
.
entity
.
num
,
reason
:
this
.
entity
.
reason
,
remark
:
this
.
entity
.
remark
,
action
:
this
.
entity
.
action
,
scheduleType
:
this
.
entity
.
scheduleType
count
:
this
.
entity
.
num
.
length
,
code
:
JSON
.
stringify
(
this
.
entity
.
num
)
.
replace
(
"["
,
""
)
.
replace
(
"]"
,
""
)
.
replace
(
/
\"
/g
,
""
),
routingDetailId
:
this
.
initeId
.
routingDetailId
,
orderId
:
this
.
orderId
,
dispatchId
:
this
.
initeId
.
dispatchId
//reason: this.entity.reason,
//remark: this.entity.remark
};
alert
(
JSON
.
stringify
(
params
));
Api
.
mesordersplitcard
(
params
)
.
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
$Message
.
success
(
"分卡成功"
);
}
else
{
this
.
$Message
.
error
(
"分卡失败"
);
}
})
.
catch
(
err
=>
{
this
.
$Message
.
error
(
"连接失败"
);
});
this
.
handleClose
();
}
else
{
this
.
modalSplit
=
true
;
...
...
@@ -369,13 +381,40 @@ export default {
scheduleType
:
null
};
},
pause
(
row
)
{
pause
(
row
,
index
)
{
this
.
index
=
index
;
//暂停工单
alert
(
JSON
.
stringify
(
row
));
this
.
info
=
{
dispatch_id
:
row
.
id
,
execute_id
:
this
.
executeId
,
order_id
:
this
.
orderId
};
this
.
workOrderPauseModal
=
true
;
},
pauseOk
()
{
this
.
workOrderPauseModal
=
false
;
this
.
result
[
this
.
index
].
status
=
5
;
},
continue
(
row
)
{
continue
(
row
,
index
)
{
this
.
index
=
index
;
//继续工单
alert
(
JSON
.
stringify
(
row
));
let
params
=
{
id
:
row
.
id
,
orderid
:
this
.
orderId
,
time
:
null
};
Api
.
entrycontinue
(
params
)
.
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$Message
.
success
(
"操作成功"
);
this
.
result
[
this
.
index
].
status
=
14
;
}
else
{
this
.
$Message
.
error
(
"操作失败"
);
}
})
.
catch
(
error
=>
{
this
.
$Message
.
error
(
"连接失败"
);
});
},
//截取字符串
sliceStr
(
str
,
lenS
,
lenE
)
{
...
...
pages/technology/details/routingqccard/add.vue
View file @
2532dae0
...
...
@@ -112,10 +112,11 @@
</Col>
<Col
:span=
"24"
>
<FormItem
:label=
"l('qualityTemplateName')"
prop=
"qualityTemplateName"
>
<
files
ref=
"refFile"
:parms=
"parms"
files
singleFile
/>
<
inputFile
v-model=
"tempFile"
:parms=
"parms"
/>
</FormItem>
</Col>
<!--
<files
ref=
"refFile"
:parms=
"parms"
files
singleFile
/>
<Col
:span=
"12"
>
<FormItem
:label=
"l('isImportant')"
prop=
"isImportant"
>
<Dictionary
code=
"Process.state"
v-model=
"entity.isImportant"
type=
"radio"
></Dictionary>
...
...
@@ -206,6 +207,7 @@ export default {
sampling
:
null
,
samplingBatch
:
""
},
tempFile
:
""
,
rules
:
{
routingDetailId
:
[
{
required
:
true
,
message
:
"请选择工序名称"
,
type
:
"number"
}
...
...
@@ -213,12 +215,13 @@ export default {
checkContent
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
},
routingDetailList
:
[],
parms
:
{
app
:
"qccard"
,
eid
:
null
,
name
:
""
,
field
:
""
}
parms
:
"app=qccard&eid="
+
this
.
$u
.
guid
()
+
"&name=''"
// parms: {
// app: "qccard",
// eid: null,
// name: "",
// field: ""
// }
};
},
props
:
{
...
...
@@ -236,26 +239,31 @@ export default {
this
.
$refs
.
form
.
validate
(
v
=>
{
if
(
v
)
{
this
.
disabled
=
true
;
this
.
entity
.
qualityTemplateName
=
""
;
this
.
entity
.
qualityTemplate
=
""
;
if
(
this
.
$refs
.
refFile
.
nameList
.
length
>
0
)
{
let
nameList
=
this
.
$refs
.
refFile
.
nameList
;
let
names
=
[];
let
url
=
[];
nameList
.
forEach
(
e
=>
{
names
.
push
(
e
.
fileName
);
url
.
push
(
e
.
filePath
);
});
this
.
entity
.
qualityTemplateName
=
JSON
.
stringify
(
names
)
.
replace
(
"["
,
""
)
.
replace
(
"]"
,
""
)
.
replace
(
/
\"
/g
,
""
);
//附件本地库暂存文件名称
this
.
entity
.
qualityTemplate
=
JSON
.
stringify
(
url
)
.
replace
(
"["
,
""
)
.
replace
(
"]"
,
""
)
.
replace
(
/
\"
/g
,
""
);
if
(
this
.
tempFile
!=
""
)
{
let
tempName
=
JSON
.
parse
(
this
.
$u
.
clone
(
this
.
tempFile
));
this
.
entity
.
qualityTemplateName
=
tempName
[
0
].
fileName
;
this
.
entity
.
qualityTemplate
=
tempName
[
0
].
filePath
;
}
else
{
this
.
entity
.
qualityTemplateName
=
""
;
this
.
entity
.
qualityTemplate
=
""
;
}
// if (this.$refs.refFile.nameList.length > 0) {
// let nameList = this.$refs.refFile.nameList;
// let names = [];
// let url = [];
// nameList.forEach(e => {
// names.push(e.fileName);
// url.push(e.filePath);
// });
// this.entity.qualityTemplateName = JSON.stringify(names)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, ""); //附件本地库暂存文件名称
// this.entity.qualityTemplate = JSON.stringify(url)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, "");
// }
this
.
entity
.
routingHeaderId
=
this
.
headid
;
Api
.
create
(
this
.
entity
)
...
...
pages/technology/details/routingqccard/edit.vue
View file @
2532dae0
...
...
@@ -54,8 +54,9 @@
</Col>
<Col
:span=
"24"
>
<FormItem
:label=
"l('qualityTemplateName')"
prop=
"qualityTemplateName"
>
<
files
ref=
"refFile"
:parms=
"parms"
files
singleFile
/>
<
inputFile
ref=
"inputfile"
v-model=
"tempFile"
:parms=
"parms"
/>
<!--
<files
ref=
"refFile"
:parms=
"parms"
files
singleFile
/>
<a
:href=
"fileUrlPath"
@
click=
"downFile(entity.qualityTemplate)"
...
...
@@ -82,10 +83,14 @@ export default {
raidoDis
:
false
,
downUrl
:
fileUrlDown
,
fileUrlPath
:
""
,
tempFile
:
""
,
tempFileName
:
""
,
tempFilePath
:
""
,
entity
:
{
qualityTemplateName
:
""
,
qualityTemplate
:
""
},
rules
:
{
routingDetailId
:
[
{
required
:
true
,
message
:
"请选择工序名称"
,
type
:
"number"
}
...
...
@@ -93,12 +98,13 @@ export default {
checkContent
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
},
routingDetailList
:
[],
parms
:
{
app
:
"qccard"
,
eid
:
this
.
eid
,
name
:
""
,
field
:
""
}
parms
:
"app=qccard&eid="
+
this
.
$u
.
guid
()
+
"&name=''"
// parms: {
// app: "qccard",
// eid: this.eid,
// name: "",
// field: ""
// }
};
},
props
:
{
...
...
@@ -115,10 +121,11 @@ export default {
methods
:
{
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
$refs
.
refFile
.
intFilesClone
();
this
.
parms
.
eid
=
v
;
//
this.$refs.refFile.intFilesClone();
//
this.parms.eid = v;
this
.
entity
=
r
.
result
;
this
.
$refs
.
inputfile
.
newName
=
this
.
entity
.
qualityTemplateName
;
this
.
$refs
.
inputfile
.
newPath
=
this
.
entity
.
qualityTemplate
;
if
(
r
.
result
.
checkType
==
1
||
r
.
result
.
checkType
==
2
)
{
this
.
raidoDis
=
false
;
this
.
entity
.
isphotograph
=
null
;
...
...
@@ -134,26 +141,30 @@ export default {
this
.
$refs
.
form
.
validate
(
v
=>
{
if
(
v
)
{
this
.
disabled
=
true
;
this
.
entity
.
qualityTemplateName
=
""
;
this
.
entity
.
qualityTemplate
=
""
;
if
(
this
.
$refs
.
refFile
.
nameList
.
length
>
0
)
{
let
nameList
=
this
.
$refs
.
refFile
.
nameList
;
let
names
=
[];
let
url
=
[];
nameList
.
forEach
(
e
=>
{
names
.
push
(
e
.
fileName
);
url
.
push
(
e
.
filePath
);
});
this
.
entity
.
qualityTemplateName
=
JSON
.
stringify
(
names
)
.
replace
(
"["
,
""
)
.
replace
(
"]"
,
""
)
.
replace
(
/
\"
/g
,
""
);
//附件本地库暂存文件名称
this
.
entity
.
qualityTemplate
=
JSON
.
stringify
(
url
)
.
replace
(
"["
,
""
)
.
replace
(
"]"
,
""
)
.
replace
(
/
\"
/g
,
""
);
if
(
this
.
tempFile
!=
""
)
{
let
tempName
=
JSON
.
parse
(
this
.
$u
.
clone
(
this
.
tempFile
));
this
.
entity
.
qualityTemplateName
=
tempName
[
0
].
fileName
;
this
.
entity
.
qualityTemplate
=
tempName
[
0
].
filePath
;
}
// if (this.$refs.refFile.nameList.length > 0) {
// let nameList = this.$refs.refFile.nameList;
// let names = [];
// let url = [];
// nameList.forEach(e => {
// names.push(e.fileName);
// url.push(e.filePath);
// });
// this.entity.qualityTemplateName = JSON.stringify(names)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, ""); //附件本地库暂存文件名称
// this.entity.qualityTemplate = JSON.stringify(url)
// .replace("[", "")
// .replace("]", "")
// .replace(/\"/g, "");
// }
Api
.
update
(
this
.
entity
)
.
then
(
r
=>
{
this
.
disabled
=
false
;
...
...
@@ -213,7 +224,7 @@ export default {
if
(
v
!=
0
)
{
this
.
load
(
v
);
}
}
}
,
}
};
</
script
>
pages/technology/edit.vue
View file @
2532dae0
...
...
@@ -11,7 +11,7 @@
<Input
v-model=
"entity.unicode"
></Input>
</FormItem>
</Col>
-->
<Col
:span=
"8"
>
<Col
:span=
"8"
>
<FormItem
:label=
"l('code')"
prop=
"code"
>
<Input
v-model=
"entity.code"
disabled
></Input>
</FormItem>
...
...
@@ -21,7 +21,7 @@
<Input
v-model=
"entity.name"
></Input>
</FormItem>
</Col>
<Col
:span=
"8"
>
<FormItem
:label=
"l('routingType')"
prop=
"routingType"
>
<Dictionary
code=
"Process.Routing.routingType"
v-model=
"entity.routingType"
></Dictionary>
...
...
@@ -52,7 +52,7 @@
<departmentSelect
v-model=
"entity.departmentId"
@
on-change=
"departChange"
></departmentSelect>
</FormItem>
</Col>
<Col
:span=
"8"
>
<FormItem
:label=
"l('isEffect')"
prop=
"isEffect"
>
<Dictionary
code=
"Process.Status"
v-model=
"entity.isEffect"
type=
"radio"
></Dictionary>
...
...
@@ -184,6 +184,9 @@ export default {
this
.
$refs
.
refFile
.
intFilesClone
();
this
.
parms
.
eid
=
this
.
uid
;
this
.
entity
=
r
.
result
;
if
(
this
.
entity
.
isEffect
&&
this
.
entity
.
isEffect
!=
""
)
{
this
.
entity
.
isEffect
=
Number
(
this
.
entity
.
isEffect
);
}
});
},
handleSubmit
()
{
...
...
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