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
afce80ad
Commit
afce80ad
authored
Jun 11, 2020
by
周远喜
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of
http://git.mes123.com/zhouyx/mes-ui
into product
parents
c7a391f1
add30ba4
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
2706 additions
and
799 deletions
+2706
-799
base.less
assets/css/base.less
+3
-0
dataGrid.vue
components/page/dataGrid.vue
+40
-16
userSelect.vue
components/page/userSelect.vue
+68
-39
viewer.vue
components/page/viewer.vue
+1
-1
zh-CN.js
i18n/locale/zh-CN.js
+27
-2
index.vue
pages/account/login/index.vue
+2
-2
index3.vue
pages/account/login/index3.vue
+3
-3
add.vue
pages/bug/component/add.vue
+1
-1
index.vue
pages/home/index.vue
+1
-1
add.vue
pages/materiel/classification/add.vue
+4
-4
edit.vue
pages/materiel/classification/edit.vue
+5
-4
index.vue
pages/materiel/classification/index.vue
+49
-19
masterData.vue
pages/materiel/classification/masterData.vue
+129
-0
add.vue
pages/materiel/classification/masterData/add.vue
+0
-116
sonAdd.vue
pages/materiel/classification/sonAdd.vue
+2
-2
sonEdit.vue
pages/materiel/classification/sonEdit.vue
+3
-3
add.vue
pages/materiel/masterData/add.vue
+138
-0
api.js
pages/materiel/masterData/api.js
+23
-0
edit.vue
pages/materiel/masterData/edit.vue
+245
-0
index.vue
pages/materiel/masterData/index.vue
+248
-10
masterData.vue
pages/materiel/masterData/masterData.vue
+196
-0
add.vue
pages/produce/execute/ProcessCase/add.vue
+125
-122
detail.vue
pages/produce/execute/ProcessCase/detail.vue
+68
-63
index.vue
pages/produce/execute/ProcessCase/index.vue
+47
-5
add.vue
pages/produce/execute/ProcessCheck/guidance/add.vue
+36
-88
detail.vue
pages/produce/execute/ProcessCheck/guidance/detail.vue
+70
-63
index.vue
pages/produce/execute/ProcessCheck/guidance/index.vue
+45
-5
api.js
pages/produce/execute/api.js
+25
-1
orderlist.vue
pages/produce/execute/components/orderlist.vue
+24
-8
execute.less
pages/produce/execute/execute.less
+159
-12
index.vue
pages/produce/execute/index.vue
+61
-40
index.vue
pages/produce/execute/starOrder/index.vue
+145
-19
add.vue
pages/produce/execute/taskTime/add.vue
+170
-93
index.vue
pages/produce/execute/taskTime/index.vue
+58
-11
orderlist.vue
pages/produce/orderlist.vue
+17
-4
index.vue
pages/produce/reorder/index.vue
+294
-26
add.vue
pages/technology/productMix/product/add.vue
+1
-0
route.js
plugins/route.js
+1
-1
base.css
src/assets/css/base.css
+3
-0
execute.css
src/assets/css/execute.css
+167
-13
config.js
static/config.js
+2
-2
No files found.
assets/css/base.less
View file @
afce80ad
...
...
@@ -1432,3 +1432,6 @@ html [type=button] {
.gdShow {
box-shadow: 0px 0px 15px #333;
}
.bgDDD{
background:#DDD
}
\ No newline at end of file
components/page/dataGrid.vue
View file @
afce80ad
...
...
@@ -126,7 +126,7 @@ export default {
pageSizeOpts
:
[
20
,
50
,
100
],
tableHeight
:
0
,
firstY
:
0
,
config
:
false
,
config
:
false
,
list
:
[],
columnsCur
:
[],
configLoad
:
false
,
...
...
@@ -146,6 +146,14 @@ export default {
type
:
Boolean
,
default
:
true
},
format
:
{
type
:
Function
,
default
:
null
},
initsearch
:
{
type
:
Function
,
default
:
null
},
lazy
:
{
//懒加载设置,设置为真时候,默认不加载数据。
type
:
Boolean
,
...
...
@@ -223,17 +231,19 @@ export default {
return
[
"table"
,
"card"
,
"list"
].
indexOf
(
value
)
!==
-
1
;
}
},
span
:
{
//栅格数
span
:
{
//栅格数
type
:
Number
,
default
:
24
},
//table控件children子数据控制功能
//table控件children子数据控制功能
rowKey
:
{
type
:
[
String
,
Number
]
},
gutter
:{
//间距
type
:
Number
,
default
:
40
gutter
:
{
//间距
type
:
Number
,
default
:
40
}
},
created
()
{
...
...
@@ -260,7 +270,7 @@ export default {
this
.
easySearch
();
}
if
(
this
.
height
===
0
)
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
tableHeight
=
this
.
$refs
.
main
.
offsetHeight
;
window
.
onresize
=
()
=>
{
///浏览器窗口大小变化
...
...
@@ -268,7 +278,7 @@ export default {
this
.
tableHeight
=
this
.
$refs
.
main
.
offsetHeight
;
})();
};
})
})
;
}
else
{
this
.
tableHeight
=
this
.
height
;
}
...
...
@@ -285,8 +295,16 @@ export default {
this
.
tableHeight
=
window
.
innerHeight
-
this
.
firstY
-
60
;
}
if
(
this
.
action
)
{
//条件初始化处理。
if
(
this
.
initsearch
){
this
.
initsearch
(
this
.
search
)
}
this
.
$api
.
post
(
this
.
action
,
this
.
search
).
then
(
r
=>
{
this
.
list
=
r
.
result
.
items
;
if
(
this
.
format
)
{
this
.
list
=
this
.
format
(
r
.
result
.
items
);
}
else
{
this
.
list
=
r
.
result
.
items
;
}
this
.
search
.
total
=
r
.
result
.
totalCount
||
r
.
result
.
count
;
});
}
...
...
@@ -380,7 +398,11 @@ export default {
this
.
$emit
(
"on-drag-drop"
,
a
,
b
);
},
easySearch
()
{
if
(
this
.
conditions
&&
this
.
conditions
.
keys
&&
this
.
conditions
.
keys
.
default
)
{
if
(
this
.
conditions
&&
this
.
conditions
.
keys
&&
this
.
conditions
.
keys
.
default
)
{
//判断没有传入条件的用默认的查询
this
.
conditions
.
keys
.
value
=
this
.
keys
;
}
...
...
@@ -486,11 +508,13 @@ export default {
if
(
u
.
type
==
"user"
)
{
u
.
render
=
(
h
,
params
)
=>
{
let
values
=
u
.
key
;
return
h
(
"User"
,
{
props
:
{
value
:
params
.
row
[
values
]
}
});
if
(
params
.
row
[
values
])
{
return
h
(
"User"
,
{
props
:
{
value
:
params
.
row
[
values
]
}
});
}
};
}
if
(
u
.
type
==
"date"
||
u
.
type
==
"dateTime"
)
{
...
...
@@ -546,7 +570,7 @@ export default {
tr td .ivu-table-cell {
padding: 0 5px;
}
overflow-x: hidden;
overflow-x: hidden;
}
.table-tools {
display: flex;
...
...
components/page/userSelect.vue
View file @
afce80ad
...
...
@@ -27,19 +27,18 @@
<div
v-width=
"50"
class=
"fa-m fs"
>
<span>
已选项
</span>
</div>
<div
class=
"fg"
>
<div
class=
"fg"
>
<dl>
<dd
v-for=
"(li,i) in checkedItems"
>
<div
class=
"flex"
>
<span
class=
"fg"
>
{{
li
.
userName
}}
</span>
<a
@
click=
"removeItem(li)"
>
<Icon
type=
"md-close"
size=
"16"
/>
</a>
</div>
</dd>
</dl>
<dd
v-for=
"(li,i) in checkedItems"
>
<div
class=
"flex"
>
<span
class=
"fg"
>
{{
li
.
userName
}}
</span>
<a
@
click=
"removeItem(li)"
>
<Icon
type=
"md-close"
size=
"16"
/>
</a>
</div>
</dd>
</dl>
</div>
</div>
</div>
...
...
@@ -53,13 +52,17 @@
clearable
filterable
>
<Option
v-for=
"item in dic"
:value=
"item.value"
:key=
"item.value"
:label=
"item.label"
>
<Option
v-for=
"item in datas?datas:dic"
:value=
"item.value"
:key=
"item.value"
:label=
"item.label"
>
<div>
<Icon
:type=
"item.gender == 1 ? 'ios-man' : 'ios-woman'"
/>
{{
item
.
label
}}
(
<span
style=
"color:#c3c3c3"
>
{{
item
.
cardNo
}}
</span>
)
{{
item
.
label
}}
<span
style=
"color:#c3c3c3"
v-if=
"item.cardNo"
>
(
{{
item
.
cardNo
}}
)
</span>
<br
/>
<span
style=
"color:#c3c3c3"
>
{{
item
.
departmentTitle
}}
</span>
<span
style=
"color:#c3c3c3"
v-if=
"item.departmentTitle"
>
{{
item
.
departmentTitle
}}
</span>
</div>
</Option>
</Select>
...
...
@@ -111,6 +114,11 @@ export default {
roleTitle
:
{
type
:
String
,
default
:
""
},
datas
:
{
//自定义用户数据
type
:
Array
,
default
:
null
}
},
methods
:
{
...
...
@@ -131,18 +139,18 @@ export default {
})
.
then
(
r
=>
{
this
.
data
=
r
.
result
;
if
(
this
.
theme
==
"list"
)
{
this
.
departmentGroup
();
if
(
this
.
theme
==
"list"
)
{
this
.
departmentGroup
();
}
});
},
departmentGroup
()
{
var
group
=
[];
var
users
=
this
.
$u
.
clone
(
this
.
data
);
if
(
this
.
name
&&
this
.
name
.
length
>
0
)
{
users
.
map
(
u
=>
{
u
.
checked
=
this
.
name
.
indexOf
(
u
.
id
)
>
-
1
;
})
var
users
=
this
.
$u
.
clone
(
this
.
data
);
if
(
this
.
name
&&
this
.
name
.
length
>
0
)
{
users
.
map
(
u
=>
{
u
.
checked
=
this
.
name
.
indexOf
(
u
.
id
)
>
-
1
;
})
;
}
group
=
this
.
$u
.
group
(
users
,
u
=>
{
return
u
.
departmentId
;
...
...
@@ -180,15 +188,15 @@ export default {
this
.
$set
(
this
.
group
,
i
,
u
);
}
});
this
.
listSetValue
();
this
.
listSetValue
();
},
//list 时,设置值。
listSetValue
(){
var
ids
=
[];
this
.
checkedItems
.
map
(
u
=>
{
ids
.
push
(
u
.
id
)
})
this
.
$emit
(
"on-change"
,
ids
);
listSetValue
()
{
var
ids
=
[];
this
.
checkedItems
.
map
(
u
=>
{
ids
.
push
(
u
.
id
)
;
})
;
this
.
$emit
(
"on-change"
,
ids
);
},
checkAll
(
item
,
i
)
{
item
.
children
.
map
(
u
=>
{
...
...
@@ -207,18 +215,34 @@ export default {
}
else
{
if
(
!
this
.
multiple
)
{
//单选时返回信息
var
item1
=
this
.
dic
.
filter
(
u
=>
u
.
value
==
this
.
value
);
if
(
item1
&&
item1
[
0
])
{
items
.
push
(
item1
[
0
]);
if
(
this
.
datas
&&
this
.
datas
.
length
>
0
)
{
var
item2
=
this
.
datas
.
filter
(
u
=>
u
.
value
==
this
.
value
);
if
(
item2
&&
item2
[
0
])
{
items
.
push
(
item2
[
0
]);
}
}
else
{
var
item1
=
this
.
dic
.
filter
(
u
=>
u
.
value
==
this
.
value
);
if
(
item1
&&
item1
[
0
])
{
items
.
push
(
item1
[
0
]);
}
}
}
else
{
//复选时返回
this
.
value
.
forEach
(
v
=>
{
var
item
=
this
.
dic
.
filter
(
u
=>
u
.
value
==
v
);
if
(
item
&&
item
[
0
])
{
items
.
push
(
item
[
0
]);
}
});
if
(
this
.
datas
&&
this
.
datas
.
length
>
0
)
{
this
.
value
.
forEach
(
v
=>
{
var
item3
=
this
.
dic
.
filter
(
u
=>
u
.
value
==
v
);
if
(
item3
&&
item3
[
0
])
{
items
.
push
(
item3
[
0
]);
}
});
}
else
{
this
.
value
.
forEach
(
v
=>
{
var
item
=
this
.
dic
.
filter
(
u
=>
u
.
value
==
v
);
if
(
item
&&
item
[
0
])
{
items
.
push
(
item
[
0
]);
}
});
}
}
}
...
...
@@ -284,6 +308,11 @@ export default {
this
.
getselectuser
(
v
);
},
deep
:
true
},
datas
(
v
)
{
if
(
v
)
{
//alert(JSON.stringify(v))
}
}
}
};
...
...
components/page/viewer.vue
View file @
afce80ad
<
template
>
<div>
<div
style=
"z-index:200"
>
<viewer
:options=
"options"
:images=
"images"
@
inited=
"inited"
class=
"viewer"
ref=
"viewer"
>
<template
slot-scope=
"scope"
>
<figure
class=
"images"
>
...
...
i18n/locale/zh-CN.js
View file @
afce80ad
...
...
@@ -1468,7 +1468,7 @@ export default {
creator
:
'创建人'
,
content
:
'内容'
,
filePath
:
'文件路径'
,
filePaths
:
'
多个文件路径
'
,
filePaths
:
'
文件图片
'
,
dispatchId
:
'工单id'
,
routingDetailId
:
'工序id'
,
routingHeaderId
:
'工艺规程id'
,
...
...
@@ -1489,5 +1489,30 @@ export default {
description
:
'描述'
,
levelNum
:
'编码分类层数'
,
codeLength
:
'编码分类位数'
,
}
},
//转续列表
order_execute_handon
:{
dispatchId
:
'工单id'
,
currentUserId
:
'当前操作人'
,
handonUserId
:
'转序人'
,
status
:
'状态'
,
currentDetailId
:
'工序id'
,
nextDetailId
:
'下道工序id'
,
remark
:
'备注'
,
finishTime
:
'工单完成时间'
,
productIdStr
:
'交接判定产品id字符串'
,
actualHandonUser
:
'实际交接人'
,
handonCardNo
:
'交接人刷卡号'
,
currentDetailName
:
'工序名称'
,
nextDetailName
:
'下道工序名称'
,
productName
:
'产品名称'
,
drawnNumber
:
'图号'
,
batchNumber
:
'批次号'
,
handonTime
:
'接收时间'
,
handonNo
:
'交接单号'
,
handonCount
:
'交接数量'
,
qualifiedCount
:
'合格数量'
,
currentUserName
:
'交接人名称'
,
handonUserName
:
'接收人名称'
,
}
}
pages/account/login/index.vue
View file @
afce80ad
...
...
@@ -77,10 +77,10 @@ export default {
password
}).
then
(
r
=>
{
if
(
r
>
0
)
{
this
.
$Message
.
success
(
"登
陆
成功!"
);
this
.
$Message
.
success
(
"登
录
成功!"
);
this
.
initUserInfo
(
r
);
}
else
{
this
.
$Message
.
error
(
"登
陆
失败!"
);
this
.
$Message
.
error
(
"登
录
失败!"
);
}
});
}
...
...
pages/account/login/index3.vue
View file @
afce80ad
...
...
@@ -29,7 +29,7 @@
</div>
<!--
<div
class=
"page-account-top-desc tc"
>
SaaS MES 制造执行系统
</div>
-->
</div>
<h3
class=
"mb20"
>
用户登
陆
</h3>
<h3
class=
"mb20"
>
用户登
录
</h3>
<Login
@
on-submit=
"handleSubmit"
>
<UserName
name=
"username"
value=
""
/>
<Password
name=
"password"
value=
""
enter-to-submit
/>
...
...
@@ -80,10 +80,10 @@ export default {
password
}).
then
(
r
=>
{
if
(
r
>
0
)
{
this
.
$Message
.
success
(
"登
陆
成功!"
);
this
.
$Message
.
success
(
"登
录
成功!"
);
this
.
initUserInfo
(
r
);
}
else
{
this
.
$Message
.
error
(
"登
陆
失败!"
);
this
.
$Message
.
error
(
"登
录
失败!"
);
}
});
}
...
...
pages/bug/component/add.vue
View file @
afce80ad
...
...
@@ -41,7 +41,7 @@
<FormItem
label
>
<files
ref=
"refFile"
:parms=
"parms"
files
/>
</FormItem>
</Row>
</Row>
</Form>
</div>
</
template
>
...
...
pages/home/index.vue
View file @
afce80ad
...
...
@@ -5,7 +5,7 @@
<img
src=
"@/assets/images/home/user.png"
/>
</div>
<div
class=
"user-text"
>
<p>
你好:张飞,欢迎登
陆
MES系统!
</p>
<p>
你好:张飞,欢迎登
录
MES系统!
</p>
<p>
<span>
xx公司/xx车间xx班组
</span>
&
nbsp
&
nbsp
<span>
工艺技术员
</span>
...
...
pages/materiel/classification/add.vue
View file @
afce80ad
...
...
@@ -184,7 +184,7 @@ export default {
if
(
r
.
result
)
{
var
arr
=
r
.
result
;
this
.
checkList
=
arr
.
filter
(
function
(
item
)
{
delete
item
[
"id"
];
delete
item
[
"id"
];
//删除属性id
return
item
;
});
}
...
...
@@ -201,7 +201,7 @@ export default {
this
.
checkList
.
splice
(
index
,
1
);
}
},
setRow
()
{
setRow
(
row
,
index
)
{
this
.
$set
(
this
.
checkList
,
index
,
row
);
},
addNew
()
{
...
...
@@ -229,12 +229,12 @@ export default {
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
}
else
{
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
}
})
.
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
});
}
});
...
...
pages/materiel/classification/edit.vue
View file @
afce80ad
...
...
@@ -69,8 +69,9 @@
<
template
slot-scope=
"{ row, index }"
slot=
"action"
v-if=
"row.fieldType==2||row.fieldType==3"
v-if=
"row.fieldType==2||row.fieldType==3
||!row.notEditDelete
"
>
<!-- notEditDelete=true,删除不显示 -->
<a
@
click=
"remove(index,row)"
style=
"color:#FF7A8B"
>
删除
</a>
</
template
>
</Table>
...
...
@@ -197,7 +198,7 @@ export default {
this
.
checkList
.
splice
(
index
,
1
);
}
},
setRow
()
{
setRow
(
row
,
index
)
{
this
.
$set
(
this
.
checkList
,
index
,
row
);
},
addNew
()
{
...
...
@@ -227,12 +228,12 @@ export default {
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
}
else
{
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
}
})
.
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
});
}
});
...
...
pages/materiel/classification/index.vue
View file @
afce80ad
...
...
@@ -53,7 +53,7 @@
</a>
</div>
<Content
:class=
"!showMenu?'con_bord':''"
>
<
!--
<Product
:parent=
"parent"
/>
--
>
<
MasterData
ref=
"dataTable"
@
on-edit=
"editRow"
/
>
</Content>
</Layout>
<Modal
v-model=
"modal"
:title=
"title"
width=
"1000"
footer-hide
:mask-closable=
"false"
>
...
...
@@ -69,11 +69,14 @@
</div>
</
template
>
<
script
>
// import spareParts from "./spareParts
";
// import Product from "./product";
import
MasterData
from
"./masterData.vue
"
;
import
Api
from
"./api"
;
export
default
{
name
:
""
,
components
:
{
MasterData
},
name
:
"classification"
,
data
()
{
return
{
keys
:
""
,
...
...
@@ -85,11 +88,7 @@ export default {
curId
:
0
,
detail
:
null
,
showMenu
:
true
,
parent
:
{
id
:
null
,
parentName
:
""
,
ids
:
""
}
dataList
:
[]
};
},
async
fetch
({
store
,
params
})
{
...
...
@@ -103,15 +102,19 @@ export default {
//this.$Message.info("展开左侧树")
this
.
showMenu
=
true
;
},
ok
()
{
ok
(
row
)
{
this
.
loadTree
();
this
.
modal
=
false
;
this
.
curId
=
0
;
if
(
row
)
{
this
.
dataList
.
map
((
e
,
index
)
=>
{
if
(
e
.
id
==
row
.
id
)
{
this
.
$set
(
this
.
$refs
.
dataTable
.
dataColumns
,
index
,
row
);
}
});
}
},
addNew
()
{
// this.nodeInfo.id = 0;
// let conditions = [];
this
.
curId
=
0
;
this
.
title
=
"新增"
;
this
.
detail
=
()
=>
import
(
"./add"
);
...
...
@@ -124,6 +127,10 @@ export default {
this
.
detail
=
()
=>
import
(
"./sonAdd"
);
this
.
modal
=
true
;
},
editRow
(
row
)
{
this
.
nodeInfo
=
row
;
this
.
edit
();
},
edit
()
{
if
(
this
.
nodeInfo
.
upId
==
0
)
{
this
.
detail
=
()
=>
import
(
"./edit"
);
...
...
@@ -166,9 +173,9 @@ export default {
"span"
,
{
on
:
{
//
click: () => {
//
this.handleSelect(data); //手动选择树节点
//
},
click
:
()
=>
{
this
.
handleSelect
(
data
);
//手动选择树节点
},
//右键点击事件
contextmenu
:
e
=>
{
e
.
preventDefault
();
...
...
@@ -182,9 +189,32 @@ export default {
data
.
title
);
},
// handleSelect(data) {
// this.$emit("clickItem", data);
// },
handleSelect
(
data
)
{
let
tableData
=
[];
let
obj
=
{};
let
children
=
0
;
if
(
data
.
upId
==
0
&&
data
.
children
.
length
>
0
)
{
data
.
children
.
forEach
(
e
=>
{
if
(
e
.
children
.
length
>
0
)
{
children
=
1
;
}
else
{
children
=
0
;
}
obj
=
{
id
:
e
.
id
,
name
:
e
.
name
,
code
:
e
.
code
,
status
:
e
.
status
,
children
:
children
,
upId
:
e
.
upId
,
description
:
e
.
description
};
tableData
.
push
(
obj
);
});
this
.
dataList
=
tableData
;
this
.
$refs
.
dataTable
.
dataColumns
=
tableData
;
}
},
loadTree
()
{
let
conditions
=
[];
Api
.
list
({
conditions
:
conditions
}).
then
(
r
=>
{
...
...
pages/materiel/classification/masterData.vue
0 → 100644
View file @
afce80ad
<
template
>
<div
class=
"master-data"
>
<Table
border
:columns=
"columns"
:data=
"dataColumns"
:height=
"tableHeight"
></Table>
</div>
</
template
>
<
script
>
import
Api
from
"./api"
;
export
default
{
name
:
"masterData"
,
data
()
{
return
{
tableHeight
:
""
,
dataColumns
:
[],
columns
:
[
// {
// key: "index",
// title: "#",
// align: "left",
// width: 60
// },
{
key
:
"code"
,
title
:
"编码"
,
align
:
"left"
},
{
key
:
"name"
,
title
:
"名称"
,
align
:
"left"
},
{
key
:
"status"
,
title
:
"状态"
,
align
:
"left"
,
render
:
(
h
,
params
)
=>
{
return
h
(
"state"
,
{
props
:
{
code
:
"materail.category.status"
,
type
:
"text"
,
value
:
params
.
row
.
status
+
""
}
});
}
},
{
key
:
"banben"
,
title
:
"版本"
,
align
:
"left"
},
{
key
:
"description"
,
title
:
"描述"
,
align
:
"left"
},
{
title
:
"操作"
,
key
:
"action"
,
width
:
260
,
align
:
"left"
,
render
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
{
class
:
"action"
},
[
h
(
"op"
,
{
attrs
:
{
oprate
:
"edit"
},
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
)
}
},
"编辑"
),
h
(
"op"
,
{
attrs
:
{
oprate
:
"delete"
},
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
.
id
)
}
},
params
.
row
.
children
==
0
?
"删除"
:
""
)
]);
}
}
]
};
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
created
()
{
this
.
tableHeight
=
window
.
innerHeight
-
150
;
},
mounted
()
{
window
.
onresize
=
()
=>
{
///浏览器窗口大小变化
return
(()
=>
{
window
.
screenHeight
=
window
.
innerHeight
;
this
.
tableHeight
=
window
.
innerHeight
-
150
;
})();
};
},
methods
:
{
edit
(
row
)
{
this
.
$emit
(
"on-edit"
,
row
);
},
remove
(
id
)
{
this
.
$Modal
.
confirm
({
title
:
"删除"
,
content
:
"<p>您确定要删除吗?</p>"
,
onOk
:
()
=>
{
Api
.
delete
(
id
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
loadTree
();
this
.
$Message
.
success
(
"删除成功"
);
}
});
},
onCancel
:
()
=>
{
this
.
$Message
.
success
(
"取消删除"
);
}
});
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
.spare-parts {
width: 100%;
height: 100%;
}
</
style
>
\ No newline at end of file
pages/materiel/classification/masterData/add.vue
deleted
100644 → 0
View file @
c7a391f1
<
template
>
<div>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
:span=
"12"
>
<FormItem
label=
"编码"
prop=
"userUnit"
>
<Input
v-model=
"entity.userUnit"
placeholder=
"请输入"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
label=
"名称"
prop=
"taskBased"
>
<Input
v-model=
"entity.taskBased"
placeholder=
"请输入"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
label=
"状态"
prop=
"productName"
placeholder=
"请选择"
>
<Select
v-model=
"entity.productName"
style=
"width:200px"
>
<Option
value=
"0"
>
New York
</Option>
<Option
value=
"1"
disabled
>
London
</Option>
<Option
value=
"2"
>
Sydney
</Option>
</Select>
</FormItem>
</Col>
<Col
:span=
"24"
>
<FormItem
label=
"描述"
prop=
"productName"
>
<Input
v-model=
"entity.productName"
type=
"textarea"
placeholder=
"请输入..."
></Input>
</FormItem>
</Col>
<Col
:span=
"24"
>
<h4>
属性配置
</h4>
</Col>
<Col
:span=
"24"
style=
"padding:20px 0 0px 10px;margin-bottom:10px;"
class=
"table-solt"
>
<Table
border
:columns=
"columns"
:data=
"checkList"
class=
"tableCommon"
>
<template
slot-scope=
"
{ row, index }" slot="name">
<Input
v-model=
"row.name"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"require"
>
<Input
v-model=
"row.require"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"result"
>
<Input
v-model=
"row.result"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"pash"
>
<inputFile
v-model=
"row.file"
:files=
"true"
:parms=
"getParams(row.fileId)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"remark"
>
<Input
v-model=
"row.remark"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
</
template
>
</Table>
</Col>
<Col
:span=
"24"
style=
"margin-bottom:20px;"
>
<Button
type=
"primary"
long
@
click=
"addNew"
class=
"mt10"
>
添加
</Button>
</Col>
<Col
:span=
"24"
style=
"text-align: right;"
>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
entity
:
{},
disabled
:
false
,
columns
:
[
{
title
:
"序号"
,
type
:
"index"
,
width
:
80
,
align
:
"center"
},
{
title
:
"检验项目"
,
key
:
"name"
,
align
:
"center"
,
slot
:
"name"
},
{
title
:
"要求"
,
key
:
"require"
,
align
:
"center"
,
slot
:
"require"
},
{
title
:
"预测结果"
,
key
:
"result"
,
align
:
"center"
,
slot
:
"result"
}
],
checkList
:
[],
rules
:
{
businessName
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
businessCode
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
}
};
},
methods
:
{
setRow
()
{
this
.
checkList
=
r
.
result
;
},
addNew
()
{},
handleSubmit
()
{
this
.
$refs
.
form
.
validate
(
v
=>
{});
},
handleClose
()
{
this
.
$emit
(
'on-close'
)
}
}
};
</
script
>
pages/materiel/classification/sonAdd.vue
View file @
afce80ad
...
...
@@ -74,12 +74,12 @@ export default {
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
}
else
{
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
}
})
.
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
});
}
});
...
...
pages/materiel/classification/sonEdit.vue
View file @
afce80ad
...
...
@@ -81,14 +81,14 @@ export default {
.
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
this
.
$emit
(
"on-ok"
,
this
.
entity
);
}
else
{
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
}
})
.
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
this
.
$Message
.
error
(
r
.
error
.
message
);
});
}
});
...
...
pages/materiel/masterData/add.vue
0 → 100644
View file @
afce80ad
<
template
>
<div>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
:span=
"12"
>
<FormItem
label=
"编码"
prop=
"code"
>
<Input
v-model=
"entity.code"
placeholder=
"请输入"
disabled
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
label=
"名称"
prop=
"name"
>
<Input
v-model=
"entity.name"
placeholder=
"请输入"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
label=
"状态"
prop=
"status"
placeholder=
"请选择"
>
<Dictionary
code=
"materail.category.status"
v-model=
"entity.status"
type=
"select"
:value=
"entity.status"
:key=
"entity.status"
></Dictionary>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
label=
"版本"
prop=
"version"
>
<Input
v-model=
"entity.version"
placeholder=
"请输入"
></Input>
</FormItem>
</Col>
<Col
:span=
"24"
>
<FormItem
label=
"描述"
prop=
"description"
>
<Input
v-model=
"entity.description"
type=
"textarea"
placeholder=
"请输入..."
></Input>
</FormItem>
</Col>
<Col
:span=
"24"
style=
"text-align: right;"
>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</
template
>
<
script
>
import
Api
from
"./api"
;
export
default
{
props
:
[
"nodeInfo"
],
data
()
{
return
{
arr
:
[],
entity
:
{
code
:
0
,
categoryId
:
this
.
nodeInfo
.
categoryId
,
//左侧树点击的id
customProperties
:
{},
rootCategoryId
:
this
.
nodeInfo
.
rootCategoryId
//左侧树点击的数据的最顶层id
},
disabled
:
false
,
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
}
};
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{
// this.tableData();
},
methods
:
{
tableData
()
{
let
conditions
=
[
{
conditionalType
:
"In"
,
fieldName
:
"fieldType"
,
fieldValue
:
"1,2"
},
{
conditionalType
:
"Equal"
,
fieldName
:
"categoryId"
,
fieldValue
:
"0"
}
];
Api
.
listTable
({
conditions
:
conditions
}).
then
(
r
=>
{
if
(
r
.
result
)
{
var
arr
=
r
.
result
;
this
.
checkList
=
arr
.
filter
(
function
(
item
)
{
delete
item
[
"id"
];
return
item
;
});
}
});
},
remove
(
index
,
row
)
{
if
(
row
.
add
==
0
)
{
//新增的删除,直接删
this
.
checkList
.
splice
(
index
,
1
);
}
else
{
row
.
action
=
2
;
//返回的默认删除,删除后保存在arr数组中,添加标识action = 2,然后点击保存的时候,一起传给后台
this
.
$set
(
this
.
checkList
,
index
,
row
);
this
.
arr
.
push
(
row
);
this
.
checkList
.
splice
(
index
,
1
);
}
},
setRow
(
row
,
index
)
{
this
.
$set
(
this
.
checkList
,
index
,
row
);
},
handleSubmit
()
{
this
.
$refs
.
form
.
validate
(
v
=>
{
if
(
v
)
{
// let categoryDto = this.entity;
// let pro = this.checkList.concat(this.arr);
Api
.
create
(
this
.
entity
)
.
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
}
else
{
this
.
$Message
.
error
(
r
.
error
.
message
);
}
})
.
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
r
.
error
.
message
);
});
}
});
},
handleClose
()
{
this
.
$emit
(
"on-close"
);
}
}
};
</
script
>
pages/materiel/masterData/api.js
0 → 100644
View file @
afce80ad
import
Api
from
'@/plugins/request'
export
default
{
index
:
`
${
systemUrl
}
/material/paged`
,
paged
(
params
){
return
Api
.
post
(
`
${
systemUrl
}
/material/paged`
,
params
);
},
list
(
params
){
return
Api
.
post
(
`
${
systemUrl
}
/category/list`
,
params
);
},
get
(
params
){
return
Api
.
get
(
`
${
systemUrl
}
/material/get`
,
params
);
},
create
(
params
){
return
Api
.
post
(
`
${
systemUrl
}
/material/create`
,
params
);
},
update
(
params
){
return
Api
.
post
(
`
${
systemUrl
}
/material/update`
,
params
);
},
delete
(
id
)
{
return
Api
.
delete
(
`
${
systemUrl
}
/material/delete`
,{
params
:{
id
:
id
}});
},
}
\ No newline at end of file
pages/materiel/masterData/edit.vue
0 → 100644
View file @
afce80ad
<
template
>
<div>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<!--
<Col
:span=
"12"
>
<FormItem
label=
"编码"
prop=
"code"
>
<Input
v-model=
"entity.code"
placeholder=
"请输入"
disabled
></Input>
</FormItem>
</Col>
-->
<Col
:span=
"12"
>
<FormItem
label=
"名称"
prop=
"name"
>
<Input
v-model=
"entity.name"
placeholder=
"请输入"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
label=
"状态"
prop=
"status"
placeholder=
"请选择"
>
<Dictionary
code=
"materail.category.status"
v-model=
"entity.status"
type=
"select"
:value=
"entity.status"
:key=
"entity.status"
></Dictionary>
</FormItem>
</Col>
<Col
:span=
"24"
>
<FormItem
label=
"描述"
prop=
"description"
>
<Input
v-model=
"entity.description"
type=
"textarea"
placeholder=
"请输入..."
></Input>
</FormItem>
</Col>
<Col
:span=
"24"
>
<h4>
属性配置
</h4>
</Col>
<Col
:span=
"24"
style=
"padding:20px 0 0px 10px;margin-bottom:10px;"
class=
"table-solt"
>
<!--fieldType 1.固有,2.默认,3自定义; -->
<Table
border
:columns=
"columns"
:data=
"checkList"
class=
"tableCommon"
height=
"300"
>
<template
slot-scope=
"
{ row, index }" slot="title">
<div
v-if=
"row.fieldType==1||row.fieldType==2"
>
{{
row
.
title
}}
</div>
<Input
v-else
v-model=
"row.title"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"note"
>
<div
v-if=
"row.fieldType==1"
>
{{
row
.
note
}}
</div>
<Input
v-model=
"row.note"
placeholder=
"请输入"
@
on-blur=
"setRow(row,index)"
v-else
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"dataType"
>
<state
v-if=
"row.fieldType==1"
code=
"materail.category.dataType"
:value=
"row.dataType"
type=
"text"
></state>
<Dictionary
v-else
code=
"materail.category.dataType"
type=
"select"
:value=
"row.dataType"
:key=
"row.dataType"
></Dictionary>
</
template
>
<!-- <template slot-scope="{ row, index }" slot="result">
<Input v-model="row.result" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>-->
<
template
slot-scope=
"{ row, index }"
slot=
"required"
>
<Checkbox
v-model=
"row.required"
@
on-change=
"setRow(row,index)"
></Checkbox>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"isUnique"
>
<Checkbox
v-model=
"row.isUnique"
@
on-change=
"setRow(row,index)"
></Checkbox>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
v-if=
"row.fieldType==2||row.fieldType==3"
>
<a
@
click=
"remove(index,row)"
style=
"color:#FF7A8B"
>
删除
</a>
</
template
>
</Table>
</Col>
<Col
:span=
"24"
style=
"margin-bottom:20px;"
>
<Button
type=
"primary"
long
@
click=
"addNew"
class=
"mt10"
>
添加
</Button>
</Col>
<Col
:span=
"24"
style=
"text-align: right;"
>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</template>
<
script
>
import
Api
from
"./api"
;
export
default
{
props
:
[
"nodeInfo"
],
data
()
{
return
{
entity
:
{
upId
:
0
,
code
:
0
},
arr
:
[],
disabled
:
false
,
columns
:
[
{
title
:
"序号"
,
type
:
"index"
,
width
:
80
,
align
:
"center"
},
{
title
:
"属性名称"
,
key
:
"title"
,
align
:
"center"
,
slot
:
"title"
},
{
title
:
"备注"
,
key
:
"note"
,
align
:
"center"
,
slot
:
"note"
},
{
title
:
"属性类型"
,
key
:
"dataType"
,
align
:
"center"
,
slot
:
"dataType"
},
// {
// title: "是否显示",
// key: "result",
// align: "center",
// slot: "result"
// },
{
title
:
"是否必填"
,
key
:
"required"
,
align
:
"center"
,
slot
:
"required"
},
{
title
:
"是否唯一属性"
,
key
:
"isunique"
,
align
:
"center"
,
slot
:
"isunique"
},
{
title
:
"操作"
,
slot
:
"action"
,
width
:
100
,
align
:
"center"
}
],
checkList
:
[],
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
}
};
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{
this
.
get
();
},
methods
:
{
get
()
{
Api
.
get
({
id
:
this
.
nodeInfo
.
id
}).
then
(
r
=>
{
if
(
r
.
result
)
{
this
.
entity
=
r
.
result
;
this
.
tableData
();
}
});
},
tableData
()
{
let
conditions
=
[
{
conditionalType
:
"Equal"
,
fieldName
:
"categoryId"
,
fieldValue
:
this
.
nodeInfo
.
id
}
];
Api
.
listTable
({
conditions
:
conditions
}).
then
(
r
=>
{
if
(
r
.
result
)
{
console
.
log
(
r
);
this
.
checkList
=
r
.
result
;
}
});
},
remove
(
index
,
row
)
{
if
(
row
.
add
==
0
)
{
this
.
checkList
.
splice
(
index
,
1
);
}
else
{
row
.
action
=
2
;
this
.
$set
(
this
.
checkList
,
index
,
row
);
this
.
arr
.
push
(
row
);
this
.
checkList
.
splice
(
index
,
1
);
}
},
setRow
(
row
,
index
)
{
this
.
$set
(
this
.
checkList
,
index
,
row
);
},
addNew
()
{
let
arr
=
this
.
$u
.
clone
(
this
.
checkList
);
let
obj
=
{
title
:
""
,
note
:
""
,
dataType
:
""
,
required
:
false
,
isunique
:
false
,
fieldType
:
3
,
categoryId
:
0
,
action
:
1
,
add
:
0
};
arr
.
push
(
obj
);
this
.
checkList
=
arr
;
},
handleSubmit
()
{
this
.
$refs
.
form
.
validate
(
v
=>
{
if
(
v
)
{
let
categoryDto
=
this
.
entity
;
let
pro
=
this
.
checkList
.
concat
(
this
.
arr
);
Api
.
update
({
categoryDto
:
categoryDto
,
pro
:
pro
})
.
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
}
else
{
this
.
$Message
.
error
(
"保存失败"
);
}
})
.
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
});
}
});
},
handleClose
()
{
this
.
$emit
(
"on-close"
);
}
}
};
</
script
>
pages/materiel/masterData/index.vue
View file @
afce80ad
<
template
>
<div
class=
"master-data"
>
<Button
type=
"dashed"
@
click=
"datail"
>
详情
</Button>
<div
class=
"classification"
>
<Layout>
<Sider
width=
"300"
v-if=
"showMenu"
>
<div
class=
"p-list"
>
<h3>
零部件库
<div
class=
"fr mr10 mt10"
>
<ButtonGroup
class=
"fr"
size=
"small"
>
<!--
<Button
icon=
"md-add"
title=
"新增顶级"
@
click=
"addNew"
></Button>
-->
<Button
:icon=
"expand ? 'md-arrow-dropright' : 'md-arrow-dropdown'"
@
click=
"toggle"
title=
"展开/合并"
></Button>
<Button
icon=
"md-refresh"
title=
"刷新"
@
click=
"loadTree"
></Button>
<Button
icon=
"md-rewind"
title=
"收起"
@
click=
"hide"
></Button>
</ButtonGroup>
</div>
</h3>
<div
class=
"search"
>
<Input
search
placeholder=
"关键字"
v-model=
"keys"
clearable
/>
</div>
<div
class=
"fg"
>
<div
class=
"tree"
>
<Tree
:data=
"data"
ref=
"tree"
@
on-select-change=
"change"
:render=
"renderContent"
></Tree>
</div>
</div>
</div>
</Sider>
<div
v-if=
"!showMenu"
class=
"show_menu"
>
<a
class=
"menu_play fr"
@
click=
"showMenuFn"
title=
"展开"
>
<Icon
type=
"ios-arrow-forward"
size=
"24"
/>
</a>
</div>
<Content
:class=
"!showMenu?'con_bord':''"
>
<MasterData
ref=
"dataTable"
:nodeInfo=
"nodeInfo"
/>
</Content>
</Layout>
</div>
</
template
>
<
script
>
import
MasterData
from
"./masterData.vue"
;
import
Api
from
"./api"
;
export
default
{
components
:
{
MasterData
},
name
:
"masterData"
,
data
()
{
return
{};
return
{
keys
:
""
,
expand
:
false
,
list
:
[],
nodeInfo
:
{
categoryId
:
0
,
rootCategoryId
:
0
},
modal
:
false
,
title
:
"新增"
,
curId
:
0
,
detail
:
null
,
showMenu
:
true
,
dataList
:
[]
};
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
created
()
{
this
.
loadTree
();
},
methods
:
{
datail
()
{
this
.
$router
.
push
({
path
:
"/materiel/masterData/details"
showMenuFn
()
{
//this.$Message.info("展开左侧树")
this
.
showMenu
=
true
;
},
ok
(
row
)
{
this
.
loadTree
();
this
.
modal
=
false
;
this
.
curId
=
0
;
if
(
row
)
{
this
.
dataList
.
map
((
e
,
index
)
=>
{
if
(
e
.
id
==
row
.
id
)
{
this
.
$set
(
this
.
$refs
.
dataTable
.
dataColumns
,
index
,
row
);
}
});
}
},
cancel
()
{
this
.
curId
=
0
;
this
.
modal
=
false
;
},
renderContent
(
h
,
{
root
,
node
,
data
})
{
return
h
(
"span"
,
{
on
:
{
click
:
()
=>
{
this
.
handleSelect
(
root
,
data
);
//手动选择树节点
}
}
},
data
.
title
);
},
handleSelect
(
root
,
data
)
{
// console.log(root);
let
pid
=
null
;
//定义最顶级id
let
upId
=
data
.
upId
;
let
roots
=
root
;
function
addId
(
roots
,
upId
)
{
roots
.
map
(
u
=>
{
if
(
u
.
node
.
id
==
upId
)
{
if
(
u
.
node
.
upId
==
0
)
{
pid
=
u
.
node
.
id
;
}
else
{
upId
=
u
.
node
.
upId
;
addId
(
roots
,
upId
);
}
}
});
}
addId
(
roots
,
upId
);
this
.
nodeInfo
.
categoryId
=
data
.
id
;
if
(
pid
==
null
)
{
this
.
nodeInfo
.
rootCategoryId
=
data
.
id
;
}
else
{
this
.
nodeInfo
.
rootCategoryId
=
pid
;
}
},
loadTree
()
{
let
conditions
=
[];
Api
.
list
({
conditions
:
conditions
}).
then
(
r
=>
{
var
data
=
this
.
$u
.
toTree
(
r
.
result
,
0
,
u
=>
{
u
.
title
=
u
.
code
+
u
.
name
;
u
.
value
=
u
.
id
;
u
.
expand
=
true
;
},
"upId"
);
this
.
list
=
this
.
$u
.
clone
(
data
);
});
},
toggle
()
{
this
.
expand
=
!
this
.
expand
;
},
change
(
v
,
b
)
{},
hide
()
{
this
.
showMenu
=
false
;
}
},
computed
:
{
data
()
{
let
items
=
this
.
$u
.
clone
(
this
.
list
);
let
expand
=
this
.
expand
;
let
result
=
[];
search
(
this
.
keys
,
items
);
function
search
(
keys
,
data
)
{
data
.
map
(
u
=>
{
if
(
keys
.
length
<
u
.
title
)
{
u
.
expand
=
expand
;
result
.
push
(
u
);
}
else
{
u
.
expand
=
expand
;
if
(
u
.
title
.
indexOf
(
keys
)
>
-
1
)
{
result
.
push
(
u
);
}
else
if
(
u
.
children
)
{
search
(
keys
,
u
.
children
);
}
}
});
}
return
result
;
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
.master-data {
width: 100%;
height: 100%;
<
style
lang=
"less"
>
.classification {
font-family: Microsoft YaHei;
.ivu-layout-sider {
background: rgba(255, 255, 255, 1);
margin-right: 10px;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
height: 87vh;
h4 {
height: 30px;
line-height: 30px;
background: #eee;
padding-left: 10px;
}
.p-list {
h3 {
height: 50px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 50px;
color: rgba(81, 90, 110, 1);
background: rgba(245, 246, 250, 1);
opacity: 1;
padding-left: 10px;
}
.search {
height: 50px;
padding: 5px 10px;
}
.fg {
flex: none;
height: 100%;
overflow: auto;
padding-left: 10px;
}
.tree {
height: calc(100vh - 215px);
overflow: auto;
}
}
}
.show_menu {
width: 30px;
height: 30px;
position: fixed;
top: 100px;
left: 0;
z-index: 9;
.menu_play {
width: 30px;
height: 30px;
line-height: 34px;
font-size: 14px;
text-align: center;
color: #515a6e;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
background: #ffffff;
box-shadow: #ccc 2px 2px 4px 1px;
}
.menu_play:hover {
background-color: #2d8cf0;
color: white;
}
}
.ivu-layout-content {
// margin-left: 5px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
overflow: auto;
padding: 10px;
height: 87vh;
overflow-y: hidden;
}
}
</
style
>
\ No newline at end of file
pages/materiel/
classification/masterData/index
.vue
→
pages/materiel/
masterData/masterData
.vue
View file @
afce80ad
<
template
>
<div
class=
"master-data"
>
<DataGrid
:columns=
"columns"
ref=
"grid"
:action=
"action"
>
{{
nodeInfo
}}
<DataGrid
:columns=
"columns"
ref=
"grid"
:action=
"action"
:initsearch=
"sets"
:high=
"false"
>
<template
slot=
"easySearch"
>
<Form
ref=
"formInline"
:model=
"easySearch"
inline
>
<FormItem
prop=
"keys"
>
<Input
placeholder=
"请输入编码/名称"
v-width=
"200"
v-model=
"easySearch.keys.value"
clearable
/>
<Input
placeholder=
"请输入编码/名称/状态"
v-width=
"200"
v-model=
"easySearch.keys.value"
clearable
/>
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
</FormItem>
</Form>
</
template
>
<!-- <template slot="searchForm">
<Search />
</template>-->
<
template
slot=
"buttons"
>
<Button
type=
"primary"
@
click=
"add"
>
新增
</Button>
</
template
>
</DataGrid>
<Modal
v-model=
"modal"
:title=
"title"
width=
"1120"
footer-hide
>
<component
:is=
"detail"
:eid=
"curId"
@
on-close=
"cancel"
@
on-ok=
"ok"
/>
<Modal
v-model=
"modal"
:title=
"title"
width=
"1000"
footer-hide
:mask-closable=
"false"
>
<component
:is=
"detail"
:eid=
"curId"
:nodeInfo=
"nodeInfo"
@
on-close=
"cancel"
@
on-ok=
"ok"
ref=
"chlidren"
/>
</Modal>
</div>
</template>
<
script
>
import
Api
from
"./api"
;
// import Search from "./search";
export
default
{
name
:
"masterData"
,
components
:
{
// Search
},
props
:
[
"nodeInfo"
],
data
()
{
return
{
action
:
""
,
detail
:
null
,
action
:
Api
.
index
,
modal
:
false
,
title
:
"新增"
,
curId
:
0
,
detail
:
null
,
sets
:
v
=>
{
v
.
categoryId
=
this
.
nodeInfo
.
categoryId
;
v
.
rootCategoryId
=
this
.
nodeInfo
.
rootCategoryId
;
},
easySearch
:
{
keys
:
{
op
:
"name,code"
,
value
:
null
}
keys
:
{
op
:
"Code,Name"
,
value
:
null
},
// categoryId: {
// op: "In",
// value: this.nodeInfo.categoryId
// },
// rootCategoryId: {
// op: "In",
// value: this.nodeInfo.rootCategoryId
// }
},
title
:
""
,
columns
:
[
// {
// key: "index",
// title: "#",
// align: "left",
// width: 60
// },
{
key
:
"
c
ode"
,
key
:
"
C
ode"
,
title
:
"编码"
,
align
:
"left"
,
width
:
200
,
easy
:
true
,
high
:
true
align
:
"left"
},
{
key
:
"
n
ame"
,
key
:
"
N
ame"
,
title
:
"名称"
,
align
:
"left"
},
{
key
:
"Status"
,
title
:
"状态"
,
align
:
"left"
,
easy
:
true
,
high
:
true
,
tooltip
:
true
render
:
(
h
,
params
)
=>
{
return
h
(
"state"
,
{
props
:
{
code
:
"materail.category.status"
,
type
:
"text"
,
value
:
params
.
row
.
Status
+
""
}
});
}
},
{
key
:
"Version"
,
title
:
"版本"
,
align
:
"left"
},
{
key
:
"Description"
,
title
:
"描述"
,
align
:
"left"
},
{
title
:
"操作"
,
...
...
@@ -70,7 +129,7 @@ export default {
attrs
:
{
oprate
:
"delete"
},
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
.
id
)
}
},
"删除
"
params
.
row
.
children
==
0
?
"删除"
:
"
"
)
]);
}
...
...
@@ -78,21 +137,40 @@ export default {
]
};
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
created
()
{},
methods
:
{
edit
()
{
this
.
modal
=
true
;
this
.
detail
=
()
=>
import
(
"./add"
);
search
()
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
},
remove
()
{},
add
()
{
this
.
modal
=
true
;
this
.
curId
=
0
;
this
.
title
=
"新增"
;
this
.
detail
=
()
=>
import
(
"./add"
);
this
.
modal
=
true
;
},
search
()
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
edit
(
row
)
{},
remove
(
id
)
{
this
.
$Modal
.
confirm
({
title
:
"删除"
,
content
:
"<p>您确定要删除吗?</p>"
,
onOk
:
()
=>
{
Api
.
delete
(
id
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
loadTree
();
this
.
$Message
.
success
(
"删除成功"
);
}
});
},
onCancel
:
()
=>
{
this
.
$Message
.
success
(
"取消删除"
);
}
});
},
ok
()
{
// this.$refs.grid.load(
);
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
this
.
modal
=
false
;
this
.
curId
=
0
;
},
...
...
@@ -100,6 +178,13 @@ export default {
this
.
curId
=
0
;
this
.
modal
=
false
;
}
},
watch
:
{
"nodeInfo.categoryId"
(
v
)
{
if
(
v
)
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
}
}
}
};
</
script
>
...
...
pages/produce/execute/ProcessCase/add.vue
View file @
afce80ad
<
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
:span=
"12"
><FormItem
:label=
"l('creationTime')"
prop=
"creationTime"
>
<DatePicker
type=
"date"
v-model=
"entity.creationTime"
></DatePicker>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('creatorUserId')"
prop=
"creatorUserId"
>
<InputNumber
v-model=
"entity.creatorUserId"
></InputNumber>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('lastModificationTime')"
prop=
"lastModificationTime"
>
<DatePicker
type=
"date"
v-model=
"entity.lastModificationTime"
></DatePicker>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('lastModifierUserId')"
prop=
"lastModifierUserId"
>
<InputNumber
v-model=
"entity.lastModifierUserId"
></InputNumber>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('isDeleted')"
prop=
"isDeleted"
>
<InputNumber
v-model=
"entity.isDeleted"
></InputNumber>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('deletionTime')"
prop=
"deletionTime"
>
<DatePicker
type=
"date"
v-model=
"entity.deletionTime"
></DatePicker>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('deleterUserId')"
prop=
"deleterUserId"
>
<InputNumber
v-model=
"entity.deleterUserId"
></InputNumber>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('title')"
prop=
"title"
>
<Input
v-model=
"entity.title"
>
</Input>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('creator')"
prop=
"creator"
>
<Input
v-model=
"entity.creator"
>
</Input>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('content')"
prop=
"content"
>
<Input
v-model=
"entity.content"
>
</Input>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('filePath')"
prop=
"filePath"
>
<InputFile
v-model=
"entity.filePath"
></InputFile>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('filePaths')"
prop=
"filePaths"
>
<Input
v-model=
"entity.filePaths"
>
</Input>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('dispatchId')"
prop=
"dispatchId"
>
<InputNumber
v-model=
"entity.dispatchId"
></InputNumber>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('routingDetailId')"
prop=
"routingDetailId"
>
<InputNumber
v-model=
"entity.routingDetailId"
></InputNumber>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('routingHeaderId')"
prop=
"routingHeaderId"
>
<InputNumber
v-model=
"entity.routingHeaderId"
></InputNumber>
</FormItem></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('type')"
prop=
"type"
>
<InputNumber
v-model=
"entity.type"
></InputNumber>
</FormItem></Col>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
</
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
:span=
"24"
>
<FormItem
:label=
"l('title')"
prop=
"title"
style=
"width:95%"
>
<Input
v-model=
"entity.title"
></Input>
</FormItem>
</Col>
<Col
:span=
"24"
>
<FormItem
label
>
<!--
<files
ref=
"refFile"
:parms=
"parms"
files
/>
-->
<files
ref=
"refFile"
:parms=
"parms"
fileFormat
:Photos=
"true"
@
clickItem=
"clickData"
/>
</FormItem>
<!--
<FormItem
:label=
"l('filePath')"
prop=
"filePath"
>
<InputFile
v-model=
"entity.filePath"
></InputFile>
</FormItem>
-->
</Col>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
</
template
>
<
script
>
import
Api
from
'./api'
export
default
{
name
:
'Add'
,
data
()
{
return
{
disabled
:
false
,
entity
:
{
creationTime
:
null
,
creatorUserId
:
null
,
lastModificationTime
:
null
,
lastModifierUserId
:
null
,
isDeleted
:
null
,
deletionTime
:
null
,
deleterUserId
:
null
,
title
:
""
,
creator
:
""
,
content
:
""
,
filePath
:
""
,
filePaths
:
""
,
dispatchId
:
null
,
routingDetailId
:
null
,
routingHeaderId
:
null
,
type
:
null
},
rules
:
{
name
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}]
}
}
},
props
:
{
v
:
Object
,
eid
:
Number
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
}
},
methods
:
{
handleSubmit
()
{
this
.
$refs
.
form
.
validate
((
v
)
=>
{
if
(
v
)
{
this
.
disabled
=
true
;
Api
.
create
(
this
.
entity
).
then
((
r
)
=>
{
this
.
disabled
=
false
;
if
(
r
.
success
)
{
this
.
$Message
.
success
(
'保存成功'
)
this
.
$emit
(
'on-ok'
)
}
else
{
this
.
$Message
.
error
(
'保存失败'
)
}
}).
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
'保存失败'
)
console
.
warn
(
err
)
})
}
})
},
handleClose
()
{
this
.
$emit
(
'on-close'
)
},
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
entity
=
r
.
result
;
this
.
entity
.
id
=
0
;
});
},
l
(
key
)
{
key
=
"process_case"
+
"."
+
key
;
return
this
.
$t
(
key
)
}
},
watch
:
{
v
()
{
this
.
entity
=
this
.
$u
.
clone
(
this
.
v
)
},
eid
(
v
)
{
if
(
v
>
0
)
{
this
.
load
(
v
);
}
}
import
Api
from
"./api"
;
export
default
{
name
:
"Add"
,
data
()
{
return
{
disabled
:
false
,
entity
:
{
// creationTime: null,
creatorUserId
:
this
.
$store
.
state
.
userInfo
.
userId
,
// lastModificationTime: null,
// lastModifierUserId: null,
// isDeleted: null,
// deletionTime: null,
// deleterUserId: null,
title
:
""
,
creator
:
this
.
$store
.
state
.
userInfo
.
userName
,
content
:
""
,
filePath
:
""
,
filePaths
:
""
,
dispatchId
:
this
.
$route
.
query
.
id
,
routingDetailId
:
this
.
$route
.
query
.
headid
,
routingHeaderId
:
this
.
$route
.
query
.
routid
,
type
:
1
},
rules
:
{
title
:
[{
required
:
true
,
message
:
"请填写案例名称"
,
trigger
:
"blur"
}]
},
parms
:{
app
:
'technology'
,
//服务
eid
:
this
.
$u
.
guid
(),
//记录id
name
:
''
,
//表名process_case
field
:
''
//字段名
},
};
},
props
:
{
v
:
Object
,
eid
:
Number
},
created
(){
// console.log(this.entity.creator)
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
this
.
$refs
.
refFile
.
intFiles
()
}
},
methods
:
{
handleSubmit
()
{
this
.
$refs
.
form
.
validate
(
v
=>
{
if
(
v
)
{
this
.
disabled
=
true
;
if
(
this
.
$refs
.
refFile
.
nameList
.
length
>
0
)
{
// this.entity.filePath = this.$refs.refFile.nameList[0].filePath
this
.
entity
.
filePaths
=
this
.
parms
.
eid
;
}
else
{
this
.
entity
.
filePath
=
""
;
this
.
entity
.
filePaths
=
""
;
}
Api
.
create
(
this
.
entity
)
.
then
(
r
=>
{
this
.
disabled
=
false
;
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"保存成功"
);
this
.
$emit
(
"on-ok"
);
}
else
{
this
.
$Message
.
error
(
"保存失败"
);
}
})
.
catch
(
err
=>
{
this
.
disabled
=
false
;
this
.
$Message
.
error
(
"保存失败"
);
console
.
warn
(
err
);
});
}
});
},
handleClose
()
{
this
.
$emit
(
"on-close"
);
},
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
entity
=
r
.
result
;
this
.
entity
.
id
=
0
;
});
},
l
(
key
)
{
key
=
"process_case"
+
"."
+
key
;
return
this
.
$t
(
key
);
}
},
watch
:
{
v
()
{
this
.
entity
=
this
.
$u
.
clone
(
this
.
v
);
},
eid
(
v
)
{
if
(
v
>
0
)
{
this
.
load
(
v
);
}
}
</
script
>
\ No newline at end of file
}
};
</
script
>
\ No newline at end of file
pages/produce/execute/ProcessCase/detail.vue
View file @
afce80ad
<
template
>
<div
class=
"detail"
>
<Row>
<Filed
:span=
"12"
:name=
"l('creationTime')"
>
{{
entity
.
creationTime
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('creatorUserId')"
>
{{
entity
.
creatorUserId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('lastModificationTime')"
>
{{
entity
.
lastModificationTime
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('lastModifierUserId')"
>
{{
entity
.
lastModifierUserId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('isDeleted')"
>
{{
entity
.
isDeleted
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('deletionTime')"
>
{{
entity
.
deletionTime
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('deleterUserId')"
>
{{
entity
.
deleterUserId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('title')"
>
{{
entity
.
title
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('creator')"
>
{{
entity
.
creator
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('content')"
>
{{
entity
.
content
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('filePath')"
>
{{
entity
.
filePath
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('filePaths')"
>
{{
entity
.
filePaths
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('dispatchId')"
>
{{
entity
.
dispatchId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('routingDetailId')"
>
{{
entity
.
routingDetailId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('routingHeaderId')"
>
{{
entity
.
routingHeaderId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('type')"
>
{{
entity
.
type
}}
</Filed>
</Row>
</div>
<div
class=
"detail"
>
<Row>
<Filed
:span=
"24"
:name=
"l('title')"
>
{{
entity
.
title
}}
</Filed>
<Filed
:span=
"24"
:name=
"l('creationTime')"
>
{{
entity
.
creationTime
}}
</Filed>
<Filed
:span=
"24"
:name=
"l('creator')"
>
{{
entity
.
creator
}}
</Filed>
<Filed
:span=
"24"
:name=
"l('filePaths')"
>
<files
ref=
"refFile"
:parms=
"parms"
fileFormat
:Photos=
"true"
:showList=
"false"
@
clickItem=
"clickData"
/></Filed>
<!--
<Filed
:span=
"12"
:name=
"l('filePaths')"
>
{{
entity
.
filePaths
}}
</Filed>
-->
</Row>
</div>
</
template
>
<
script
>
import
Api
from
'./api'
export
default
{
name
:
'Add'
,
data
()
{
return
{
entity
:
{},
rules
:
{
name
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
code
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}]
}
}
},
props
:
{
eid
:
Number
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
}
},
methods
:
{
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
entity
=
r
.
result
;
this
.
$emit
(
'on-load'
)
})
},
handleClose
()
{
this
.
$emit
(
'on-close'
)
},
l
(
key
)
{
key
=
"process_case"
+
"."
+
key
;
return
this
.
$t
(
key
)
import
Api
from
"./api"
;
export
default
{
name
:
"Add"
,
data
()
{
return
{
entity
:
{},
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
code
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
},
parms
:
{
app
:
"technology"
,
eid
:
""
,
name
:
""
,
field
:
""
}
},
watch
:
{
eid
(
v
)
{
if
(
v
>
0
)
{
this
.
load
(
v
);
}
}
}
};
},
props
:
{
eid
:
Number
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
}
},
methods
:
{
clickData
(
data
,
liUrl
)
{
window
.
open
(
data
,
"_blank"
);
},
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
entity
=
r
.
result
;
this
.
parms
.
eid
=
r
.
result
.
filePaths
;
this
.
$emit
(
"on-load"
);
});
},
handleClose
()
{
this
.
$emit
(
"on-close"
);
},
l
(
key
)
{
key
=
"process_case"
+
"."
+
key
;
return
this
.
$t
(
key
);
}
},
watch
:
{
eid
(
v
)
{
if
(
v
>
0
)
{
this
.
load
(
v
);
}
}
}
};
</
script
>
\ No newline at end of file
pages/produce/execute/ProcessCase/index.vue
View file @
afce80ad
...
...
@@ -27,7 +27,39 @@
<Button
type=
"primary"
@
click=
"add"
>
新增
</Button>
</
template
>
<
template
slot=
"card"
slot-scope=
"{row}"
>
<div
class=
"card_box"
@
click=
"changeCards(row)"
>
<div
class=
"card_body"
>
<Row
class=
"title_i"
>
<Col
:span=
"21"
>
案例名称:
{{
row
.
title
}}
</Col>
<Col
:span=
"3"
class=
"btn_click"
>
<!--
<a
@
click=
"edit(row.id)"
>
<Icon
type=
"ios-create"
@
click=
"edit(row.id)"
/>
</a>
-->
<a
@
click=
"view(row.id)"
>
<Icon
type=
"ios-paper"
/>
</a>
<a
@
click=
"remove(row.id)"
>
<Icon
type=
"ios-trash"
/>
</a>
</Col>
</Row>
<div
class=
"down_text"
>
<Row
:gutter=
"16"
>
<Col
span=
"6"
>
<div
class=
"file"
>
<!--
<img
:src=
"fileUrlDown +row.filePaths"
/>
-->
<!--
<Icon
type=
"ios-paper"
v-if=
"row.id%2==0"
/>
-->
<Icon
type=
"ios-paper"
v-if=
"row.filePaths"
/>
<Icon
type=
"md-film"
v-else
/>
</div>
</Col>
<Col
span=
"18"
>
<p>
{{
row
.
creationTime
}}
</p>
<p>
{{
row
.
id
}}{{
row
.
creator
}}
</p>
</Col>
</Row>
</div>
</div>
<!--
<div
class=
"card_box"
@
click=
"changeCards(row)"
>
<Row
:gutter=
"16"
>
<Col
span=
"6"
>
<div
class=
"file"
>
...
...
@@ -43,12 +75,15 @@
<p>
{{
row
.
id
}}{{
row
.
creator
}}
</p>
</Col>
</Row>
</div>
</div>
-->
</
template
>
</DataGrid>
<Modal
v-model=
"modal"
:title=
"title"
width=
"
12
00"
footer-hide
>
<Modal
v-model=
"modal"
:title=
"title"
width=
"
8
00"
footer-hide
>
<component
:is=
"detail"
:eid=
"curId"
@
on-close=
"cancel"
@
on-ok=
"ok"
/>
</Modal>
<Modal
v-model=
"deletelModal"
title=
"删除"
@
on-ok=
"removeOk"
@
on-cancel=
"cancel"
:mask-closable=
"false"
>
<p>
确定删除?
</p>
</Modal>
</div>
</template>
<
script
>
...
...
@@ -62,7 +97,7 @@ export default {
head
:
{
title
:
"工艺案例"
,
author
:
"henq"
,
description
:
"process_case 6/1/2020 5:06:34 PM"
//
description: "process_case 6/1/2020 5:06:34 PM"
},
data
()
{
return
{
...
...
@@ -72,6 +107,7 @@ export default {
type
:
{
op
:
"Equal"
,
value
:
1
}
},
modal
:
false
,
deletelModal
:
false
,
title
:
"新增"
,
detail
:
null
,
curId
:
0
,
...
...
@@ -212,7 +248,7 @@ export default {
},
methods
:
{
laodparme
()
{
console
.
log
(
555
);
//
console.log(555);
this
.
$refs
.
grid
.
reload
(
condition
);
},
changeCards
(
carData
)
{
...
...
@@ -251,6 +287,11 @@ export default {
this
.
modal
=
true
;
},
remove
(
id
)
{
this
.
deletelModal
=
true
;
this
.
curId
=
id
;
},
removeOk
(){
let
id
=
this
.
curId
;
Api
.
delete
(
id
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$refs
.
grid
.
load
();
...
...
@@ -261,6 +302,7 @@ export default {
cancel
()
{
this
.
curId
=
0
;
this
.
modal
=
false
;
this
.
deletedlModal
=
false
;
},
l
(
key
)
{
/*
...
...
pages/produce/execute/ProcessCheck/guidance/add.vue
View file @
afce80ad
<
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<Col
:span=
"12"
>
<FormItem
:label=
"l('creationTime')"
prop=
"creationTime"
>
<DatePicker
type=
"date"
v-model=
"entity.creationTime"
></DatePicker>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('creatorUserId')"
prop=
"creatorUserId"
>
<InputNumber
v-model=
"entity.creatorUserId"
></InputNumber>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('lastModificationTime')"
prop=
"lastModificationTime"
>
<DatePicker
type=
"date"
v-model=
"entity.lastModificationTime"
></DatePicker>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('lastModifierUserId')"
prop=
"lastModifierUserId"
>
<InputNumber
v-model=
"entity.lastModifierUserId"
></InputNumber>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('isDeleted')"
prop=
"isDeleted"
>
<InputNumber
v-model=
"entity.isDeleted"
></InputNumber>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('deletionTime')"
prop=
"deletionTime"
>
<DatePicker
type=
"date"
v-model=
"entity.deletionTime"
></DatePicker>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('deleterUserId')"
prop=
"deleterUserId"
>
<InputNumber
v-model=
"entity.deleterUserId"
></InputNumber>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('title')"
prop=
"title"
>
<Col
:span=
"24"
>
<FormItem
:label=
"l('title')"
prop=
"title"
style=
"width:95%"
>
<Input
v-model=
"entity.title"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('creator')"
prop=
"creator"
>
<Input
v-model=
"entity.creator"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('content')"
prop=
"content"
>
<Input
v-model=
"entity.content"
></Input>
<Col
:span=
"24"
>
<FormItem
label
>
<!--
<files
ref=
"refFile"
:parms=
"parms"
files
@
clickItem=
"clickData"
/>
-->
<files
ref=
"refFile"
:parms=
"parms"
fileFormat
:Photos=
"true"
@
clickItem=
"clickData"
/>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('filePath')"
prop=
"filePath"
>
<!--
<FormItem
:label=
"l('filePath')"
prop=
"filePath"
>
<InputFile
v-model=
"entity.filePath"
></InputFile>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('filePaths')"
prop=
"filePaths"
>
<Input
v-model=
"entity.filePaths"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('dispatchId')"
prop=
"dispatchId"
>
<InputNumber
v-model=
"entity.dispatchId"
></InputNumber>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('routingDetailId')"
prop=
"routingDetailId"
>
<InputNumber
v-model=
"entity.routingDetailId"
></InputNumber>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('routingHeaderId')"
prop=
"routingHeaderId"
>
<InputNumber
v-model=
"entity.routingHeaderId"
></InputNumber>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('type')"
prop=
"type"
>
<InputNumber
v-model=
"entity.type"
></InputNumber>
</FormItem>
</FormItem>
-->
</Col>
</Row>
<FormItem>
...
...
@@ -96,42 +30,56 @@ export default {
return
{
disabled
:
false
,
entity
:
{
creationTime
:
null
,
creatorUserId
:
null
,
lastModificationTime
:
null
,
lastModifierUserId
:
null
,
isDeleted
:
null
,
deletionTime
:
null
,
deleterUserId
:
null
,
creatorUserId
:
this
.
$store
.
state
.
userInfo
.
userId
,
title
:
""
,
creator
:
""
,
creator
:
this
.
$store
.
state
.
userInfo
.
userName
,
content
:
""
,
filePath
:
""
,
filePaths
:
""
,
dispatchId
:
null
,
routingDetailId
:
null
,
routingHeaderId
:
null
,
type
:
null
dispatchId
:
this
.
$route
.
query
.
id
,
routingDetailId
:
this
.
$route
.
query
.
headid
,
routingHeaderId
:
this
.
$route
.
query
.
routid
,
type
:
2
},
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
}
title
:
[{
required
:
true
,
message
:
"请填写工艺名称"
,
trigger
:
"blur"
}]
},
parms
:
{
app
:
'technology'
,
//服务
eid
:
this
.
$u
.
guid
(),
//记录id
name
:
''
,
//表名process_case
field
:
''
//字段名
},
};
},
props
:
{
v
:
Object
,
eid
:
Number
},
created
(){
// console.log(this.entity.creator)
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
this
.
$refs
.
refFile
.
intFiles
()
}
},
methods
:
{
clickData
(
data
,
liUrl
)
{
this
.
entity
.
filePath
=
liUrl
;
},
handleSubmit
()
{
this
.
$refs
.
form
.
validate
(
v
=>
{
if
(
v
)
{
this
.
disabled
=
true
;
if
(
this
.
$refs
.
refFile
.
nameList
.
length
>
0
)
{
// this.entity.filePath = this.$refs.refFile.nameList[0].filePath
this
.
entity
.
filePaths
=
this
.
parms
.
eid
;
}
else
{
this
.
entity
.
filePath
=
""
;
this
.
entity
.
filePaths
=
""
;
}
Api
.
create
(
this
.
entity
)
.
then
(
r
=>
{
this
.
disabled
=
false
;
...
...
pages/produce/execute/ProcessCheck/guidance/detail.vue
View file @
afce80ad
<
template
>
<div
class=
"detail"
>
<Row>
<Filed
:span=
"12"
:name=
"l('creationTime')"
>
{{
entity
.
creationTime
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('creatorUserId')"
>
{{
entity
.
creatorUserId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('lastModificationTime')"
>
{{
entity
.
lastModificationTime
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('lastModifierUserId')"
>
{{
entity
.
lastModifierUserId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('isDeleted')"
>
{{
entity
.
isDeleted
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('deletionTime')"
>
{{
entity
.
deletionTime
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('deleterUserId')"
>
{{
entity
.
deleterUserId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('title')"
>
{{
entity
.
title
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('creator')"
>
{{
entity
.
creator
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('content')"
>
{{
entity
.
content
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('filePath')"
>
{{
entity
.
filePath
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('filePaths')"
>
{{
entity
.
filePaths
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('dispatchId')"
>
{{
entity
.
dispatchId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('routingDetailId')"
>
{{
entity
.
routingDetailId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('routingHeaderId')"
>
{{
entity
.
routingHeaderId
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('type')"
>
{{
entity
.
type
}}
</Filed>
</Row>
</div>
<div
class=
"detail"
>
<Row>
<Filed
:span=
"24"
:name=
"l('title')"
>
{{
entity
.
title
}}
</Filed>
<Filed
:span=
"24"
:name=
"l('creationTime')"
>
{{
entity
.
creationTime
}}
</Filed>
<Filed
:span=
"24"
:name=
"l('creator')"
>
{{
entity
.
creator
}}
</Filed>
<Filed
:span=
"24"
:name=
"l('filePaths')"
>
<files
ref=
"refFile"
:parms=
"parms"
fileFormat
:Photos=
"true"
:showList=
"false"
@
clickItem=
"clickData"
/>
</Filed>
</Row>
</div>
</
template
>
<
script
>
import
Api
from
'./api'
export
default
{
name
:
'Add'
,
data
()
{
return
{
entity
:
{},
rules
:
{
name
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}],
code
:
[{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
}]
}
}
},
props
:
{
eid
:
Number
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
}
},
methods
:
{
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
entity
=
r
.
result
;
this
.
$emit
(
'on-load'
)
})
},
handleClose
()
{
this
.
$emit
(
'on-close'
)
},
l
(
key
)
{
key
=
"process_case"
+
"."
+
key
;
return
this
.
$t
(
key
)
import
Api
from
"./api"
;
export
default
{
name
:
"Add"
,
data
()
{
return
{
entity
:
{},
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
code
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
},
parms
:
{
app
:
"technology"
,
eid
:
""
,
name
:
""
,
field
:
""
}
},
watch
:
{
eid
(
v
)
{
if
(
v
>
0
)
{
this
.
load
(
v
);
}
}
}
};
},
props
:
{
eid
:
Number
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
}
},
methods
:
{
clickData
(
data
,
liUrl
)
{
console
.
log
(
liUrl
)
console
.
log
(
data
)
window
.
open
(
data
,
"_blank"
);
},
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
entity
=
r
.
result
;
this
.
parms
.
eid
=
r
.
result
.
filePaths
;
this
.
$emit
(
"on-load"
);
});
},
handleClose
()
{
this
.
$emit
(
"on-close"
);
},
l
(
key
)
{
key
=
"process_case"
+
"."
+
key
;
return
this
.
$t
(
key
);
}
},
watch
:
{
eid
(
v
)
{
if
(
v
>
0
)
{
this
.
load
(
v
);
}
}
}
};
</
script
>
\ No newline at end of file
pages/produce/execute/ProcessCheck/guidance/index.vue
View file @
afce80ad
...
...
@@ -24,7 +24,37 @@
<Button
type=
"primary"
@
click=
"add"
>
新增
</Button>
</
template
>
<
template
slot=
"card"
slot-scope=
"{row}"
>
<div
class=
"card_box"
@
click=
"changeCards(row)"
>
<div
class=
"card_body"
>
<Row
class=
"title_i"
>
<Col
:span=
"21"
>
工艺名称:
{{
row
.
title
}}
</Col>
<Col
:span=
"3"
class=
"btn_click"
>
<!--
<a
@
click=
"edit(row.id)"
>
<Icon
type=
"ios-create"
@
click=
"edit(row.id)"
/>
</a>
-->
<a
@
click=
"view(row.id)"
>
<Icon
type=
"ios-paper"
/>
</a>
<a
@
click=
"remove(row.id)"
>
<Icon
type=
"ios-trash"
/>
</a>
</Col>
</Row>
<div
class=
"down_text"
>
<Row
:gutter=
"16"
>
<Col
span=
"6"
>
<div
class=
"file"
>
<Icon
type=
"ios-paper"
v-if=
"row.filePaths"
/>
<Icon
type=
"md-film"
v-else
/>
</div>
</Col>
<Col
span=
"18"
>
<p>
{{
row
.
creationTime
}}
</p>
<p>
{{
row
.
id
}}{{
row
.
creator
}}
</p>
</Col>
</Row>
</div>
</div>
<!--
<div
class=
"card_box"
@
click=
"changeCards(row)"
>
<Row
:gutter=
"16"
>
<Col
span=
"6"
>
<div
class=
"file"
>
...
...
@@ -40,12 +70,15 @@
<p>
{{
row
.
id
}}{{
row
.
creator
}}
</p>
</Col>
</Row>
</div>
</div>
-->
</
template
>
</DataGrid>
<Modal
v-model=
"modal"
:title=
"title"
width=
"
1200"
footer-hide
>
<Modal
v-model=
"modal"
:title=
"title"
width=
"
800"
footer-hide
:mask-closable=
"false"
>
<component
:is=
"detail"
:eid=
"curId"
@
on-close=
"cancel"
@
on-ok=
"ok"
/>
</Modal>
<Modal
v-model=
"deletelModal"
title=
"删除"
@
on-ok=
"removeOk"
@
on-cancel=
"cancel"
:mask-closable=
"false"
>
<p>
确定删除?
</p>
</Modal>
</div>
</template>
<
script
>
...
...
@@ -58,8 +91,8 @@ export default {
},
head
:
{
title
:
"工艺提醒"
,
author
:
"henq"
,
description
:
"process_case 6/1/2020 5:06:34 PM"
//
author: "henq",
//
description: "process_case 6/1/2020 5:06:34 PM"
},
data
()
{
return
{
...
...
@@ -69,6 +102,7 @@ export default {
type
:
{
op
:
"Equal"
,
value
:
2
}
},
modal
:
false
,
deletelModal
:
false
,
title
:
"新增"
,
detail
:
null
,
curId
:
0
,
...
...
@@ -242,6 +276,11 @@ export default {
this
.
modal
=
true
;
},
remove
(
id
)
{
this
.
deletelModal
=
true
;
this
.
curId
=
id
;
},
removeOk
(){
let
id
=
this
.
curId
;
Api
.
delete
(
id
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$refs
.
grid
.
load
();
...
...
@@ -252,6 +291,7 @@ export default {
cancel
()
{
this
.
curId
=
0
;
this
.
modal
=
false
;
this
.
deletedlModal
=
false
;
},
l
(
key
)
{
/*
...
...
pages/produce/execute/api.js
View file @
afce80ad
...
...
@@ -25,5 +25,29 @@ export default {
entrentrycontinuestart
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecute/entrycontinue`
,
params
);
},
//转序弹框产品+人员
productsandoperators
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutehandon/productsandoperators`
,
params
);
},
//确认发起转序
confirmproductsandoperator
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutehandon/confirmproductsandoperator`
,
params
);
},
//转续列表
indexHandon
:
`
${
PlanUrl
}
/orderexecutehandon/handonpaged`
,
handonpaged
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutehandon/handonpaged`
,
params
);
},
//刷卡交接
handon
(
params
)
{
return
Api
.
post
(
`
${
PlanUrl
}
/orderexecutehandon/handon`
,
params
);
},
//工时分配--下一步人员
getentryusers
(
params
)
{
return
Api
.
get
(
`
${
PlanUrl
}
/orderexecutenew/entryusers`
,
params
);
},
//工时分配--总工时待分配
getallhours
(
params
)
{
return
Api
.
post
(
`
${
technologyUrl
}
workhours/allhours`
,
params
);
},
}
\ No newline at end of file
pages/produce/execute/components/orderlist.vue
View file @
afce80ad
...
...
@@ -42,18 +42,25 @@ export default {
},
props
:
{
order
:
{
type
:
String
,
default
:
''
,
type
:
[
String
,
Number
]
},
asc
:
{
type
:
Boolean
,
default
:
true
},
statu
:
{
type
:
Number
,
default
:
-
9
}
},
created
()
{
this
.
loadTree
(
-
9
);
this
.
loadTree
();
},
methods
:
{
loadTree
(
value
)
{
loadTree
()
{
let
parmse
=
{
status
:
value
,
isAsc
:
t
rue
status
:
this
.
statu
,
isAsc
:
t
his
.
asc
};
Api
.
getCardList
(
parmse
).
then
(
res
=>
{
if
(
res
.
success
)
{
...
...
@@ -73,15 +80,24 @@ export default {
orderId
:
item
.
orderId
,
executeId
:
item
.
executeId
,
headid
:
item
.
routingHeaderId
,
routid
:
item
.
routingDetailId
,
//工序ID
quantity
:
item
.
quantity
,
//派工数量
dispatchStatus
:
item
.
status
}
});
}
},
watch
:
{
order
(
v
)
{
order
(
v
)
{
//alert(v)
},
asc
(
v
)
{
this
.
asc
=
v
;
this
.
loadTree
();
},
statu
(
v
)
{
this
.
statu
=
v
this
.
loadTree
();
}
}
};
...
...
pages/produce/execute/execute.less
View file @
afce80ad
...
...
@@ -126,7 +126,30 @@
padding: 0;
}
}
.card_body{
border: 1px solid #e4e6ed;
border-radius: 4px;
margin-bottom: 30px;
.title_i{
padding: 0 8px;
height: 35px;
line-height: 35px;
color: #fff;
background: #a7b8cc;
font-size: 15px;
}
.btn_click{
text-align: right;
}
.down_text{
background: #a7b8cc33;
padding: 5px 8px;
line-height: 32px;
i{
font-size: 62px;
}
}
}
.gd_box{
.ivu-drawer-wrap{
.ivu-drawer-left{
...
...
@@ -274,7 +297,8 @@
float: left;
margin: 20px 72px;
width: 300px;
height: 240px;
// height: 240px;
height: 180px;
border-color: #2680EB;
.ivu-card-head{
background: #d3e6fb;
...
...
@@ -287,10 +311,13 @@
.gs_p{
height: 32px;
line-height: 32px;
font-size: 20px;
text-align: center;
}
.gs_time{
text-align: center;
color: #2680EB;
line-height: 46px;
.b_size{
font-size: 32px;
}
...
...
@@ -299,20 +326,21 @@
background: #d3e6fb;
margin: 0 -16px;
height: 59px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top: 1px solid #2680eb;
//
border-bottom-left-radius: 4px;
//
border-bottom-right-radius: 4px;
//
border-top: 1px solid #2680eb;
a{
display: inline-block;
height: 59px;
line-height: 60px;
text-align: center;
width: calc(50% - 2px);
width: calc(100% - 0px);
// width: calc(50% - 2px);
}
.gs_del{
background: #2680EB;
color: #fff;
border-bottom-right-radius: 4px;
//
border-bottom-right-radius: 4px;
}
}
}
...
...
@@ -324,7 +352,8 @@
border: 1px dashed #2680EB;
color: #2680EB;
text-align: center;
line-height: 275px;
// line-height: 275px;
line-height: 220px;
border-radius: 4px;
i{
font-size: 80px;
...
...
@@ -345,13 +374,14 @@
height: 56px;
border-radius: 28px 4px 4px 28px;
border: 1px solid #2d8cf0;
margin: 15px
23
px;
margin: 15px
14
px;
i {
font-size: 56px;
float: left;
color: #2680EB;
}
.gd_user {
line-height: 22px;
padding: 6px;
color: #707070;
}
...
...
@@ -491,6 +521,124 @@
}
}
.wu_bgModal{
height: calc(100vh - 185px);
.mass_box{
padding: 0 50px;
}
.footer {
width: 100%;
position: absolute;
left: 0;
bottom: -5px;
height: 60px;
line-height: 60px;
background: rgba(0, 0, 0, 0.6);
color: #fff;
padding-left: 50px;
}
.mass_box{
h2{ height: 40px;}
// .weizhix{ color: #4d5055;}
.rangb{ color: #515A6E;}
.hege{ color: #2680EB;}
.fanxiu{ color: #FFA000;}
.feipin{ color: #FE7777;}
.chuanse{
button{
width: 88px;
height: 40px;
font-size: 16px;
margin: 0 30px 0 0;
color: #fff;
}
.button04{ background: #2680EB; }
.button01{ background: #515A6E; }
.button02{ background: #FFA000; }
.button03{ background: #FE7777; }
}
.mass_list{
border: 1px solid #CACBD0;
border-radius: 4px;
padding: 10px 15px;
margin: 15px 0;
.btn_play{
margin: 0 0 20px 0;
color: #4d5055;
}
.list01{
min-height: 50px;
max-height: 155px;
overflow-x: auto;
.tag_card{
cursor: pointer;
margin: 0 20px 15px 0;
}
.ivu-tag-checked{
border: 1px solid #2680EB !important;
}
.card_bor{
border: 1px solid #2680EB !important;
}
}
.list02{
min-height: 50px;
max-height: 100px;
overflow-y: auto;
.tag_card02{
margin: 0 20px 15px 0;
}
}
}
.hege_box{
.ivu-tag-dot-inner{
background: #2680EB;
}
}
.rangbu{
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #515a6e;
}
}
}
}
.fanxiu_box{
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #FFA000;
}
}
}
}
.fei_box{
width: calc(100% - 482px);
display: inline-block;
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #FE7777;
}
}
}
}
.fei_right{
float: right;
padding-top: 15px;
line-height: 50px;
width: 460px;
}
}
.futer{
width: 100%;
height: 60px;
position: absolute;
bottom: 1px;
}
}
.tech_box{
height: calc(100vh - 110px);
.ivu-layout-header{
...
...
@@ -599,8 +747,7 @@
}
.zhuanx{
text-align: center;
line-height: 50px;
.line_p{
line-height: 60px;
.line_p input{
}
}
\ No newline at end of file
pages/produce/execute/index.vue
View file @
afce80ad
...
...
@@ -2,33 +2,44 @@
@import "./execute.less";
</
style
>
<
template
>
<div
class=
"execute_box"
>
<!--
<div
class=
"top_title"
>
<div
class=
"execute_box"
>
<!--
<div
class=
"top_title"
>
<span
class=
"fl"
>
{{
orderTitle
}}
</span>
<div>
工单编号: 12001011
</div>
</div>
-->
<component
:is=
"detail"
:gdid=
"gdId"
:row=
"row"
/>
<a
class=
"gd_list"
@
click=
"orderlistMode = true"
>
工单列表
</a>
<a
class=
"gn_area"
@
click=
"functionalMode = true"
>
功能区
</a>
<!-- 工单列表 -->
<Drawer
placement=
"left"
class=
"gd_box"
:closable=
"false"
:inner=
"true"
:transfer=
"false"
v-model=
"orderlistMode"
>
<div
slot=
"header"
>
<div
class=
"header"
>
<a
class=
"gd_tt"
@
click=
"goToOrder"
><Icon
type=
"ios-undo-outline"
/>
工单列表
</a>
<Dictionary
code=
"taskList.status"
class=
"select_star fr"
v-model=
"odermodel"
@
on-change=
"searchOrder"
></Dictionary>
</Option>
</Select>
</div>
-->
<component
:is=
"detail"
:gdid=
"gdId"
:row=
"row"
/>
<a
class=
"gd_list"
@
click=
"orderlistMode = true"
>
工单列表
</a>
<a
class=
"gn_area"
@
click=
"functionalMode = true"
>
功能区
</a>
<!-- 工单列表 -->
<Drawer
placement=
"left"
class=
"gd_box"
:closable=
"false"
:inner=
"true"
:transfer=
"false"
v-model=
"orderlistMode"
>
<div
slot=
"header"
>
<div
class=
"header"
>
<a
class=
"gd_tt"
@
click=
"goToOrder"
>
<Icon
type=
"ios-undo-outline"
/>
工单列表
</a>
<Dictionary
code=
"taskList.status"
class=
"select_star fr"
v-model=
"odermodel"
@
on-change=
"searchOrder"
></Dictionary>
</div>
<div
class=
"select_t"
>
<Button
class
>
时间正序排列
</Button>
<Button
@
click=
"changeAsc"
>
{{
ascTitle
}}
</Button>
</div>
</div>
<!-- 列表卡片主内容 -->
<orderlist
ref=
"orderlist"
:order=
"inputId"
/>
<orderlist
ref=
"orderlist
ref"
:asc=
"asc"
:statu=
"statu
"
:order=
"inputId"
/>
</Drawer>
<!-- 功能区 -->
<Drawer
<Drawer
class=
"gn_box"
:closable=
"false"
:inner=
"true"
...
...
@@ -54,20 +65,23 @@ export default {
functionalMode
:
false
,
gdId
:
0
,
detail
:
null
,
row
:{},
row
:
{},
odermodel
:
-
9
,
orderId
:
this
.
$route
.
query
.
id
,
condition
:
[],
inputId
:
null
,
asc
:
true
,
ascTitle
:
"时间正序排序"
,
statu
:
-
9
};
},
created
()
{
let
row
=
{}
let
row
=
{};
row
.
id
=
this
.
$route
.
query
.
id
;
row
.
orderId
=
this
.
$route
.
query
.
orderId
;
row
.
executeId
=
this
.
$route
.
query
.
executeId
;
this
.
row
=
row
this
.
inputId
=
this
.
$route
.
query
.
id
row
.
orderId
=
this
.
$route
.
query
.
orderId
;
row
.
executeId
=
this
.
$route
.
query
.
executeId
;
this
.
row
=
row
;
this
.
inputId
=
this
.
$route
.
query
.
id
;
this
.
detail
=
()
=>
import
(
"./starOrder/index"
);
},
async
fetch
({
store
,
params
})
{
...
...
@@ -76,16 +90,17 @@ export default {
mounted
()
{},
comments
:
{},
methods
:
{
starFun
()
{
this
.
$Message
.
success
(
"开工..."
);
},
// getListLength(len){ this.listLength = len },
// 返回工单列表
goToOrder
()
{
this
.
$router
.
push
(
"/produce/orderlist"
);
},
searchOrder
(
value
)
{
this
.
$refs
.
orderlist
.
loadTree
(
value
);
if
(
value
==
null
||
typeof
value
==
"undefined"
)
{
value
=
-
9
;
}
this
.
statu
=
value
// this.$refs.orderlistref.loadTree(value);
},
changeTitle
(
number
,
type
)
{
this
.
orderTitle
=
type
;
...
...
@@ -94,21 +109,21 @@ export default {
this
.
detail
=
()
=>
import
(
"./starOrder/index"
);
}
//进度汇报
if
(
number
==
1
)
{
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
)
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
);
// this.detail = () => import("./MaterialCollec/index");
}
//物料领用
if
(
number
==
2
)
{
// this.detail = () => import("./productSet/index");
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
)
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
)
;
}
//产品装配
if
(
number
==
3
)
{
this
.
detail
=
()
=>
import
(
"./taskTime/index"
);
}
//工时分配
if
(
number
==
4
)
{
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
)
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
);
// this.detail = () => import("./preparation/index");
}
//生产准备
if
(
number
==
5
)
{
if
(
number
==
5
)
{
this
.
detail
=
()
=>
import
(
"./ProcessCheck/index"
);
}
//工艺查看
if
(
number
==
6
)
{
...
...
@@ -121,19 +136,25 @@ export default {
this
.
detail
=
()
=>
import
(
"./datafilling/index"
);
}
//数据填报
if
(
number
==
9
)
{
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
)
this
.
$Message
.
info
(
"尊敬的用户,您没有该权限!"
);
// this.detail = () => import("./testdata/index");
}
//测试数据
},
changeAsc
()
{
this
.
asc
=
!
this
.
asc
;
if
(
this
.
asc
)
{
this
.
ascTitle
=
"时间正序排序"
;
}
else
{
this
.
ascTitle
=
"时间倒序排序"
;
}
}
},
watch
:
{
'$route.query.id'
(
v
)
{
this
.
row
.
id
=
v
this
.
inputId
=
v
this
.
detail
=
()
=>
import
(
"./starOrder/index"
)
},
"$route.query.id"
(
v
)
{
this
.
row
.
id
=
v
;
this
.
inputId
=
v
;
this
.
detail
=
()
=>
import
(
"./starOrder/index"
);
}
}
};
</
script
>
pages/produce/execute/starOrder/index.vue
View file @
afce80ad
<
template
>
<div
class
>
<div>
<div
class=
"star"
v-if=
"dispatchStatus==12"
>
<a
class=
"start"
@
click=
"starFun"
>
<Icon
type=
"md-play"
/>
开工
...
...
@@ -53,7 +53,7 @@
<li>
图号:
{{
entity
.
drawnNumber
}}
</li>
<li>
状态:
<state
code=
"plan.order.status"
ref=
"state"
:value=
"entity.status"
type=
"text"
></state>
<state
code=
"plan.order.status"
ref=
"state"
:value=
"entity.status"
type=
"text"
></state>
</li>
<li>
订单编号:
{{
entity
.
mesCode
}}
</li>
<li>
批次号:
{{
entity
.
batchNumber
}}
</li>
...
...
@@ -68,23 +68,48 @@
<li>
派工数量:
{{
entity
.
dispatchQuantity
}}
</li>
<li>
人员信息:
{{
entity
.
userNames
}}
</li>
<li>
准备工时:
{{
entity
.
setupTime
}}
</li>
<li>
工单状态:
<state
code=
"taskList.status"
ref=
"state1"
:value=
"dispatchStatus"
type=
"text"
></state></li>
<li>
工单状态:
<state
code=
"taskList.status"
ref=
"state1"
:value=
"dispatchStatus"
type=
"text"
></state>
</li>
</ul>
</div>
<div
class=
"img_box fl
"
style=
"background:#
DDD"
>
<div
class=
"img_box fl
bg
DDD"
>
<ViewerImg
:images=
"images"
/>
</div>
</div>
<Modal
v-model=
"ransferModal"
:title=
"transferTitle"
width=
"800"
>
<!--
<component
:is=
"detail"
:eid=
"curId"
@
on-close=
"cancel"
@
on-ok=
"ok"
footer-hide
/>
-->
<div
class=
"zhuanx"
>
<p
class=
"line_p"
>
<Input
prefix=
"ios-contact-outline"
placeholder=
"请输入人员编号"
style=
"width: auto"
/>
<!--
<UserSelect
ref=
"userSelected"
:multiple=
"true"
style=
"width: 220px;margin:0 auto;"
/>
-->
</p>
<p
class=
"line_p"
>
<Input
prefix=
"ios-lock-outline"
placeholder=
"请输入人员密码"
style=
"width: auto"
/>
</p>
<Modal
v-model=
"ransferModal"
:title=
"transferTitle"
fullscreen
style=
"z-index:99999"
:footer-hide=
"cardlist.length==0"
>
<div
class=
"wu_bgModal"
>
<div
class=
"mass_box"
>
<div
class=
"mass_list"
>
<h2
class=
"btn_play tl"
>
选择产品(
{{
cardlist
.
length
}}
)
<Button
class=
"button"
type=
"primary"
@
click=
"allcheck"
>
全选
</Button>
<Button
class=
"button"
type=
"primary"
@
click=
"rechecked"
>
反选
</Button>
</h2>
<div
class=
"list01 tl"
>
<Tag
type=
"dot"
:checkable=
"true"
class=
"tag_card"
size=
"large"
v-for=
"(item,index) in cardlist"
:name=
"item.id"
:key=
"index"
:checked=
"item.checked"
color=
"primary"
@
on-change=
"changeCards"
>
{{
item
.
product_code
}}
</Tag>
</div>
</div>
</div>
<div
class=
"mass_box"
>
<UserSelect
ref=
"userSelected"
:datas=
"userlist"
v-model=
"user"
v-width=
"300"
/>
</div>
</div>
<div
slot=
"footer"
>
<Button
class=
"button"
@
click=
"ransferModal=false"
>
取消
</Button>
<Button
class=
"button"
type=
"primary"
@
click=
"ransOk"
>
确定
</Button>
</div>
</Modal>
</div>
...
...
@@ -125,14 +150,20 @@ export default {
?
true
:
Number
(
this
.
$route
.
query
.
dispatchStatus
)
==
5
?
true
:
false
:
false
,
cardlist
:
[],
detailId
:
null
,
nextDetailId
:
null
,
operatorId
:
null
,
userlist
:
[],
user
:
null
};
},
created
()
{
// this.treeHeight = window.innerHeight - 120;
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
await
store
.
dispatch
(
"loadDictionary"
);
},
mounted
()
{
this
.
load
(
this
.
id
);
...
...
@@ -217,6 +248,7 @@ export default {
},
transferFn
()
{
this
.
ransferModal
=
true
;
this
.
getProduce
();
},
load
(
v
)
{
//加载基础数据
...
...
@@ -278,9 +310,103 @@ export default {
show
()
{
this
.
$viewer
.
show
();
},
goPage
(
type
,
title
)
{
this
.
$parent
.
changeTitle
(
type
,
title
)
goPage
(
type
,
title
)
{
this
.
$parent
.
changeTitle
(
type
,
title
);
},
getProduce
()
{
this
.
cardlist
=
[];
let
pid
=
Number
(
this
.
$route
.
query
.
id
);
// JSON.stringify()
let
params
=
{
id
:
Number
(
this
.
$route
.
query
.
id
),
executeId
:
Number
(
this
.
$route
.
query
.
executeId
)
};
Api
.
productsandoperators
(
params
)
.
then
(
res
=>
{
if
(
res
.
success
&&
res
.
result
)
{
this
.
detailId
=
res
.
result
.
detailId
;
this
.
nextDetailId
=
res
.
result
.
nextDetailId
;
let
users
=
res
.
result
.
users
;
this
.
userlist
=
[];
users
.
forEach
(
u
=>
{
(
u
.
value
=
u
.
id
),
(
u
.
label
=
u
.
userName
);
this
.
userlist
.
push
(
u
);
});
let
resoult
=
res
.
result
.
products
;
resoult
.
filter
(
u
=>
{
u
.
checked
=
false
;
this
.
cardlist
.
push
(
u
);
});
}
})
.
catch
(
e
=>
{
this
.
$Message
.
error
(
"连接错误"
);
});
},
// 全选
allcheck
()
{
let
cardslist
=
this
.
cardlist
;
cardslist
.
map
(
a
=>
{
a
.
checked
=
true
;
});
},
// 反选
rechecked
()
{
let
cardslist
=
this
.
cardlist
;
cardslist
.
map
(
b
=>
{
b
.
checked
=
!
b
.
checked
;
});
},
// 单选
changeCards
(
checked
,
name
)
{
let
cardlist
=
this
.
cardlist
;
cardlist
.
map
((
u
,
i
)
=>
{
if
(
u
.
id
==
name
)
{
u
.
checked
=
checked
;
}
});
},
//确定转续
ransOk
()
{
let
userInfo
=
this
.
$refs
.
userSelected
.
getSelectItems
();
let
cardlist
=
this
.
cardlist
;
let
upList
=
[];
cardlist
.
map
((
u
,
i
)
=>
{
if
(
u
.
checked
)
{
upList
.
push
(
u
.
id
);
}
});
if
(
upList
.
length
==
0
)
{
this
.
$Message
.
error
(
"请选择转续的产品!"
);
return
;
}
if
(
!
userInfo
||
userInfo
.
length
==
0
)
{
this
.
$Message
.
error
(
"请选择人员!"
);
return
;
}
let
params
=
{
id
:
Number
(
this
.
$route
.
query
.
id
),
detailId
:
this
.
detailId
,
nextDetailId
:
this
.
nextDetailId
,
productIds
:
upList
,
operatorId
:
userInfo
[
0
].
id
,
operator
:
userInfo
[
0
].
userName
};
Api
.
confirmproductsandoperator
(
params
)
.
then
(
res
=>
{
if
(
res
.
success
&&
res
.
result
)
{
this
.
$Message
.
success
(
"转续成功"
);
this
.
ransferModal
=
false
}
else
{
this
.
$Message
.
error
(
"转续失败"
);
}
})
.
catch
(
e
=>
{
this
.
$Message
.
error
(
"连接错误"
);
});
}
},
watch
:
{
...
...
pages/produce/execute/taskTime/add.vue
View file @
afce80ad
<
template
>
<div
class=
"add_user"
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"100"
>
<Row>
<Col
span=
"8"
>
<div
class=
"add_user"
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"100"
>
<Row>
<!--
<Col
span=
"8"
>
<FormItem
label=
"所属车间"
>
<Select
v-model=
"entity.che"
style=
"width:200px"
>
<Option
v-for=
"item in cityList"
:value=
"item.value"
:key=
"item.value"
>
...
...
@@ -23,99 +23,176 @@
<FormItem
label=
""
>
<Input
search
enter-button
placeholder=
"请输入编号"
/>
</FormItem>
</Col>
<Col
span=
"24"
class=
"mb20"
>
<div
class=
"gd_userB"
>
<a
class=
"user_item"
@
click=
"checkItem(index)"
v-for=
"(item,index) in listMan"
:key=
"index"
>
<div
:class=
"
{user_bg:item.checked}" >
<Icon
type=
"md-contact"
/>
<div
class=
"gd_user"
>
<span
class=
"user_name"
>
{{
item
.
userName
}}
</span>
<span
class=
"user_number"
>
{{
item
.
userCode
}}
</span>
</div>
</div>
</a>
</div>
</Col>
<Col
span=
"24"
>
<FormItem
label=
"分配工时"
>
<InputNumber
:max=
"30"
:min=
"0"
v-model=
"value1"
></InputNumber>
天
<InputNumber
:max=
"23"
:min=
"0"
v-model=
"value1"
></InputNumber>
小时
<InputNumber
:max=
"59"
:min=
"1"
v-model=
"value1"
></InputNumber>
分钟
</FormItem>
</Col>
</Row>
</Form>
<Row>
<Col
span=
"24"
style=
"text-align:right;height:60px;line-height:60px"
>
<Button
@
click=
"handleClose"
class=
"mr20"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
确定
</Button>
</Col>
</Row>
</div>
</Col>
-->
<Col
span=
"24"
class=
"mb20"
>
<FormItem
label=
"既定人员"
>
<div
class=
"gd_userB"
>
<a
class=
"user_item"
v-model=
"entity.oldUserse"
@
click=
"checkItem(index)"
v-for=
"(item,index) in listMan"
:key=
"index"
>
<div
:class=
"
{user_bg:item.checked}">
<Icon
type=
"md-contact"
/>
<div
class=
"gd_user"
>
<p
class=
"user_name"
>
{{
item
.
userName
}}
</p>
<p
class=
"user_number"
>
{{
item
.
cardNo
}}
</p>
</div>
</div>
<!--
<RadioGroup
class=
"man_body"
>
v-model="item.checked"
<Radio
border
:label=
"entity.oldUserse"
class=
"checkUser"
>
<span
class=
"svg_name"
:title=
"item.userName"
>
{{
item
.
userName
}}
</span>
</Radio
>
</RadioGroup
>
-->
<!--
<radioButton
v-model=
"entity.oldUserse"
@
on-change=
"radioChange"
>
<RadioGroup
class=
"man_body"
>
<Radio
border
:label=
"entity.oldUserse"
class=
"checkUser"
>
<span
class=
"svg_name"
:title=
"item.userName"
>
{{
item
.
userName
}}
</span>
</Radio
>
</RadioGroup
>
</radioButton>
-->
</a>
</div>
</FormItem>
</Col>
<Col
span=
"24"
v-show=
"showSelect"
>
<FormItem
label=
"添加人员"
style=
"width:90%"
>
<UserSelect
ref=
"userSelected"
v-model=
"entity.userse"
@
on-change=
"changeUser"
/>
<!-- :roleTitle="roleTitle" :datas="userlist" :multiple="true" -->
</FormItem>
</Col>
<Col
span=
"24"
>
<FormItem
label=
"分配工时"
prop=
"setTime"
>
<!--
<InputNumber
:max=
"30"
:min=
"0"
v-model=
"value1"
></InputNumber>
天
-->
<InputNumber
:max=
"maxHour"
:min=
"1"
v-model=
"entity.workHour"
@
on-change=
"testChange"
></InputNumber>
工时
<!--
<InputNumber
:max=
"59"
:min=
"1"
v-model=
"value1"
></InputNumber>
分钟
-->
</FormItem>
</Col>
</Row>
</Form>
<Row>
<Col
span=
"24"
style=
"text-align:right;height:60px;line-height:60px"
>
<Button
@
click=
"handleClose"
class=
"mr20"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"handleSubmit"
>
保存
</Button>
</Col>
</Row>
</div>
</
template
>
<
script
>
export
default
{
data
(){
return
{
admor
:
1
,
value1
:
1
,
u_bgFlag
:
false
,
entity
:
{
},
rules
:
{
outSideTime
:
[
{
required
:
true
,
message
:
"必填"
,
type
:
"number"
,
trigger
:
"change"
}
]
},
cityList
:[
{
value
:
'车间A1'
,
label
:
'车间A1'
},{
value
:
'车间A2'
,
label
:
'车间A2'
},{
value
:
'车间A3'
,
label
:
'车间A3'
},{
value
:
'车间A4'
,
label
:
'车间A4'
},{
value
:
'车间A5'
,
label
:
'车间A5'
},
],
listMan
:[
{
checked
:
false
,
userName
:
'张珊珊1'
,
userCode
:
'08965481'
,
id
:
1
},{
checked
:
false
,
userName
:
'张珊珊2'
,
userCode
:
'08965482'
,
id
:
2
},{
checked
:
false
,
userName
:
'张珊珊3'
,
userCode
:
'08965483'
,
id
:
3
}
],
}
},
methods
:
{
handleSubmit
(){
this
.
$emit
(
"on-ok"
,
this
.
entity
);
},
handleClose
(){
this
.
$emit
(
"on-close"
);
data
()
{
return
{
entity
:
{
oldUserse
:
""
,
userse
:
null
,
workHour
:
1
},
// userlist:[],
userflag
:
false
,
showSelect
:
true
,
rules
:
{
outSideTime
:
[
{
required
:
true
,
message
:
"必填"
,
type
:
"number"
,
trigger
:
"change"
}
]
},
maxHour
:
10
,
listMan
:
[
{
checked
:
false
,
userName
:
"张珊珊1"
,
cardNo
:
"08965481"
,
id
:
1
},
checkItem
(
i
){
this
.
listMan
[
i
].
checked
=
!
this
.
listMan
[
i
].
checked
;
{
checked
:
false
,
userName
:
"张珊珊2"
,
cardNo
:
"08965482"
,
id
:
2
},
{
checked
:
false
,
userName
:
"张珊珊3"
,
cardNo
:
"08965483"
,
id
:
3
}
]
};
},
created
(){},
methods
:
{
handleSubmit
()
{
console
.
log
(
this
.
entity
);
this
.
$emit
(
"on-ok"
,
this
.
entity
);
},
//单选框
radioChange
(
val
)
{
alert
(
"选择项的值:"
+
val
);
},
handleClose
()
{
this
.
$emit
(
"on-close"
);
},
}
checkItem
(
i
)
{
if
(
this
.
userflag
){
this
.
$Message
.
error
(
"只能选择一人"
);
return
}
let
oldlist
=
this
.
listMan
oldlist
[
i
].
checked
=
!
oldlist
[
i
].
checked
;
let
oolist
=
[];
oldlist
.
map
(
u
=>
{
if
(
u
.
checked
)
{
oolist
.
push
(
u
);
this
.
showSelect
=
false
if
(
1
<
oolist
.
length
)
{
this
.
$Message
.
error
(
"只能选择一人"
);
this
.
listMan
[
i
].
checked
=
false
;
}
}
});
oolist
.
map
(
u
=>
{
if
(
u
.
checked
)
{
this
.
entity
.
oldUserse
=
u
.
userName
;
this
.
showSelect
=
false
}
else
{
this
.
entity
.
oldUserse
=
''
;
}
});
if
(
oolist
.
length
==
0
){
this
.
showSelect
=
true
}
},
// 选择新增人员
changeUser
(
data
){
console
.
log
(
data
)
if
(
data
&&
data
!=
undefined
){
this
.
userflag
=
true
}
if
(
data
==
undefined
){
this
.
userflag
=
false
}
let
alloterInfo
=
this
.
$refs
.
userSelected
.
getSelectItems
();
console
.
log
(
alloterInfo
)
},
testChange
()
{
// 该方法在input内容改变是就会触发进行检测
this
.
numberChange
(
this
.
entity
.
workHour
);
// 调用函数
},
// 封装控制小数点位数的函数
numberChange
(
VauleNumber
)
{
// VauleNumber你想要控制位数的数字
let
newNumber
=
null
;
if
(
VauleNumber
>=
0
)
{
let
reg
=
/.*
\.
.*/
;
if
(
reg
.
test
(
VauleNumber
))
{
newNumber
=
parseFloat
(
VauleNumber
.
toFixed
(
1
));
}
else
{
newNumber
=
VauleNumber
;
}
}
return
newNumber
;
}
}
};
</
script
>
\ No newline at end of file
pages/produce/execute/taskTime/index.vue
View file @
afce80ad
...
...
@@ -7,7 +7,7 @@
<!--
<Icon
type=
"ios-time"
/>
-->
<div
class=
"gs_bo01"
>
<span
class=
"shi"
>
总工时
</span>
<span
class=
"number"
>
250
</span>
<span
class=
"number"
>
{{
allHours
}}
</span>
</div>
</div>
<Divider
type=
"vertical"
class=
"line_slit"
/>
...
...
@@ -16,25 +16,31 @@
<img
src=
"@/assets/imgicon/execute/time02.png"
alt=
""
/>
<div
class=
"gs_bo01"
>
<span
class=
"shi"
>
待分配
</span>
<span
class=
"number"
>
200
</span>
<span
class=
"number"
>
{{
waitHours
}}
</span>
</div>
</div>
</div>
<div
class=
"gs_card_box"
>
<Card
class=
"gs_card"
v-for=
"
i of 5"
:key=
"i
"
>
<Card
class=
"gs_card"
v-for=
"
(item,index) in cardMan"
:key=
"index
"
>
<p
slot=
"title"
class=
"gs_title"
>
张三
<span
class=
"fr"
>
02816335
{{
i
}}
</span>
{{
item
.
userName
}}
<span
class=
"fr"
>
{{
item
.
cardNo
}}
</span>
</p>
<p
class=
"gs_p"
>
所属车间:车间A
{{
i
}}
</p>
<p
class=
"gs_p"
>
所属班组:班组B
{{
i
}}
</p>
<
!--
<
p
class=
"gs_p"
>
所属车间:车间A
{{
i
}}
</p>
<p
class=
"gs_p"
>
所属班组:班组B
{{
i
}}
</p>
-->
<p
class=
"gs_time"
>
<span
class=
"b_size"
>
100
</span>
工时
<span
class=
"b_size"
>
{{
item
.
workHour
}}
</span>
工时
</p>
<!--
<p
class=
"gs_p"
>
<span
class=
"b_size"
>
100
</span>
分
</p>
<p
class=
"gs_p"
>
<span
class=
"b_size"
>
100
</span>
秒
</p>
-->
<p
class=
"gs_footer"
>
<a
class=
"gs_edit"
@
click=
"editItem"
>
<
!--
<
a
class=
"gs_edit"
@
click=
"editItem"
>
<Icon
type=
"md-create"
/>
编辑
</a>
编辑
</a>
-->
<a
class=
"gs_del"
@
click=
"delItem"
>
<Icon
type=
"ios-trash-outline"
/>
删除
</a>
...
...
@@ -54,6 +60,7 @@
</
template
>
<
script
>
import
addview
from
"./add"
;
import
Api
from
"../api"
;
export
default
{
name
:
'starOrder'
,
components
:
{
addview
,},
...
...
@@ -63,10 +70,20 @@ export default {
msg
:
'确认要删除吗?'
,
title
:
'删除确认'
,
addmodal
:
false
,
allHours
:
240
,
waitHours
:
200
,
cardMan
:[
// {
// userName:"张三",
// cardNo:123123,
// workHour:50,
// }
]
}
},
created
()
{
// this.treeHeight = window.innerHeight - 120;
this
.
laodHorse
()
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
...
...
@@ -80,8 +97,32 @@ export default {
};
},
methods
:
{
laodHorse
(){
let
parme
=
{
dispatchId
:
this
.
$route
.
query
.
id
,
routingDetailId
:
this
.
$route
.
query
.
routid
,
count
:
this
.
$route
.
query
.
quantity
}
Api
.
getallhours
(
parme
).
then
(
res
=>
{
if
(
res
.
result
){
this
.
allHours
=
res
.
result
.
allHours
this
.
waitHours
=
res
.
result
.
waitHours
this
.
$refs
.
addview
.
maxHour
=
this
.
waitHours
}
else
{
console
.
log
(
"获取失败。"
)
}
})
},
addItem
(){
this
.
addmodal
=
true
let
id
=
this
.
$route
.
query
.
id
Api
.
getentryusers
({
Id
:
id
}).
then
(
res
=>
{
let
result
=
res
.
result
result
.
map
(
u
=>
{
u
.
checked
=
false
})
this
.
$refs
.
addview
.
listMan
=
result
})
},
editItem
(){
this
.
$Message
.
success
(
"编辑工时..."
)
...
...
@@ -98,7 +139,13 @@ export default {
cancel
(){
this
.
addmodal
=
false
},
addInfo
(){
addInfo
(
formdata
){
console
.
log
(
formdata
)
this
.
cardMan
.
push
(
formdata
)
// this.cardMan.userName = formdata.userse||formdata.oldUserse
// this.cardMan.cardNo = formdata.cardNo
// this.cardMan.workHour = formdata.workHour
console
.
log
(
this
.
cardMan
)
this
.
addmodal
=
false
}
},
...
...
pages/produce/orderlist.vue
View file @
afce80ad
...
...
@@ -27,7 +27,10 @@
<Button
:icon=
"iconInfo"
shape=
"circle"
:title=
"titleInfo"
@
click=
"changeShwo"
></Button>
</
template
>
<
template
slot=
"card"
slot-scope=
"{row}"
>
<div
class=
"body"
@
click=
"toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.status)"
>
<div
class=
"body"
@
click=
"toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.routingDetailId,row.quantity,row.status)"
>
<Row
class=
"title-i"
>
<Col
:span=
"10"
class=
"order-code"
>
{{
row
.
productName
}}
</Col>
<Col
:span=
"10"
class=
"order-code"
>
{{
row
.
mesCode
}}
</Col>
...
...
@@ -182,6 +185,8 @@ export default {
params
.
row
.
orderId
,
params
.
row
.
executeId
,
params
.
row
.
routingHeaderId
,
params
.
row
.
routingDetailId
,
params
.
row
.
quantity
,
params
.
row
.
status
)
}
...
...
@@ -212,11 +217,19 @@ export default {
search
()
{
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
},
toExecute
(
id
,
orderId
,
executeId
,
headid
,
status
)
{
toExecute
(
id
,
orderId
,
executeId
,
headid
,
routingDetailId
,
quantity
,
status
)
{
//跳转到对应操作页面 获取id:this.$route.query.id
this
.
$router
.
push
({
path
:
"/produce/execute"
,
query
:
{
id
:
id
,
orderId
:
orderId
,
executeId
:
executeId
,
headid
:
headid
,
dispatchStatus
:
status
}
query
:
{
id
:
id
,
//工单ID
orderId
:
orderId
,
//订单id
executeId
:
executeId
,
//订单执行表id
headid
:
headid
,
//工艺规程id
routid
:
routingDetailId
,
//工序ID
quantity
:
quantity
,
//派工数量
dispatchStatus
:
status
}
});
},
tdStyle
(
val
)
{
...
...
@@ -280,7 +293,7 @@ export default {
//返回img需要显示的src值
let
tempUrl
=
""
;
if
(
url
&&
url
.
length
>
0
)
{
tempUrl
=
this
.
downUrl
+
url
;
tempUrl
=
this
.
downUrl
+
url
;
}
else
{
tempUrl
=
iconImg
+
"noPic_product.png"
;
}
...
...
pages/produce/reorder/index.vue
View file @
afce80ad
<
style
lang=
"less"
>
@import "../execute/execute.less";
</
style
>
<!--:action="action"-->
<
template
>
<div
class=
"p20"
>
<div
class=
""
>
转序交接
</div>
</div>
<div>
<DataGrid
:action=
"action"
:columns=
"columns"
:conditions=
"easySearch"
ref=
"grid"
@
on-selection-change=
"onSelect"
:batch=
"true"
:border=
"false"
:high=
"false"
:format=
"formatFun"
>
<template
slot=
"easySearch"
>
<Form
ref=
"formInline"
:model=
"easySearch"
inline
>
<FormItem
prop=
"keys"
>
<Input
search
enter-button
placeholder=
"请输入关键字产品名称"
v-model=
"easySearch.keys.value"
@
on-search=
"search"
v-width=
"300"
/>
</FormItem>
</Form>
</
template
>
<
template
slot=
"batch"
>
<Button
type=
"primary"
class=
"mr10 ml10"
@
click=
"openTrans"
>
确认转续
</Button>
</
template
>
</DataGrid>
<Modal
v-model=
"transModal"
title=
"确认转续"
width=
"900"
>
<div
class=
"zhuanx mt30 mb20"
>
<p
class=
"line_p"
>
<Input
prefix=
"ios-contact"
v-model=
"handonCardNo"
placeholder=
"请输入接收人员编号"
style=
"width: auto"
size=
"large"
/>
</p>
<!--<p class="line_p">
<Poptip trigger="focus">
<Input
v-model="handonCardNo"
prefix="ios-contact"
placeholder="请输入接收人员编号"
style="width: 300px"
/>
<div slot="content">{{ formatNumber }}</div>
</Poptip>
</p>-->
</div>
<div
slot=
"footer"
>
<Button
@
click=
"transModal = false"
>
取消
</Button>
<Button
type=
"primary"
@
click=
"transOk"
>
确定转续
</Button>
</div>
</Modal>
</div>
</template>
<
script
>
import
Api
from
"../execute/api"
;
export
default
{
name
:
'starOrder'
,
data
(){
return
{
starmodal
:
false
,
name
:
"reOrder"
,
data
()
{
return
{
action
:
Api
.
indexHandon
,
starmodal
:
false
,
easySearch
:
{
keys
:
{
op
:
"productName"
,
value
:
null
,
default
:
true
}
},
transModal
:
false
,
arrayIds
:
[],
rowDataArry
:
[],
columns
:
[
{
key
:
"selection"
,
type
:
"selection"
,
width
:
50
,
align
:
"center"
},
{
key
:
"handonNo"
,
title
:
this
.
l
(
"handonNo"
),
align
:
"left"
,
high
:
true
},
{
key
:
"status"
,
title
:
this
.
l
(
"status"
),
align
:
"center"
,
width
:
120
,
high
:
true
,
code
:
"mes.order_execute_handon.status"
},
{
key
:
"productName"
,
title
:
this
.
l
(
"productName"
),
align
:
"left"
,
easy
:
true
,
high
:
true
},
{
key
:
"drawnNumber"
,
title
:
this
.
l
(
"drawnNumber"
),
align
:
"left"
,
high
:
true
},
{
key
:
"batchNumber"
,
title
:
this
.
l
(
"batchNumber"
),
align
:
"left"
,
high
:
true
},
{
key
:
"handonCount"
,
title
:
this
.
l
(
"handonCount"
),
align
:
"right"
,
high
:
true
},
{
key
:
"qualifiedCount"
,
title
:
this
.
l
(
"qualifiedCount"
),
align
:
"right"
,
high
:
true
,
hide
:
true
},
{
key
:
"finishTime"
,
title
:
this
.
l
(
"finishTime"
),
align
:
"center"
,
width
:
150
,
high
:
true
},
{
key
:
"currentDetailName"
,
title
:
this
.
l
(
"currentDetailName"
),
align
:
"left"
,
easy
:
true
,
high
:
true
},
{
key
:
"nextDetailName"
,
title
:
this
.
l
(
"nextDetailName"
),
align
:
"left"
,
easy
:
true
,
high
:
true
},
{
key
:
"handonUserId"
,
title
:
this
.
l
(
"handonUserId"
),
align
:
"left"
,
high
:
true
,
type
:
"user"
},
{
key
:
"handonCardNo"
,
title
:
this
.
l
(
"handonCardNo"
),
align
:
"left"
,
high
:
true
,
hide
:
true
},
{
key
:
"currentUserName"
,
title
:
this
.
l
(
"currentUserName"
),
align
:
"left"
,
easy
:
true
,
high
:
true
,
hide
:
true
},
{
key
:
"handonUserName"
,
title
:
this
.
l
(
"handonUserName"
),
align
:
"left"
,
easy
:
true
,
high
:
true
},
{
key
:
"actualHandonUser"
,
title
:
this
.
l
(
"actualHandonUser"
),
align
:
"left"
,
high
:
true
,
type
:
"user"
},
{
key
:
"handonTime"
,
title
:
this
.
l
(
"handonTime"
),
high
:
true
,
align
:
"center"
,
width
:
150
},
{
title
:
"操作"
,
key
:
"action"
,
width
:
180
,
align
:
"center"
,
render
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
{
class
:
"action"
},
[
h
(
"op"
,
{
attrs
:
{
oprate
:
"edit"
},
on
:
{
click
:
()
=>
this
.
openTrans
(
params
.
row
.
id
)
},
style
:
params
.
row
.
status
==
1
?
""
:
"display:none"
},
"确认转续"
)
]);
}
}
],
handonCardNo
:
""
,
userPwd
:
""
};
},
created
()
{
// this.treeHeight = window.innerHeight - 120;
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
mounted
()
{
window
.
onresize
=
()
=>
{
///浏览器窗口大小变化
return
(()
=>
{
this
.
treeHeight
=
window
.
innerHeight
-
120
;
})();
};
},
methods
:
{
search
()
{
this
.
easySearch
.
keys
.
value
=
this
.
easySearch
.
keys
.
value
.
trim
();
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
},
created
()
{
// this.treeHeight = window.innerHeight - 120;
openTrans
(
val
)
{
if
(
val
&&
val
>
0
)
{
this
.
$refs
.
grid
.
selectAll
(
false
);
this
.
arrayIds
=
[];
this
.
arrayIds
.
push
(
val
);
}
this
.
transModal
=
true
;
},
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
transOk
()
{
if
(
!
this
.
handonCardNo
||
this
.
handonCardNo
.
trim
==
""
)
{
this
.
$Message
.
error
(
"请输入接收人员编号!"
);
return
;
}
let
params
=
{
ids
:
this
.
arrayIds
,
handonCardNo
:
this
.
handonCardNo
};
Api
.
handon
(
params
)
.
then
(
res
=>
{
if
(
res
.
success
&&
res
.
result
)
{
this
.
$Message
.
success
(
"转续成功!"
);
this
.
transModal
=
false
;
this
.
search
();
}
else
{
this
.
$Message
.
error
(
"转续失败!"
);
}
})
.
catch
(
err
=>
{
this
.
$Message
.
error
(
"连接失败!"
);
});
},
mounted
()
{
window
.
onresize
=
()
=>
{
///浏览器窗口大小变化
return
(()
=>
{
this
.
treeHeight
=
window
.
innerHeight
-
120
;
})();
};
onSelect
(
a
,
b
)
{
//批量选择
let
selectRows
=
a
;
this
.
arrayIds
=
[];
this
.
arrayIds
=
selectRows
.
map
(
e
=>
e
.
id
);
},
methods
:
{
starFun
(){
this
.
$Message
.
success
(
"开工..."
)
},
l
(
key
)
{
let
vkey
=
"order_execute_handon"
+
"."
+
key
;
return
this
.
$t
(
vkey
)
||
key
;
},
}
//格式化原始数据
formatFun
(
data
)
{
data
.
map
(
e
=>
{
if
(
e
.
status
!=
1
)
{
e
.
_disabled
=
true
;
}
else
{
e
.
_disabled
=
false
;
}
});
return
data
;
}
},
computed
:
{
formatNumber
()
{
if
(
this
.
handonCardNo
==
""
)
return
"请输入接收人员编号"
;
return
this
.
handonCardNo
;
}
}
};
</
script
>
pages/technology/productMix/product/add.vue
View file @
afce80ad
...
...
@@ -134,6 +134,7 @@ export default {
},
methods
:
{
clickData
(
data
,
liUrl
)
{
debugger
this
.
img
=
liUrl
;
this
.
entity
.
productUrl
=
liUrl
;
},
...
...
plugins/route.js
View file @
afce80ad
...
...
@@ -23,7 +23,7 @@ export default ({
next
();
}
else
{
// 没有登录的时候跳转到登录界面
// 携带上登
陆
成功之后需要跳转的页面完整路径
// 携带上登
录
成功之后需要跳转的页面完整路径
next
({
name
:
'login'
,
query
:
{
...
...
src/assets/css/base.css
View file @
afce80ad
...
...
@@ -1067,3 +1067,6 @@ html [type=button] {
.gdShow
{
box-shadow
:
0px
0px
15px
#333
;
}
.bgDDD
{
background
:
#DDD
;
}
src/assets/css/execute.css
View file @
afce80ad
...
...
@@ -41,7 +41,7 @@
}
.execute_box
.gd_list
{
position
:
absolute
;
top
:
4
0
%
;
top
:
4
3
%
;
left
:
0px
;
background
:
#2680EB
;
color
:
#fff
;
...
...
@@ -52,7 +52,7 @@
}
.execute_box
.gn_area
{
position
:
absolute
;
top
:
4
0
%
;
top
:
4
3
%
;
right
:
0px
;
background
:
#515A6E
;
color
:
#fff
;
...
...
@@ -84,13 +84,16 @@
background
:
#ddd
;
margin
:
10px
0
0
170px
;
}
.execute_box
.bottom_box
{
height
:
calc
(
100vh
-
145px
);
overflow-y
:
auto
;
padding
:
15px
40px
0px
;
}
.execute_box
.pross_case
{
padding
:
5px
50px
0
;
}
.execute_box
.pross_case
.table_box
{
height
:
calc
(
100vh
-
105px
);
}
.execute_box
.pross_case
.
table_box
.
card_box
{
.execute_box
.pross_case
.card_box
{
background
:
#F5F6FA
;
border
:
1px
solid
#dedede7
d
;
padding
:
10px
;
...
...
@@ -99,12 +102,40 @@
margin
:
10px
0
20px
;
line-height
:
30px
;
}
.execute_box
.pross_case
.
table_box
.
card_box
i
{
.execute_box
.pross_case
.card_box
i
{
font-size
:
62px
;
}
.execute_box
.pross_case
.
table_box
.
card_box
:hover
{
.execute_box
.pross_case
.card_box
:hover
{
box-shadow
:
4px
5px
7px
#d2d2d2
bd
;
}
.execute_box
.pros_check
{
height
:
calc
(
100vh
-
175px
);
padding
:
0
;
}
.card_body
{
border
:
1px
solid
#e4e6ed
;
border-radius
:
4px
;
margin-bottom
:
30px
;
}
.card_body
.title_i
{
padding
:
0
8px
;
height
:
35px
;
line-height
:
35px
;
color
:
#fff
;
background
:
#a7b8cc
;
font-size
:
15px
;
}
.card_body
.btn_click
{
text-align
:
right
;
}
.card_body
.down_text
{
background
:
#a7b8cc33
;
padding
:
5px
8px
;
line-height
:
32px
;
}
.card_body
.down_text
i
{
font-size
:
62px
;
}
.gd_box
.ivu-drawer-wrap
.ivu-drawer-left
{
width
:
370px
!important
;
}
...
...
@@ -133,7 +164,7 @@
}
.gd_box
.ivu-drawer-wrap
.ivu-drawer-left
.ivu-drawer-content
.ivu-drawer-body
{
padding
:
0
;
height
:
calc
(
100%
-
210
px
);
height
:
calc
(
100%
-
115
px
);
}
.gd_box
.ivu-drawer-wrap
.ivu-drawer-left
.ivu-drawer-content
.ivu-drawer-body
.order_list
.select_t
{
padding
:
15px
20px
;
...
...
@@ -275,7 +306,7 @@
height
:
59px
;
line-height
:
60px
;
text-align
:
center
;
width
:
calc
(
50%
-
2
px
);
width
:
calc
(
100%
-
0
px
);
}
.gs_set
.gs_card_box
.gs_card
.gs_footer
.gs_del
{
background
:
#2680EB
;
...
...
@@ -335,7 +366,7 @@
color
:
#fff
;
}
.wu_bg
{
height
:
calc
(
100vh
-
1
00
px
);
height
:
calc
(
100vh
-
1
15
px
);
}
.wu_bg
.mass_box
{
padding
:
0
50px
;
...
...
@@ -354,12 +385,12 @@
.wu_bg
.mass_box
h2
{
height
:
40px
;
}
.wu_bg
.mass_box
.heger
{
color
:
#2680EB
;
}
.wu_bg
.mass_box
.rangb
{
color
:
#515A6E
;
}
.wu_bg
.mass_box
.hege
{
color
:
#2680EB
;
}
.wu_bg
.mass_box
.fanxiu
{
color
:
#FFA000
;
}
...
...
@@ -373,6 +404,9 @@
margin
:
0
30px
0
0
;
color
:
#fff
;
}
.wu_bg
.mass_box
.chuanse
.button04
{
background
:
#2680EB
;
}
.wu_bg
.mass_box
.chuanse
.button01
{
background
:
#515A6E
;
}
...
...
@@ -390,6 +424,7 @@
}
.wu_bg
.mass_box
.mass_list
.btn_play
{
margin
:
0
0
20px
0
;
color
:
#4d5055
;
}
.wu_bg
.mass_box
.mass_list
.list01
{
min-height
:
50px
;
...
...
@@ -414,6 +449,9 @@
.wu_bg
.mass_box
.mass_list
.list02
.tag_card02
{
margin
:
0
20px
15px
0
;
}
.wu_bg
.mass_box
.hege_box
.ivu-tag-dot-inner
{
background
:
#2680EB
;
}
.wu_bg
.mass_box
.rangbu
.list02
.tag_card02
.ivu-tag-dot-inner
{
background
:
#515a6e
;
}
...
...
@@ -439,6 +477,118 @@
position
:
absolute
;
bottom
:
1px
;
}
.wu_bgModal
{
height
:
calc
(
100vh
-
185px
);
}
.wu_bgModal
.mass_box
{
padding
:
0
50px
;
}
.wu_bgModal
.footer
{
width
:
100%
;
position
:
absolute
;
left
:
0
;
bottom
:
-5px
;
height
:
60px
;
line-height
:
60px
;
background
:
rgba
(
0
,
0
,
0
,
0.6
);
color
:
#fff
;
padding-left
:
50px
;
}
.wu_bgModal
.mass_box
h2
{
height
:
40px
;
}
.wu_bgModal
.mass_box
.rangb
{
color
:
#515A6E
;
}
.wu_bgModal
.mass_box
.hege
{
color
:
#2680EB
;
}
.wu_bgModal
.mass_box
.fanxiu
{
color
:
#FFA000
;
}
.wu_bgModal
.mass_box
.feipin
{
color
:
#FE7777
;
}
.wu_bgModal
.mass_box
.chuanse
button
{
width
:
88px
;
height
:
40px
;
font-size
:
16px
;
margin
:
0
30px
0
0
;
color
:
#fff
;
}
.wu_bgModal
.mass_box
.chuanse
.button04
{
background
:
#2680EB
;
}
.wu_bgModal
.mass_box
.chuanse
.button01
{
background
:
#515A6E
;
}
.wu_bgModal
.mass_box
.chuanse
.button02
{
background
:
#FFA000
;
}
.wu_bgModal
.mass_box
.chuanse
.button03
{
background
:
#FE7777
;
}
.wu_bgModal
.mass_box
.mass_list
{
border
:
1px
solid
#CACBD0
;
border-radius
:
4px
;
padding
:
10px
15px
;
margin
:
15px
0
;
}
.wu_bgModal
.mass_box
.mass_list
.btn_play
{
margin
:
0
0
20px
0
;
color
:
#4d5055
;
}
.wu_bgModal
.mass_box
.mass_list
.list01
{
min-height
:
50px
;
max-height
:
155px
;
overflow-x
:
auto
;
}
.wu_bgModal
.mass_box
.mass_list
.list01
.tag_card
{
cursor
:
pointer
;
margin
:
0
20px
15px
0
;
}
.wu_bgModal
.mass_box
.mass_list
.list01
.ivu-tag-checked
{
border
:
1px
solid
#2680EB
!important
;
}
.wu_bgModal
.mass_box
.mass_list
.list01
.card_bor
{
border
:
1px
solid
#2680EB
!important
;
}
.wu_bgModal
.mass_box
.mass_list
.list02
{
min-height
:
50px
;
max-height
:
100px
;
overflow-y
:
auto
;
}
.wu_bgModal
.mass_box
.mass_list
.list02
.tag_card02
{
margin
:
0
20px
15px
0
;
}
.wu_bgModal
.mass_box
.hege_box
.ivu-tag-dot-inner
{
background
:
#2680EB
;
}
.wu_bgModal
.mass_box
.rangbu
.list02
.tag_card02
.ivu-tag-dot-inner
{
background
:
#515a6e
;
}
.wu_bgModal
.mass_box
.fanxiu_box
.list02
.tag_card02
.ivu-tag-dot-inner
{
background
:
#FFA000
;
}
.wu_bgModal
.mass_box
.fei_box
{
width
:
calc
(
100%
-
482px
);
display
:
inline-block
;
}
.wu_bgModal
.mass_box
.fei_box
.list02
.tag_card02
.ivu-tag-dot-inner
{
background
:
#FE7777
;
}
.wu_bgModal
.mass_box
.fei_right
{
float
:
right
;
padding-top
:
15px
;
line-height
:
50px
;
width
:
460px
;
}
.wu_bgModal
.futer
{
width
:
100%
;
height
:
60px
;
position
:
absolute
;
bottom
:
1px
;
}
.tech_box
{
height
:
calc
(
100vh
-
110px
);
}
...
...
@@ -548,3 +698,7 @@
display
:
inline-block
;
color
:
#515a6e
;
}
.zhuanx
{
text-align
:
center
;
line-height
:
60px
;
}
static/config.js
View file @
afce80ad
...
...
@@ -10,7 +10,7 @@ let address=systemApi.dev;
//let address=systemApi.local;
window
.
systemUrl
=
`http://
${
address
}
:10000/system`
;
//System-api 系统管理(基础数据)
window
.
authUrl
=
`http://
${
address
}
:10010`
;
//Authentication-api //统一登
陆
认证
window
.
authUrl
=
`http://
${
address
}
:10010`
;
//Authentication-api //统一登
录
认证
window
.
designUrl
=
`http://
${
address
}
:10000/process`
;
// 工艺规程
window
.
PlanUrl
=
`http://
${
address
}
:10000/plan`
;
//订单
// window.PlanUrl = `http://localhost:10050/api/services/app`; //Process-api
...
...
@@ -27,7 +27,7 @@ window.technologyUrl =`http://${address}:10000/technology/`;//新工艺规程接
window
.
iconImg
=
`/imgicon/`
;
/* window.systemUrl = `http://${address}:10020/api/services/app`; //System-api 系统管理(基础数据)
window.authUrl = `http://${address}:10010`; //Authentication-api //统一登
陆
认证
window.authUrl = `http://${address}:10010`; //Authentication-api //统一登
录
认证
window.designUrl = `http://${address}:10030/api/services/app`; //Process-api 工艺规程
window.PlanUrl = `http://${address}:10050/api/services/app`; //Process-api
window.routeUrl = `http://${address}:10050/api/services/app`; //Process-api
...
...
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