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
8986812c
Commit
8986812c
authored
Oct 27, 2020
by
周远喜
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of
http://git.mes123.com/zhouyx/mes-ui
into product
parents
0fee44df
c44f2790
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1008 additions
and
526 deletions
+1008
-526
projectTaskTree.vue
components/page/projectTaskTree.vue
+203
-0
index.vue
pages/aps/plan/index.vue
+6
-1
index1.vue
pages/project/groupUser/index1.vue
+4
-1
index.vue
pages/project/plan/index.vue
+268
-243
detail.vue
pages/project/project/detail.vue
+119
-121
add.vue
pages/project/task/add.vue
+10
-7
index.vue
pages/project/task/index.vue
+341
-114
pdfDetail.vue
pages/qc/certificate/endIssued/pdfDetail.vue
+3
-3
qcInfos.vue
pages/qc/certificate/endIssued/qcInfos.vue
+52
-36
iview.js
plugins/iview.js
+2
-0
No files found.
components/page/projectTaskTree.vue
0 → 100644
View file @
8986812c
<
template
>
<div
class=
"flex fd tree-menu"
>
<h3>
任务结构
<div
class=
"fr mr10 mt10"
>
<ButtonGroup
class=
"fr"
size=
"small"
>
<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"
:render=
"renderContent"
ref=
"tree"
@
on-select-change=
"change"
></Tree>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
""
,
data
()
{
return
{
keys
:
""
,
expand
:
true
,
list
:
[]
};
},
props
:
{
curId
:
{
type
:
String
,
default
:
''
,
},
},
created
()
{
this
.
loadTree
();
},
methods
:
{
loadTree
()
{
let
params
=
{
conditions
:
[{
fieldName
:
"projectId"
,
fieldValue
:
this
.
curId
,
conditionalType
:
"Equal"
}]
}
this
.
$api
.
post
(
`
${
material
}
/projectplan/list`
,
params
).
then
(
r
=>
{
var
data
=
this
.
$u
.
toTree
(
r
.
result
,
null
,
u
=>
{
u
.
value
=
u
.
id
;
u
.
expand
=
true
;
u
.
selected
=
false
;
u
.
checked
=
false
;
},
"upId"
);
this
.
list
=
this
.
$u
.
clone
(
data
);
});
},
toggle
()
{
this
.
expand
=
!
this
.
expand
;
},
renderContent
(
h
,
{
root
,
node
,
data
})
{
// let type = "md-folder";
// if (data.isProduct != 0) {
// type = "ios-image";
// }
return
h
(
"div"
,
[
h
(
"state"
,
{
props
:
{
code
:
"mes.project_plan.Type"
,
type
:
"icon"
,
value
:
data
.
type
+
""
}
}),
h
(
"span"
,
{
style
:
{
// color: data.isProduct == 0 ? "#000" : "rgba(38, 128, 235, 1)"
}
},
data
.
title
),
h
(
"state"
,
{
props
:
{
code
:
"mes.project_plan.Status"
,
type
:
"text"
,
value
:
data
.
status
}
}),
]);
},
change
(
v
,
b
)
{
// console.log(b);
let
ids
=
[];
let
productIds
=
[];
// if (b.bomId !== 0) {
// ids.push(b.bomId);
// }
var
curentId
=
''
curentId
=
b
.
id
productIds
.
push
(
b
.
value
);
if
(
b
.
children
)
{
addId
(
b
.
children
);
function
addId
(
data
)
{
data
.
map
(
u
=>
{
// if (u.bomId !== 0) {
// ids.push(u.bomId);
// }
productIds
.
push
(
u
.
value
);
if
(
u
.
children
)
{
addId
(
u
.
children
);
}
});
}
}
this
.
$emit
(
"on-select"
,
curentId
,
b
,
productIds
);
},
hide
()
{
this
.
$emit
(
"on-hide"
);
}
},
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
<
2
)
{
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
;
}
},
watch
:
{
curId
(
v
)
{
if
(
v
)
{
this
.
loadTree
();
}
},
},
};
</
script
>
<
style
lang=
"less"
>
@import "../../assets/css/custom.less";
.tree-menu {
h3 {
height: 50px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 50px;
color: @left-tree-header-color;
background: @left-tree-header-bg-color;
opacity: 1;
padding-left: 10px;
}
.search {
height: 50px;
padding: 5px 10px;
}
.fg {
flex: none;
// height:0;
overflow: auto;
padding-left: 10px;
}
.tree {
height: calc(100vh - 215px);
overflow: auto;
}
}
</
style
>
pages/aps/plan/index.vue
View file @
8986812c
...
@@ -373,6 +373,7 @@ export default {
...
@@ -373,6 +373,7 @@ export default {
showAi
:
false
,
showAi
:
false
,
showAll
:
false
,
showAll
:
false
,
showRun
:
false
,
showRun
:
false
,
isPrescheduleStatu
:
0
,
};
};
},
},
mounted
()
{
mounted
()
{
...
@@ -402,10 +403,14 @@ export default {
...
@@ -402,10 +403,14 @@ export default {
let
statueArry
=
[];
let
statueArry
=
[];
let
tempmesCodeList
=
[];
let
tempmesCodeList
=
[];
this
.
resultsStatusArr
=
[];
this
.
resultsStatusArr
=
[];
this
.
isPrescheduleStatu
=
0
value
.
forEach
((
data
)
=>
{
value
.
forEach
((
data
)
=>
{
var
that
=
this
;
var
that
=
this
;
statueArry
.
push
(
data
.
id
);
statueArry
.
push
(
data
.
id
);
this
.
resultsStatusArr
.
push
(
data
.
mainRoutingSetStatus
);
this
.
resultsStatusArr
.
push
(
data
.
mainRoutingSetStatus
);
if
(
data
.
isPreschedule
==
2
)
{
this
.
isPrescheduleStatu
=
2
}
tempmesCodeList
.
push
(
data
.
mesCode
);
tempmesCodeList
.
push
(
data
.
mesCode
);
});
});
...
@@ -463,7 +468,7 @@ export default {
...
@@ -463,7 +468,7 @@ export default {
this
.
scheduleType
=
null
;
this
.
scheduleType
=
null
;
this
.
scheduleTypeName
=
""
;
this
.
scheduleTypeName
=
""
;
this
.
listBatchIds
=
this
.
listBatchIds1
;
this
.
listBatchIds
=
this
.
listBatchIds1
;
if
(
this
.
scheduleStatus
==
1
)
{
if
(
this
.
scheduleStatus
==
1
&&
this
.
isPrescheduleStatu
!=
2
)
{
this
.
scheduleModal
=
true
;
this
.
scheduleModal
=
true
;
}
else
{
}
else
{
this
.
$Message
.
error
(
"所选订单里存在未派发订单!"
);
this
.
$Message
.
error
(
"所选订单里存在未派发订单!"
);
...
...
pages/project/groupUser/index1.vue
View file @
8986812c
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
</
template
>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"note"
>
<
template
slot-scope=
"{ row, index }"
slot=
"note"
>
<span
v-if=
"edit != index"
v-text=
"row.note"
></span>
<span
v-if=
"edit != index"
v-text=
"row.note"
></span>
<Input
v-else
type=
"text"
v-model
.
trim=
"cur.note"
/>
<Input
v-else
type=
"text"
v-model
.
trim=
"cur.note"
:disabled=
"true"
/>
</
template
>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<div
v-if=
"edit != index"
class=
"action"
>
<div
v-if=
"edit != index"
class=
"action"
>
...
@@ -214,6 +214,9 @@ export default {
...
@@ -214,6 +214,9 @@ export default {
this
.
cur
=
this
.
$u
.
clone
(
row
);
this
.
cur
=
this
.
$u
.
clone
(
row
);
this
.
edit
=
index
this
.
edit
=
index
},
},
changeUser
(
val
,
item
)
{
this
.
cur
.
note
=
item
},
//选择权限
//选择权限
changeAuthority
(
val
)
{
changeAuthority
(
val
)
{
if
(
this
.
authorityCur
!=
1
&&
this
.
authorityCount
==
1
&&
val
==
1
)
{
if
(
this
.
authorityCur
!=
1
&&
this
.
authorityCount
==
1
&&
val
==
1
)
{
...
...
pages/project/plan/index.vue
View file @
8986812c
<
template
>
<
template
>
<div>
<div>
<Card>
<Card>
<EditGrid
:columns=
"columns"
ref=
"grid"
:items=
"list"
<EditGrid
:columns=
"columns"
ref=
"grid"
:items=
"list"
>
>
<template
slot=
"easySearch"
>
<template
slot=
"easySearch"
><Form
ref=
"formInline"
:model=
"easySearch"
inline
><FormItem
prop=
"keys"
><Input
placeholder=
"请输入关键字标题"
v-model=
"easySearch.keys.value"
/>
</FormItem>
<Form
ref=
"formInline"
:model=
"easySearch"
inline
>
<FormItem><Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
<FormItem
prop=
"keys"
><Input
placeholder=
"请输入关键字标题"
v-model=
"easySearch.keys.value"
/>
</FormItem>
</FormItem>
<FormItem><Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
</Form></
template
>
</FormItem>
</Form>
</
template
>
<!-- <template slot="searchForm">
<!-- <template slot="searchForm">
<Search />
<Search />
</template> -->
</template> -->
...
@@ -18,8 +20,9 @@
...
@@ -18,8 +20,9 @@
<Modal
v-model=
"modal"
:title=
"title"
width=
"1200"
footer-hide
>
<Modal
v-model=
"modal"
:title=
"title"
width=
"1200"
footer-hide
>
<component
:is=
"detail"
:eid=
"curId"
:v=
"row"
@
on-close=
"cancel"
@
on-ok=
"ok"
/>
<component
:is=
"detail"
:eid=
"curId"
:v=
"row"
@
on-close=
"cancel"
@
on-ok=
"ok"
/>
</Modal>
</Modal>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
Api
from
"./api"
;
import
Api
from
"./api"
;
import
Search
from
"./search"
;
import
Search
from
"./search"
;
...
@@ -33,32 +36,35 @@ export default {
...
@@ -33,32 +36,35 @@ export default {
author
:
"henq"
,
author
:
"henq"
,
description
:
"project_plan 10/19/2020 10:23:07 AM"
,
description
:
"project_plan 10/19/2020 10:23:07 AM"
,
},
},
props
:
{
props
:
{
eid
:
{
eid
:
{
type
:
String
type
:
String
},
},
data
:
{
data
:
{
type
:
Object
,
type
:
Object
,
default
:()
=>
{
default
:
()
=>
{
return
{
return
{
id
:
"33930562-a9f7-bd95-88ab-d01eb1c4c369"
,
id
:
"33930562-a9f7-bd95-88ab-d01eb1c4c369"
,
title
:
"示例项目"
title
:
"示例项目"
}
}
}
}
}
}
},
},
data
()
{
data
()
{
return
{
return
{
entity
:
{},
entity
:
{},
row
:
{},
row
:
{},
action
:
Api
.
index
,
action
:
Api
.
index
,
easySearch
:
{
easySearch
:
{
keys
:
{
op
:
"title"
,
value
:
null
},
keys
:
{
op
:
"title"
,
value
:
null
},
},
},
modal
:
false
,
modal
:
false
,
title
:
"新增"
,
title
:
"新增"
,
detail
:
null
,
detail
:
null
,
curId
:
null
,
curId
:
null
,
list
:
[],
list
:
[],
columns
:
[
columns
:
[
// { key:"id",title:this.$t("id") ,hide:true ,align:"left" ,high:true },
// { key:"id",title:this.$t("id") ,hide:true ,align:"left" ,high:true },
...
@@ -92,60 +98,73 @@ export default {
...
@@ -92,60 +98,73 @@ export default {
// }
// }
render
:
(
h
,
params
)
=>
{
render
:
(
h
,
params
)
=>
{
return
h
(
"div"
,
{
class
:
"action"
},
[
return
h
(
"div"
,
{
class
:
"action"
},
[
h
(
h
(
"op"
,
"op"
,
{
{
attrs
:
{
attrs
:
{
icon
:
"md-arrow-dropright-circle"
,
icon
:
"md-arrow-dropright-circle"
,
type
:
"icon"
,
type
:
"icon"
,
title
:
"派发"
,
title
:
"派发"
,
oprate
:
"edit"
,
oprate
:
"edit"
,
disalbe
:
1
,
},
},
on
:
{
click
:
()
=>
this
.
copy
(
params
.
row
.
id
)
},
on
:
{
click
:
()
=>
this
.
copy
(
params
.
row
.
id
)
},
},
},
),
),
h
(
h
(
"op"
,
"op"
,
{
{
attrs
:
{
attrs
:
{
icon
:
"md-add"
,
icon
:
"md-add"
,
type
:
"icon"
,
type
:
"icon"
,
title
:
"新增子任务"
,
title
:
"新增子任务"
,
oprate
:
"edit"
,},
oprate
:
"edit"
,
on
:
{
click
:
()
=>
this
.
add
(
params
.
row
)
},
},
on
:
{
click
:
()
=>
this
.
add
(
params
.
row
)
},
}
}
),
),
h
(
h
(
"op"
,
"op"
,
{
{
attrs
:
{
attrs
:
{
icon
:
"md-creat
e"
,
icon
:
"md-ey
e"
,
type
:
"icon"
,
type
:
"icon"
,
title
:
"编辑"
,
title
:
"编辑"
,
oprate
:
"edit"
,
},
oprate
:
"edit"
,
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
.
id
)
},
},
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
.
id
)
},
}
}
),
),
h
(
h
(
"op"
,
"op"
,
{
{
attrs
:
{
attrs
:
{
icon
:
"ios-trash"
,
icon
:
"ios-trash"
,
type
:
"icon"
,
type
:
"icon"
,
title
:
"删除"
,
title
:
"删除"
,
oprate
:
"delete"
,
oprate
:
"delete"
,
msg
:
"确认要删除吗?"
},
msg
:
"确认要删除吗?"
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
.
id
)
},
},
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
.
id
)
},
}
}
),
),
]);
]);
},
},
},
},
{
{
key
:
"type"
,
attrs
:
{
icon
:
"md-arrow-dropright-circle"
,
width
:
90
,
type
:
"icon"
,
title
:
this
.
l
(
"type"
),
title
:
"派发"
,
align
:
"left"
,
oprate
:
"edit"
,
high
:
true
,
disalbe
:
1
,
code
:
"mes.project_plan.Type"
,
},
on
:
{
click
:
()
=>
this
.
copy
(
params
.
row
.
id
)
},
},
},
{
{
key
:
"title"
,
key
:
"title"
,
...
@@ -156,20 +175,22 @@ export default {
...
@@ -156,20 +175,22 @@ export default {
high
:
true
,
high
:
true
,
},
},
{
{
key
:
"status"
,
attrs
:
{
icon
:
"md-create"
,
title
:
this
.
l
(
"status"
),
type
:
"icon"
,
align
:
"left"
,
title
:
"编辑"
,
high
:
true
,
oprate
:
"edit"
,
},
code
:
"mes.project_plan.Status"
,
on
:
{
click
:
()
=>
this
.
edit
(
params
.
row
.
id
)
},
},
}
),
h
(
"op"
,
{
{
key
:
"start
Date"
,
key
:
"end
Date"
,
title
:
this
.
l
(
"start
Date"
),
title
:
this
.
l
(
"end
Date"
),
align
:
"left"
,
align
:
"left"
,
high
:
true
high
:
true
,
,
type
:
"date"
type
:
"date"
},
},
{
key
:
"endDate"
,
title
:
this
.
l
(
"endDate"
),
align
:
"left"
,
high
:
true
,
type
:
"date"
},
// {
// {
// key: "attachment",
// key: "attachment",
// title: this.l("attachment"),
// title: this.l("attachment"),
...
@@ -181,7 +202,7 @@ export default {
...
@@ -181,7 +202,7 @@ export default {
title
:
this
.
l
(
"executor"
),
title
:
this
.
l
(
"executor"
),
align
:
"left"
,
align
:
"left"
,
high
:
true
,
high
:
true
,
type
:
"users"
,
type
:
"users"
,
},
},
],
],
};
};
...
@@ -190,7 +211,10 @@ export default {
...
@@ -190,7 +211,10 @@ export default {
console
.
log
(
this
);
console
.
log
(
this
);
this
.
search
();
this
.
search
();
},
},
async
fetch
({
store
,
params
})
{
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
},
methods
:
{
methods
:
{
...
@@ -203,9 +227,9 @@ export default {
...
@@ -203,9 +227,9 @@ export default {
// this.$refs.grid.reload(this.easySearch);
// this.$refs.grid.reload(this.easySearch);
var
params
=
{
var
params
=
{
conditions
:
[{
conditions
:
[{
fieldName
:
"projectId"
,
fieldName
:
"projectId"
,
conditionalType
:
'Equal'
,
conditionalType
:
'Equal'
,
fieldValue
:
this
.
eid
fieldValue
:
this
.
eid
}],
}],
// conditions: []
// conditions: []
};
};
...
@@ -223,7 +247,7 @@ export default {
...
@@ -223,7 +247,7 @@ export default {
"upId"
"upId"
);
);
this
.
list
=
data
;
this
.
list
=
data
;
});
});
},
},
...
@@ -235,13 +259,13 @@ export default {
...
@@ -235,13 +259,13 @@ export default {
// }
// }
// },
// },
add
(
row
)
{
add
(
row
)
{
if
(
row
)
{
if
(
row
)
{
this
.
curId
=
row
.
id
;
this
.
curId
=
row
.
id
;
this
.
row
=
row
this
.
row
=
row
}
else
{
}
else
{
this
.
curId
=
null
;
this
.
curId
=
null
;
this
.
row
=
{
this
.
row
=
{
projectId
:
this
.
data
.
id
projectId
:
this
.
data
.
id
,
}
}
}
}
...
@@ -286,5 +310,6 @@ export default {
...
@@ -286,5 +310,6 @@ export default {
},
},
};
};
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
</
style
>
</
style
>
pages/project/project/detail.vue
View file @
8986812c
<
template
>
<
template
>
<div
class=
".detail-document"
>
<div
class=
".detail-document"
>
<div
class=
"top-title"
>
<div
class=
"top-title"
>
<div
class=
"new-detail row-left"
>
<div
class=
"new-detail row-left"
>
<Row>
<Row>
<Filed
:span=
"12"
:name=
"l('title') + ':'"
>
{{
entity
.
title
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('title') + ':'"
>
{{
entity
.
title
}}
</Filed>
<Filed
:span=
"12"
:name=
"l('state') + ':'"
>
<Filed
:span=
"12"
:name=
"l('state') + ':'"
>
<state
code=
"project.main.state"
:value=
"entity.state"
<state
code=
"project.main.state"
:value=
"entity.state"
/>
/>
</Filed>
</Filed>
<!--
<Filed
:span=
"12"
:name=
"l('phase')"
>
{{
entity
.
phase
}}
</Filed>
-->
<!--
<Filed
:span=
"12"
:name=
"l('phase')"
>
{{
entity
.
phase
}}
</Filed>
-->
<Filed
:span=
"12"
:name=
"l('startDate') + ':'"
>
{{
<Filed
:span=
"12"
:name=
"l('startDate') + ':'"
>
{{
entity
.
startDate
entity
.
startDate
...
@@ -48,8 +48,9 @@
...
@@ -48,8 +48,9 @@
<component
v-bind:is=
"detail"
:eid=
"eid"
:data=
"entity"
></component>
<component
v-bind:is=
"detail"
:eid=
"eid"
:data=
"entity"
></component>
</keep-alive>
</keep-alive>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
Api
from
"./api"
;
import
Api
from
"./api"
;
export
default
{
export
default
{
...
@@ -63,8 +64,16 @@ export default {
...
@@ -63,8 +64,16 @@ export default {
avatorPath
:
""
,
avatorPath
:
""
,
entity
:
{},
entity
:
{},
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
name
:
[{
code
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
code
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
},
},
fileds
:
[],
fileds
:
[],
parms
:
{
parms
:
{
...
@@ -81,28 +90,6 @@ export default {
...
@@ -81,28 +90,6 @@ export default {
this
.
load
(
this
.
eid
);
this
.
load
(
this
.
eid
);
}
}
this
.
detail
=
()
=>
import
(
"./details"
);
this
.
detail
=
()
=>
import
(
"./details"
);
},
methods
:
{
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
((
r
)
=>
{
this
.
entity
=
r
.
result
;
// this.$emit("on-load");
});
},
details
()
{
this
.
title
=
"详细信息"
;
this
.
detail
=
()
=>
import
(
"./details"
);
},
template
()
{
// this.curId = this.eid;
this
.
title
=
"项目模板"
;
this
.
detail
=
()
=>
import
(
"../plan"
);
},
task
()
{
// this.curId = this.eid;
this
.
title
=
"项目任务"
;
// this.detail = () => import("./add");
},
},
group
()
{
group
()
{
// this.curId = this.eid;
// this.curId = this.eid;
...
@@ -113,7 +100,6 @@ export default {
...
@@ -113,7 +100,6 @@ export default {
key
=
"project_main"
+
"."
+
key
;
key
=
"project_main"
+
"."
+
key
;
return
this
.
$t
(
key
);
return
this
.
$t
(
key
);
},
},
},
watch
:
{
watch
:
{
eid
(
v
)
{
eid
(
v
)
{
if
(
v
>
0
)
{
if
(
v
>
0
)
{
...
@@ -123,6 +109,7 @@ export default {
...
@@ -123,6 +109,7 @@ export default {
},
},
};
};
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
.top-title {
.top-title {
// margin: 10px;
// margin: 10px;
...
@@ -130,29 +117,35 @@ export default {
...
@@ -130,29 +117,35 @@ export default {
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
position: relative;
position: relative;
border-radius: 5px;
border-radius: 5px;
.row-left {
.row-left {
width: 1100px;
width: 1100px;
}
}
ul {
ul {
display: -webkit-inline-box;
display: -webkit-inline-box;
display: inline-box;
display: inline-box;
position: absolute;
position: absolute;
bottom: 5px;
bottom: 5px;
right: 0px;
right: 0px;
li {
li {
width: 70px;
width: 70px;
span {
span {
color: #e0e0e0;
color: #e0e0e0;
}
}
}
}
}
}
}
}
.body-document {
.body-document {
margin-top: 10px;
margin-top: 10px;
background: #fff;
background: #fff;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
border-radius: 8px;
border-radius: 8px;
min-height: 80vh;
min-height: 80vh;
h4 {
h4 {
height: 50px;
height: 50px;
line-height: 50px;
line-height: 50px;
...
@@ -161,25 +154,30 @@ export default {
...
@@ -161,25 +154,30 @@ export default {
color: #f5f6fa;
color: #f5f6fa;
border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
}
.img-touxiang {
.img-touxiang {
width: 230px;
width: 230px;
height: 230px;
height: 230px;
float: right;
float: right;
margin-top: 10px;
margin-top: 10px;
margin-right: 10px;
margin-right: 10px;
img {
img {
width: 100%;
width: 100%;
height: 100%;
height: 100%;
border-radius: 5px;
border-radius: 5px;
}
}
}
}
.detail-d {
.detail-d {
padding-left: 20px;
padding-left: 20px;
.filed-d {
.filed-d {
border-top: 1px solid #e0e0e0;
border-top: 1px solid #e0e0e0;
}
}
}
}
}
}
.detail-document {
.detail-document {
background-color: #f5f7f9 !important;
background-color: #f5f7f9 !important;
}
}
...
...
pages/project/task/add.vue
View file @
8986812c
...
@@ -81,18 +81,21 @@ export default {
...
@@ -81,18 +81,21 @@ export default {
},
},
props
:
{
props
:
{
v
:
Object
,
v
:
Object
,
eid
:
Number
eid
:
String
,
pid
:
String
,
},
},
mounted
()
{
mounted
()
{
if
(
this
.
eid
>
0
)
{
// if (this.eid != '' && this.eid != null
) {
this
.
load
(
this
.
eid
);
//
this.load(this.eid);
}
//
}
},
},
methods
:
{
methods
:
{
handleSubmit
()
{
handleSubmit
()
{
this
.
$refs
.
form
.
validate
((
v
)
=>
{
this
.
$refs
.
form
.
validate
((
v
)
=>
{
if
(
v
)
{
if
(
v
)
{
this
.
disabled
=
true
;
this
.
disabled
=
true
;
this
.
entity
.
projectId
=
this
.
eid
;
this
.
entity
.
planId
=
this
.
pid
;
this
.
entity
.
status
=
0
this
.
entity
.
status
=
0
Api
.
create
(
this
.
entity
).
then
((
r
)
=>
{
Api
.
create
(
this
.
entity
).
then
((
r
)
=>
{
this
.
disabled
=
false
;
this
.
disabled
=
false
;
...
@@ -152,9 +155,9 @@ export default {
...
@@ -152,9 +155,9 @@ export default {
this
.
entity
=
this
.
$u
.
clone
(
this
.
v
)
this
.
entity
=
this
.
$u
.
clone
(
this
.
v
)
},
},
eid
(
v
)
{
eid
(
v
)
{
if
(
v
>
0
)
{
//if (v != '' && v != null
) {
this
.
load
(
v
);
//
this.load(v);
}
//
}
}
}
}
}
}
}
...
...
pages/project/task/index.vue
View file @
8986812c
This diff is collapsed.
Click to expand it.
pages/qc/certificate/endIssued/pdfDetail.vue
View file @
8986812c
...
@@ -78,9 +78,9 @@
...
@@ -78,9 +78,9 @@
</div>
</div>
<div
style=
"margin-top:20px;"
>
本合格证无检验专用章无效 (版本:MB.FFGGHJKLL)
</div>
<div
style=
"margin-top:20px;"
>
本合格证无检验专用章无效 (版本:MB.FFGGHJKLL)
</div>
<Row
style=
"margin-top:5px;"
>
<Row
style=
"margin-top:5px;"
>
<Col
:span=
"
8"
>
地址:北京市海淀区知春路63号
</Col>
<Col
:span=
"
10"
>
地址:
</Col>
<Col
:span=
"8"
style=
"text-align:center;"
>
电话:010-68378079
</Col>
<Col
:span=
"8"
>
电话:
</Col>
<Col
:span=
"
8"
style=
"text-align:right;"
>
邮编:100190
</Col>
<Col
:span=
"
6"
>
邮编:
</Col>
</Row>
</Row>
</div>
</div>
</div>
</div>
...
...
pages/qc/certificate/endIssued/qcInfos.vue
View file @
8986812c
<
template
>
<
template
>
<div
class=
"pdf-detail"
>
<div
class=
"pdf-detail"
>
<div
class=
"cerioficate-pdf-detail"
>
<div
class=
"cerioficate-pdf-detail"
>
<div
class=
"bian-hao"
>
产品合格证编号:
{{
results
.
serialNumber
}}
</div>
<div
class=
"bian-hao"
>
产品合格证编号:
{{
results
.
serialNumber
}}
</div>
<div
class=
"body-d"
>
<div
class=
"body-d"
>
<Row
class=
"row-border right-border"
>
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
用户单位
</Col>
<Col
:span=
"4"
class=
"col-border"
>
用户单位
</Col>
<Col
:span=
"20"
class=
"col-border"
>
{{
results
.
userUnit
}}
</Col>
<Col
:span=
"20"
class=
"col-border"
>
{{
results
.
userUnit
}}
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border"
>
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
任务依据
</Col>
<Col
:span=
"4"
class=
"col-border"
>
任务依据
</Col>
<Col
:span=
"20"
class=
"col-border"
>
{{
results
.
taskBased
}}
</Col>
<Col
:span=
"20"
class=
"col-border"
>
{{
results
.
taskBased
}}
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border"
>
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
产品名称
</Col>
<Col
:span=
"4"
class=
"col-border"
>
产品名称
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productName
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productName
}}
</Col>
<Col
:span=
"4"
class=
"col-border"
>
产品状态
</Col>
<Col
:span=
"4"
class=
"col-border"
>
产品状态
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productStatus
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productStatus
}}
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border"
>
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
产品编号
</Col>
<Col
:span=
"4"
class=
"col-border"
>
产品编号
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productSerialNumber
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productSerialNumber
}}
</Col>
<Col
:span=
"4"
class=
"col-border"
>
原材料批号
</Col>
<Col
:span=
"4"
class=
"col-border"
>
原材料批号
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
materialSerialNumber
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
materialSerialNumber
}}
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border"
>
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
原材料编号
</Col>
<Col
:span=
"4"
class=
"col-border"
>
原材料编号
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
materialCode
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
materialCode
}}
</Col>
<Col
:span=
"4"
class=
"col-border"
>
产品代号(图号)
</Col>
<Col
:span=
"4"
class=
"col-border"
>
产品代号(图号)
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productCode
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productCode
}}
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border"
>
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
原材料合格证编号
</Col>
<Col
:span=
"4"
class=
"col-border"
>
原材料合格证编号
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
materialCertificationNumber
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
materialCertificationNumber
}}
</Col>
<Col
:span=
"4"
class=
"col-border"
>
数量
</Col>
<Col
:span=
"4"
class=
"col-border"
>
数量
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productQuantity
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
productQuantity
}}
</Col>
</Row>
</Row>
<!--
<Row
class=
"row-border right-border"
>
<!--
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
增材制造批次号
</Col>
<Col
:span=
"4"
class=
"col-border"
>
增材制造批次号
</Col>
...
@@ -50,30 +56,40 @@
...
@@ -50,30 +56,40 @@
<Col
:span=
"5"
class=
"col-border"
>
结论
</Col>
<Col
:span=
"5"
class=
"col-border"
>
结论
</Col>
<Col
:span=
"5"
class=
"col-border"
>
备注
</Col>
<Col
:span=
"5"
class=
"col-border"
>
备注
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border"
v-for=
"(item,index) in results.items"
:key=
"index"
>
<Row
<Col
:span=
"1"
class=
"col-border"
>
{{
index
+
1
}}
</Col>
class=
"row-border right-border"
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
name
}}
</Col>
v-for=
"(item, index) in results.items"
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
require
}}
</Col>
:key=
"index"
<Col
:span=
"3"
class=
"col-border"
>
{{
item
.
result
}}
</Col>
>
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
conclusion
}}
</Col>
<Col
:span=
"1"
class=
"col-border"
>
{{
index
+
1
}}
</Col>
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
remark
}}
</Col>
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
name
}}
</Col>
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
require
}}
</Col>
<Col
:span=
"3"
class=
"col-border"
>
{{
item
.
result
}}
</Col>
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
conclusion
}}
</Col>
<Col
:span=
"5"
class=
"col-border"
>
{{
item
.
remark
}}
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border"
>
<Row
class=
"row-border right-border"
>
<Col
:span=
"4"
class=
"col-border"
>
结论
</Col>
<Col
:span=
"4"
class=
"col-border"
>
结论
</Col>
<Col
:span=
"20"
class=
"col-border"
>
{{
results
.
conclusion
}}
</Col>
<Col
:span=
"20"
class=
"col-border"
>
{{
results
.
conclusion
}}
</Col>
</Row>
</Row>
<Row
class=
"row-border right-border bottom-border"
>
<Row
class=
"row-border right-border bottom-border"
>
<Col
:span=
"4"
class=
"col-border"
>
检验员 / 时间
</Col>
<Col
:span=
"4"
class=
"col-border"
>
检验员 / 时间
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
examUser
}}
{{
results
.
examDate
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
examUser
}}
{{
results
.
examDate
}}
</Col
>
<Col
:span=
"4"
class=
"col-border"
>
批准人 / 时间
</Col>
<Col
:span=
"4"
class=
"col-border"
>
批准人 / 时间
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
approveUser
}}
{{
results
.
approveDate
}}
</Col>
<Col
:span=
"8"
class=
"col-border"
>
{{
results
.
approveUser
}}
{{
results
.
approveDate
}}
</Col
>
</Row>
</Row>
</div>
</div>
<div
style=
"margin-top:20px;"
>
本合格证无检验专用章无效 (版本:MB.FFGGHJKLL)
</div>
<div
style=
"margin-top: 20px"
>
<Row
style=
"margin-top:5px;"
>
本合格证无检验专用章无效 (版本:MB.FFGGHJKLL)
<Col
:span=
"8"
>
地址:北京市海淀区知春路63号
</Col>
</div>
<Col
:span=
"8"
style=
"text-align:center;"
>
电话:010-68378079
</Col>
<Row
style=
"margin-top: 5px"
>
<Col
:span=
"8"
style=
"text-align:right;"
>
邮编:100190
</Col>
<Col
:span=
"10"
>
地址:
</Col>
<Col
:span=
"8"
>
电话:
</Col>
<Col
:span=
"6"
>
邮编:100190
</Col>
</Row>
</Row>
</div>
</div>
</div>
</div>
...
@@ -81,21 +97,21 @@
...
@@ -81,21 +97,21 @@
<
script
>
<
script
>
export
default
{
export
default
{
name
:
''
,
name
:
""
,
props
:
[
'results'
],
props
:
[
"results"
],
async
fetch
({
store
,
params
})
{
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
'loadDictionary'
)
// 加载数据字典
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
},
data
()
{
data
()
{
return
{}
return
{}
;
},
},
methods
:
{
methods
:
{
l
(
key
)
{
l
(
key
)
{
key
=
'waitOpened'
+
'.'
+
key
key
=
"waitOpened"
+
"."
+
key
;
return
this
.
$t
(
key
)
return
this
.
$t
(
key
)
;
}
}
,
}
}
,
}
}
;
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
.pdf-detail {
.pdf-detail {
...
...
plugins/iview.js
View file @
8986812c
...
@@ -63,6 +63,7 @@ import op from '@/components/page/opration.vue'
...
@@ -63,6 +63,7 @@ import op from '@/components/page/opration.vue'
import
ProductNumberSelect
from
'@/components/page/productNumberSelect.vue'
import
ProductNumberSelect
from
'@/components/page/productNumberSelect.vue'
import
ProductSelect
from
'@/components/page/productSelect.vue'
import
ProductSelect
from
'@/components/page/productSelect.vue'
import
ProductSelect1
from
'@/components/page/productSelect1.vue'
import
ProductSelect1
from
'@/components/page/productSelect1.vue'
import
ProjectTaskTree
from
'@/components/page/projectTaskTree.vue'
import
DTSpan
from
'@/components/page/dtSpan.vue'
import
DTSpan
from
'@/components/page/dtSpan.vue'
import
DTSearch
from
'@/components/page/dtSearch.vue'
import
DTSearch
from
'@/components/page/dtSearch.vue'
import
InputTime
from
'@/components/page/inputTime.vue'
import
InputTime
from
'@/components/page/inputTime.vue'
...
@@ -141,6 +142,7 @@ Vue.component("DepartmentSelect", DepartmentSelect)
...
@@ -141,6 +142,7 @@ Vue.component("DepartmentSelect", DepartmentSelect)
Vue
.
component
(
"ProductNumberSelect"
,
ProductNumberSelect
)
Vue
.
component
(
"ProductNumberSelect"
,
ProductNumberSelect
)
Vue
.
component
(
"ProductSelect"
,
ProductSelect
)
Vue
.
component
(
"ProductSelect"
,
ProductSelect
)
Vue
.
component
(
"ProductSelect1"
,
ProductSelect1
)
Vue
.
component
(
"ProductSelect1"
,
ProductSelect1
)
Vue
.
component
(
"ProjectTaskTree"
,
ProjectTaskTree
)
Vue
.
component
(
"DTSpan"
,
DTSpan
)
Vue
.
component
(
"DTSpan"
,
DTSpan
)
Vue
.
component
(
"DTSearch"
,
DTSearch
)
Vue
.
component
(
"DTSearch"
,
DTSearch
)
Vue
.
component
(
"InputTime"
,
InputTime
)
Vue
.
component
(
"InputTime"
,
InputTime
)
...
...
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