Commit 65630c91 authored by 仇晓婷's avatar 仇晓婷

产品结构

parent f28b0b07
...@@ -82,42 +82,60 @@ export default { ...@@ -82,42 +82,60 @@ export default {
}); });
this.orderSearchForm.productName = data[0].name; this.orderSearchForm.productName = data[0].name;
this.orderSearchForm.productId = data[0].id; this.orderSearchForm.productId = data[0].id;
let listData = this.$u.clone(this.data1); // let listData = this.$u.clone(this.data1);
let result = []; // let result = [];
var nodeId = data.id; // var nodeId = data.id;
// //传入参数:需要遍历的json,需要匹配的id var roots = [];
function findPnodeId(listData, nodeId) { var cur = data;
//设置结果 while (cur) {
roots.push(cur);
if (!listData) { cur = cur.father;
return; //如果data传空,直接返回
}
for (var i = 0; i < listData.children.length; i++) {
let item = listData.children[i];
if (item.id == nodeId) {
result.unshift(data.name);
//找到id相等的则返回父id
return result;
} else if (!!item.children) {
findPnodeId(item.children, nodeId);
}
}
//如果执行循环中都没有return,则在此return
return result;
} }
console.log(result);
this.$emit("on-change", this.orderSearchForm); // // //传入参数:需要遍历的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);
} }
}, },
loadTree() { loadTree() {
//打开新增订单窗口加载产品 //打开新增订单窗口加载产品
var sumData = []; var sumData = [];
Api.getleveltree().then(r => { Api.getleveltree().then(r => {
if (r.result) { 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.data1 = r.result;
} else { } else {
this.$Message.error("加载产品树失败!"); this.$Message.error("加载产品树失败!");
...@@ -134,6 +152,7 @@ export default { ...@@ -134,6 +152,7 @@ export default {
watch: { watch: {
value: { value: {
handler(v, o) { handler(v, o) {
this.dep = v | ""; this.dep = v | "";
Api.getleveltree().then(res => { Api.getleveltree().then(res => {
if (res.result) { if (res.result) {
......
...@@ -1449,5 +1449,11 @@ export default { ...@@ -1449,5 +1449,11 @@ export default {
endTime:'结束时间', endTime:'结束时间',
planEndTime:'计划结束时间', planEndTime:'计划结束时间',
action:'操作' action:'操作'
},
product_level:{
name:'名称',
upId:'上级id',
creatorUserId:0,
id:0,
} }
} }
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<Col :span="12"> <Col :span="12">
<FormItem label="上级所属" prop="parentName"> <FormItem label="上级所属" prop="parentName">
<!-- <Input v-model="entity.parentName" disabled></Input> --> <!-- <Input v-model="entity.parentName" disabled></Input> -->
<productSelect1 v-model="entity.levelId" @on-change="proChange"/> <productSelect1 v-model="entity.levelId" @on-change="proChange" />
</FormItem> </FormItem>
</Col> </Col>
<Col :span="12"> <Col :span="12">
...@@ -82,11 +82,13 @@ export default { ...@@ -82,11 +82,13 @@ export default {
// status: null, // status: null,
remark: "", remark: "",
madeCompany: "", madeCompany: "",
extend: "", madeCompanyTitle: "",
// extend: "",
productUrl: "", productUrl: "",
productUrlList: "", productUrlList: "",
levelId: null, levelId: this.parents.parentId,
parentName: this.parents.parentName // parentName: this.parents.parentName,
levelTitle: ""
}, },
rules: { rules: {
name: [{ required: true, message: "必填", trigger: "blur" }] name: [{ required: true, message: "必填", trigger: "blur" }]
...@@ -109,6 +111,7 @@ export default { ...@@ -109,6 +111,7 @@ export default {
} }
}, },
mounted() { mounted() {
alert(this.parents.parentId);
if (this.eid > 0) { if (this.eid > 0) {
this.load(this.eid); this.load(this.eid);
} }
...@@ -129,7 +132,7 @@ export default { ...@@ -129,7 +132,7 @@ export default {
} else { } else {
this.entity.productUrlList = ""; this.entity.productUrlList = "";
} }
this.entity.levelId = this.parents.parentId;
Api.create(this.entity) Api.create(this.entity)
.then(r => { .then(r => {
this.disabled = false; this.disabled = false;
...@@ -157,9 +160,27 @@ export default { ...@@ -157,9 +160,27 @@ export default {
this.entity.id = 0; this.entity.id = 0;
}); });
}, },
proChange(items) { proChange(items, data, roots) {
this.entity.levelId = items.productId; 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(",");
}, },
l(key) { l(key) {
key = "product_info" + "." + key; key = "product_info" + "." + key;
...@@ -169,7 +190,9 @@ export default { ...@@ -169,7 +190,9 @@ export default {
watch: { watch: {
v() { v() {
this.entity = this.$u.clone(this.v); this.entity = this.$u.clone(this.v);
this.entity = this.parents.parentId;
}, },
eid(v) { eid(v) {
if (v > 0) { if (v > 0) {
this.load(v); this.load(v);
......
...@@ -33,7 +33,9 @@ ...@@ -33,7 +33,9 @@
</Row> </Row>
<Row class="row-down"> <Row class="row-down">
<Col span="7"> <Col span="7">
<div class="img-i">图片</div> <div class="img-i">
<img :src="row.productUrl" width="100%" height="100%" />
</div>
</Col> </Col>
<Col span="17" class="c"> <Col span="17" class="c">
<div>产品分类:{{row.productClass}}</div> <div>产品分类:{{row.productClass}}</div>
...@@ -126,6 +128,7 @@ export default { ...@@ -126,6 +128,7 @@ export default {
this.title = "新增"; this.title = "新增";
this.detail = () => import("./add"); this.detail = () => import("./add");
this.modal = true; this.modal = true;
this.parents.parentId = this.parent.id; this.parents.parentId = this.parent.id;
this.parents.parentName = this.parent.parentName; this.parents.parentName = this.parent.parentName;
}, },
...@@ -160,20 +163,6 @@ export default { ...@@ -160,20 +163,6 @@ export default {
this.modal = false; this.modal = false;
}, },
l(key) { l(key) {
/*
product_info:{
mmcode:'物料编号',
drawingNo:'图号',
name:'名称',
productCode:'',
status:'',
remark:'',
madeCompany:'主承制单位',
extend:'',
productUrl:'产品图像url',
productUrlList:'产品图象列表',
}
*/
let vkey = "product_info" + "." + key; let vkey = "product_info" + "." + key;
return this.$t(vkey) || key; return this.$t(vkey) || key;
} }
...@@ -208,6 +197,8 @@ export default { ...@@ -208,6 +197,8 @@ export default {
.row-down { .row-down {
padding: 10px; padding: 10px;
.img-i { .img-i {
width: 90px;
height: 100px;
background: #eee; background: #eee;
height: 90px; height: 90px;
margin-right: 15px; margin-right: 15px;
......
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90"> <Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row> <Row>
<Col :span="12"><FormItem :label="l('name')" prop="name"> <Input v-model="entity.name"> </Input> <Col :span="12">
</FormItem></Col> <FormItem :label="l('name')" prop="name">
<Col :span="12"><FormItem :label="l('upId')" prop="upId"> <InputNumber v-model="entity.upId"></InputNumber> <Input v-model="entity.name"></Input>
</FormItem></Col> </FormItem>
</Row> </Col>
<FormItem> <Col :span="12">
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button> <FormItem :label="l('upId')" prop="upId">
<Button @click="handleClose" class="ml20">取消</Button> <InputNumber v-model="entity.upId"></InputNumber>
</FormItem> </FormItem>
</Form> </Col>
</template> </Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script> <script>
import Api from './api' import Api from "./api";
export default { export default {
name: 'Add', name: "Add",
data() { data() {
return { return {
disabled: false, disabled: false,
entity: {name: "", entity: { name: "", upId: this.nodeInfo.id ? this.nodeInfo.id : 0 },
upId: null}, rules: {
rules: { name: [{ required: true, message: "必填", trigger: "blur" }]
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 = "product_level" + "." + key;
return this.$t(key)
} }
}, };
watch: { },
v() { props: {
this.entity = this.$u.clone(this.v) v: Object,
}, eid: Number,
eid(v) { nodeInfo: Object
if (v > 0) { },
this.load(v); 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 = "product_level" + "." + 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
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90"> <Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row> <Row>
<Col :span="12"><FormItem :label="l('name')" prop="name"> <Input v-model="entity.name"> </Input> <Col :span="12">
</FormItem></Col> <FormItem :label="l('name')" prop="name">
<Col :span="12"><FormItem :label="l('upId')" prop="upId"> <InputNumber v-model="entity.upId"></InputNumber> <Input v-model="entity.name"></Input>
</FormItem></Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem> </FormItem>
</Form> </Col>
<Col :span="12">
<FormItem :label="l('upId')" prop="upId">
<InputNumber v-model="entity.upId"></InputNumber>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template> </template>
<script> <script>
import Api from './api' import Api from "./api";
export default { export default {
name: 'Edit', name: "Edit",
data() { data() {
return { return {
disabled: false, disabled: false,
entity: { entity: {},
}, rules: {
rules: { name: [{ required: true, message: "必填", trigger: "blur" }]
name: [{ 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;
})
},
handleSubmit() {
this.$refs.form.validate((v) => {
if (v) {
this.disabled = true;
Api.update(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')
},
l(key) {
key = "product_level" + "." + key;
return this.$t(key)
} }
}, };
watch: { },
eid(v) { props: {
if (v != 0) { eid: Number
this.load(v); },
} mounted() {
} if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
});
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.update(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");
},
l(key) {
key = "product_level" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v != 0) {
this.load(v);
}
} }
}
};
</script> </script>
\ No newline at end of file
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
产品列表 产品列表
<div class="fr mr10 mt10"> <div class="fr mr10 mt10">
<ButtonGroup class="fr" size="small"> <ButtonGroup class="fr" size="small">
<Button icon="md-add" title="刷新" @click="addNew"></Button>
<Button <Button
:icon="expand ? 'md-arrow-dropright' : 'md-arrow-dropdown'" :icon="expand ? 'md-arrow-dropright' : 'md-arrow-dropdown'"
@click="toggle" @click="toggle"
...@@ -19,9 +20,31 @@ ...@@ -19,9 +20,31 @@
</div> </div>
<div class="fg"> <div class="fg">
<div class="tree"> <div class="tree">
<Tree :data="data" ref="tree" @on-select-change="change"></Tree> <Tree :data="data" ref="tree" @on-select-change="change" :render="renderContent"></Tree>
<Dropdown
transfer
ref="contentMenu"
style="display: none;"
trigger="click"
placement="right-start"
>
<DropdownMenu slot="list" ref="ppp" style="min-width: 80px;">
<DropdownItem>
<a @click="add">添加</a>
</DropdownItem>
<DropdownItem name="edit">
<a @click="edit">修改</a>
</DropdownItem>
<DropdownItem name="del">
<a @click="remove">删除</a>
</DropdownItem>
</DropdownMenu>
</Dropdown>
</div> </div>
</div> </div>
<Modal v-model="modal" :title="title" width="800" footer-hide>
<component :is="detail" :eid="curId" :nodeInfo="nodeInfo" @on-close="cancel" @on-ok="ok" />
</Modal>
</div> </div>
</template> </template>
...@@ -33,14 +56,84 @@ export default { ...@@ -33,14 +56,84 @@ export default {
return { return {
keys: "", keys: "",
expand: false, expand: false,
list: [] list: [],
nodeInfo: {},
modal: false,
title: "新增",
curId: 0,
detail: null
}; };
}, },
created() { created() {
this.loadTree(); this.loadTree();
}, },
methods: { methods: {
ok() {
this.loadTree();
this.modal = false;
this.curId = 0;
},
addNew() {
this.nodeInfo.id = 0;
this.add();
},
add() {
this.curId = 0;
this.title = "新增";
this.detail = () => import("./add");
this.modal = true;
},
edit() {
this.curId = this.nodeInfo.id;
this.title = "编辑";
this.detail = () => import("./edit");
this.modal = true;
},
remove() {
console.log(this.nodeInfo);
if (this.nodeInfo.children.length > 1) {
this.$Message.error("因为有子级,不能直接删除");
} else {
this.$Modal.confirm({
title: "删除",
content: "<p>您确定要删除吗?</p>",
onOk: () => {
Api.delete(this.nodeInfo.id).then(r => {
if (r.success) {
this.loadTree();
this.$Message.success("删除成功");
}
});
},
onCancel: () => {
this.$Message.success("取消删除");
}
});
}
},
cancel() {
this.curId = 0;
this.modal = false;
},
renderContent(h, { root, node, data }) {
return h(
"span",
{
on: {
//右键点击事件
contextmenu: e => {
e.preventDefault();
this.$refs.contentMenu.$refs.reference = event.target;
this.$refs.contentMenu.currentVisible = !this.$refs.contentMenu
.currentVisible;
this.nodeInfo = data;
}
}
},
data.title
);
},
loadTree() { loadTree() {
Api.getleveltree().then(r => { Api.getleveltree().then(r => {
setTree(r.result); setTree(r.result);
...@@ -61,8 +154,8 @@ export default { ...@@ -61,8 +154,8 @@ export default {
this.expand = !this.expand; this.expand = !this.expand;
}, },
change(v, b) { change(v, b) {
console.log(v) console.log(v);
console.log(b) console.log(b);
let ids = []; let ids = [];
ids.push(b.value); ids.push(b.value);
if (b.children) { if (b.children) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment