Commit 7566c7da authored by 仇晓婷's avatar 仇晓婷

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

parents be5ff771 ba47a4e2
...@@ -12,69 +12,90 @@ html body { ...@@ -12,69 +12,90 @@ html body {
#__layout { #__layout {
height: 100% height: 100%
} }
ul,li{
ul,
li {
list-style: none; list-style: none;
} }
div::-webkit-scrollbar{
width:10px; div::-webkit-scrollbar {
height:10px; width: 10px;
height: 10px;
/**/ /**/
} }
div::-webkit-scrollbar-track{
div::-webkit-scrollbar-track {
background: rgb(239, 239, 239); background: rgb(239, 239, 239);
border-radius:2px; border-radius: 2px;
} }
div::-webkit-scrollbar-thumb{
background:rgba(38,128,235,0.5); div::-webkit-scrollbar-thumb {
border-radius:10px; background: rgba(38, 128, 235, 0.5);
} border-radius: 10px;
div::-webkit-scrollbar-thumb:hover{ }
background: rgba(38,128,235,0.8);
} div::-webkit-scrollbar-thumb:hover {
div::-webkit-scrollbar-corner{ background: rgba(38, 128, 235, 0.8);
background: rgba(38,128,235,1); }
}
div::-webkit-scrollbar-corner {
background: rgba(38, 128, 235, 1);
}
/*flex*/ /*flex*/
.flex{ .flex {
display: flex; display: flex;
//采用flex布局 //采用flex布局
} }
.fc-m{
.fc-m {
justify-content: center; justify-content: center;
} }
.fa-m{
.fa-m {
align-items: center; align-items: center;
} }
.fc-e{
.fc-e {
justify-content: flex-end; justify-content: flex-end;
} }
.fc-b{
.fc-b {
justify-content: space-between; justify-content: space-between;
} }
.fc-a{
.fc-a {
justify-content: space-around; justify-content: space-around;
} }
.fc-ev{
.fc-ev {
justify-content: space-evenly; justify-content: space-evenly;
} }
.fd{
.fd {
flex-direction: column; flex-direction: column;
} }
.fg{
.fg {
flex-grow: 1; flex-grow: 1;
} }
.fs{
.fs {
flex-shrink: 0; flex-shrink: 0;
} }
.fg2{
.fg2 {
flex-grow: 2; flex-grow: 2;
} }
.fos{
.fos {
order: -1; order: -1;
} }
.foe{
.foe {
order: 99; order: 99;
} }
/*字体*/ /*字体*/
.ib { .ib {
display: inline; display: inline;
...@@ -113,11 +134,13 @@ div::-webkit-scrollbar{ ...@@ -113,11 +134,13 @@ div::-webkit-scrollbar{
color: #f23a3a; color: #f23a3a;
cursor: pointer; cursor: pointer;
} }
.stitle{
.stitle {
height: 40px; height: 40px;
background-color: #F5F6FA; background-color: #F5F6FA;
line-height: 40px; line-height: 40px;
} }
//行高 //行高
.lh10 { .lh10 {
line-height: 10px line-height: 10px
...@@ -142,9 +165,11 @@ div::-webkit-scrollbar{ ...@@ -142,9 +165,11 @@ div::-webkit-scrollbar{
.lh40 { .lh40 {
line-height: 40px line-height: 40px
} }
.lh50 { .lh50 {
line-height: 50px line-height: 50px
} }
/*边距*/ /*边距*/
.m10 { .m10 {
...@@ -250,7 +275,8 @@ div::-webkit-scrollbar{ ...@@ -250,7 +275,8 @@ div::-webkit-scrollbar{
.mtb10 { .mtb10 {
margin: 10px 0; margin: 10px 0;
} }
.m15{
.m15 {
margin: 15px; margin: 15px;
} }
...@@ -301,6 +327,7 @@ div::-webkit-scrollbar{ ...@@ -301,6 +327,7 @@ div::-webkit-scrollbar{
.pl20 { .pl20 {
padding-left: 20px padding-left: 20px
} }
.pt15 { .pt15 {
padding-top: 15px padding-top: 15px
} }
...@@ -622,10 +649,12 @@ div::-webkit-scrollbar{ ...@@ -622,10 +649,12 @@ div::-webkit-scrollbar{
.new-orange { .new-orange {
color: #ff9900; color: #ff9900;
} }
.blueTitle{
.blueTitle {
color: #2680EB; color: #2680EB;
} }
.grayTitle{
.grayTitle {
color: #333; color: #333;
} }
...@@ -858,12 +887,14 @@ textarea::-webkit-input-placeholder { ...@@ -858,12 +887,14 @@ textarea::-webkit-input-placeholder {
// border-bottom:#e4e6ed solid 1px; // border-bottom:#e4e6ed solid 1px;
background: #f5f6fa; background: #f5f6fa;
} }
.tableCommon .tableCommon tr th { .tableCommon .tableCommon tr th {
line-height: 24px; line-height: 24px;
font-size: 14px; font-size: 14px;
background: #EEEDF0; background: #EEEDF0;
} }
.tableCommon .tableCommon{
.tableCommon .tableCommon {
tr td { tr td {
border: none; border: none;
border-bottom: 1px solid #E4E6ED; border-bottom: 1px solid #E4E6ED;
...@@ -877,8 +908,9 @@ textarea::-webkit-input-placeholder { ...@@ -877,8 +908,9 @@ textarea::-webkit-input-placeholder {
font-size: 14px; font-size: 14px;
padding: 0 2px; padding: 0 2px;
} }
.tableCommon tr td .ivu-table-cell { .tableCommon tr td .ivu-table-cell {
padding:0 2px; padding: 0 2px;
} }
...@@ -946,8 +978,9 @@ html [type=button] { ...@@ -946,8 +978,9 @@ html [type=button] {
-webkit-appearance: button; -webkit-appearance: button;
} }
.waitTask {/*flex 布局*/ .waitTask {
display: flex!important; /*flex 布局*/
display: flex !important;
align-items: center; align-items: center;
width: 200px; width: 200px;
height: 100px; height: 100px;
...@@ -969,22 +1002,26 @@ html [type=button] { ...@@ -969,22 +1002,26 @@ html [type=button] {
.action { .action {
a { a {
color: #1890FF; //查看和其他 color: #1890FF; //查看和其他
span{
span {
padding: 4px; padding: 4px;
} }
i{
i {
font-size: 16px; font-size: 16px;
padding: 4px; padding: 4px;
border-radius: 3px; border-radius: 3px;
} }
i:hover{
i:hover {
background: #1890FF; background: #1890FF;
color: #fff; color: #fff;
} }
background: transparent; background: transparent;
} }
a.detail{ a.detail {
color: #1890FF; //查看和其他 color: #1890FF; //查看和其他
} }
...@@ -1005,16 +1042,20 @@ html [type=button] { ...@@ -1005,16 +1042,20 @@ html [type=button] {
// color: #35BD90 // color: #35BD90
// } // }
a.remove,a.delete { a.remove,
a.delete {
color: #FF7A8B; color: #FF7A8B;
i:hover{
i:hover {
background: #FF7A8B; background: #FF7A8B;
color: #fff; color: #fff;
} }
} }
a.delete { a.delete {
color: #FF7A8B; color: #FF7A8B;
} }
a.empower { a.empower {
color: #FFBD59; color: #FFBD59;
} }
...@@ -1050,19 +1091,24 @@ html [type=button] { ...@@ -1050,19 +1091,24 @@ html [type=button] {
// } // }
} }
.icon_box{
.icon_box {
a.icon { a.icon {
display: inline-grid; display: inline-grid;
width: 28px; width: 28px;
height: 28px; height: 28px;
line-height: 28px; line-height: 28px;
margin: 0; margin: 0;
.ivu-icon-ios-eye{
.ivu-icon-ios-eye {
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
color: #249e91; color: #249e91;
}; }
.ivu-icon-ios-cog{
;
.ivu-icon-ios-cog {
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
color: #249e91; color: #249e91;
...@@ -1176,12 +1222,14 @@ html [type=button] { ...@@ -1176,12 +1222,14 @@ html [type=button] {
color: #333; color: #333;
font-weight: bold; font-weight: bold;
} }
.selectBox{
div.ivu-select-dropdown{ .selectBox {
div.ivu-select-dropdown {
height: auto; height: auto;
} }
} }
.footers { .footers {
width: 100%; width: 100%;
position: fixed; position: fixed;
...@@ -1214,9 +1262,10 @@ html [type=button] { ...@@ -1214,9 +1262,10 @@ html [type=button] {
border-collapse: collapse; border-collapse: collapse;
padding: 2px; padding: 2px;
} }
.outPdf table thead tr th { .outPdf table thead tr th {
line-height: 40px; line-height: 40px;
} }
.outP table, .outP table,
.outP table tr th, .outP table tr th,
...@@ -1232,103 +1281,125 @@ html [type=button] { ...@@ -1232,103 +1281,125 @@ html [type=button] {
border-collapse: collapse; border-collapse: collapse;
padding: 2px; padding: 2px;
} }
.outP table thead tr th { .outP table thead tr th {
line-height: 25px; line-height: 25px;
} }
//框架页面layout用
.full { //框架页面layout用
.full {
height: 100%; height: 100%;
background: white; background: white;
margin-top: 45px; margin-top: 45px;
.menu { .menu {
border: 1px solid #ddd; border: 1px solid #ddd;
padding: 0 5px; padding: 0 5px;
overflow: auto; overflow: auto;
.title { .title {
line-height: 45px; line-height: 45px;
font-size: 14px; font-size: 14px;
padding: 0 5px; padding: 0 5px;
border-bottom: #e4e6ed solid 1px; border-bottom: #e4e6ed solid 1px;
.fr { .fr {
float: right; float: right;
margin-top: 10px; margin-top: 10px;
cursor: pointer; cursor: pointer;
} }
.fr:hover { .fr:hover {
color: #249e91; color: #249e91;
} }
} }
.tree { .tree {
height: calc(100% - 150px); height: calc(100% - 150px);
overflow: auto; overflow: auto;
} }
} }
.content { .content {
background: white; background: white;
padding: 0 0 0 10px; padding: 0 0 0 10px;
//position: absolute; //position: absolute;
left: 250px; left: 250px;
right: 10px; right: 10px;
.auto { .auto {
flex: 1; flex: 1;
overflow: auto; overflow: auto;
position: relative; position: relative;
min-height: 600px; min-height: 600px;
} }
.fly { .fly {
position: relative; position: relative;
overflow: inherit; overflow: inherit;
} }
.ivu-btn-small { .ivu-btn-small {
padding: 0; padding: 0;
background: red; background: red;
} }
} }
} }
//流程节点样式 //流程节点样式
.time { .time {
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
} }
.content {
.content {
padding-left: 5px; padding-left: 5px;
} }
.h100{
.h100 {
height: 100%; height: 100%;
} }
//显示富文本框样式 //显示富文本框样式
.detail .ivu-row .filed-col p .html p{ .detail .ivu-row .filed-col p .html p {
margin: 0 10px 0 0; margin: 0 10px 0 0;
} }
.con_bord { .con_bord {
margin: 10px 20px; margin: 10px 20px;
} }
.lay100 {
.lay100 {
height: calc(100vh - 105px); height: calc(100vh - 105px);
background-color: #f5f6fa; background-color: #f5f6fa;
.con { .con {
padding: 5px 5px 0px 10px; padding: 5px 5px 0px 10px;
} }
.con_bord { .con_bord {
margin: 10px 20px; margin: 10px 20px;
box-shadow: #c7c7c7 1px 2px 7px 3px; box-shadow: #c7c7c7 1px 2px 7px 3px;
} }
background: rgba(245, 246, 250, 1); background: rgba(245, 246, 250, 1);
}
.menu_side{
background: #fff!important;
margin: 5px 0 0 0!important;
border: 1px solid #dcdee2!important;
} }
.show_menu{
.menu_side {
background: #fff !important;
margin: 5px 0 0 0 !important;
border: 1px solid #dcdee2 !important;
}
.show_menu {
width: 30px; width: 30px;
height: 30px; height: 30px;
position: fixed; position: fixed;
top: 100px; top: 100px;
left: 0; left: 0;
z-index: 9; z-index: 9;
.menu_play{
.menu_play {
width: 30px; width: 30px;
height: 30px; height: 30px;
line-height: 34px; line-height: 34px;
...@@ -1340,17 +1411,24 @@ html [type=button] { ...@@ -1340,17 +1411,24 @@ html [type=button] {
background: #ffffff; background: #ffffff;
box-shadow: #ccc 2px 2px 4px 1px; box-shadow: #ccc 2px 2px 4px 1px;
} }
.menu_play:hover{
.menu_play:hover {
background-color: #2d8cf0; background-color: #2d8cf0;
color: white; color: white;
} }
} }
.details{
.ivu-input-number{ .details {
.ivu-input-number {
width: 100%; width: 100%;
} }
} }
//显示富文本框时的图片 //显示富文本框时的图片
.tohtml img{ .tohtml img {
max-width: 95%; max-width: 95%;
} }
\ No newline at end of file
.gdShow {
box-shadow: 0px 0px 15px #333;
}
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
@on-drag-drop="onDragDrop" @on-drag-drop="onDragDrop"
@on-selection-change="selectionChange" @on-selection-change="selectionChange"
@on-select="onSelect" @on-select="onSelect"
:row-key="rowKey"
></Table> ></Table>
</div> </div>
<div class="table-footer"> <div class="table-footer">
...@@ -225,6 +226,10 @@ export default { ...@@ -225,6 +226,10 @@ export default {
span: {//栅格数 span: {//栅格数
type: Number, type: Number,
default: 24 default: 24
},
//table控件children子数据控制功能
rowKey: {
type: [String, Number]
}, },
gutter:{//间距 gutter:{//间距
type:Number, type:Number,
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
@on-selection-change="onSelect" @on-selection-change="onSelect"
:batch="true" :batch="true"
:border="false" :border="false"
:rowKey="id" rowKey="id"
> >
<template slot="easySearch"> <template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline> <Form ref="formInline" :model="easySearch" inline>
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
<Changesingle /> <Changesingle />
</TabPane> </TabPane>
<TabPane label="不合格审理单" name="unqualifiedorder"> <TabPane label="不合格审理单" name="unqualifiedorder">
<unqualifiedorder ref="unqualifiedorder"></unqualifiedorder> <unqualifiedorder ref="unqualifiedorder"></unqualifiedorder>
</TabPane> </TabPane>
<TabPane label="生产协调单" name="technicalcoordination"> <TabPane label="生产协调单" name="technicalcoordination">
......
...@@ -13,4 +13,17 @@ export default { ...@@ -13,4 +13,17 @@ export default {
orderanddispatchinfos(params) { orderanddispatchinfos(params) {
return Api.get(`${PlanUrl}/orderexecutenew/orderanddispatchinfos`, params); return Api.get(`${PlanUrl}/orderexecutenew/orderanddispatchinfos`, params);
}, },
//工单开工
entrystart(params) {
return Api.post(`${PlanUrl}/orderexecute/entrystart`, params);
},
//工单暂停
entrypause(params) {
return Api.post(`${PlanUrl}/orderexecute/entrypause`, params);
},
//工单继续
entrentrycontinuestart(params) {
return Api.post(`${PlanUrl}/orderexecute/entrycontinue`, params);
},
} }
\ No newline at end of file
...@@ -2,25 +2,27 @@ ...@@ -2,25 +2,27 @@
<template> <template>
<div class="order_list"> <div class="order_list">
<div class="card_box"> <div class="card_box">
<Card class="card_order" v-for="(item,index) in listTasks" <Card
@click.native="goPage(item)" :key="index" class="card_order"
v-for="(item,index) in listTasks"
:style="order==item.id?'box-shadow: 0px 0px 15px #333;':''"
@click.native="goPage(item)"
:key="index"
:class="item.status==12 ? 'card_border1' : (item.status==14 ? 'card_border2': (item.status==5 ?'card_border3': :class="item.status==12 ? 'card_border1' : (item.status==14 ? 'card_border2': (item.status==5 ?'card_border3':
(item.status==7?'card_border4':(item.status==-1?'card_border5':''))))" (item.status==7?'card_border4':(item.status==-1?'card_border5':''))))"
> >
<!-- :class="item.status=='未开工'? 'card_border1' : (item.status=='执行中' ? 'card_border2': (item.status=='暂停中' ?'card_border3': <!-- :class="item.status=='未开工'? 'card_border1' : (item.status=='执行中' ? 'card_border2': (item.status=='暂停中' ?'card_border3':
(item.status=='交检中'?'card_border4':(item.status=='交接中'?'card_border5':''))))" --> (item.status=='交检中'?'card_border4':(item.status=='交接中'?'card_border5':''))))"-->
<p slot="title">{{item.mesCode}} <p slot="title">
<state {{item.mesCode}}
code="taskList.status" <state code="taskList.status" ref="state" class="fr" :value="item.status" type="text"></state>
ref="state" class="fr"
:value="item.status"
type="text"
></state>
<!-- <span >{{item.status}}</span> --> <!-- <span >{{item.status}}</span> -->
</p> </p>
<p class="order_tit">{{item.productName}}</p> <p class="order_tit">{{item.productName}}</p>
<p><Icon type="ios-pricetags" />{{item.taskName}}</p> <p>
<Icon type="ios-pricetags" />
{{item.taskName}}
</p>
<p>{{item.beginTime}}~{{item.endTime}}</p> <p>{{item.beginTime}}~{{item.endTime}}</p>
</Card> </Card>
<p>{{listTasks.length}} 个工单</p> <p>{{listTasks.length}} 个工单</p>
...@@ -30,40 +32,57 @@ ...@@ -30,40 +32,57 @@
<script> <script>
import Api from "../../api"; import Api from "../../api";
export default { export default {
name:'orderlist', name: "orderlist",
data(){ data() {
return{ return {
gnFlag:0, gnFlag: 0,
listTasks:[], listTasks: [],
dataLength:0, dataLength: 0
};
},
props: {
order: {
type: String,
default: '',
} }
}, },
created() { created() {
this.loadTree(-9); this.loadTree(-9);
}, },
methods: { methods: {
loadTree(value){ loadTree(value) {
let parmse = { let parmse = {
status: value, status: value,
isAsc: true isAsc: true
};
Api.getCardList(parmse).then(res => {
if (res.success) {
this.listTasks = res.result;
this.dataLength = res.result.length;
} }
Api.getCardList(parmse).then(res=>{ });
if(res.success){
this.listTasks = res.result
this.dataLength = res.result.length
}
})
},
gnFunto(number,type){
this.gnFlag = number
},
goPage(item){
console.log(item)
this.$Message.success("工单查询数据...")
}, },
gnFunto(number, type) {
this.gnFlag = number;
}, },
watch:{ goPage(item) {
this.$router.push({
path: "/produce/execute",
query: {
id: item.id,
orderId: item.orderId,
executeId: item.executeId,
headid: item.routingHeaderId,
dispatchStatus: item.status
}
});
}
}, },
} watch: {
order(v)
{
//alert(v)
}
}
};
</script> </script>
\ No newline at end of file
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</div> </div>
</div> </div>
<!-- 列表卡片主内容 --> <!-- 列表卡片主内容 -->
<orderlist ref="orderlist" /> <orderlist ref="orderlist" :order="inputId" />
</Drawer> </Drawer>
<!-- 功能区 --> <!-- 功能区 -->
<Drawer <Drawer
...@@ -56,8 +56,9 @@ export default { ...@@ -56,8 +56,9 @@ export default {
detail: null, detail: null,
row:{}, row:{},
odermodel: -9, odermodel: -9,
orderId: null, orderId: this.$route.query.id,
condition: [] condition: [],
inputId: null,
}; };
}, },
created() { created() {
...@@ -66,6 +67,7 @@ export default { ...@@ -66,6 +67,7 @@ export default {
row.orderId = this.$route.query.orderId; row.orderId = this.$route.query.orderId;
row.executeId = this.$route.query.executeId; row.executeId = this.$route.query.executeId;
this.row=row this.row=row
this.inputId=this.$route.query.id
this.detail = () => import("./starOrder/index"); this.detail = () => import("./starOrder/index");
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
...@@ -120,6 +122,14 @@ export default { ...@@ -120,6 +122,14 @@ export default {
} //测试数据 } //测试数据
} }
}, },
watch: {} watch: {
'$route.query.id'(v)
{
this.row.id = v
this.inputId=v
this.detail = () => import("./starOrder/index")
},
}
}; };
</script> </script>
...@@ -9,18 +9,12 @@ ...@@ -9,18 +9,12 @@
<Button class="button" type="primary" @click="rechecked">反选</Button> <Button class="button" type="primary" @click="rechecked">反选</Button>
</p> </p>
<div class="list01"> <div class="list01">
<!-- -->
<Tag <Tag
type="dot" type="dot" :checkable="true"
:checkable="true" class="tag_card" size="large"
class="tag_card"
size="large"
v-for="(item,index) in cardlist" v-for="(item,index) in cardlist"
:name="item.id" :name="item.id" :key="index" :checked="item.checked"
:key="index" color="primary" @on-change="changeCards"
:checked="item.checked"
color="primary"
@on-change="changeCards"
>{{item.prefix}}.{{item.code}}</Tag> >{{item.prefix}}.{{item.code}}</Tag>
</div> </div>
</div> </div>
...@@ -47,7 +41,7 @@ ...@@ -47,7 +41,7 @@
:checkable="false" :checkable="false"
closable closable
@on-close="hegeClose" @on-close="hegeClose"
>{{ item.code}}</Tag> >{{item.prefix}}.{{ item.code}}</Tag>
</div> </div>
</div> </div>
<div class="mass_list rangbu" v-if="ranglist.length>0"> <div class="mass_list rangbu" v-if="ranglist.length>0">
...@@ -60,15 +54,11 @@ ...@@ -60,15 +54,11 @@
</h2> </h2>
<div class="list02"> <div class="list02">
<Tag <Tag
type="dot" type="dot" class="tag_card02"
class="tag_card02" v-for="(item,index) in ranglist" :key="index"
v-for="(item,index) in ranglist" :name="item.id" :checkable="false"
:key="index" closable @on-close="handleClose"
:name="item.id" >{{item.prefix}}.{{ item.code}}</Tag>
:checkable="false"
closable
@on-close="handleClose"
>{{ item.code}}</Tag>
</div> </div>
</div> </div>
<div class="mass_list fanxiu_box" v-if="fanlist.length>0"> <div class="mass_list fanxiu_box" v-if="fanlist.length>0">
...@@ -80,15 +70,11 @@ ...@@ -80,15 +70,11 @@
</h2> </h2>
<div class="list02"> <div class="list02">
<Tag <Tag
type="dot" type="dot" class="tag_card02"
class="tag_card02" v-for="(item,index) in fanlist" :key="index"
v-for="(item,index) in fanlist" :name="item.id" :checkable="false"
:key="index" closable @on-close="fanClose"
:name="item.id" >{{item.prefix}}.{{ item.code}}</Tag>
:checkable="false"
closable
@on-close="fanClose"
>{{ item.code}}</Tag>
</div> </div>
</div> </div>
<div class="mass_list fei_box" v-if="feilist.length>0"> <div class="mass_list fei_box" v-if="feilist.length>0">
...@@ -100,15 +86,11 @@ ...@@ -100,15 +86,11 @@
</h2> </h2>
<div class="list02"> <div class="list02">
<Tag <Tag
type="dot" type="dot" class="tag_card02"
class="tag_card02" v-for="(item,index) in feilist" :key="index"
v-for="(item,index) in feilist" :name="item.id" :checkable="false"
:key="index" closable @on-close="feiClose"
:name="item.id" >{{item.prefix}}.{{ item.code}}</Tag>
:checkable="false"
closable
@on-close="feiClose"
>{{ item.code}}</Tag>
</div> </div>
</div> </div>
<div class="fei_right" v-if="feilist.length>0"> <div class="fei_right" v-if="feilist.length>0">
...@@ -134,14 +116,9 @@ ...@@ -134,14 +116,9 @@
</div> </div>
</div> </div>
<div class="futer flex fc-ev" v-if="ranglist.length>0||fanlist.length>0||feilist.length>0"> <div class="futer flex fc-ev" v-if="ranglist.length>0||fanlist.length>0||feilist.length>0">
<Button <Button class="button" size="large" type="primary" @click="sendOrder" v-if="feilist.length>0" >送审</Button>
class="button"
size="large"
type="primary"
@click="sendOrder"
v-if="feilist.length>0"
>送审</Button>
<Button class="button" size="large" type="primary" @click="submit" v-else>提交</Button> <Button class="button" size="large" type="primary" @click="submit" v-else>提交</Button>
<!-- :disabled="hegelist.length!=0&&fanlist.length!=0&&ranglist.length!=0" -->
<Button class="button" size="large" @click="toOrder">取消</Button> <Button class="button" size="large" @click="toOrder">取消</Button>
</div> </div>
<!-- 订单送审 --> <!-- 订单送审 -->
...@@ -160,7 +137,7 @@ ...@@ -160,7 +137,7 @@
</template> </template>
<script> <script>
import Api from "../api"; import Api from "../api";
import OrderSendReview from "@/components/orderOperator/orderSendReview"; import OrderSendReview from "./orderSendReview";
export default { export default {
name: "starOrder", name: "starOrder",
components: { OrderSendReview }, components: { OrderSendReview },
...@@ -172,6 +149,7 @@ export default { ...@@ -172,6 +149,7 @@ export default {
mTitle: "确认弹框", mTitle: "确认弹框",
num: "", num: "",
surMasg: "", surMasg: "",
entity: {},//获取展示数据
rules: { rules: {
question: [ question: [
{ {
...@@ -225,18 +203,37 @@ export default { ...@@ -225,18 +203,37 @@ export default {
}, },
methods: { methods: {
loadFun() { loadFun() {
let pid = this.$route.query.id; // JSON.stringify() let pid = Number(this.$route.query.id); // JSON.stringify()
Api.getpaged({ id: pid }).then(res => { Api.getpaged({ id: pid }).then(res => {
if (res.success) { if (res.success) {
let resoult = res.result; let resoult = res.result;
resoult.filter(u => { resoult.filter(u => {
u.checked = false; u.checked = false;
if(u.productStatus==1){
this.hegelist.push(u)
}
if(u.productStatus==2){
this.feilist.push(u)
}
if(u.productStatus==3){
this.ranglist.push(u)
}
if(u.productStatus==4){
this.fanlist.push(u)
}if(u.productStatus==0){
this.cardlist.push(u)
}
}); });
this.cardlist = resoult;
} else {
console.log(res.error);
} }
})
.catch(e => {
this.$Message.error("连接错误");
}); });
Api.orderanddispatchinfos({ id: pid }).then(res=>{
if (res.success && res.result) {
this.entity = res.result;
}
})
}, },
// 全选 // 全选
allcheck() { allcheck() {
...@@ -345,7 +342,8 @@ export default { ...@@ -345,7 +342,8 @@ export default {
if (unmb == 3) { if (unmb == 3) {
this.cansolfei(); this.cansolfei();
this.suModal = false; this.suModal = false;
} else { }
if (unmb == 0) {
this.cansolhege(); this.cansolhege();
this.suModal = false; this.suModal = false;
} }
...@@ -356,21 +354,21 @@ export default { ...@@ -356,21 +354,21 @@ export default {
v.productStatus = 0 v.productStatus = 0
this.cardlist.unshift(v); this.cardlist.unshift(v);
}); });
this.hegeplist = []; this.hegelist = [];
}, },
hegeClose(event, name) { hegeClose(event, name) {
let hegeold = this.hegelist; let hegeold = this.hegelist;
let inde = this.hegelist.findIndex(item => { let ind = this.hegelist.findIndex(hgitem => {
return item.id === name; return hgitem.id === name;
}); });
let utemlist = hegeold.filter(utem => { let hgtemlist = hegeold.filter(hgtem => {
if (utem.id == name) { if (hgtem.id == name) {
utem.productStatus = 0 hgtem.productStatus = 0
return utem; return hgtem;
} }
}); });
this.hegelist.splice(inde, 1); this.hegelist.splice(ind, 1);
this.cardlist.splice(0, 0, utemlist[0]); this.cardlist.splice(0, 0, hgtemlist[0]);
}, },
cansolRang() { cansolRang() {
let rangblist = this.ranglist; let rangblist = this.ranglist;
...@@ -426,27 +424,54 @@ export default { ...@@ -426,27 +424,54 @@ export default {
}, },
// 提交 // 提交
submit() { submit() {
this.$Message.success("提交中..."); console.log(this.ranglist)
// this.feilist.cause = this.orderForm.question;
// this.feilist.reporter = this.orderForm.useroption;
let hegeops = {
prodcutIds: [],
productStatus: this.hegelist[0].productStatus||''
};
let rangops = {
prodcutIds: [],
productStatus: this.ranglist[0].productStatus||''
};
let fanxops = {
prodcutIds: [],
productStatus: this.fanlist[0].productStatus||''
};
// let prodcutIds = [],productStatus=this.hegelist[0].productStatus;
this.hegelist.map(uh=>{hegeops.prodcutIds.push(uh.id)})
this.ranglist.map(ur=>{rangops.prodcutIds.push(ur.id)})
this.fanlist.map(uf=>{fanxops.prodcutIds.push(uf.id)})
let lists = [hegeops,rangops,fanxops];
let parmes={ let parmes={
dispatchId: this.$route.query.id, dispatchId: this.$route.query.id,
orderId: this.$route.query.orderId, orderId: this.$route.query.orderId,
list: [ list: lists
{ // [
"productStatus": 0, // this.feilist,
"prodcutIds": [ // this.hegelist,
0 // this.ranglist,
], // this.fanlist,
"cause": "string", // {
"reporter": "string" // "productStatus": 0,
} // "prodcutIds": [
] // 0
// ],
// "cause": "string",
// "reporter": "string"
// }
// ]
}; };
// let executeId = this.$route.query.executeId;
let executeId = this.$route.query.executeId; console.log(parmes)
console.log() Api.submitData(parmes).then(res=>{
// Api.submitData().then(res=>{ if(res.success){
this.$Message.success("提交成功!");
// }) }else{
this.$Message.success("提交失败~");
}
})
}, },
// 送审 // 送审
sendOrder() { sendOrder() {
...@@ -454,6 +479,7 @@ export default { ...@@ -454,6 +479,7 @@ export default {
if (valid) { if (valid) {
// this.$Message.success("送审...") // this.$Message.success("送审...")
this.ModalOrder = true; this.ModalOrder = true;
this.$refs.orderSendReview.intData(this.entity);
} }
}); });
}, },
......
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('productName')">{{info.orderInfo.productName}}</Filed>
<Filed :span="12" :name="l('drawnNumber')">{{info.orderInfo.drawnNumber}}</Filed>
<Filed :span="12" :name="l('status')">{{info.orderInfo.projectNumber}}</Filed>
<Filed :span="12" :name="l('mesCode')">{{info.orderInfo.mesCode}}</Filed>
<Filed :span="12" name="批次号">{{info.orderInfo.batchNumber}}</Filed>
<!-- <Filed :span="8" :name="l('batchNumber')">{{info.orderInfo.batchNumber}}</Filed> -->
<Filed :span="12" :name="l('quantity')">{{info.orderInfo.quantity}}</Filed>
<Filed :span="12" name="节点日期">{{info.orderInfo.demandFinishDate}}</Filed>
<Filed :span="12" name="不合格产品数量">{{info.orderInfo.demandFinishDate}}</Filed>
<Filed :span="12" name="问题原因">{{info.orderInfo.demandFinishDate}}</Filed>
<Filed :span="12" name="责任归属">{{info.orderInfo.demandFinishDate}}</Filed>
<Filed :span="24" name="不合格产品号">{{info.orderInfo.demandFinishDate}}</Filed>
<!-- <Filed :span="8" :name="l('stage')">
<state code="plan.order.stage" :value="info.orderInfo.stage+''" type="text"></state>
</Filed>
<Filed :span="8" :name="l('taskType')">
<state code="plan.order.taskType" :value="info.orderInfo.taskType+''" type="text"></state>
</Filed>
<Filed :span="8" :name="l('materialId')">
<state code="plan.order.material" :value="info.orderInfo.materialId+''" type="text"></state>
</Filed> -->
</Row>
</div>
</template>
<script>
export default {
name: 'orderInfos',
props: ['info'],
async fetch({ store, params }) {
await store.dispatch('loadDictionary') // 加载数据字典
},
data() {
return {}
},
methods: {
arry2Name(arryList, values) {
//预警类别转换
var codes = arryList
var name = ''
for (let i in codes) {
if (values == codes[i].value) {
name = codes[i].name
}
}
return name
},
l(key) {
key = 'order_list' + '.' + key
return this.$t(key)
}
}
}
</script>
\ No newline at end of file
<template>
<div style="width:80%;margin:0 auto" :style="{ height: divHeight }">
<OrderInfos v-if="info.status" :info="info"></OrderInfos>
<!-- 批量送审展示列表 -->
<!-- <Table :info1="info1"
:loading="loading"
border
:columns="columns1"
:data="dataList"
class="tableCommon"
v-if="osrMoreList"
></Table> -->
<Process ref="userProcess" schemaIdVal="c2e09c9b-02a9-4188-97a6-cdb68d50a64a"/>
</div>
</template>
<script>
import OrderInfos from './orderInfos'
import Process from '@/components/orderOperator/process'
export default {
name: 'orderSendReview',
components: {
OrderInfos,
Process
},
data() {
return {
loading: false,
divHeight: '300px',
osrOneList: false, //一条数据显示详细
osrMoreList: false, //多条数据只显示列表
info: {
status: true,
orderInfo: [],
},
orderSearchForm: {
reviewUser: '' //订单名称
},
columns1: [
{
title: '订单编码',
key: 'mesCode',
width: 180,
tooltip: true
},
{
title: '任务类型',
key: 'taskType',
align: 'center',
width: 100,
tooltip: true
},
{
title: '产品名称',
key: 'productName',
tooltip: true
},
{
title: '阶段',
key: 'stage',
width: 80
},
{
title: '材料',
key: 'materialId',
width: 100,
tooltip: true
},
{
title: '数量',
key: 'quantity',
align: 'right',
width: 70
}
],
dataList: [],
dataListRetrun: [], //确定后返回数据
operatorIdList: [], //操作员id
// } //确定后返回数据
}
},
created() {
var theight = window.innerHeight - 630 + 'px'
this.divHeight = theight
},
mounted() {
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight
this.divHeight = window.screenHeight - 630 + 'px'
})()
}
},
methods: {
intData(data) {
//打开modal层时给订单list赋值
if(data){
this.info.Unqualified = data
}
},
returnDataList() {
let ues = this.$refs.userProcess
this.operatorIdList = ues.immutData
return this.operatorIdList
}
}
}
</script>
<template> <template>
<div class> <div class>
<div class="star" v-if="!starmodal"> <div class="star" v-if="dispatchStatus==12">
<a class="start" @click="starFun"> <a class="start" @click="starFun">
<Icon type="md-play" />开工 <Icon type="md-play" />开工
</a> </a>
</div> </div>
<div class="star" v-else-if="starmodal"> <div class="star" v-else>
<div class="flex fc-b"> <div class="flex fc-b">
<Button class="button" size="large" type="primary"> <Button class="button" size="large" type="primary" @click="pauseFun" v-show="btnTextStatus">
<Icon type="ios-pause" />暂停 <Icon type="ios-pause" />
{{btnText}}
</Button> </Button>
<Button class="button" size="large" type="primary"> <Button class="button" size="large" type="primary" @click="goPage(8,'数据填报')">
<Icon type="logo-angular" />交检 <Icon type="logo-angular" />数据填报
</Button> </Button>
<Button class="button" size="large" type="primary"> <Button class="button" size="large" type="primary" @click="goPage(7,'质量判定')">
<Icon type="ios-checkmark-circle-outline" />完工 <Icon type="ios-checkmark-circle-outline" />质量判定
</Button> </Button>
<Button class="button" size="large" type="primary" @click="transferFn"> <Button class="button" size="large" type="primary" @click="transferFn">
<Icon type="md-swap" />转序交接 <Icon type="md-swap" />转序交接
</Button> </Button>
</div> </div>
<div class="star_step"> <div class="star_step" v-if="false">
<div class="step_item" v-for="i of 6" :key="i"> <div class="step_item" v-for="i of 6" :key="i">
<p class="icon_A" v-if="i>=4"> <p class="icon_A" v-if="i>=4">
<Icon type="md-checkmark-circle" /> <Icon type="md-checkmark-circle" />
...@@ -50,7 +51,10 @@ ...@@ -50,7 +51,10 @@
<ul> <ul>
<li>产品名称:{{entity.productName}}</li> <li>产品名称:{{entity.productName}}</li>
<li>图号:{{entity.drawnNumber}}</li> <li>图号:{{entity.drawnNumber}}</li>
<li>状态:{{entity.status}}</li> <li>
状态:
<state code="plan.order.status" ref="state" :value="entity.status" type="text"></state>
</li>
<li>订单编号:{{entity.mesCode}}</li> <li>订单编号:{{entity.mesCode}}</li>
<li>批次号:{{entity.batchNumber}}</li> <li>批次号:{{entity.batchNumber}}</li>
<li>计划数量:{{entity.quantity}}</li> <li>计划数量:{{entity.quantity}}</li>
...@@ -64,13 +68,14 @@ ...@@ -64,13 +68,14 @@
<li>派工数量:{{entity.dispatchQuantity}}</li> <li>派工数量:{{entity.dispatchQuantity}}</li>
<li>人员信息:{{entity.userNames}}</li> <li>人员信息:{{entity.userNames}}</li>
<li>准备工时:{{entity.setupTime}}</li> <li>准备工时:{{entity.setupTime}}</li>
<li>工单状态: <state code="taskList.status" ref="state1" :value="dispatchStatus" type="text"></state></li>
</ul> </ul>
</div> </div>
<div class="img_box fl" style="background:#DDD"> <div class="img_box fl" style="background:#DDD">
<ViewerImg :images="images" /> <ViewerImg :images="images" />
</div> </div>
</div> </div>
<Modal v-model="ransferModal" :title="transferTitle" width="800" > <Modal v-model="ransferModal" :title="transferTitle" width="800">
<!-- <component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" footer-hide/> --> <!-- <component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" footer-hide/> -->
<p>转序交接</p> <p>转序交接</p>
</Modal> </Modal>
...@@ -90,9 +95,29 @@ export default { ...@@ -90,9 +95,29 @@ export default {
ransferModal: false, ransferModal: false,
transferTitle: "确认转序", transferTitle: "确认转序",
images: [], images: [],
iamges1: [
{
thumbnail: iconImg + "noPic_product.png",
source: iconImg + "noPic_product.png"
}
],
entity: {}, entity: {},
id: Number(this.$route.query.id), id: Number(this.$route.query.id),
eid: "" orderId: Number(this.$route.query.orderId),
dispatchStatus: Number(this.$route.query.dispatchStatus),
eid: "",
btnText:
Number(this.$route.query.dispatchStatus) == 14
? "暂停"
: Number(this.$route.query.dispatchStatus) == 5
? "继续"
: "",
btnTextStatus:
Number(this.$route.query.dispatchStatus) == 14
? true
: Number(this.$route.query.dispatchStatus) == 5
? true
: false
}; };
}, },
created() { created() {
...@@ -102,7 +127,7 @@ export default { ...@@ -102,7 +127,7 @@ export default {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
}, },
mounted() { mounted() {
this.load(this.id) this.load(this.id);
window.onresize = () => { window.onresize = () => {
///浏览器窗口大小变化 ///浏览器窗口大小变化
return (() => { return (() => {
...@@ -112,12 +137,81 @@ export default { ...@@ -112,12 +137,81 @@ export default {
}, },
methods: { methods: {
starFun() { starFun() {
this.$Message.success("开工..."); //开工
let params = {
id: this.id,
orderid: this.orderId + ""
};
Api.entrystart(params)
.then(res => {
if (res.success) {
this.$Message.success("开工成功!");
this.dispatchStatus = 14;
this.textBtn();
} else {
this.$Message.error("开工失败!");
}
})
.catch(err => {
this.$Message.error("连接错误");
});
}, },
transferFn(){ pauseFun() {
this.ransferModal = true //暂停or继续
let params = {
id: this.id,
orderid: this.orderId + ""
};
if (this.btnText == "暂停") {
Api.entrypause(params)
.then(res => {
if (res.success) {
this.$Message.success("暂停成功!");
this.dispatchStatus = 5;
this.btnText = "继续";
this.textBtn();
} else {
this.$Message.error("暂停失败!");
}
})
.catch(err => {
this.$Message.error("连接错误");
});
} else if (this.btnText == "继续") {
Api.entrentrycontinuestart(params)
.then(res => {
if (res.success) {
this.$Message.success("继续成功!");
this.dispatchStatus = 14;
this.btnText = "暂停";
this.textBtn();
} else {
this.$Message.error("继续失败!");
}
})
.catch(err => {
this.$Message.error("连接错误");
});
}
},
textBtn() {
//控制第一个按钮的text及显示
if (this.dispatchStatus == 14) {
this.btnText = "暂停";
this.btnTextStatus = true;
} else if (this.dispatchStatus == 5) {
this.btnText = "继续";
this.btnTextStatus = true;
} else {
this.btnText = "";
this.btnTextStatus = false;
}
},
transferFn() {
this.ransferModal = true;
}, },
load(v) { load(v) {
//加载基础数据
let params = { let params = {
id: v id: v
}; };
...@@ -128,13 +222,13 @@ export default { ...@@ -128,13 +222,13 @@ export default {
if (r.result.productId && r.result.productId > 0) { if (r.result.productId && r.result.productId > 0) {
ApiTech.get({ id: r.result.productId }).then(res => { ApiTech.get({ id: r.result.productId }).then(res => {
if (res.success && res.result) { if (res.success && res.result) {
if(res.result.productUrlList&& res.result.productUrlList.length>0) if (
{ res.result.productUrlList &&
res.result.productUrlList.length > 0
) {
this.eid = res.result.productUrlList; this.eid = res.result.productUrlList;
} } else {
else this.eid = this.$u.guid();
{
this.eid=this.$u.guid();
} }
//查询上传到文件服务器上的文件 //查询上传到文件服务器上的文件
let parms = { let parms = {
...@@ -143,18 +237,24 @@ export default { ...@@ -143,18 +237,24 @@ export default {
name: "", name: "",
field: "" field: ""
}; };
this.$http.sysUser.getFile(parms).then(res1 => { this.$http.sysUser
.getFile(parms)
.then(res1 => {
if (res1.data != [] && res1.data.length > 0) { if (res1.data != [] && res1.data.length > 0) {
this.images = []; this.images.splice(0);
res1.data.forEach(datas => { res1.data.forEach(datas => {
let objImag = {}; let objImag = {};
objImag.thumbnail=this.downUrl+datas.downloadPath objImag.thumbnail = this.downUrl + datas.downloadPath;
objImag.source=this.downUrl+datas.downloadPath objImag.source = this.downUrl + datas.downloadPath;
this.images.push(objImag) this.images.push(objImag);
}); });
} else {
this.images = this.iamges1;
} }
})
.catch(err => {
this.images = this.iamges1;
}); });
} }
}); });
} }
...@@ -169,11 +269,36 @@ export default { ...@@ -169,11 +269,36 @@ export default {
}, },
show() { show() {
this.$viewer.show(); this.$viewer.show();
},
goPage(type,title)
{
this.$parent.changeTitle(type,title)
}
},
watch: {
"$route.query.id"(v1) {
this.images = [];
this.id = v1;
this.load(v1);
},
"$route.query.dispatchStatus"(v2) {
this.dispatchStatus = v2;
if (v2 == 14) {
this.btnText = "暂停";
this.btnTextStatus = true;
} else if (v2 == 5) {
this.btnText = "继续";
this.btnTextStatus = true;
} else {
this.btnText = "";
this.btnTextStatus = false;
} }
}, },
watch:{ "$route.query.orderId"(v3) {
images(v){ this.orderId = v3;
this.images=v },
images(v) {
this.images = v;
} }
} }
}; };
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button> <Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button>
</template> </template>
<template slot="card" slot-scope="{row}"> <template slot="card" slot-scope="{row}">
<div class="body" @click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId)"> <div class="body" @click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.status)">
<Row class="title-i"> <Row class="title-i">
<Col :span="10" class="order-code">{{row.productName}}</Col> <Col :span="10" class="order-code">{{row.productName}}</Col>
<Col :span="10" class="order-code">{{row.mesCode}}</Col> <Col :span="10" class="order-code">{{row.mesCode}}</Col>
...@@ -181,7 +181,8 @@ export default { ...@@ -181,7 +181,8 @@ export default {
params.row.id, params.row.id,
params.row.orderId, params.row.orderId,
params.row.executeId, params.row.executeId,
params.row.routingHeaderId params.row.routingHeaderId,
params.row.status
) )
} }
}, },
...@@ -211,11 +212,11 @@ export default { ...@@ -211,11 +212,11 @@ export default {
search() { search() {
this.$refs.grid.reload(this.easySearch); this.$refs.grid.reload(this.easySearch);
}, },
toExecute(id, orderId, executeId,headid) { toExecute(id, orderId, executeId,headid,status) {
//跳转到对应操作页面 获取id:this.$route.query.id //跳转到对应操作页面 获取id:this.$route.query.id
this.$router.push({ this.$router.push({
path: "/produce/execute", path: "/produce/execute",
query: { id: id, orderId: orderId, executeId: executeId,headid:headid } query: { id: id, orderId: orderId, executeId: executeId,headid:headid,dispatchStatus:status }
}); });
}, },
tdStyle(val) { tdStyle(val) {
...@@ -349,8 +350,8 @@ export default { ...@@ -349,8 +350,8 @@ export default {
} }
.box { .box {
color: white; color: white;
width: 70px; width: 80px;
height: 20px; height: 30px;
overflow: hidden; overflow: hidden;
/* Rotate div */ /* Rotate div */
transform: rotate(33deg); transform: rotate(33deg);
......
...@@ -50,6 +50,9 @@ div::-webkit-scrollbar-corner { ...@@ -50,6 +50,9 @@ div::-webkit-scrollbar-corner {
.fc-a { .fc-a {
justify-content: space-around; justify-content: space-around;
} }
.fc-ev {
justify-content: space-evenly;
}
.fd { .fd {
flex-direction: column; flex-direction: column;
} }
...@@ -721,7 +724,7 @@ html [type=button] { ...@@ -721,7 +724,7 @@ html [type=button] {
} }
.waitTask { .waitTask {
/*flex 布局*/ /*flex 布局*/
display: flex!important; display: flex !important;
align-items: center; align-items: center;
width: 200px; width: 200px;
height: 100px; height: 100px;
...@@ -1028,7 +1031,7 @@ html [type=button] { ...@@ -1028,7 +1031,7 @@ html [type=button] {
} }
.menu_side { .menu_side {
background: #fff !important; background: #fff !important;
margin: 5px 0 0 0!important; margin: 5px 0 0 0 !important;
border: 1px solid #dcdee2 !important; border: 1px solid #dcdee2 !important;
} }
.show_menu { .show_menu {
...@@ -1061,3 +1064,6 @@ html [type=button] { ...@@ -1061,3 +1064,6 @@ html [type=button] {
.tohtml img { .tohtml img {
max-width: 95%; max-width: 95%;
} }
.gdShow {
box-shadow: 0px 0px 15px #333;
}
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