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
e7a44140
Commit
e7a44140
authored
May 25, 2020
by
仇晓婷
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ting-p' into product
parents
61a88cdf
2da1dd21
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
215 additions
and
185 deletions
+215
-185
files.vue
components/page/files.vue
+25
-8
productSelect1.vue
components/page/productSelect1.vue
+28
-89
henq.js
libs/henq.js
+19
-0
add.vue
pages/technology/productMix/product/add.vue
+37
-43
edit.vue
pages/technology/productMix/product/edit.vue
+92
-33
index.vue
pages/technology/productMix/product/index.vue
+5
-9
index.vue
pages/technology/productMix/productTree/index.vue
+9
-3
No files found.
components/page/files.vue
View file @
e7a44140
...
...
@@ -23,11 +23,12 @@
<span
style=
"font-size:10px;color:#aaa"
v-if=
"fileFormat"
>
文件格式:
{{
JSON
.
stringify
(
formatList
).
replace
(
'['
,
''
).
replace
(
']'
,
''
).
replace
(
/
\"
/g
,
''
)
}}
;文件最大:
{{
maxSize
}}
k
</span>
>
文件格式:
{{
formatList
.
join
(
)
}}
;文件最大:
{{
maxSize
}}
k
</span>
</Upload>
<Progress
:percent=
"per"
:stroke-width=
"5"
v-show=
"vshowPro"
/>
<div
v-if=
"Photo"
>
<Tag
v-if=
"Photo"
v-for=
"(item,index) in nameList"
:key=
"index"
:name=
"item.id"
...
...
@@ -37,6 +38,7 @@
>
<a
:href=
"fileUrlPath"
@
click=
"downFile(item.filePath)"
target=
"_blank"
>
{{
item
.
fileName
}}
</a>
</Tag>
</div>
<div
class=
"upload-body"
v-else
>
<div
class=
"demo-upload-list"
...
...
@@ -243,13 +245,15 @@ export default {
//查询上传到文件服务器上的文件
this
.
$http
.
sysUser
.
getFile
(
this
.
parms
).
then
(
res
=>
{
if
(
res
.
data
!=
[]
&&
res
.
data
.
length
>
0
)
{
var
items
=
[]
res
.
data
.
forEach
(
data
=>
{
let
objImag
=
{};
objImag
.
fileName
=
data
.
fileName
;
objImag
.
filePath
=
data
.
downloadPath
;
objImag
.
id
=
data
.
id
;
this
.
nameList
.
push
(
objImag
);
items
.
push
(
objImag
);
});
this
.
nameList
=
items
;
}
});
},
...
...
@@ -310,15 +314,28 @@ export default {
},
computed
:
{},
watch
:
{
// value(v) {
// this.nameList = []
// this.nameList = v
// }
value
(
v
)
{
this
.
nameList
=
[];
this
.
nameList
=
v
;
},
"parms.eid"
(
v
){
if
(
v
){
this
.
intFiles
();
}
}
},
mounted
()
{
this
.
formatL
();
this
.
mutipleStatu
();
// this.intFiles()
if
(
this
.
parms
.
eid
){
this
.
intFiles
();
}
if
(
this
.
Photos
===
true
)
{
this
.
Photo
=
false
;
}
else
{
this
.
Photo
=
true
;
}
}
};
</
script
>
...
...
components/page/productSelect1.vue
View file @
e7a44140
<
template
>
<Select
v-model=
"dep"
:placeholder=
"placeholdeinfo"
clearable
@
on-clear=
"onClear"
>
<Option
v-for=
"(item,index) in list"
:key=
"index"
:value=
"item.value"
style=
"display:none"
:label=
"item.label"
></Option>
:value=
"dep"
class=
"hide"
>
{{
label
}}
</Option>
<Tree
key=
"mytree"
:data=
"data1"
ref=
"mytree"
:render=
"renderContent"
></Tree>
</Select>
</
template
>
...
...
@@ -21,13 +20,14 @@ export default {
data
()
{
return
{
dep
:
""
,
label
:
""
,
list
:
[],
data1
:
[],
selectdata
:
[],
placeholdeinfo
:
"请选择"
,
orderSearchForm
:
{
product
Id
:
null
,
//层级id
p
roduc
tName
:
""
//层级名称
level
Id
:
null
,
//层级id
p
aren
tName
:
""
//层级名称
}
};
},
...
...
@@ -57,67 +57,30 @@ export default {
return
h
(
"span"
,
{
// style: {
// color: data.isProduct != "1" ? "#249E91" : "#333", //根据选中状态设置样式
// cursor: "pointer"
// },
on
:
{
click
:
()
=>
{
let
arrTree
=
[];
arrTree
.
push
(
data
);
this
.
handleSelect
(
arrTree
);
//手动选择树节点
console
.
warn
(
data
.
id
);
this
.
handleSelect
(
data
.
id
);
//手动选择树节点
}
}
},
data
.
name
);
},
handleSelect
(
data
)
{
console
.
log
(
data
);
if
(
data
.
length
>
0
)
{
this
.
list
=
[];
this
.
list
.
push
({
label
:
data
[
0
].
name
,
value
:
data
[
0
].
id
});
this
.
orderSearchForm
.
productName
=
data
[
0
].
name
;
this
.
orderSearchForm
.
productId
=
data
[
0
].
id
;
// let listData = this.$u.clone(this.data1);
// let result = [];
// var nodeId = data.id;
var
roots
=
[];
var
cur
=
data
;
while
(
cur
)
{
roots
.
push
(
cur
);
cur
=
cur
.
father
;
}
// // //传入参数:需要遍历的json,需要匹配的id
// function findPnodeId(listData, nodeId) {
// //设置结果
// if (!listData) {
// return; //如果listData传空,直接返回
// }
// for (var i = 0; i
<
listData
.
children
.
length
;
i
++
)
{
// let item = listData.children[i];
// if (item.id == nodeId) {
// //找到id相等的则返回父id
// result.unshift(data.name);
// return result;
// } else if (!!item.children) {
// // findPnodeId(item.children, nodeId);
// }
// }
// //如果执行循环中都没有return,则在此return
// return result;
// }
// console.log(result);
// console.warn("roots", data, roots);
this
.
$emit
(
"on-change"
,
this
.
orderSearchForm
,
data
,
roots
);
}
handleSelect
(
id
)
{
var
roots
=
this
.
$u
.
findRoots
(
this
.
data1
,
id
).
reverse
();
var
listName
=
[]
var
data
;
listName
=
roots
.
map
(
u
=>
{
if
(
id
==
u
.
id
){
data
=
u
;
}
return
u
.
name
})
this
.
dep
=
id
;
this
.
label
=
listName
.
join
(
" / "
);
this
.
$emit
(
"on-change"
,
id
,
data
,
listName
,
roots
);
},
loadTree
()
{
...
...
@@ -125,18 +88,8 @@ export default {
var
sumData
=
[];
Api
.
getleveltree
().
then
(
r
=>
{
if
(
r
.
result
)
{
setFather
(
r
.
result
,
null
);
function
setFather
(
u
,
father
)
{
u
.
map
(
u
=>
{
if
(
father
)
{
u
.
father
=
father
;
}
if
(
u
.
children
&&
u
.
children
.
length
>
0
)
{
setFather
(
u
.
children
,
u
);
}
});
}
this
.
data1
=
r
.
result
;
this
.
handleSelect
(
this
.
value
)
}
else
{
this
.
$Message
.
error
(
"加载产品树失败!"
);
}
...
...
@@ -152,24 +105,10 @@ export default {
watch
:
{
value
:
{
handler
(
v
,
o
)
{
this
.
dep
=
v
|
""
;
Api
.
getleveltree
().
then
(
res
=>
{
if
(
res
.
result
)
{
let
temData
=
this
.
$u
.
clone
(
this
.
data1
);
this
.
list
=
[];
if
(
v
!=
""
&&
v
!=
null
)
{
let
dataTemp
=
this
.
$u
.
treeToList
(
temData
);
dataTemp
.
forEach
(
data
=>
{
if
(
data
.
id
==
this
.
dep
)
{
this
.
list
.
push
({
label
:
data
.
name
,
value
:
data
.
id
});
}
});
}
}
else
{
this
.
$Message
.
error
(
"加载产品树失败!"
);
}
});
if
(
this
.
data1
.
length
>
0
){
this
.
handleSelect
(
v
);
}
},
deep
:
true
}
...
...
libs/henq.js
View file @
e7a44140
...
...
@@ -146,6 +146,25 @@ henq.treeToList = (tree) => {
treeToList
(
tree
,
null
)
return
list
;
}
henq
.
findRoots
=
(
arr1
,
id
)
=>
{
var
temp
=
[]
var
forFn
=
function
(
arr
,
id
)
{
for
(
var
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
var
item
=
arr
[
i
]
if
(
item
.
id
===
id
)
{
temp
.
push
(
item
)
forFn
(
arr1
,
item
.
upId
)
break
}
else
{
if
(
item
.
children
)
{
forFn
(
item
.
children
,
id
)
}
}
}
}
forFn
(
arr1
,
id
)
return
temp
}
//导出pdf
henq
.
outPdf
=
(
ele
,
fileName
)
=>
{
// document.head.innerHTML =
...
...
pages/technology/productMix/product/add.vue
View file @
e7a44140
...
...
@@ -9,11 +9,16 @@
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"120"
>
<Row>
<Col
:span=
"12"
>
<FormItem
label=
"上级所属"
prop=
"
parentName
"
>
<!--
<Input
v-model=
"entity.parentName"
disabled
></Input>
-->
<FormItem
label=
"上级所属"
prop=
"
levelId
"
>
33
{{
parents
.
parentName
}}
{{
parents
.
id
}}
55
<productSelect1
v-model=
"entity.levelId"
@
on-change=
"proChange"
/>
</FormItem>
</Col>
<!--
<Col
:span=
"12"
>
<FormItem
label=
"层级类型"
prop=
"levelTitle"
>
<Input
v-model=
"entity.levelTitle"
disabled
></Input>
</FormItem>
</Col>
-->
<Col
:span=
"12"
>
<FormItem
:label=
"l('productCode')"
prop=
"productCode"
>
<Input
v-model=
"entity.productCode"
></Input>
...
...
@@ -86,16 +91,17 @@ export default {
// extend: "",
productUrl
:
""
,
productUrlList
:
""
,
levelId
:
this
.
parents
.
parentId
,
// parentName: this.parents.parentName,
levelTitle
:
""
levelId
:
60
,
// levelId: this.parents.parentId,
// parentName: this.parents.parentId,
// levelTitle: this.parents.parentName
},
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
},
parms
:
{
app
:
"technology"
,
eid
:
null
,
eid
:
""
,
name
:
""
,
field
:
""
},
...
...
@@ -105,18 +111,24 @@ export default {
props
:
{
v
:
Object
,
eid
:
Number
,
parents
:
{
parentName
:
String
,
parentId
:
Number
}
parents
:
{
type
:
Object
,
default
:()
=>
{
return
{
id
:
-
1
,
parentName
:
""
}
}
},
},
moun
ted
()
{
alert
(
this
.
parents
.
parentId
);
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
}
crea
ted
()
{
//
alert(this.parents.parentId);
//
if (this.eid > 0) {
//
this.load(this.eid);
//
}
this
.
parms
.
eid
=
this
.
$u
.
guid
();
this
.
$refs
.
refFile
.
intFiles
();
this
.
entity
.
levelId
=
this
.
parents
.
id
// this.$refs.refFile.intFiles();
},
methods
:
{
clickData
(
data
)
{
...
...
@@ -160,27 +172,8 @@ export default {
this
.
entity
.
id
=
0
;
});
},
proChange
(
items
,
data
,
roots
)
{
this
.
entity
.
levelId
=
items
.
productId
;
let
listName
=
[];
let
root
=
roots
[
0
];
if
(
root
)
{
// console.log(root[0]);
listName
.
unshift
(
root
[
0
].
name
);
if
(
root
[
0
].
father
)
{
var
obj
=
root
[
0
].
father
;
listName
.
unshift
(
obj
.
name
);
// for (let key in obj) {
// if(key==name){
// listName.unshift(obj[key])
// console.log(obj[key])
// }
// }
}
else
{
}
}
this
.
entity
.
levelTitle
=
listName
.
join
(
","
);
proChange
(
id
,
data
,
listName
,
roots
)
{
this
.
entity
.
levelTitle
=
listName
.
join
(
" / "
);
},
l
(
key
)
{
key
=
"product_info"
+
"."
+
key
;
...
...
@@ -190,14 +183,15 @@ export default {
watch
:
{
v
()
{
this
.
entity
=
this
.
$u
.
clone
(
this
.
v
);
this
.
entity
=
this
.
parents
.
parentId
;
// this.entity.parentId = this.parents.parentId;
// this.entity.parentName = this.parents.parentName;
},
eid
(
v
)
{
if
(
v
>
0
)
{
this
.
load
(
v
);
}
}
//
eid(v) {
//
if (v > 0) {
//
this.load(v);
//
}
//
}
}
};
</
script
>
...
...
pages/technology/productMix/product/edit.vue
View file @
e7a44140
<
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"120"
>
<Row>
<Col
:span=
"12"
>
<FormItem
:label=
"l('mmcode')"
prop=
"mmcode"
>
<Input
v-model=
"entity.mmcode"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('drawingNo')"
prop=
"drawingNo"
>
<Input
v-model=
"entity.drawingNo"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('name')"
prop=
"name"
>
<Input
v-model=
"entity.name"
></Input>
</FormItem>
</Col>
<Layout>
<Sider
width=
"300"
>
<div
class=
"add-list"
>
<img
:src=
"img"
width=
"100%"
height=
"100%"
/>
</div>
</Sider>
<Content>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"120"
>
<Row>
<Col
:span=
"12"
>
<FormItem
label=
"上级所属"
prop=
"parentName"
>
<!--
<Input
v-model=
"entity.parentName"
disabled
></Input>
-->
<productSelect1
v-model=
"entity.levelId"
@
on-change=
"proChange"
/>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('productCode')"
prop=
"productCode"
>
<Input
v-model=
"entity.productCode"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('mmcode')"
prop=
"mmcode"
>
<Input
v-model=
"entity.mmcode"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('drawingNo')"
prop=
"drawingNo"
>
<Input
v-model=
"entity.drawingNo"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('name')"
prop=
"name"
>
<Input
v-model=
"entity.name"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('madeCompany')"
prop=
"madeCompany"
>
<Input
v-model=
"entity.madeCompany"
></Input>
</FormItem>
</Col>
<Col
:span=
"12"
>
<FormItem
:label=
"l('madeCompany')"
prop=
"madeCompany"
>
<Input
v-model=
"entity.madeCompany"
></Input>
</FormItem>
</Col>
<Col
:span=
"24"
>
<FormItem
:label=
"l('productUrl')"
prop=
"productUrl"
>
<files
ref=
"refFile"
:parms=
"parms"
fileFormat
:Photos=
"true"
@
clickItem=
"clickData"
/>
<!--
<Col
:span=
"24"
>
<FormItem
:label=
"l('remark')"
prop=
"remark"
>
<Input
v-model=
"entity.remark"
></Input>
</FormItem>
</Col>
-->
<Col
:span=
"24"
>
<FormItem
:label=
"l('productUrlList')"
prop=
"productUrlList"
>
<!--
<InputFile
v-model=
"entity.productUrl"
></InputFile>
-->
<files
ref=
"refFile"
:parms=
"parms"
fileFormat
:Photos=
"true"
@
clickItem=
"clickData"
/>
</FormItem>
</Col>
<!--
<Col
:span=
"24"
>
<FormItem
:label=
"l('productUrlList')"
prop=
"productUrlList"
>
-->
<!--
<Input
v-model=
"entity.productUrlList"
type=
"textarea"
:rows=
"5"
></Input>
-->
<!--
<filesList
v-model=
"entity.productUrlList"
></filesList>
</FormItem>
</Col>
-->
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Col>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
</Form>
</Content>
</Layout>
</
template
>
<
script
>
import
Api
from
"./api"
;
...
...
@@ -45,6 +77,13 @@ export default {
entity
:
{},
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}]
},
img
:
""
,
parms
:
{
app
:
"technology"
,
eid
:
''
,
name
:
""
,
field
:
""
}
};
},
...
...
@@ -57,9 +96,16 @@ export default {
}
},
methods
:
{
clickData
(
data
)
{
this
.
img
=
data
;
},
proChange
(
items
,
data
,
roots
)
{},
load
(
v
)
{
Api
.
get
({
id
:
v
}).
then
(
r
=>
{
this
.
$refs
.
refFile
.
intFilesClone
();
this
.
parms
.
eid
=
r
.
result
.
productUrlList
;
this
.
entity
=
r
.
result
;
this
.
img
=
this
.
entity
.
productUrl
;
});
},
handleSubmit
()
{
...
...
@@ -100,4 +146,17 @@ export default {
}
}
};
</
script
>
\ No newline at end of file
</
script
>
<
style
lang=
"less"
>
.ivu-layout-sider {
background: rgba(255, 255, 255, 1);
margin-right: 10px;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15);
.add-list {
width: 100%;
height: 300px;
overflow: hidden;
}
}
</
style
>
\ No newline at end of file
pages/technology/productMix/product/index.vue
View file @
e7a44140
<
template
>
<div
class=
"product-m"
>
t
{{
parent
.
id
}}
v
<DataGrid
:columns=
"columns"
ref=
"grid"
...
...
@@ -16,6 +17,8 @@
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
</FormItem>
</Form>
</
template
>
...
...
@@ -58,7 +61,7 @@
</
template
>
</DataGrid>
<Modal
v-model=
"modal"
:title=
"title"
width=
"1200"
footer-hide
>
<component
:is=
"detail"
:eid=
"curId"
@
on-close=
"cancel"
@
on-ok=
"ok"
:parents=
"parent
s
"
/>
<component
:is=
"detail"
:eid=
"curId"
@
on-close=
"cancel"
@
on-ok=
"ok"
:parents=
"parent"
/>
</Modal>
</div>
</template>
...
...
@@ -100,11 +103,7 @@ export default {
align
:
"left"
,
high
:
true
}
],
parents
:
{
parentId
:
null
,
parentName
:
""
}
]
};
},
mounted
()
{
...
...
@@ -128,9 +127,6 @@ export default {
this
.
title
=
"新增"
;
this
.
detail
=
()
=>
import
(
"./add"
);
this
.
modal
=
true
;
this
.
parents
.
parentId
=
this
.
parent
.
id
;
this
.
parents
.
parentName
=
this
.
parent
.
parentName
;
},
copy
(
id
)
{
this
.
curId
=
id
;
...
...
pages/technology/productMix/productTree/index.vue
View file @
e7a44140
...
...
@@ -91,7 +91,7 @@ export default {
this
.
modal
=
true
;
},
remove
()
{
console
.
log
(
this
.
nodeInfo
);
//
console.log(this.nodeInfo);
if
(
this
.
nodeInfo
.
children
.
length
>
1
)
{
this
.
$Message
.
error
(
"因为有子级,不能直接删除"
);
}
else
{
...
...
@@ -121,6 +121,9 @@ export default {
"span"
,
{
on
:
{
// click: () => {
// this.handleSelect(data); //手动选择树节点
// },
//右键点击事件
contextmenu
:
e
=>
{
e
.
preventDefault
();
...
...
@@ -134,6 +137,9 @@ export default {
data
.
title
);
},
// handleSelect(data) {
// this.$emit("clickItem", data);
// },
loadTree
()
{
Api
.
getleveltree
().
then
(
r
=>
{
setTree
(
r
.
result
);
...
...
@@ -154,8 +160,8 @@ export default {
this
.
expand
=
!
this
.
expand
;
},
change
(
v
,
b
)
{
console
.
log
(
v
);
console
.
log
(
b
);
//
console.log(v);
//
console.log(b);
let
ids
=
[];
ids
.
push
(
b
.
value
);
if
(
b
.
children
)
{
...
...
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