Commit b7f7b50d authored by 周远喜's avatar 周远喜

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

parents 4e1a4474 0783264b
...@@ -339,9 +339,12 @@ ...@@ -339,9 +339,12 @@
color: #fff; color: #fff;
} }
} }
<<<<<<< HEAD
// .ivu-select-dropdown{ // .ivu-select-dropdown{
// z-index: 910!important; // z-index: 910!important;
// } // }
=======
>>>>>>> 0783264b39c101d895bac10d6ee7ec375f8653a3
.manyTabs { .manyTabs {
.ivu-tabs-bar { .ivu-tabs-bar {
position: absolute; position: absolute;
......
<template>
<div>
<h3 class="title">
<Input search placeholder="请输入查询条件" style="width:72%" clearable v-model="treeInputSearch" />
<ButtonGroup class="fr" size="small">
<Button>
<Icon
:type="expand ? 'md-arrow-dropright' : 'md-arrow-dropdown'"
size="16"
@click="toggle"
title="展开/合并"
/>
</Button>
<Button>
<Icon type="md-refresh" size="16" @click="loadTree" title="刷新" />
</Button>
</ButtonGroup>
</h3>
<div class="tree" :style="{height:divHeight}">
<Tree
:data="searchList"
@on-select-change="selectTreeNode"
/>
</div>
</div>
</template>
<script>
export default {
name: 'technologyTree',
data() {
return {
expand: false,
treeData: [],
treeInputSearch: '',
}
},
props: {
type: {
type: Number,
default: 0
}
},
computed:{
searchList() {
let nodeList = this.treeData
var text = this.treeInputSearch
var newNodeList = []
function searchTree(nodeLists, value) {
for (let i = 0; i < nodeLists.length; i++) {
if (nodeLists[i].title.indexOf(value) != -1) {
newNodeList.push(nodeLists[i])
} else if (nodeLists[i].children.length > 0) {
searchTree(nodeLists[i].children, value)
}
}
}
if (text != '') {
searchTree(nodeList, text)
} else {
return nodeList
}
return newNodeList
}
},
mounted() {
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight;
this.divHeight = window.innerHeight - 260 + "px";
})();
};
},
created() {
this.loadTree()
var theight = window.innerHeight - 260 + 'px'
this.divHeight = theight
},
methods: {
toggle() {
this.expand = !this.expand
this.loadTree()
},
async loadTree() {
var sumData = []
this.$http.order.getallselecttree().then((res) => {
if (res.result) {
for (var i = 0; i < res.result.length; i++) {
sumData = sumData.concat(res.result[i])
}
this.treeData = sumData
} else {
this.$Message.error('加载产品树失败!')
}
})
},
selectTreeNode(value) {
if (value != null && value.length > 0) {
this.ProductSelected = value
}
if (value.length > 0) {
this.ids = []
this.getAllIds(value)
if (this.ids.length > 0) {
this.productid = this.ids.join(',')
} else {
this.productid = '-1'
}
this.pageindex = 1
this.loaddata()
}
},
//重构左侧树
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])
}
}
}
}
}
</script>
import Api from '@/plugins/request' import Api from '@/plugins/request'
export default { export default {
getmesorder(params) { getpooltypeorderlist(params) {
return Api.get(`${apsManualUrl}/aps/getmesorder`, params); //待排产订单数据 return Api.get(`${PlanUrl}/messchedule/getpooltypeorderlist`, params); //排产池订单数据
}, },
gettaskseqinfo(params) { cmonestepschedule(params) {
return Api.get(`${apsManualUrl}/aps/gettaskseqinfo`, params); //根据订单获取全部工序数据 return Api.post(`${PlanUrl}/messchedule/cmonestepschedule`, params); //整机排产--一级排产
}, },
getlist(params) { cmtwostepschedule(params) {
return Api.get(`${apsManualUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息 return Api.post(`${PlanUrl}/messchedule/cmtwostepschedule`, params); //整机排产--二级排产
},
getbyshopid(params) {
return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyshopid`, params); //手工排产:根据班组ID,加载人员信息
},
getlistEquip(params) {
return Api.get(`${apsManualUrl}/mes_equip_info/getlist`, params); //手工排产:获取所在车间的设备
},
getbyequippk(params) {
return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyequippk`, params); //手工排产:根据设备ID,加载人员信息
}, },
// getlist(params) {
// return Api.get(`${PlanUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息
// },
// getbyshopid(params) {
// return Api.get(`${PlanUrl}/mes_sys_user_info/getuserbyshopid`, params); //手工排产:根据班组ID,加载人员信息
// },
// getlistEquip(params) {
// return Api.get(`${PlanUrl}/mes_equip_info/getlist`, params); //手工排产:获取所在车间的设备
// },
// getbyequippk(params) {
// return Api.get(`${PlanUrl}/mes_sys_user_info/getuserbyequippk`, params); //手工排产:根据设备ID,加载人员信息
// },
} }
\ No newline at end of file
...@@ -20,7 +20,15 @@ ...@@ -20,7 +20,15 @@
</div> </div>
</Col> </Col>
</Row> </Row>
<div class="row-name">张芳 &nbsp&nbsp 1级</div> <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 <!-- <CheckboxGroup
v-model="checkAllGroup" v-model="checkAllGroup"
@on-change="checkAllGroupChange" @on-change="checkAllGroupChange"
...@@ -38,6 +46,7 @@ export default { ...@@ -38,6 +46,7 @@ export default {
props: ["singleList"], props: ["singleList"],
data() { data() {
return { return {
chooseNum: null,
indeterminate: true, indeterminate: true,
checkAll: false, checkAll: false,
checkAllGroup: [], checkAllGroup: [],
...@@ -45,7 +54,20 @@ export default { ...@@ -45,7 +54,20 @@ export default {
show: -1, show: -1,
list: [ list: [
{ {
name: "张芳" name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
} }
], ],
taglistData: [] taglistData: []
...@@ -56,47 +78,74 @@ export default { ...@@ -56,47 +78,74 @@ export default {
// this.checkList() // this.checkList()
}, },
methods: { 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) { handleCheckAll(id) {
// console.log(this.list)
// this.list.map((u) => {
// console.log(u)
// })
// this.checkList(id)
this.checkAll = !this.checkAll; this.checkAll = !this.checkAll;
if (this.checkAll) { if (this.checkAll) {
let listNew = []; this.$refs.liId.forEach((element, index) => {
this.$refs.liId[index].className = "li-focus"; // 添加类
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 { } else {
this.checkAllGroup = []; 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) { // checkAllGroupChange(data) {
console.log(data); // console.log(data);
console.log(this.list); // console.log(this.list);
this.checkAllGroup = data; // this.checkAllGroup = data;
this.$emit("changeData", this.checkAllGroup); // this.$emit("changeData", this.checkAllGroup);
if (data.length === this.list.length) { // if (data.length === this.list.length) {
this.indeterminate = false; // this.indeterminate = false;
this.checkAll = true; // this.checkAll = true;
} else if (data.length > 0) { // } else if (data.length > 0) {
this.indeterminate = true; // this.indeterminate = true;
this.checkAll = false; // this.checkAll = false;
} else { // } else {
this.indeterminate = false; // this.indeterminate = false;
this.checkAll = false; // this.checkAll = false;
} // }
}, // },
checkList(id) { checkList(id) {
if (this.resourcesType == 0) { if (this.resourcesType == 0) {
//班组 //班组
...@@ -145,6 +194,7 @@ export default { ...@@ -145,6 +194,7 @@ export default {
.checkbox-list { .checkbox-list {
.icon-down { .icon-down {
text-align: right; text-align: right;
cursor: pointer;
} }
.check-title { .check-title {
height: 40px; height: 40px;
...@@ -152,17 +202,27 @@ export default { ...@@ -152,17 +202,27 @@ export default {
padding: 0 10px; padding: 0 10px;
background: rgba(38, 128, 235, 0.5); background: rgba(38, 128, 235, 0.5);
} }
.row-name { ul {
min-height: 60px;
padding: 10px 5px;
display: flex;
li {
list-style-type: none;
text-align: center; text-align: center;
width: 100px; width: 100px;
height: 30; height: 30px;
line-height: 30px;
border-radius: 20px; border-radius: 20px;
margin: 5px; margin: 0 5px;
cursor: pointer; cursor: pointer;
background: rgba(38, 128, 235, 0.2); background: rgba(38, 128, 235, 0.1);
}
li:hover {
border: 1px solid rgba(38, 128, 235, 0.5);
} }
.row-name:hover { .li-focus {
border: 1px solid rgba(38, 128, 235, 0.5); border: 1px solid rgba(38, 128, 235, 0.5);
} }
}
} }
</style> </style>
\ No newline at end of file
This diff is collapsed.
import Api from '@/plugins/request' import Api from '@/plugins/request'
export default { export default {
getmesorder(params) { getpooltypeorderlist(params) {
return Api.get(`${apsManualUrl}/aps/getmesorder`, params); //待排产订单数据 return Api.get(`${PlanUrl}/messchedule/getpooltypeorderlist`, params); //排产池订单数据
}, },
gettaskseqinfo(params) { getroutingdetails(params) {
return Api.get(`${apsManualUrl}/aps/gettaskseqinfo`, params); //根据订单获取全部工序数据 return Api.get(`${PlanUrl}/messchedule/getroutingdetails`, params); //工序信息
}, },
getlist(params) { flonestepschedule(params) {
return Api.get(`${apsManualUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息 return Api.post(`${PlanUrl}/messchedule/flonestepschedule`, params); //流水一级
}, },
getbyshopid(params) { fltwostepschedule(params) {
return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyshopid`, params); //手工排产:根据班组ID,加载人员信息 return Api.post(`${PlanUrl}/messchedule/fltwostepschedule`, params); //流水二级
},
getlistEquip(params) {
return Api.get(`${apsManualUrl}/mes_equip_info/getlist`, params); //手工排产:获取所在车间的设备
},
getbyequippk(params) {
return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyequippk`, params); //手工排产:根据设备ID,加载人员信息
}, },
// gettaskseqinfo(params) {
// return Api.get(`${apsManualUrl}/aps/gettaskseqinfo`, params); //根据订单获取全部工序数据
// },
// getlist(params) {
// return Api.get(`${apsManualUrl}/mes_sys_shop_info/getlist`, params); //手工排产:查询所在车间下的所有班组信息
// },
// getbyshopid(params) {
// return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyshopid`, params); //手工排产:根据班组ID,加载人员信息
// },
// getlistEquip(params) {
// return Api.get(`${apsManualUrl}/mes_equip_info/getlist`, params); //手工排产:获取所在车间的设备
// },
// getbyequippk(params) {
// return Api.get(`${apsManualUrl}/mes_sys_user_info/getuserbyequippk`, params); //手工排产:根据设备ID,加载人员信息
// },
} }
\ No newline at end of file
<template> <template>
<div class="checkbox-list"> <div class="checkbox-list">
<Row style="border-bottom: 1px solid #e9e9e9;margin-bottom:6px;"> <Row class="check-title">
<Col span="20"> <Col span="20">
<div> <div>
<!-- :indeterminate="indeterminate" --> <!-- :indeterminate="indeterminate" -->
<!-- :label="resourcesType==0?singleList.shop_name:resourcesType==2?singleList.equip_name:''" -->
<Checkbox <Checkbox
:label="resourcesType==0?singleList.shop_name:resourcesType==2?singleList.equip_name:''" :label="singleList.equip_name"
v-model="checkAll" v-model="checkAll"
@click.prevent.native="handleCheckAll(singleList.shop_id)" @click.prevent.native="handleCheckAll(singleList.shop_id)"
>{{resourcesType==0?singleList.shop_name:resourcesType==2?singleList.equip_name:''}}</Checkbox> >{{singleList.equip_name}}</Checkbox>
<!-- {{resourcesType==0?singleList.shop_name:resourcesType==2?singleList.equip_name:''}} -->
</div> </div>
</Col> </Col>
<Col span="4"> <Col span="4">
...@@ -18,112 +20,163 @@ ...@@ -18,112 +20,163 @@
</div> </div>
</Col> </Col>
</Row> </Row>
<CheckboxGroup <ul v-if="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" v-model="checkAllGroup"
@on-change="checkAllGroupChange" @on-change="checkAllGroupChange"
v-if="singleList.isClick" v-if="singleList.isClick"
> >-->
<Checkbox <!-- :label="resourcesType==0?item.user_name:resourcesType==2?item.equip_name:''" -->
: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>
v-for="(item,index) in list" </CheckboxGroup>-->
:key="item.user_id"
></Checkbox>
</CheckboxGroup>
</div> </div>
</template> </template>
<script> <script>
import Api from './api' import Api from "./api";
export default { export default {
name: 'CheckboxList', name: "CheckboxList",
props: ['singleList', 'resourcesType'], props: ["singleList"],
data() { data() {
return { return {
chooseNum: null,
indeterminate: true, indeterminate: true,
checkAll: false, checkAll: false,
checkAllGroup: [], checkAllGroup: [],
typeIcon: 'ios-arrow-down', typeIcon: "ios-arrow-down",
show: -1, show: -1,
list: [], list: [
taglistData: [] {
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
},
{
name: "张芳",
class: "1级"
} }
],
taglistData: []
};
}, },
mounted() { mounted() {
// this.checkList() // this.checkList()
}, },
methods: { methods: {
handleCheckAll(id) { onclick(index) {
// console.log(this.list) if (this.$refs.liId[index].className.length <= 0) {
// this.list.map((u) => { this.$refs.liId[index].className = "li-focus"; // 添加类
// console.log(u) let list = [];
// }) this.$refs.liId.forEach((element, index) => {
// this.checkList(id) if (this.$refs.liId[index].className) {
this.checkAll = !this.checkAll list.push(this.$refs.liId[index].className);
if (this.checkAll) { }
let listNew = [] });
if (list.length == this.list.length) {
this.list.map((u) => { this.checkAll = true;
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 { } else {
this.checkAllGroup = [] this.$refs.liId[index].className = ""; // 选中再取消的情况
this.checkAll = false;
} }
}, },
handleCheckAll(id) {
checkAllGroupChange(data) { this.checkAll = !this.checkAll;
console.log(data) if (this.checkAll) {
console.log(this.list) this.$refs.liId.forEach((element, index) => {
this.$refs.liId[index].className = "li-focus"; // 添加类
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 { } else {
this.indeterminate = false this.$refs.liId.forEach((element, index) => {
this.checkAll = false 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) { checkList(id) {
if (this.resourcesType == 0) { if (this.resourcesType == 0) {
//班组 //班组
Api.getbyshopid({ shop_id: id }).then((r) => { Api.getbyshopid({ shop_id: id }).then(r => {
// console.log(r) // console.log(r)
if (r.success) { if (r.success) {
r.result.forEach((e) => { r.result.forEach(e => {
e.ischeckBox = false e.ischeckBox = false;
}) });
this.list = r.result this.list = r.result;
} }
}) });
} else if (this.resourcesType == 2) { } else if (this.resourcesType == 2) {
//设备 //设备
Api.getbyequippk({ equip_pk: 91 }).then((r) => { Api.getbyequippk({ equip_pk: 91 }).then(r => {
// console.log(r) // console.log(r)
if (r.success) { if (r.success) {
r.result.forEach((e) => { r.result.forEach(e => {
e.ischeckBox = false e.ischeckBox = false;
}) });
this.list = r.result this.list = r.result;
} }
}) });
} }
}, },
upDown(post) { upDown(post) {
if (!post.isClick) { if (!post.isClick) {
this.$set(post, 'isClick', true) this.$set(post, "isClick", true);
this.checkList(post.shop_id) this.checkList(post.shop_id);
} else { } else {
this.$set(post, 'isClick', false) this.$set(post, "isClick", false);
} }
} }
} }
...@@ -135,12 +188,41 @@ export default { ...@@ -135,12 +188,41 @@ export default {
// deep: true // deep: true
// } // }
// } // }
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.checkbox-list { .checkbox-list {
.icon-down { .icon-down {
text-align: right; 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> </style>
\ No newline at end of file
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
<Col :span="6" class="chan-chi">排产池</Col> <Col :span="6" class="chan-chi">排产池</Col>
<Col :span="18" class="l-ringht"> <Col :span="18" class="l-ringht">
<RadioGroup v-model="status" type="button" @on-change="changeStatus" size="small"> <RadioGroup v-model="status" type="button" @on-change="changeStatus" size="small">
<Radio label="0">全部</Radio> <Radio label="-1">全部</Radio>
<Radio label="1">未排产</Radio> <Radio label="0">未排产</Radio>
<Radio label="2">已排查</Radio> <Radio label="2">已排查</Radio>
</RadioGroup> </RadioGroup>
</Col> </Col>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
class="left-body" class="left-body"
v-for="(li,index) in list" v-for="(li,index) in list"
:key="index" :key="index"
@click="listData(li.part_task_pk,index)" @click="listData(li)"
:class="isactive == index ? 'addclass' : '' " :class="isactive == index ? 'addclass' : '' "
> >
<Row class="title-i"> <Row class="title-i">
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<Row class="g-list"> <Row class="g-list">
<Col :span="2" class="chan-chi">工序列表</Col> <Col :span="2" class="chan-chi">工序列表</Col>
<Col :span="22" class="l-ringht"> <Col :span="22" class="l-ringht">
<RadioGroup v-model="status" type="button" @on-change="changeStatus" size="small"> <RadioGroup v-model="status" type="button" @on-change="changeRodio" size="small">
<Radio label="0">全部</Radio> <Radio label="0">全部</Radio>
<Radio label="1">未排产</Radio> <Radio label="1">未排产</Radio>
<Radio label="2">已排查</Radio> <Radio label="2">已排查</Radio>
...@@ -45,98 +45,194 @@ ...@@ -45,98 +45,194 @@
</Col> </Col>
</Row> </Row>
<div class="right-body"> <div class="right-body">
<List :result="result"></List> <div class="list">
<Timeline>
<TimelineItem v-for="(item, index) in result" :key="index">
<Badge :count="index+ 1" slot="dot" :type="type(index)"></Badge>
<div class="set-name">
<span @click="sets(item.routingHeaderId)">{{item.taskname}}</span> &nbsp
<Tooltip content="拆分工序" placement="top">
<Icon type="md-bluetooth" @click="split" />
</Tooltip>
<Icon type="ios-trash" @click="remove" />
</div>
<div>{{item.equip_id}}</div>
<div>{{item.equip_type}}</div>
<div>{{item.resources_Type_Name}}</div>
</TimelineItem>
</Timeline>
<div>
<Drawer
title="排产设置盘"
:closable="false"
v-model="set"
width="55%"
:mask-closable="false"
>
<Set :group="group" @closeOk="closeOk"></Set>
</Drawer>
</div>
<!-- <List :result="result"></List> -->
</div> </div>
</div> </div>
</div> </div>
<!-- 拆分 fenModel -->
<Modal
v-model="chaiModal"
title="拆分工序"
:width="400"
:mask-closable="false"
ok-text="拆分"
@on-ok="okChai()"
>
拆分数量:
<InputNumber v-model="chaiNum"></InputNumber>
<Slider v-model="chaiNum" :min="1"></Slider>
</Modal>
</div>
</template> </template>
<script> <script>
import List from "./list.vue"; // import List from "./list.vue";
import Set from "./set";
import Api from "./api"; import Api from "./api";
export default { export default {
name: "list", name: "list",
components: { components: {
List Set
// List
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
}, },
data() { data() {
return { return {
group: {
orderId: 0,
routingHeaderId: 0
},
activeindex: 1, activeindex: 1,
list: [ list: [],
status: "-1", //全部排产-1,0为未排产;2为已排查;
result: [
{ {
part_task_pk: "euuei", taskname: "工序名称",
order_id: "hdhfk", equip_id: "制造资源",
routing_version: "fsslllsl", equip_type: "排产资源",
demand_start: "2020-3-30", resources_Type_Name: "备注信息"
demand_finish: "2020-3-30"
}, },
{ {
part_task_pk: "euuei", taskname: "工序名称",
order_id: "hdhfk", equip_id: "制造资源",
routing_version: "fsslllsl", equip_type: "排产资源",
demand_start: "2020-3-30", resources_Type_Name: "备注信息"
demand_finish: "2020-3-30"
} }
], ],
status: "0", //全部排产0,1为未排产;2为已排查;
partTaskPk: "", //车间
result: [],
isactive: 0, isactive: 0,
selectName: "all" resourcesType: null,
set: false,
chaiNum: 1, //拆分数量
chaiModal: false
}; };
}, },
created() { created() {
// this.orderlist(); this.orderlist();
}, },
methods: { methods: {
// 过滤条件 // 排产池过滤条件
changeStatus(a) { changeStatus(a) {
console.log(a); this.orderlist(a);
// this.orderlist(a);
}, },
//排产池列表
orderlist() { orderlist() {
Api.getmesorder({ status: 2, workshop_id: 3 }).then(r => { Api.getpooltypeorderlist({ PoolType: 3,status:this.status }).then(r => {
// console.log(r) // console.log(r)
if (r.success) { if (r.success) {
r.result.forEach(e => {
return (e.checked = false);
});
this.list = r.result; this.list = r.result;
this.listData(r.result[0].part_task_pk, 0);
} }
}); });
}, },
listData(li, index) { //点击选中排产订单
this.status = ""; listData(li) {
this.partTaskPk = li;
this.tagClick("all");
this.isactive = index; this.isactive = index;
this.group.orderId = li.id;
this.tagTata(li.id);
}, },
tagClick(name) { //工序列表
this.selectName = name; tagTata(id) {
this.tagTata(this.selectName); Api.getroutingdetails({ id: id }).then(r => {
}, if (r.success) {
tagTata(name) { this.result = r.result;
if (name == "all") {
this.status = "";
} }
if (name == "yi") { });
this.status = 13; },
//工序排产过滤
changeRodio(a) {
console.log(a);
},
//删除排产订单
close() {
this.$Modal.confirm({
title: "删除",
content: "<p>您确定要移除此订单吗</p>",
onOk: () => {
this.$Message.success("删除成功");
},
onCancel: () => {
this.$Message.info("您已取消删除");
} }
if (name == "wei") { });
this.status = 0; },
//工序列表序列设置
type(i) {
if (i == 0) {
return "normal";
} else if (i == 1) {
return "normal";
} else if (i == 2) {
return "normal";
} else if (i === this.result.length) {
return "success";
} }
let data = { },
part_task_pk: this.partTaskPk, //设置工序
status: this.status sets(name) {
}; this.set = true;
Api.gettaskseqinfo(data).then(r => { this.group.routingHeaderId = name;
// console.log(r) },
if (r.success) { //拆分工序
this.result = r.result; split() {
this.chaiModal = true;
},
//拆分保存
okChai() {
// Api.saveTeamentry(this.chaiNum).then(res => {
// if (res.success) {
// this.getUserInfoFn();
// this.$Message.success("拆分成功。");
// } else {
// this.$Message.error("拆分失败...");
// }
// });
},
//删除工序
remove() {
this.$Modal.confirm({
title: "删除",
content: "<p>您确定要移除此工序吗</p>",
onOk: () => {
this.$Message.success("删除成功");
},
onCancel: () => {
this.$Message.info("您已取消删除");
} }
}); });
}, },
close() {} closeOk() {
this.set = false;
}
} }
}; };
</script> </script>
...@@ -227,6 +323,25 @@ export default { ...@@ -227,6 +323,25 @@ export default {
} }
.right-body { .right-body {
margin-top: 15px; margin-top: 15px;
.list {
padding-left: 10px;
.set-name {
font-weight: bold;
color: rgba(38, 128, 235, 0.8);
span {
cursor: pointer;
}
.ivu-icon {
cursor: pointer;
}
.top {
text-align: center;
}
}
div {
height: 30px;
}
}
} }
} }
} }
......
...@@ -6,11 +6,18 @@ ...@@ -6,11 +6,18 @@
type="datetimerange" type="datetimerange"
format="yyyy-MM-dd HH:mm" format="yyyy-MM-dd HH:mm"
placeholder="请选择工时" placeholder="请选择工时"
@on-change="changeFormat"
v-model="formItem.time" v-model="formItem.time"
style="width:300px" style="width:300px"
></DatePicker> ></DatePicker>
</FormItem> </FormItem>
<FormItem label="人员分组形式"> <FormItem label="类型">
<RadioGroup v-model="formItem.radio">
<Radio label="0">人员</Radio>
<Radio label="1">班组</Radio>
</RadioGroup>
</FormItem>
<FormItem label="人员分组形式" v-if="formItem.radio==0">
<Dictionary <Dictionary
disabled disabled
code="aps.scheduling.groupingForm" code="aps.scheduling.groupingForm"
...@@ -18,64 +25,132 @@ ...@@ -18,64 +25,132 @@
type="radio" type="radio"
></Dictionary> ></Dictionary>
</FormItem> </FormItem>
<FormItem> <FormItem label="班组" v-if="formItem.radio==1">
<div v-for="(li,index) in listGroup" :key="index"> <Select v-model="formItem.shopId" style="width:300px" multiple>
<Option v-for="item in classList" :value="item.shopId" :key="item.shopId">{{ item.label }}</Option>
</Select>
</FormItem>
<FormItem v-if="formItem.radio==0">
<!-- <UserSelect ref="userSelected" v-model="formItem.DistributeMainRouting" /> -->
<div class="list-check">
<Checkbox-List <Checkbox-List
:single-list="li" :single-list="li"
ref="groups" ref="groups"
@changeData="setData" @changeData="setData"
:resourcesType="resourcesType" v-for="(li,index) in listGroup"
:key="index"
></Checkbox-List> ></Checkbox-List>
</div> </div>
</FormItem> </FormItem>
<FormItem label="已选择"> <!-- v-if="tagGroup.lenght>0" -->
<Tag closable @on-close="handleClose" :key="index" v-for="(val, index) in tagGroup">{{val}}</Tag> <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>
<!-- <Tag
color="rgba(38,128,235,0.3)"
closable
@on-close="handleClose"
:key="index"
v-for="(val, index) in tagGroup"
>{{val.name}}</Tag>-->
</div>
</FormItem> </FormItem>
<FormItem label="备注"> <FormItem label="备注">
<Input <Input
v-model="formItem.textarea" v-model="formItem.textarea"
type="textarea" type="textarea"
:autosize="{minRows: 2,maxRows: 5}" :autosize="{minRows: 2,maxRows: 5}"
placeholder="Enter something..." placeholder="请输入备注信息"
></Input> ></Input>
</FormItem> </FormItem>
<FormItem> <FormItem>
<Button style="margin-left: 8px">取消</Button> <Button style="margin-left: 8px" @click="closeOk">取消</Button>
<Button type="primary">排产</Button> <Button type="primary" @click="lowerHair">排产</Button>
</FormItem> </FormItem>
</Form> </Form>
</div> </div>
</template> </template>
<script> <script>
import CheckboxList from './checkboxList' import CheckboxList from "./checkboxList";
import Api from './api' import Api from "./api";
export default { export default {
name: 'set', name: "set",
components: { components: {
CheckboxList CheckboxList
}, },
props: { props: {
resourcesType: Number group: {
default: Object,
orderId: Number,
routingHeaderId: Number
}
}, },
data() { data() {
return { return {
orderId: 0, //订单id
routingHeaderId: 0, //工艺规程id
formItem: { formItem: {
resourcesType: 0, resourcesType: 0,
input: '', radio: "0",
select: '', time: "",
radio: 'male', beginTime: "",
checkbox: [], endTime: "",
switch: true, textarea: ""
date: '', },
time: '', listGroup: [
slider: [20, 50], {
textarea: '', equip_name: "调试组",
day: 0 isClick: true
}, },
tagdata: [], {
listGroup: [], equip_name: "装配组"
tagGroup: [] }
],
tagGroup: [
{
id: 1,
name: "张芳",
class: "1级"
},
{
id: 2,
name: "张芳",
class: "1级"
},
{
id: 4,
name: "张芳",
class: "1级"
},
{
id: 5,
name: "张芳",
class: "1级"
}
],
classList: [
{
shopId: "0",
label: "调试组"
},
{
shopId: "1",
label: "装配组"
},
{
shopId: "2",
label: "计划组"
},
{
shopId: "3",
label: "管理组"
} }
]
};
}, },
mounted() {}, mounted() {},
// computed: { // computed: {
...@@ -92,43 +167,111 @@ export default { ...@@ -92,43 +167,111 @@ export default {
// } // }
// }, // },
methods: { methods: {
getList(v) { lowerHair(v) {
if (v == 0) { if (this.formItem.radio == 0) {
//班组 //一级排产选择人员
Api.getlist({ workshop_pk: 3 }).then((r) => { let urseId = [];
console.log(r) for (var i = 0; i < this.tagGroup.length; i++) {
urseId.push(this.tagGroup[i].id);
}
let items = [
{
detailId: 0,
userIds: urseId,
quantity: 0,
beginTime: this.formItem.beginTime,
endTime: this.formItem.endTime
}
];
let params1 = {
orderIds: this.group.orderId,
routingHeaderId: this.group.routingHeaderId,
items: items
};
Api.flonestepschedule(params1).then(r => {
if (r.success) {
}
});
} else if (this.formItem.radio == 1) {
//二级排产选择班组
let items = [
{
detailId: 0,
userIds: urseId,
quantity: 0,
beginTime: this.formItem.beginTime,
endTime: this.formItem.endTime
}
];
let params2 = {
orderIds: this.group.orderId,
routingHeaderId: this.group.routingHeaderId,
items: items
};
Api.fltwostepschedule(params2).then(r => {
if (r.success) { if (r.success) {
r.result.forEach((u) => {
u.isClick = false
})
this.listGroup = r.result
}
})
} else if (v == 2) {
//设备
Api.getlistEquip({ workshop_pk: 3 }).then((r) => {
console.log(r)
r.result.forEach((u) => {
u.isClick = false
})
this.listGroup = r.result
})
} }
});
}
},
closeOk() {
this.$emit("closeOk");
}, },
handleClose(nodeKey) { handleClose(nodeKey) {
// this.$refs.users.handleCheck({ checked: false, nodeKey: nodeKey }); // this.$refs.users.handleCheck({ checked: false, nodeKey: nodeKey });
}, },
setData(val) { setData(val) {
this.tagGroup = val this.tagGroup = val;
} },
//工时时间范围
changeFormat(val) {
this.formItem.beginTime = val[0];
this.formItem.endTime = val[1];
},
closeTag() {}
}, },
watch: { watch: {
resourcesType(v) { // resourcesType(v) {
if (v != null) { // if (v != null) {
this.formItem.resourcesType = v // this.formItem.resourcesType = v;
this.getList(v) // this.getList(v);
// }
// }
}
};
</script>
<style lang="less" scoped>
.set {
border: 1px solid rgba(228, 230, 237, 0.5);
width: 100%;
padding: 15px;
margin-left: 10px;
// box-shadow: darkgrey 2px 2px 8px 1px; //边框阴影
.r-title {
font-size: 14px;
font-weight: bold;
margin-bottom: 10px;
}
.list-check {
border: 1px solid rgba(38, 128, 235, 0.5);
}
.tag-list {
width: 100%;
min-height: 50px;
border: 1px solid rgba(228, 230, 237, 0.5);
.tag-group {
display: inline-block;
text-align: center;
width: 100px;
height: 30;
line-height: 30px;
border-radius: 20px;
margin: 5px;
background: rgba(38, 128, 235, 0.2);
.ivu-icon {
cursor: pointer;
} }
} }
} }
} }
</script> </style>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<Record :eid="recordId" /> <Record :eid="recordId" />
</Modal> </Modal>
<Modal v-model="SpeedModal" title="工单信息" fullscreen footer-hide class="recordM"> <Modal v-model="SpeedModal" title="工单信息" fullscreen footer-hide class="recordM">
<Speed :result="result" /> <Speed :result="result" :load="loading" />
</Modal> </Modal>
</div> </div>
</template> </template>
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
{ {
title: "序号", title: "序号",
type: "index", type: "index",
width: 40, width: 70,
align: "center" align: "center"
}, },
{ {
...@@ -77,13 +77,13 @@ export default { ...@@ -77,13 +77,13 @@ export default {
code: "plan.order.status", code: "plan.order.status",
align: "center", align: "center",
easy: true, easy: true,
high: true high: true,
width: 100
}, },
{ {
key: "mesCode", key: "mesCode",
title: this.l("mesCode"), title: this.l("mesCode"),
align: "left", align: "left",
width: 230,
render: (h, params) => { render: (h, params) => {
return h("div", [ return h("div", [
params.row.mesCode, params.row.mesCode,
...@@ -174,7 +174,6 @@ export default { ...@@ -174,7 +174,6 @@ export default {
align: "left", align: "left",
easy: true, easy: true,
high: true, high: true,
width: 130
}, },
{ {
...@@ -243,7 +242,8 @@ export default { ...@@ -243,7 +242,8 @@ export default {
align: "left", align: "left",
code: "mes_xingchi_plan.order_material.routingType", code: "mes_xingchi_plan.order_material.routingType",
easy: true, easy: true,
high: true high: true,
width: 100,
}, },
{ {
title: this.l("jindu"), title: this.l("jindu"),
...@@ -273,7 +273,6 @@ export default { ...@@ -273,7 +273,6 @@ export default {
} }
} }
}, },
params.row.unstartCount //未开工数 params.row.unstartCount //未开工数
), ),
h( h(
...@@ -289,7 +288,6 @@ export default { ...@@ -289,7 +288,6 @@ export default {
} }
} }
}, },
params.row.startCount //开工数 params.row.startCount //开工数
), ),
h( h(
...@@ -307,7 +305,6 @@ export default { ...@@ -307,7 +305,6 @@ export default {
} }
} }
}, },
params.row.stopCount //暂停数 params.row.stopCount //暂停数
), ),
h( h(
...@@ -325,7 +322,7 @@ export default { ...@@ -325,7 +322,7 @@ export default {
} }
}, },
params.row.finishCount //完 params.row.finishCount //完
) )
] ]
) )
...@@ -335,7 +332,8 @@ export default { ...@@ -335,7 +332,8 @@ export default {
{ {
key: "remark", key: "remark",
title: this.l("remark"), title: this.l("remark"),
align: "center" align: "center",
hide:true
}, },
{ {
title: "暂停记录", title: "暂停记录",
...@@ -411,7 +409,8 @@ export default { ...@@ -411,7 +409,8 @@ export default {
]); ]);
} }
} }
] ],
loading: false
}; };
}, },
mounted() {}, mounted() {},
...@@ -427,6 +426,16 @@ export default { ...@@ -427,6 +426,16 @@ export default {
this.recordId = id; this.recordId = id;
}, },
speed(row) { speed(row) {
if (
row.finishCount == 0 &&
row.stopCount == 0 &&
row.startCount == 0 &&
row.unstartCount == 0
) {
this.$Message.error("进度数据错误");
} else {
this.result = [];
this.loading = true;
this.SpeedModal = true; this.SpeedModal = true;
Api.info({ Api.info({
routingHeaderId: row.routingHeaderId, routingHeaderId: row.routingHeaderId,
...@@ -434,8 +443,12 @@ export default { ...@@ -434,8 +443,12 @@ export default {
}).then(r => { }).then(r => {
if (r.success) { if (r.success) {
this.result = r.result; this.result = r.result;
this.loading = false;
} }
}).catch(err=>{
this.$Message.error("连接错误");
}); });
}
}, },
suspendOk() { suspendOk() {
this.suspendModal = false; this.suspendModal = false;
......
...@@ -29,7 +29,7 @@ export default { ...@@ -29,7 +29,7 @@ export default {
{ {
title: "序号", title: "序号",
type: "index", type: "index",
width: 60, width: 70,
align: "center" align: "center"
}, },
{ {
......
<template> <template>
<div class="record"> <div class="record">
<DataGrid :columns="columns" :data="result" border :tool='false' :height="820"></DataGrid> <div v-if="load" style="width:100px;margin:0 auto;padding-top:260px;">
<Spin size="large"></Spin>
</div>
<div v-show="!load">
<DataGrid :columns="columns" :data="result" border :tool="false" :height="820" :page="false"></DataGrid>
</div>
</div> </div>
</template> </template>
<script> <script>
...@@ -15,12 +20,14 @@ export default { ...@@ -15,12 +20,14 @@ export default {
{ {
key: "detailId", key: "detailId",
title: this.l("detailId"), title: this.l("detailId"),
align: "center" align: "center",
width: 100
}, },
{ {
key: "taskSeq", key: "taskSeq",
title: this.l("taskSeq"), title: this.l("taskSeq"),
align: "center" align: "center",
width: 100
}, },
{ {
key: "detailName", key: "detailName",
...@@ -97,15 +104,61 @@ export default { ...@@ -97,15 +104,61 @@ export default {
{ {
key: "status", key: "status",
title: '工单状态', title: "工单状态",
code: "taskList.status", code: "taskList.status",
align: "center" align: "center",
width: 140,
filters: this.getArry(
this.$store.getters.dictionaryByKey("taskList.status")
),
filterMethod(value, row) {
let statusChar = row.status + "";
return statusChar.indexOf(value) > -1;
}
},
{
title: "操作",
key: "action",
width: 120,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
// h(
// "op",
// {
// attrs: { oprate: "detail" },
// on: { click: () => this.detail(params.row) }
// },
// "查看"
// ),
h(
"op",
{
attrs: { oprate: "remove" },
on: { click: () => this.edit(params.row) },
style: params.row.status == 14 ? "" : "display:none"
},
"暂停"
),
h(
"op",
{
attrs: { oprate: "edit" },
on: { click: () => this.remove(params.row) },
style: params.row.status == 5 ? "" : "display:none"
},
"分卡"
)
]);
} }
] }
],
listTask: [],
}; };
}, },
props: { props: {
result: Array result: Array,
load:Boolean,
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
...@@ -119,6 +172,25 @@ export default { ...@@ -119,6 +172,25 @@ export default {
l(key) { l(key) {
let vkey = "mes_order_watch" + "." + key; let vkey = "mes_order_watch" + "." + key;
return this.$t(vkey) || key; return this.$t(vkey) || key;
},
//得到数据字典对应的label和value,用于table排序
getArry(arryList) {
let arry = [];
arryList.forEach(data => {
var that = this;
let arryObj = {};
arryObj["label"] = data.name;
arryObj["value"] = data.code;
arry.push(arryObj);
});
return arry;
}
},
watch: {
result(v) {
if (v && v.length > 0) {
this.load = false;
}
} }
} }
}; };
......
...@@ -599,8 +599,8 @@ export default { ...@@ -599,8 +599,8 @@ export default {
let that = this let that = this
var url = `${systemUrl}/cache/generate_serialcode_x?Code=GY` var url = `${systemUrl}/cache/generate_serialcode_x?Code=GY`
service.get(`${url}`).then((response) => { service.get(`${url}`).then((response) => {
that.addpdefm.formValidate.code = response.result that.addpdefm.formValidate.code = response.result[0]
that.addpdefm.gycode = response.result that.addpdefm.gycode = response.result[0]
}) //编号 }) //编号
var url = var url =
......
...@@ -381,7 +381,7 @@ export default { ...@@ -381,7 +381,7 @@ export default {
}, },
remove(row) { remove(row) {
if (row.totalNum != row.numberAvailable) { if (row.totalNum != row.numberAvailable) {
this.$Message.error("资源有接触不能删除"); this.$Message.error("资源有借出不能删除");
} else { } else {
this.deletelModal = true; this.deletelModal = true;
this.curId = row.id; this.curId = row.id;
......
...@@ -9,9 +9,10 @@ ...@@ -9,9 +9,10 @@
<h4 class="tree_tit pl5">产品结构 <h4 class="tree_tit pl5">产品结构
<a class="menu_play fr" @click="hideMenu" title="收起"> <a class="menu_play fr" @click="hideMenu" title="收起">
<Icon type="ios-arrow-back" size="24" /> <Icon type="ios-arrow-back" size="24" />
<!-- <Icon type="md-arrow-round-back"/> -->
</a> </a>
</h4> </h4>
<StoreHouseLeft class="tree_left" @storeIds="storeIds" ></StoreHouseLeft>
<!-- :type="4" -->
</div> </div>
</Sider> </Sider>
<div v-if="!showMenu" class="show_menu"> <div v-if="!showMenu" class="show_menu">
...@@ -21,15 +22,18 @@ ...@@ -21,15 +22,18 @@
</a> </a>
</div> </div>
<Layout> <Layout>
<Content :class="showMenu?'tech_body':'tech_body02'" :style="{ height: treeHeight + 'px' }">Content</Content> <Content :class="showMenu?'tech_body':'tech_body02'" :style="{ height: treeHeight + 'px' }">
<a class="detail_href" @click="detail"> <Icon type="ios-undo-outline" />详情页面</a>
</Content>
</Layout> </Layout>
</Layout> </Layout>
</div> </div>
</template> </template>
<script> <script>
import StoreHouseLeft from "@/components/modalTree/technologyTree.vue";
export default { export default {
components: {}, components: {StoreHouseLeft},
data() { data() {
return { return {
showMenu:true, showMenu:true,
...@@ -60,6 +64,10 @@ export default { ...@@ -60,6 +64,10 @@ export default {
showMenuFn(){//this.$Message.info("展开左侧树") showMenuFn(){//this.$Message.info("展开左侧树")
this.showMenu = true this.showMenu = true
}, },
// 详情页面
detail(){
this.$router.push('technology/details')
},
} }
} }
</script> </script>
...@@ -24,6 +24,12 @@ ...@@ -24,6 +24,12 @@
color: #646464; color: #646464;
} }
} }
.tree_left{
padding: 8px 15px;
.ivu-tree{
// height: ;
}
}
} }
.show_menu{ .show_menu{
width: 30px; width: 30px;
...@@ -40,9 +46,6 @@ ...@@ -40,9 +46,6 @@
color: #515A6E; color: #515A6E;
border-top-right-radius: 5px; border-top-right-radius: 5px;
border-bottom-right-radius: 5px; border-bottom-right-radius: 5px;
// position: absolute;
// top: 100px;
// left: 0px;
background: #ffffff; background: #ffffff;
box-shadow: #ccc 2px 2px 4px 1px; box-shadow: #ccc 2px 2px 4px 1px;
} }
...@@ -89,6 +92,7 @@ ...@@ -89,6 +92,7 @@
line-height: 50px; line-height: 50px;
border-left: 1px solid #ccc; border-left: 1px solid #ccc;
background: #f5f7f9; background: #f5f7f9;
z-index: 888;
.ivu-menu-item{ .ivu-menu-item{
width: 140px; width: 140px;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
...@@ -115,6 +119,10 @@ ...@@ -115,6 +119,10 @@
.ivu-menu-horizontal{ .ivu-menu-horizontal{
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
.ivu-menu-item{
width: 97px;
text-align: center;
}
a.ivu-menu-item-active::before{ a.ivu-menu-item-active::before{
content: ""; content: "";
display: block; display: block;
...@@ -125,7 +133,7 @@ ...@@ -125,7 +133,7 @@
height: 0; height: 0;
position: absolute; position: absolute;
bottom: -6px; bottom: -6px;
left: 40%; left: 43%;
} }
a.ivu-menu-item-active::after{ a.ivu-menu-item-active::after{
content: ""; content: "";
...@@ -137,7 +145,7 @@ ...@@ -137,7 +145,7 @@
height: 0; height: 0;
position: absolute; position: absolute;
bottom: -4px; bottom: -4px;
left: 41%; left: 44%;
} }
} }
......
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