Commit 7936cb0b authored by 周远喜's avatar 周远喜

Merge branch 'product' of http://git.mes123.com/zhouyx/mes-ui into product

parents 3f768f39 d1414c4f
...@@ -66,6 +66,7 @@ export default { ...@@ -66,6 +66,7 @@ export default {
this.$http.storeHouse this.$http.storeHouse
.getpaged({ materialType: this.type }) .getpaged({ materialType: this.type })
.then((res) => { .then((res) => {
console.log(res.result)
if (res.result) { if (res.result) {
let items = res.result let items = res.result
this.tree = this.getTrees(items) this.tree = this.getTrees(items)
......
<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="tree" ref="tree" @on-select-change="change" :render="renderContent"></Tree>
</div>
</div>
</div>
</template>
<script>
export default {
name: "",
data() {
return {
expand: false,
ids: [],
tree: [],
divHeight:'',
keys: "",
// list: []
};
},
created() {
this.loadTree();
},
methods: {
toggle() {
this.expand = !this.expand;
this.loadTree()
},
async loadTree() {
this.$http.storeHouse
.getpaged({ materialType: this.type })
.then((res) => {
console.log(res.result)
if (res.result) {
let items = res.result;
// let item = this.$u.clone(res.result);
console.log('items:',items)
this.tree = this.getTrees(items)
this.change1(this.tree)
search(this.keys, items);
function search(keys, items) {
items.map(u => {
if (keys.length < 3) {
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);
}
}
});
}
} else {
this.$Message.error('加载库房库位树失败!')
}
})
},
//重构左侧树
getTrees(trees) {
var expand = this.expand
trees.forEach((data, index) => {
var that = this
data.expand = expand
if (data.children.length > 0) {
this.getTrees(data.children)
}
})
return trees
},
renderContent(h, { root, node, data }) {
return h(
'span',
{
style: {
color: data.isClick ? '#000' : '#bbb', //根据选中状态设置样式
cursor: data.isClick ? 'pointer' : '',
background: node.node.selected&&data.isClick ? '#AAD8D4' : '#ffffff',
paddingLeft: '10px',
paddingRight: '10px',
paddingTop: '3px',
paddingBottom: '3px'
},
on: {
// click: () => {
// if (!node.node.selected) {
// this.$refs.tree.handleSelect(node.nodeKey) //手动选择树节点
// }
// }
}
},
data.title
)
},
//得到此树节点下所有是产品的Id
getAllIds(trees) {
trees.forEach((data, index) => {
var that = this
if (data.isClick) {
this.ids.push(data.id)
}
if (data.children.length > 0) {
this.getAllIds(data.children)
}
})
},
change(value) {
if (value.length > 0) {
if (value[0].isClick) {
this.ids = []
this.getAllIds(value)
if (this.ids.length > 0) {
this.$emit('storeIds', this.ids)
//this.easySearch.storeId.value = this.ids
} else {
this.$emit('storeIds', [-1])
}
} else {
this.$Message.error('当前操作用户无此库位的权限')
this.$emit('storeIds', [-1])
}
}
},
change1(value) {
if (value.length > 0) {
this.ids = []
this.getAllIds(value)
if (this.ids.length > 0) {
this.$emit('storeIds', this.ids)
} else {
this.$emit('storeIds', [-1])
}
}
},
// loadTree() {
// this.$http.storeHouse.getpaged({ materialType: this.type })
// .then(r => {
// console.log(r.result)
// var data = r.result;
// this.list = this.$u.clone(data);
// })
// },
// change(v, b) {
// let ids = [];
// ids.push(b.value);
// if (b.children) {
// addId(b.children);
// function addId(data) {
// data.map(u => {
// ids.push(u.value);
// if (u.children) {
// addId(u.children);
// }
// });
// }
// }
// this.$emit("on-select", b.value, b, ids);
// },
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 < 3) {
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">
.tree-menu {
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:0;
overflow: auto;
padding-left: 10px;
}
.tree {
height: calc(100vh - 215px);
overflow: auto;
}
}
</style>
\ No newline at end of file
<template>
<div class="checkbox-list">
<Row class="check-title">
<Col span="20">
<div>
<!-- :indeterminate="indeterminate" -->
<!-- :label="resourcesType==0?singleList.shop_name:resourcesType==2?singleList.equip_name:''" -->
<Checkbox
:label="singleList.equip_name"
v-model="checkAll"
@click.prevent.native="handleCheckAll(singleList.shop_id)"
>{{singleList.equip_name}}</Checkbox>
<!-- {{resourcesType==0?singleList.shop_name:resourcesType==2?singleList.equip_name:''}} -->
</div>
</Col>
<Col span="4">
<div class="icon-down">
<Icon type="ios-arrow-down" v-if="!singleList.isClick" @click="upDown(singleList)"></Icon>
<Icon type="ios-arrow-up" v-if="singleList.isClick" @click="upDown(singleList)"></Icon>
</div>
</Col>
</Row>
<ul v-show="singleList.isClick">
<li
ref="liId"
v-for="(item,index) in list"
:key="index"
@click="onclick(index)"
>{{item.name}}&nbsp&nbsp{{item.class}}</li>
</ul>
<!-- <CheckboxGroup
v-model="checkAllGroup"
@on-change="checkAllGroupChange"
v-if="singleList.isClick"
>-->
<!-- :label="resourcesType==0?item.user_name:resourcesType==2?item.equip_name:''" -->
<!-- <Checkbox v-for="(item,index) in list" :key="index" :label="item.name">{{item.name}}</Checkbox>
</CheckboxGroup>-->
</div>
</template>
<script>
import Api from "./api";
export default {
name: "CheckboxList",
props: ["singleList"],
data() {
return {
chooseNum: null,
indeterminate: true,
checkAll: false,
checkAllGroup: [],
typeIcon: "ios-arrow-down",
show: -1,
list: [
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
}
],
taglistData: []
};
},
mounted() {
// this.checkList()
},
methods: {
onclick(index) {
if (this.$refs.liId[index].className.length <= 0) {
this.$refs.liId[index].className = "li-focus"; // 添加类
let list = [];
this.$refs.liId.forEach((element, index) => {
if (this.$refs.liId[index].className) {
list.push(this.$refs.liId[index].className);
}
});
if (list.length == this.list.length) {
this.checkAll = true;
}
} else {
this.$refs.liId[index].className = ""; // 选中再取消的情况
this.checkAll = false;
}
},
handleCheckAll(id) {
this.checkAll = !this.checkAll;
if (this.checkAll) {
this.$refs.liId.forEach((element, index) => {
this.$refs.liId[index].className = "li-focus"; // 添加类
});
} else {
this.$refs.liId.forEach((element, index) => {
this.$refs.liId[index].className = ""; // 选中再取消的情况
});
}
// // console.log(this.list)
// // this.list.map((u) => {
// // console.log(u)
// // })
// // this.checkList(id)
// this.checkAll = !this.checkAll;
// if (this.checkAll) {
// let listNew = [];
// this.list.map(u => {
// if (this.resourcesType == 0) {
// listNew.push(u.user_name);
// } else if (this.resourcesType == 2) {
// listNew.push(u.equip_name);
// }
// });
// this.checkAllGroup = listNew;
// this.$emit("changeData", this.checkAllGroup);
// } else {
// this.checkAllGroup = [];
// }
},
// checkAllGroupChange(data) {
// console.log(data);
// console.log(this.list);
// this.checkAllGroup = data;
// this.$emit("changeData", this.checkAllGroup);
// if (data.length === this.list.length) {
// this.indeterminate = false;
// this.checkAll = true;
// } else if (data.length > 0) {
// this.indeterminate = true;
// this.checkAll = false;
// } else {
// this.indeterminate = false;
// this.checkAll = false;
// }
// },
checkList(id) {
if (this.resourcesType == 0) {
//班组
Api.getbyshopid({ shop_id: id }).then(r => {
// console.log(r)
if (r.success) {
r.result.forEach(e => {
e.ischeckBox = false;
});
this.list = r.result;
}
});
} else if (this.resourcesType == 2) {
//设备
Api.getbyequippk({ equip_pk: 91 }).then(r => {
// console.log(r)
if (r.success) {
r.result.forEach(e => {
e.ischeckBox = false;
});
this.list = r.result;
}
});
}
},
upDown(post) {
if (!post.isClick) {
this.$set(post, "isClick", true);
this.checkList(post.shop_id);
} else {
this.$set(post, "isClick", false);
}
}
}
// watch: {
// list: {
// handler(newVal, oldVal) {
// console.log('深度监听', newVal, oldVal)
// },
// deep: true
// }
// }
};
</script>
<style lang="less" scoped>
.checkbox-list {
.icon-down {
text-align: right;
cursor: pointer;
}
.check-title {
height: 40px;
line-height: 40px;
padding: 0 10px;
background: rgba(38, 128, 235, 0.5);
}
ul {
min-height: 60px;
padding: 10px 5px;
display: flex;
li {
list-style-type: none;
text-align: center;
width: 100px;
height: 30px;
line-height: 30px;
border-radius: 20px;
margin: 0 5px;
cursor: pointer;
background: rgba(38, 128, 235, 0.1);
}
li:hover {
border: 1px solid rgba(38, 128, 235, 0.5);
}
.li-focus {
border: 1px solid rgba(38, 128, 235, 0.5);
}
}
}
</style>
\ No newline at end of file
...@@ -73,27 +73,6 @@ ...@@ -73,27 +73,6 @@
<Tree key="mytree" :data="workShop" ref="mytree" :render="renderContent"></Tree> <Tree key="mytree" :data="workShop" ref="mytree" :render="renderContent"></Tree>
</Select> </Select>
</FormItem> </FormItem>
<!-- <FormItem v-if="formItem.radio==0">
<div class="list-check">
<Checkbox-List
:single-list="li"
ref="groups"
@changeData="setData"
v-for="(li,index) in listGroup"
:key="index"
></Checkbox-List>
</div>
</FormItem>-->
<!-- v-if="tagGroup.lenght>0" -->
<!-- <FormItem label="已选择" v-if="formItem.radio==0">
<div class="tag-list">
<div v-for="(item,index) in tagGroup" :key="index" class="tag-group">
<span>{{item.name}}&nbsp&nbsp{{item.class}}</span>
<Icon type="md-close" @click="closeTag" />
</div>
</div>
</FormItem>-->
<FormItem label="备注"> <FormItem label="备注">
<Input <Input
v-model="formItem.remark " v-model="formItem.remark "
......
...@@ -457,6 +457,7 @@ export default { ...@@ -457,6 +457,7 @@ export default {
this.formValidate.mydate = date; this.formValidate.mydate = date;
}, },
onchange_createtype() { onchange_createtype() {
if (this.createtype == 1) { if (this.createtype == 1) {
this.isshow_selectpdefm = false; this.isshow_selectpdefm = false;
this.clearModal2(); this.clearModal2();
...@@ -529,11 +530,10 @@ export default { ...@@ -529,11 +530,10 @@ export default {
}); });
}, },
setparentcreatetype(type, headerid) { setparentcreatetype(type, headerid) {
this.$parent.$parent.createtype = type
this.$parent.$parent.headerid = headerid
this.$parent.$parent.$parent.createtype = type
this.$parent.$parent.$parent.headerid = headerid
}, },
bindRoutinglist(productid) { bindRoutinglist(productid) {
......
...@@ -3,7 +3,16 @@ ...@@ -3,7 +3,16 @@
<Sider hide-trigger :style="{ background: '#fff' }" class="menu" width="240" style=" flex:0;"> <Sider hide-trigger :style="{ background: '#fff' }" class="menu" width="240" style=" flex:0;">
<StoreHouseLeft @storeIds="storeIds" :type="1"></StoreHouseLeft> <StoreHouseLeft @storeIds="storeIds" :type="1"></StoreHouseLeft>
</Sider> </Sider>
<Content class="content"> <!-- <Sider hide-trigger v-if="showMenu" class="menu_side" width="300"> -->
<!-- <storeHouseTree @on-hide="onHide" @storeIds="storeIds" :type="1"/> -->
<!-- @on-select="productSearch" -->
<!-- </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="content" :class="!showMenu?'con_bord':''">
<DataGrid <DataGrid
:columns="columns" :columns="columns"
ref="grid" ref="grid"
...@@ -73,6 +82,7 @@ import Detail from "./detail"; ...@@ -73,6 +82,7 @@ import Detail from "./detail";
import Search from "./search"; import Search from "./search";
import Inventory from "./inventory"; import Inventory from "./inventory";
import StoreHouseLeft from "@/components/modalTree/storeHouseLeft.vue"; import StoreHouseLeft from "@/components/modalTree/storeHouseLeft.vue";
import storeHouseTree from '@/components/modalTree/storeHouseTree.vue'
export default { export default {
name: "list", name: "list",
components: { components: {
...@@ -81,10 +91,12 @@ export default { ...@@ -81,10 +91,12 @@ export default {
Detail, Detail,
Search, Search,
Inventory, Inventory,
StoreHouseLeft StoreHouseLeft,
storeHouseTree
}, },
data() { data() {
return { return {
showMenu: true,
action: Api.index, action: Api.index,
addModal: false, addModal: false,
editModal: false, editModal: false,
...@@ -316,6 +328,20 @@ export default { ...@@ -316,6 +328,20 @@ export default {
this.tdHeight = window.innerHeight - 260 this.tdHeight = window.innerHeight - 260
}, },
methods: { methods: {
onHide() {
this.showMenu = false;
},
showMenuFn() {
this.showMenu = true;
},
// productSearch(id, item, ids) {
// let where = { productId: { op: "In", value: ids } };
// this.$refs.grid.reload(where);
// },
storeIds(val) {
this.easySearch.storeId.value = val;
this.$refs.grid.easySearch();
},
addOk() { addOk() {
this.$refs.grid.load(); this.$refs.grid.load();
this.addModal = false; this.addModal = false;
...@@ -389,10 +415,6 @@ export default { ...@@ -389,10 +415,6 @@ export default {
let vkey = "MaterialPowder" + "." + key; let vkey = "MaterialPowder" + "." + key;
return this.$t(vkey) || key; return this.$t(vkey) || key;
}, },
storeIds(val) {
this.easySearch.storeId.value = val;
this.$refs.grid.easySearch();
}
} }
}; };
</script> </script>
...@@ -63,6 +63,7 @@ import Detail from './detail' ...@@ -63,6 +63,7 @@ import Detail from './detail'
import Search from './search' import Search from './search'
import Inventory from './inventory' import Inventory from './inventory'
import StoreHouseLeft from '@/components/modalTree/storeHouseLeft.vue' import StoreHouseLeft from '@/components/modalTree/storeHouseLeft.vue'
// import StoreHouseLeft from '@/components/modalTree/storeHouseTree.vue'
export default { export default {
name: 'list', name: 'list',
components: { components: {
......
...@@ -331,6 +331,10 @@ export default { ...@@ -331,6 +331,10 @@ export default {
//this.$Message.info("展开左侧树") //this.$Message.info("展开左侧树")
this.showMenu = true; this.showMenu = true;
}, },
productSearch(id, item, ids) {
let where = { productId: { op: "In", value: ids } };
this.$refs.grid.reload(where);
},
// 详情页面 // 详情页面
view(row) { view(row) {
// this.$router.push("technology/details"); // this.$router.push("technology/details");
...@@ -358,10 +362,6 @@ export default { ...@@ -358,10 +362,6 @@ export default {
search() { search() {
this.$refs.grid.reload(this.easySearch); this.$refs.grid.reload(this.easySearch);
}, },
productSearch(id, item, ids) {
let where = { productId: { op: "In", value: ids } };
this.$refs.grid.reload(where);
},
add() { add() {
this.curId = 0; this.curId = 0;
this.title = "新增"; this.title = "新增";
......
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