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

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

parents 743ae347 99159c18
......@@ -12,69 +12,90 @@ html body {
#__layout {
height: 100%
}
ul,li{
ul,
li {
list-style: none;
}
div::-webkit-scrollbar{
width:10px;
height:10px;
div::-webkit-scrollbar {
width: 10px;
height: 10px;
/**/
}
div::-webkit-scrollbar-track{
}
div::-webkit-scrollbar-track {
background: rgb(239, 239, 239);
border-radius:2px;
}
div::-webkit-scrollbar-thumb{
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-corner{
background: rgba(38,128,235,1);
}
border-radius: 2px;
}
div::-webkit-scrollbar-thumb {
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-corner {
background: rgba(38, 128, 235, 1);
}
/*flex*/
.flex{
.flex {
display: flex;
//采用flex布局
}
.fc-m{
.fc-m {
justify-content: center;
}
.fa-m{
.fa-m {
align-items: center;
}
.fc-e{
.fc-e {
justify-content: flex-end;
}
.fc-b{
.fc-b {
justify-content: space-between;
}
.fc-a{
.fc-a {
justify-content: space-around;
}
.fc-ev{
.fc-ev {
justify-content: space-evenly;
}
.fd{
.fd {
flex-direction: column;
}
.fg{
.fg {
flex-grow: 1;
}
.fs{
.fs {
flex-shrink: 0;
}
.fg2{
.fg2 {
flex-grow: 2;
}
.fos{
.fos {
order: -1;
}
.foe{
.foe {
order: 99;
}
/*字体*/
.ib {
display: inline;
......@@ -113,11 +134,13 @@ div::-webkit-scrollbar{
color: #f23a3a;
cursor: pointer;
}
.stitle{
.stitle {
height: 40px;
background-color: #F5F6FA;
line-height: 40px;
}
//行高
.lh10 {
line-height: 10px
......@@ -142,9 +165,11 @@ div::-webkit-scrollbar{
.lh40 {
line-height: 40px
}
.lh50 {
line-height: 50px
}
/*边距*/
.m10 {
......@@ -250,7 +275,8 @@ div::-webkit-scrollbar{
.mtb10 {
margin: 10px 0;
}
.m15{
.m15 {
margin: 15px;
}
......@@ -301,6 +327,7 @@ div::-webkit-scrollbar{
.pl20 {
padding-left: 20px
}
.pt15 {
padding-top: 15px
}
......@@ -622,10 +649,12 @@ div::-webkit-scrollbar{
.new-orange {
color: #ff9900;
}
.blueTitle{
.blueTitle {
color: #2680EB;
}
.grayTitle{
.grayTitle {
color: #333;
}
......@@ -858,12 +887,14 @@ textarea::-webkit-input-placeholder {
// border-bottom:#e4e6ed solid 1px;
background: #f5f6fa;
}
.tableCommon .tableCommon tr th {
line-height: 24px;
font-size: 14px;
background: #EEEDF0;
}
.tableCommon .tableCommon{
.tableCommon .tableCommon {
tr td {
border: none;
border-bottom: 1px solid #E4E6ED;
......@@ -877,8 +908,9 @@ textarea::-webkit-input-placeholder {
font-size: 14px;
padding: 0 2px;
}
.tableCommon tr td .ivu-table-cell {
padding:0 2px;
padding: 0 2px;
}
......@@ -946,8 +978,9 @@ html [type=button] {
-webkit-appearance: button;
}
.waitTask {/*flex 布局*/
display: flex!important;
.waitTask {
/*flex 布局*/
display: flex !important;
align-items: center;
width: 200px;
height: 100px;
......@@ -969,22 +1002,26 @@ html [type=button] {
.action {
a {
color: #1890FF; //查看和其他
span{
span {
padding: 4px;
}
i{
i {
font-size: 16px;
padding: 4px;
border-radius: 3px;
}
i:hover{
i:hover {
background: #1890FF;
color: #fff;
}
background: transparent;
}
a.detail{
a.detail {
color: #1890FF; //查看和其他
}
......@@ -1005,16 +1042,20 @@ html [type=button] {
// color: #35BD90
// }
a.remove,a.delete {
a.remove,
a.delete {
color: #FF7A8B;
i:hover{
i:hover {
background: #FF7A8B;
color: #fff;
}
}
a.delete {
color: #FF7A8B;
}
a.empower {
color: #FFBD59;
}
......@@ -1050,19 +1091,24 @@ html [type=button] {
// }
}
.icon_box{
.icon_box {
a.icon {
display: inline-grid;
width: 28px;
height: 28px;
line-height: 28px;
margin: 0;
.ivu-icon-ios-eye{
.ivu-icon-ios-eye {
font-weight: bold;
font-size: 24px;
color: #249e91;
};
.ivu-icon-ios-cog{
}
;
.ivu-icon-ios-cog {
font-weight: bold;
font-size: 24px;
color: #249e91;
......@@ -1176,12 +1222,14 @@ html [type=button] {
color: #333;
font-weight: bold;
}
.selectBox{
div.ivu-select-dropdown{
.selectBox {
div.ivu-select-dropdown {
height: auto;
}
}
.footers {
width: 100%;
position: fixed;
......@@ -1214,9 +1262,10 @@ html [type=button] {
border-collapse: collapse;
padding: 2px;
}
.outPdf table thead tr th {
line-height: 40px;
}
}
.outP table,
.outP table tr th,
......@@ -1232,103 +1281,125 @@ html [type=button] {
border-collapse: collapse;
padding: 2px;
}
.outP table thead tr th {
line-height: 25px;
}
//框架页面layout用
.full {
//框架页面layout用
.full {
height: 100%;
background: white;
margin-top: 45px;
.menu {
border: 1px solid #ddd;
padding: 0 5px;
overflow: auto;
.title {
line-height: 45px;
font-size: 14px;
padding: 0 5px;
border-bottom: #e4e6ed solid 1px;
.fr {
float: right;
margin-top: 10px;
cursor: pointer;
}
.fr:hover {
color: #249e91;
}
}
.tree {
height: calc(100% - 150px);
overflow: auto;
}
}
.content {
background: white;
padding: 0 0 0 10px;
//position: absolute;
left: 250px;
right: 10px;
.auto {
flex: 1;
overflow: auto;
position: relative;
min-height: 600px;
}
.fly {
position: relative;
overflow: inherit;
}
.ivu-btn-small {
padding: 0;
background: red;
}
}
}
}
//流程节点样式
.time {
.time {
font-size: 14px;
font-weight: bold;
}
.content {
}
.content {
padding-left: 5px;
}
.h100{
}
.h100 {
height: 100%;
}
}
//显示富文本框样式
.detail .ivu-row .filed-col p .html p{
//显示富文本框样式
.detail .ivu-row .filed-col p .html p {
margin: 0 10px 0 0;
}
}
.con_bord {
margin: 10px 20px;
}
.lay100 {
.lay100 {
height: calc(100vh - 105px);
background-color: #f5f6fa;
.con {
padding: 5px 5px 0px 10px;
}
.con_bord {
margin: 10px 20px;
box-shadow: #c7c7c7 1px 2px 7px 3px;
}
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;
height: 30px;
position: fixed;
top: 100px;
left: 0;
z-index: 9;
.menu_play{
.menu_play {
width: 30px;
height: 30px;
line-height: 34px;
......@@ -1340,17 +1411,24 @@ html [type=button] {
background: #ffffff;
box-shadow: #ccc 2px 2px 4px 1px;
}
.menu_play:hover{
.menu_play:hover {
background-color: #2d8cf0;
color: white;
}
}
.details{
.ivu-input-number{
.details {
.ivu-input-number {
width: 100%;
}
}
//显示富文本框时的图片
.tohtml img{
.tohtml img {
max-width: 95%;
}
\ No newline at end of file
}
.gdShow {
box-shadow: 0px 0px 15px #333;
}
......@@ -46,6 +46,7 @@
@on-drag-drop="onDragDrop"
@on-selection-change="selectionChange"
@on-select="onSelect"
:row-key="rowKey"
></Table>
</div>
<div class="table-footer">
......@@ -225,6 +226,10 @@ export default {
span: {//栅格数
type: Number,
default: 24
},
//table控件children子数据控制功能
rowKey: {
type: [String, Number]
},
gutter:{//间距
type:Number,
......
......@@ -33,14 +33,25 @@
</Col>
<Col :span="24" style="padding:20px 0 0px 10px;margin-bottom:10px;" class="table-solt">
<Table border :columns="columns" :data="checkList" class="tableCommon" height="300">
<template slot-scope="{ row, index }" slot="title">
<div v-if="row.fieldType==1||row.fieldType==2">{{row.title}}</div>
<Input
v-if="row.fieldType==3"
v-model="row.title"
placeholder="请输入"
@on-blur="setRow(row,index)"
/>
</template>
<template slot-scope="{ row, index }" slot="note">
<Input v-model="row.note" placeholder="请输入" @on-blur="setRow(row,index)" />
<div v-if="row.fieldType==1">{{row.note}}</div>
<Input v-model="row.note" placeholder="请输入" @on-blur="setRow(row,index)" v-else />
</template>
<template slot-scope="{ row, index }" slot="datatype">
<!-- <Input v-model="row.datatype" placeholder="请输入" @on-blur="setRow(row,index)" /> -->
<Select v-model="row.datatype" style="width:200px" @on-change="setRow(row,index)">
<div v-if="row.fieldType==1">{{row.datatype}}</div>
<Select v-model="row.datatype" v-else>
<Option
v-for="item in cityList"
@on-change="setRow(row,index)"
v-for="(item,index) in cityList"
:value="item.value"
:key="item.value"
>{{ item.label }}</Option>
......@@ -52,8 +63,15 @@
<template slot-scope="{ row, index }" slot="required">
<Checkbox v-model="row.required" @on-change="setRow(row,index)"></Checkbox>
</template>
<template slot-scope="{ row, index }" slot="isunique">
<Checkbox v-model="row.isunique" @on-change="setRow(row,index)"></Checkbox>
<template slot-scope="{ row, index }" slot="isUnique">
<Checkbox v-model="row.isUnique" @on-change="setRow(row,index)"></Checkbox>
</template>
<template
slot-scope="{ row, index }"
slot="action"
v-if="row.fieldType==2||row.fieldType==3"
>
<a @click="remove(index)" style="color:#FF7A8B">删除</a>
</template>
</Table>
</Col>
......@@ -79,6 +97,7 @@ export default {
upId: 0,
code: 0
},
cityList: [
{
value: "0",
......@@ -112,7 +131,8 @@ export default {
{
title: "属性名称",
key: "title",
align: "center"
align: "center",
slot: "title"
},
{
title: "备注",
......@@ -140,9 +160,15 @@ export default {
},
{
title: "是否唯一属性",
key: "isunique",
key: "isUnique",
align: "center",
slot: "isunique"
slot: "isUnique"
},
{
title: "操作",
slot: "action",
width: 100,
align: "center"
}
],
checkList: [],
......@@ -159,19 +185,47 @@ export default {
},
methods: {
tableData() {
let conditions = [];
let conditions = [
{
conditionalType: "In",
fieldName: "fieldType",
fieldValue: "1,2"
},
{
conditionalType: "Equal",
fieldName: "categoryId",
fieldValue: "0"
}
];
Api.listTable({ conditions: conditions }).then(r => {
if (r.result) {
console.log(r);
this.checkList = r.result;
var arr = r.result;
this.checkList = arr.filter(function(item) {
delete item["id"];
return item
});
}
});
},
remove(index) {
this.checkList.splice(index, 1);
},
setRow() {
this.$set(this.checkList, index, row);
},
addNew() {},
addNew() {
let obj = {
title: "",
note: "",
datatype: "",
required: false,
isunique: false,
fieldType: 3,
categoryId: 0
};
this.checkList.push(obj);
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
......
......@@ -33,14 +33,25 @@
</Col>
<Col :span="24" style="padding:20px 0 0px 10px;margin-bottom:10px;" class="table-solt">
<Table border :columns="columns" :data="checkList" class="tableCommon" height="300">
<template slot-scope="{ row, index }" slot="title">
<div v-if="row.fieldType==1||row.fieldType==2">{{row.title}}</div>
<Input
v-if="row.fieldType==3"
v-model="row.title"
placeholder="请输入"
@on-blur="setRow(row,index)"
/>
</template>
<template slot-scope="{ row, index }" slot="note">
<Input v-model="row.note" placeholder="请输入" @on-blur="setRow(row,index)" />
<div v-if="row.fieldType==1">{{row.note}}</div>
<Input v-model="row.note" placeholder="请输入" @on-blur="setRow(row,index)" v-else />
</template>
<template slot-scope="{ row, index }" slot="datatype">
<!-- <Input v-model="row.datatype" placeholder="请输入" @on-blur="setRow(row,index)" /> -->
<Select v-model="row.datatype" style="width:200px" @on-change="setRow(row,index)">
<div v-if="row.fieldType==1">{{row.datatype}}</div>
<Select v-model="row.datatype" v-else>
<Option
v-for="item in cityList"
@on-change="setRow(row,index)"
v-for="(item,index) in cityList"
:value="item.value"
:key="item.value"
>{{ item.label }}</Option>
......@@ -52,8 +63,15 @@
<template slot-scope="{ row, index }" slot="required">
<Checkbox v-model="row.required" @on-change="setRow(row,index)"></Checkbox>
</template>
<template slot-scope="{ row, index }" slot="isunique">
<Checkbox v-model="row.isunique" @on-change="setRow(row,index)"></Checkbox>
<template slot-scope="{ row, index }" slot="isUnique">
<Checkbox v-model="row.isUnique" @on-change="setRow(row,index)"></Checkbox>
</template>
<template
slot-scope="{ row, index }"
slot="action"
v-if="row.fieldType==2||row.fieldType==3"
>
<a @click="remove(index)" style="color:#FF7A8B">删除</a>
</template>
</Table>
</Col>
......@@ -73,6 +91,7 @@
<script>
import Api from "./api";
export default {
props: ["nodeInfo"],
data() {
return {
entity: {
......@@ -143,6 +162,12 @@ export default {
key: "isunique",
align: "center",
slot: "isunique"
},
{
title: "操作",
slot: "action",
width: 100,
align: "center"
}
],
checkList: [],
......@@ -151,13 +176,22 @@ export default {
}
};
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.tableData();
this.get();
},
methods: {
get() {
Api.get({ id: this.nodeInfo.id }).then(r => {
if (r.result) {
this.entity = r.result;
}
});
},
tableData() {
let conditions = [];
Api.listTable({ conditions: conditions }).then(r => {
......@@ -167,11 +201,24 @@ export default {
}
});
},
remove(index) {
this.checkList.splice(index, 1);
},
setRow() {
this.$set(this.checkList, index, row);
},
addNew() {},
addNew() {
let obj = {
title: "",
note: "",
datatype: "",
required: false,
isunique: false,
fieldType: 3,
categoryId: 0
};
this.checkList.push(obj);
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
......
......@@ -56,7 +56,7 @@
<!-- <Product :parent="parent" /> -->
</Content>
</Layout>
<Modal v-model="modal" :title="title" width="1000" footer-hide>
<Modal v-model="modal" :title="title" width="1000" footer-hide :mask-closable="false">
<component :is="detail" :eid="curId" :nodeInfo="nodeInfo" @on-close="cancel" @on-ok="ok" />
</Modal>
</div>
......
......@@ -32,7 +32,7 @@
@on-selection-change="onSelect"
:batch="true"
:border="false"
:rowKey="id"
rowKey="id"
>
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
......
......@@ -6,7 +6,6 @@
<Changesingle />
</TabPane>
<TabPane label="不合格审理单" name="unqualifiedorder">
<unqualifiedorder ref="unqualifiedorder"></unqualifiedorder>
</TabPane>
<TabPane label="生产协调单" name="technicalcoordination">
......
......@@ -13,4 +13,17 @@ export default {
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 @@
<template>
<div class="order_list">
<div class="card_box">
<Card class="card_order" v-for="(item,index) in listTasks"
@click.native="goPage(item)" :key="index"
<Card
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':
(item.status==7?'card_border4':(item.status==-1?'card_border5':''))))"
>
<!-- :class="item.status=='未开工'? 'card_border1' : (item.status=='执行中' ? 'card_border2': (item.status=='暂停中' ?'card_border3':
(item.status=='交检中'?'card_border4':(item.status=='交接中'?'card_border5':''))))" -->
<p slot="title">{{item.mesCode}}
<state
code="taskList.status"
ref="state" class="fr"
:value="item.status"
type="text"
></state>
(item.status=='交检中'?'card_border4':(item.status=='交接中'?'card_border5':''))))"-->
<p slot="title">
{{item.mesCode}}
<state code="taskList.status" ref="state" class="fr" :value="item.status" type="text"></state>
<!-- <span >{{item.status}}</span> -->
</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>
</Card>
<p>{{listTasks.length}} 个工单</p>
......@@ -30,40 +32,57 @@
<script>
import Api from "../../api";
export default {
name:'orderlist',
data(){
return{
gnFlag:0,
listTasks:[],
dataLength:0,
name: "orderlist",
data() {
return {
gnFlag: 0,
listTasks: [],
dataLength: 0
};
},
props: {
order: {
type: String,
default: '',
}
},
created() {
this.loadTree(-9);
},
methods: {
loadTree(value){
loadTree(value) {
let parmse = {
status: value,
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>
\ No newline at end of file
......@@ -391,7 +391,7 @@
}
.mass_box{
h2{ height: 40px;}
.weizhix{ color: #4d5055;}
// .weizhix{ color: #4d5055;}
.rangb{ color: #515A6E;}
.hege{ color: #2680EB;}
.fanxiu{ color: #FFA000;}
......@@ -416,6 +416,7 @@
margin: 15px 0;
.btn_play{
margin: 0 0 20px 0;
color: #4d5055;
}
.list01{
min-height: 50px;
......
......@@ -25,7 +25,7 @@
</div>
</div>
<!-- 列表卡片主内容 -->
<orderlist ref="orderlist" />
<orderlist ref="orderlist" :order="inputId" />
</Drawer>
<!-- 功能区 -->
<Drawer
......@@ -56,8 +56,9 @@ export default {
detail: null,
row:{},
odermodel: -9,
orderId: null,
condition: []
orderId: this.$route.query.id,
condition: [],
inputId: null,
};
},
created() {
......@@ -66,6 +67,7 @@ export default {
row.orderId = this.$route.query.orderId;
row.executeId = this.$route.query.executeId;
this.row=row
this.inputId=this.$route.query.id
this.detail = () => import("./starOrder/index");
},
async fetch({ store, params }) {
......@@ -124,6 +126,14 @@ export default {
} //测试数据
}
},
watch: {}
watch: {
'$route.query.id'(v)
{
this.row.id = v
this.inputId=v
this.detail = () => import("./starOrder/index")
},
}
};
</script>
......@@ -2,12 +2,11 @@
<template>
<div class="wu_bg">
<div class="mass_box">
<h2 class="weizhix">未执行({{cardlist.length}}</h2>
<div class="mass_list">
<p class="btn_play">
<h2 class="btn_play">未完工({{cardlist.length}}
<Button class="button" type="primary" @click="allcheck">全选</Button>
<Button class="button" type="primary" @click="rechecked">反选</Button>
</p>
</h2>
<div class="list01">
<Tag
type="dot" :checkable="true"
......@@ -121,8 +120,8 @@
<!-- :disabled="hegelist.length!=0&&fanlist.length!=0&&ranglist.length!=0" -->
<Button class="button" size="large" @click="toOrder">取消</Button>
</div>
<!-- 订单送审 -->
<Modal v-model="ModalOrder" title="订单送审" :mask-closable="false" :scrollable="true" fullscreen>
<!-- 不合格品送审 -->
<Modal v-model="ModalOrder" title="不合格品送审" :mask-closable="false" :scrollable="true" fullscreen>
<OrderSendReview ref="orderSendReview"></OrderSendReview>
<div slot="footer">
<Button @click="ModalOrder = false">取消</Button>
......@@ -424,46 +423,48 @@ export default {
},
// 提交
submit() {
console.log(this.ranglist)
// this.feilist.cause = this.orderForm.question;
// this.feilist.reporter = this.orderForm.useroption;
let hegeops = {
let hegeops={}
let rangops={}
let fanxops={}
let feipops={}
let lists = [];
if(this.hegelist.length>0){
hegeops = {
prodcutIds: [],
productStatus: this.hegelist[0].productStatus||''
productStatus: this.hegelist[0].productStatus
};
let rangops = {
this.hegelist.map(uh=>{hegeops.prodcutIds.push(uh.id)})
}
if(this.ranglist.length>0){
rangops = {
prodcutIds: [],
productStatus: this.ranglist[0].productStatus||''
};
let fanxops = {
this.ranglist.map(ur=>{rangops.prodcutIds.push(ur.id)})
}
if(this.fanlist.length>0){
fanxops = {
prodcutIds: [],
productStatus: this.fanlist[0].productStatus||''
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];
}
if(this.feilist.length>0){
feipops = {
prodcutIds: [],
productStatus: this.feilist[0].productStatus,
cause: this.orderForm.question,
reporter: this.orderForm.useroption,
};
this.feilist.map(uf=>{feipops.prodcutIds.push(uf.id)})
}
lists = [hegeops,rangops,fanxops];
console.log(lists)
let parmes={
dispatchId: this.$route.query.id,
orderId: this.$route.query.orderId,
list: lists
// [
// this.feilist,
// this.hegelist,
// this.ranglist,
// this.fanlist,
// {
// "productStatus": 0,
// "prodcutIds": [
// 0
// ],
// "cause": "string",
// "reporter": "string"
// }
// ]
};
// let executeId = this.$route.query.executeId;
console.log(parmes)
Api.submitData(parmes).then(res=>{
if(res.success){
......@@ -475,11 +476,24 @@ export default {
},
// 送审
sendOrder() {
let orderse = []
this.feilist.map(item=>{
orderse.push(item.prefix+'.'+item.code)
})
let strOder = orderse.join(",")
console.log(strOder)
this.entity.cause = this.orderForm.question;
this.entity.reporter = this.orderForm.useroption;
this.entity.strOder = strOder;
console.log(this.entity)
this.$refs["formValidate"].validate(valid => {
if (valid) {
// this.$Message.success("送审...")
let parmeseData = this.entity
console.log(parmeseData)
this.$Message.success("送审")
this.ModalOrder = true;
this.$refs.orderSendReview.intData(this.entity);
this.$refs.orderSendReview.alertFun(parmeseData);
// this.$refs.orderSendReview.intData(this.entity);
}
});
},
......
<template>
<div class="detail">
<Row>
<Filed :span="6" :name="l('productName')">{{info.orderInfo.productName}}</Filed>
<Filed :span="6" :name="l('drawnNumber')">{{info.orderInfo.drawnNumber}}</Filed>
<Filed :span="6" :name="l('status')">{{info.orderInfo.status}}</Filed>
<Filed :span="6" :name="l('mesCode')">{{info.orderInfo.mesCode}}</Filed>
<Filed :span="6" :name="l('batchNumber')">{{info.orderInfo.batchNumber}}</Filed>
<Filed :span="6" :name="l('quantity')">{{info.orderInfo.quantity}}</Filed>
<Filed :span="6" :name="l('demandFinishDate')">{{info.orderInfo.demandFinishDate}}</Filed>
<Filed :span="6" :name="l('urgencyLevel')">
<state code="plan.order.urgencyLevel" :value="info.orderInfo.urgencyLevel+''" type="text"></state>
</Filed>
<Filed :span="6" :name="l('stage')">
<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="6" :name="l('taskType')">
<Filed :span="8" :name="l('taskType')">
<state code="plan.order.taskType" :value="info.orderInfo.taskType+''" type="text"></state>
</Filed>
<Filed :span="6" :name="l('materialId')">
<Filed :span="8" :name="l('materialId')">
<state code="plan.order.material" :value="info.orderInfo.materialId+''" type="text"></state>
</Filed>
</Filed> -->
</Row>
</div>
</template>
......@@ -47,7 +49,7 @@ export default {
return name
},
l(key) {
key = 'orderInfo' + '.' + key
key = 'order_list' + '.' + key
return this.$t(key)
}
}
......
<template>
<div style="width:80%;margin:0 auto" :style="{ height: divHeight }">
1111
<OrderInfos v-if="info.status" :info="info"></OrderInfos>
<Table
<!-- 批量送审展示列表 -->
<!-- <Table :info1="info1"
:loading="loading"
border
:columns="columns1"
:data="dataList"
class="tableCommon"
v-if="osrMoreList"
></Table>
<Process
ref="userProcess"
schemaIdVal="123327da-42b3-41f6-b785-cf933f137a95"
/>
></Table> -->
<Process ref="userProcess" schemaIdVal="c2e09c9b-02a9-4188-97a6-cdb68d50a64a"/>
</div>
</template>
......@@ -33,17 +32,7 @@ export default {
osrMoreList: false, //多条数据只显示列表
info: {
status: true,
orderInfo: []
},
ruleValidate: {
// reviewUser: [
// {
// required: true,
// message: '请选择审批人',
// trigger: 'blur',
// type: 'array'
// }
// ]
orderInfo: [],
},
orderSearchForm: {
reviewUser: '' //订单名称
......@@ -54,93 +43,72 @@ export default {
key: 'mesCode',
width: 180,
tooltip: true
},{
},
{
title: '任务类型',
key: 'taskType',
align: 'center',
width: 100,
tooltip: true
},
{
title: '产品名称',
key: 'productName',
tooltip: true
},{
title: '图号',
key: 'drawnNumber',
},
{
title: '阶段',
key: 'stage',
width: 80
},{
title: '状态',
key: 'status',
},
{
title: '材料',
key: 'materialId',
width: 100,
tooltip: true
},{
title: '批次号',
key: 'batchNumber',
},
{
title: '数量',
key: 'quantity',
align: 'right',
width: 70
},{
title: '节点日期',
key: 'demandFinishDate',
width: 100,
tooltip: true
},{
title: '计划数量',
key: 'quantity',
width: 100,
tooltip: true
},
}
],
dataList: [],
dataListRetrun: [], //确定后返回数据
dataListRetrunNew: {
schemaId: '123327da-42b3-41f6-b785-cf933f137a95', //订单送审的schemaId
idList: [], //订单id List
codeList: [], //订单编号List
operatorIdList: [] //操作员id
} //确定后返回数据
operatorIdList: [], //操作员id
// } //确定后返回数据
}
},
created() {
var theight = window.innerHeight - 460 + 'px'
var theight = window.innerHeight - 630 + 'px'
this.divHeight = theight
},
mounted() {
//this.dataList=;
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight
this.divHeight = window.screenHeight - 460 + 'px'
this.divHeight = window.screenHeight - 630 + 'px'
})()
}
},
methods: {
alertFun(parmeseData){
console.warn(parmeseData)
alert("加载数据")
},
intData(data) {
//打开modal层时给订单list赋值
this.orderInfo = []
this.dataList = []
this.dataList = data
this.osrOneList = false
this.osrMoreList = false
this.orderSearchForm.reviewUser = ''
if (data.length == 1) {
this.info.status = true
this.info.orderInfo = data[0]
} else if (data.length > 1) {
this.osrMoreList = true
this.info.status = false
this.info.orderInfo = []
console.warn(data)
//打开modal层时给orderInfo赋值
if(data){
this.info.orderInfo = data
}
},
returnDataList() {
this.dataListRetrunNew.idList = []
this.dataListRetrunNew.codeList = []
this.dataListRetrunNew.operatorIdList = []
this.dataList.forEach((item) => {
this.dataListRetrunNew.idList.push(item.id)
this.dataListRetrunNew.codeList.push(item.mesCode)
})
//this.dataListRetrunNew.operatorIdList= this.orderSearchForm.reviewUser
let ues = this.$refs.userProcess
this.dataListRetrunNew.operatorIdList = ues.immutData
// alert(JSON.stringify( this.dataListRetrunNew))
//返回审批数据
return this.dataListRetrunNew
this.operatorIdList = ues.immutData
return this.operatorIdList
}
}
}
......
<template>
<div class>
<div class="star" v-if="!starmodal">
<div class="star" v-if="dispatchStatus==12">
<a class="start" @click="starFun">
<Icon type="md-play" />开工
</a>
</div>
<div class="star" v-else-if="starmodal">
<div class="star" v-else>
<div class="flex fc-b">
<Button class="button" size="large" type="primary">
<Icon type="ios-pause" />暂停
<Button class="button" size="large" type="primary" @click="pauseFun" v-show="btnTextStatus">
<Icon type="ios-pause" />
{{btnText}}
</Button>
<Button class="button" size="large" type="primary">
<Icon type="logo-angular" />交检
<Button class="button" size="large" type="primary" @click="goPage(8,'数据填报')">
<Icon type="logo-angular" />数据填报
</Button>
<Button class="button" size="large" type="primary">
<Icon type="ios-checkmark-circle-outline" />完工
<Button class="button" size="large" type="primary" @click="goPage(7,'质量判定')">
<Icon type="ios-checkmark-circle-outline" />质量判定
</Button>
<Button class="button" size="large" type="primary" @click="transferFn">
<Icon type="md-swap" />转序交接
</Button>
</div>
<div class="star_step">
<div class="star_step" v-if="false">
<div class="step_item" v-for="i of 6" :key="i">
<p class="icon_A" v-if="i>=4">
<Icon type="md-checkmark-circle" />
......@@ -50,7 +51,10 @@
<ul>
<li>产品名称:{{entity.productName}}</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.batchNumber}}</li>
<li>计划数量:{{entity.quantity}}</li>
......@@ -64,13 +68,14 @@
<li>派工数量:{{entity.dispatchQuantity}}</li>
<li>人员信息:{{entity.userNames}}</li>
<li>准备工时:{{entity.setupTime}}</li>
<li>工单状态: <state code="taskList.status" ref="state1" :value="dispatchStatus" type="text"></state></li>
</ul>
</div>
<div class="img_box fl" style="background:#DDD">
<ViewerImg :images="images" />
</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/> -->
<p>转序交接</p>
</Modal>
......@@ -90,9 +95,29 @@ export default {
ransferModal: false,
transferTitle: "确认转序",
images: [],
iamges1: [
{
thumbnail: iconImg + "noPic_product.png",
source: iconImg + "noPic_product.png"
}
],
entity: {},
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() {
......@@ -102,7 +127,7 @@ export default {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.load(this.id)
this.load(this.id);
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
......@@ -112,12 +137,81 @@ export default {
},
methods: {
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(){
this.ransferModal = true
pauseFun() {
//暂停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) {
//加载基础数据
let params = {
id: v
};
......@@ -128,13 +222,13 @@ export default {
if (r.result.productId && r.result.productId > 0) {
ApiTech.get({ id: r.result.productId }).then(res => {
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;
}
else
{
this.eid=this.$u.guid();
} else {
this.eid = this.$u.guid();
}
//查询上传到文件服务器上的文件
let parms = {
......@@ -143,18 +237,24 @@ export default {
name: "",
field: ""
};
this.$http.sysUser.getFile(parms).then(res1 => {
this.$http.sysUser
.getFile(parms)
.then(res1 => {
if (res1.data != [] && res1.data.length > 0) {
this.images = [];
this.images.splice(0);
res1.data.forEach(datas => {
let objImag = {};
objImag.thumbnail=this.downUrl+datas.downloadPath
objImag.source=this.downUrl+datas.downloadPath
this.images.push(objImag)
objImag.thumbnail = this.downUrl + datas.downloadPath;
objImag.source = this.downUrl + datas.downloadPath;
this.images.push(objImag);
});
} else {
this.images = this.iamges1;
}
})
.catch(err => {
this.images = this.iamges1;
});
}
});
}
......@@ -169,11 +269,36 @@ export default {
},
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:{
images(v){
this.images=v
"$route.query.orderId"(v3) {
this.orderId = v3;
},
images(v) {
this.images = v;
}
}
};
......
......@@ -27,7 +27,7 @@
<Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button>
</template>
<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">
<Col :span="10" class="order-code">{{row.productName}}</Col>
<Col :span="10" class="order-code">{{row.mesCode}}</Col>
......@@ -181,7 +181,8 @@ export default {
params.row.id,
params.row.orderId,
params.row.executeId,
params.row.routingHeaderId
params.row.routingHeaderId,
params.row.status
)
}
},
......@@ -211,11 +212,11 @@ export default {
search() {
this.$refs.grid.reload(this.easySearch);
},
toExecute(id, orderId, executeId,headid) {
toExecute(id, orderId, executeId,headid,status) {
//跳转到对应操作页面 获取id:this.$route.query.id
this.$router.push({
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) {
......@@ -349,8 +350,8 @@ export default {
}
.box {
color: white;
width: 70px;
height: 20px;
width: 80px;
height: 30px;
overflow: hidden;
/* Rotate div */
transform: rotate(33deg);
......
......@@ -50,6 +50,9 @@ div::-webkit-scrollbar-corner {
.fc-a {
justify-content: space-around;
}
.fc-ev {
justify-content: space-evenly;
}
.fd {
flex-direction: column;
}
......@@ -721,7 +724,7 @@ html [type=button] {
}
.waitTask {
/*flex 布局*/
display: flex!important;
display: flex !important;
align-items: center;
width: 200px;
height: 100px;
......@@ -1028,7 +1031,7 @@ html [type=button] {
}
.menu_side {
background: #fff !important;
margin: 5px 0 0 0!important;
margin: 5px 0 0 0 !important;
border: 1px solid #dcdee2 !important;
}
.show_menu {
......@@ -1061,3 +1064,6 @@ html [type=button] {
.tohtml img {
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