Commit 20adf7bb authored by 仇晓婷's avatar 仇晓婷

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

parents 3c188511 de0677ce
......@@ -30,7 +30,7 @@ export default {
this.getCodes();
},
props: {
eid: Number,
eid: [Number,String],
value: [String, Number, Array],
placeholder: {
type: String,
......
<template>
<div>
<viewer :options="options" :images="images" @inited="inited" class="viewer" ref="viewer">
<template slot-scope="scope">
<figure class="images">
<div class="image-wrapper" v-for="{source, thumbnail} in scope.images" :key="source">
<img
class="image"
:src="thumbnail"
:data-source="source"
:alt="source.split('?image=').pop()"
/>
</div>
</figure>
</template>
</viewer>
</div>
</template>
<script>
export default {
name:'viewerImg',
props: {
images: {
type: Array,
default: []
}
},
data() {
return {
options: {
inline: true,
button: true,
navbar: true,
title: false,
toolbar: true,
tooltip: true,
movable: true,
zoomable: true,
rotatable: true,
scalable: true,
transition: true,
fullscreen: true,
keyboard: true,
url: "data-source"
}
// images: [...sourceImages].splice(0, 5)
};
},
computed: {},
methods: {
inited(viewer) {
this.$viewer = viewer;
}
},
watch: {
images(v) {
if (v && v.length > 0) {
this.images = v;
}
}
}
};
</script>
<style lang="less" scoped>
.viewer {
height: 100%;
.images {
height: 100%;
display: flex;
justify-content: center;
align-content: center;
align-items: center;
flex-wrap: wrap;
padding: 5px;
.image-wrapper {
display: inline-block;
width: calc(10% - 20px);
margin: 5px 5px 0 5px;
.image {
width: 100%;
cursor: pointer;
display: inline-block;
}
}
}
}
</style>
\ No newline at end of file
......@@ -21584,6 +21584,11 @@
"integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=",
"dev": true
},
"throttle-debounce": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz",
"integrity": "sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg=="
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
......@@ -22119,6 +22124,15 @@
"resolved": "http://r.cnpmjs.org/v-click-outside-x/download/v-click-outside-x-3.7.1.tgz",
"integrity": "sha1-qgPqoOQeRMtSB9z4bC2fDdZAhME="
},
"v-viewer": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.5.1.tgz",
"integrity": "sha512-Q5ICKzmYQD0qTf+hti2Lhgy6UYY2zgFr+YrN9a3yPgr7pOjYrG405Pz4+6Z6FXlhdhGysCWFJUNCI2tsIyvjWQ==",
"requires": {
"throttle-debounce": "^2.0.1",
"viewerjs": "^1.5.0"
}
},
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "http://r.cnpmjs.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
......@@ -22164,6 +22178,11 @@
"v-click-outside-x": "^3.7.1"
}
},
"viewerjs": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.5.0.tgz",
"integrity": "sha512-ZiJ0vrXDvomLSY3ixaZCJtmdenomsvPPQwZKwvtXUMCiO2HHtFGoB/KqpS9QzABSeKaRLfcENp1uRYJ7l1MkYQ=="
},
"vm-browserify": {
"version": "1.1.2",
"resolved": "http://r.cnpmjs.org/vm-browserify/download/vm-browserify-1.1.2.tgz",
......
......@@ -42,6 +42,7 @@
"quill-image-resize-module": "^3.0.0",
"screenfull": "^5.0.2",
"ua-parser-js": "^0.7.18",
"v-viewer": "^1.5.1",
"view-design": "^4.1.3",
"vue-echarts": "^4.0.3",
"vue-i18n": "^8.15.5",
......
......@@ -44,22 +44,6 @@
</Col>
</Row>
</div>
<!-- <Tag type="dot" slot-scope="{row}" :checkable="true" class="tag_card" size="large" :name="row.id" :key="row.index" :checked="row.checked"
color="primary" @on-change="changeCards" >
<Row :gutter="16">
<Col span="6">
<div class="file">
<Icon type="ios-paper" v-if="row.id%2==0"/>
<Icon type="md-film" v-else/>
</div>
</Col>
<Col span="18">
<p><b>{{row.title}}</b></p>
<p>{{row.creationTime}}</p>
<p>{{row.id}}{{row.creator}}</p>
</Col>
</Row>
</Tag>-->
</template>
</DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide>
......
import Api from '@/plugins/request'
export default {
index: `${PlanUrl}/orderexecutequalityrecord/dispatchproductcodes`,
// 质量判定获取所有产品数据
getpaged(params) {
return Api.get(`${PlanUrl}/orderexecutequalityrecord/dispatchproductcodes`, params);
},
// 质量判定提交
submitData(params) {
return Api.post(`${PlanUrl}/orderexecutequalityrecord/checkdispatchproduct`, params);
},
//工单联合信息
orderanddispatchinfos(params) {
return Api.get(`${PlanUrl}/orderexecutenew/orderanddispatchinfos`, params);
},
}
\ No newline at end of file
......@@ -155,7 +155,7 @@
}
.ivu-drawer-body {
padding: 0;
height: calc(100% - 210px);
height: calc(100% - 115px);
.order_list{
.select_t {
padding: 15px 20px;
......@@ -391,8 +391,9 @@
}
.mass_box{
h2{ height: 40px;}
.heger{ color: #2680EB;}
.weizhix{ color: #4d5055;}
.rangb{ color: #515A6E;}
.hege{ color: #2680EB;}
.fanxiu{ color: #FFA000;}
.feipin{ color: #FE7777;}
.chuanse{
......@@ -403,6 +404,7 @@
margin: 0 30px 0 0;
color: #fff;
}
.button04{ background: #2680EB; }
.button01{ background: #515A6E; }
.button02{ background: #FFA000; }
.button03{ background: #FE7777; }
......@@ -439,6 +441,11 @@
}
}
}
.hege_box{
.ivu-tag-dot-inner{
background: #2680EB;
}
}
.rangbu{
.list02{
.tag_card02{
......
......@@ -17,29 +17,17 @@
<div class="header">
<a class="gd_tt" @click="goToOrder"><Icon type="ios-undo-outline" />工单列表</a>
<Dictionary code="taskList.status" class="select_star fr" v-model="odermodel" @on-change="searchOrder"></Dictionary>
<!-- <Select v-model="odermodel" style="width:100px" @on-change="searchOrder">
<Option v-for="item in oderList" :value="item.value" :key="item.index">{{ item.label }} -->
<!-- <state
code="taskList.status"
ref="state" class="fr"
:value="item.value"
type="text"
></state>-->
</Option>
</Select>
<!-- <a class="openAll"><Icon type="ios-list" size="18" /> 展开全部列表</a> -->
</div>
<div class="select_t">
<!-- <Select v-model="odermodel" style="width:100px" @on-change="searchOrder">
<Option v-for="item in oderList" :value="item.value" :key="item.index">{{ item.label }}</Option>
</Select>-->
<!-- <span class="gd_length">{{listLength}}</span> -->
<Button class>时间正序排列</Button>
</div>
</div>
<!-- 列表卡片主内容 -->
<orderlist ref="orderlist" />
</Drawer>
<!-- title="功能区" -->
<!-- 功能区 -->
<Drawer
class="gn_box"
:closable="false"
......@@ -60,56 +48,19 @@ export default {
return {
orderTitle: "进度汇报",
orderindex: 0,
gdId: 0,
listLength: 0, //工单数量
starmodal: true,
orderlistMode: false,
functionalMode: false,
gdId: 0,
detail: null,
row:{},
odermodel: -9,
orderId: null,
row:{},
oderList: [
{
value: -9,
label: "全部"
},
{
value: 12,
label: "未开工"
},
{
value: 14,
label: "执行中"
},
{
value: 0,
label: "已完成"
},
{
value: 5,
label: "暂停中"
},
{
value: 7,
label: "已终止"
},
{
value: -1,
label: "待派工"
}
// value: '交检中',
// label: '交检中'
// },{
// value: '交接中',
// label: '交接中'
// },{
],
condition: []
};
},
created() {
// this.orderId = this.$route.query.orderId;
let row={}
row.id = this.$route.query.id;
row.orderId = this.$route.query.orderId;
......
......@@ -2,7 +2,7 @@
<template>
<div class="wu_bg">
<div class="mass_box">
<h2 class="heger">合格{{cardlist.length}}</h2>
<h2 class="weizhix">未执行{{cardlist.length}}</h2>
<div class="mass_list">
<p class="btn_play">
<Button class="button" type="primary" @click="allcheck">全选</Button>
......@@ -10,79 +10,142 @@
</p>
<div class="list01">
<!-- -->
<Tag type="dot" :checkable="true" class="tag_card" size="large" v-for="(item,index) in cardlist" :name="item.id" :key="index" :checked="item.checked"
color="primary" @on-change="changeCards" >
{{item.prefix}}.{{item.code}}</Tag>
<Tag
type="dot"
:checkable="true"
class="tag_card"
size="large"
v-for="(item,index) in cardlist"
:name="item.id"
:key="index"
:checked="item.checked"
color="primary"
@on-change="changeCards"
>{{item.prefix}}.{{item.code}}</Tag>
</div>
</div>
<div class="chuanse">
<Button class="button04" @click="chansehege">合格</Button>
<Button class="button01" @click="chanserang">让步</Button>
<Button class="button02" @click="chansefan">返修</Button>
<Button class="button03" @click="chansefei">不合格品</Button>
</div>
<div class="mass_list hege_box" v-if="hegelist.length>0">
<h2 class="hege">
合格({{hegelist.length}}
<Button class="fr" @click="consoleFun(0)">
<Icon type="md-close" />
</Button>
</h2>
<div class="list02">
<Tag
type="dot"
class="tag_card02"
v-for="(item,index) in hegelist"
:key="index"
:name="item.id"
:checkable="false"
closable
@on-close="hegeClose"
>{{ item.code}}</Tag>
</div>
</div>
<div class="mass_list rangbu" v-if="ranglist.length>0">
<h2 class="rangb">让步({{ranglist.length}}
<h2 class="rangb">
让步({{ranglist.length}}
<!-- consoleFun cansolRang -->
<Button class="fr" @click="consoleFun(1)"><Icon type="md-close" /></Button>
<Button class="fr" @click="consoleFun(1)">
<Icon type="md-close" />
</Button>
</h2>
<div class="list02">
<Tag type="dot" class="tag_card02" v-for="(item,index) in ranglist" :key="index" :name="item.id" :checkable="false" closable @on-close="handleClose">{{ item.code}}</Tag>
<Tag
type="dot"
class="tag_card02"
v-for="(item,index) in ranglist"
:key="index"
:name="item.id"
:checkable="false"
closable
@on-close="handleClose"
>{{ item.code}}</Tag>
</div>
</div>
<div class="mass_list fanxiu_box" v-if="fanlist.length>0">
<h2 class="fanxiu">返修({{fanlist.length}}
<!-- consoleFun(1) cansolfan -->
<Button class="fr" @click="consoleFun(2)"><Icon type="md-close" /></Button>
<h2 class="fanxiu">
返修({{fanlist.length}}
<Button class="fr" @click="consoleFun(2)">
<Icon type="md-close" />
</Button>
</h2>
<div class="list02">
<Tag type="dot" class="tag_card02" v-for="(item,index) in fanlist" :key="index" :name="item.id" :checkable="false" closable @on-close="fanClose">{{ item.code}}</Tag>
<Tag
type="dot"
class="tag_card02"
v-for="(item,index) in fanlist"
:key="index"
:name="item.id"
:checkable="false"
closable
@on-close="fanClose"
>{{ item.code}}</Tag>
</div>
</div>
<div class="mass_list fei_box" v-if="feilist.length>0">
<h2 class="feipin">不合格品({{feilist.length}}
<!-- consoleFun(1) cansolfei-->
<Button class="fr" @click="consoleFun(3)"><Icon type="md-close" /></Button>
<h2 class="feipin">
不合格品({{feilist.length}}
<Button class="fr" @click="consoleFun(3)">
<Icon type="md-close" />
</Button>
</h2>
<div class="list02">
<Tag type="dot" class="tag_card02" v-for="(item,index) in feilist" :key="index" :name="item.id" :checkable="false" closable @on-close="feiClose">{{ item.code}}</Tag>
<Tag
type="dot"
class="tag_card02"
v-for="(item,index) in feilist"
:key="index"
:name="item.id"
:checkable="false"
closable
@on-close="feiClose"
>{{ item.code}}</Tag>
</div>
</div>
<div class="fei_right" v-if="feilist.length>0">
<Form
:model="orderForm"
:label-width="110"
:rules="rules"
ref="formValidate"
>
<Form :model="orderForm" :label-width="110" :rules="rules" ref="formValidate">
<FormItem label="问题原因:" prop="question" style="width:100%">
<Select v-model="orderForm.question"style="width:80%">
<Option value="" class="option-text">请选择</Option><!-- :disabled="feilist.length == 0 ? true:false" placeholder="选择问题原因" -->
<Option v-for="item in problemList" :value="item.problem" :key="item.index">{{ item.problem }}</Option>
<Select v-model="orderForm.question" style="width:80%">
<Option value class="option-text">请选择</Option>
<!-- :disabled="feilist.length == 0 ? true:false" placeholder="选择问题原因" -->
<Option
v-for="item in problemList"
:value="item.problem"
:key="item.index"
>{{ item.problem }}</Option>
</Select>
</FormItem>
<FormItem label="责任归属:" prop="useroption" style="width:100%">
<Select v-model="orderForm.useroption" style="width:80%">
<Option value="" class="option-text">请选择</Option>
<Option value class="option-text">请选择</Option>
<Option v-for="item in blameList" :value="item.user" :key="item.index">{{ item.user }}</Option>
</Select>
</FormItem>
</Form>
</div>
</div>
<div class="futer flex fc-ev" v-if="ranglist.length>0||fanlist.length>0||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' @click="toOrder"> 取消</Button>
<div class="futer flex fc-ev" v-if="ranglist.length>0||fanlist.length>0||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" @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>
......@@ -90,29 +153,26 @@
</div>
</Modal>
<!-- 确定弹框 @on-cancel="cancelModal"-->
<Modal
v-model="suModal"
:title="mTitle"
@on-ok="okModal">
<Modal v-model="suModal" :title="mTitle" @on-ok="okModal">
<p>是否全部取消?</p>
</Modal>
</div>
</template>
<script>
import Api from "../api";
import OrderSendReview from '@/components/orderOperator/orderSendReview'
import OrderSendReview from "@/components/orderOperator/orderSendReview";
export default {
name:'starOrder',
components:{OrderSendReview},
data(){
return{
checkedflag:false,
ModalOrder:false,
suModal:false,
mTitle:'确认弹框',
num:'',
surMasg:'',
rules:{
name: "starOrder",
components: { OrderSendReview },
data() {
return {
checkedflag: false,
ModalOrder: false,
suModal: false,
mTitle: "确认弹框",
num: "",
surMasg: "",
rules: {
question: [
{
required: true,
......@@ -126,30 +186,31 @@ export default {
message: "请选择责任人",
trigger: "change"
}
],
]
},
orderForm:{
question:'',
useroption:''
orderForm: {
question: "",
useroption: ""
},
cardlist:[],
ranglist:[],
fanlist:[],
feilist:[],
problemList:[
{ problem:"问题描述01" , },
{ problem:"问题描述02" , },
{ problem:"问题描述03" , },
cardlist: [],
hegelist: [],
ranglist: [],
fanlist: [],
feilist: [],
problemList: [
{ problem: "问题描述01" },
{ problem: "问题描述02" },
{ problem: "问题描述03" }
],
blameList:[
{ user:"责任人01" , },
{ user:"责任人02" , },
{ user:"责任人03" , },
],
}
blameList: [
{ user: "责任人01" },
{ user: "责任人02" },
{ user: "责任人03" }
]
};
},
created() {
this.loadFun()
this.loadFun();
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
......@@ -163,167 +224,246 @@ export default {
};
},
methods: {
loadFun(){
let pid = this.$route.query.id // JSON.stringify()
Api.getpaged({id:pid}).then(res=>{
if(res.success){
let resoult = res.result
resoult.filter(u=>{ u.checked = false})
this.cardlist = resoult
}else{
console.log(res.error)
loadFun() {
let pid = this.$route.query.id; // JSON.stringify()
Api.getpaged({ id: pid }).then(res => {
if (res.success) {
let resoult = res.result;
resoult.filter(u => {
u.checked = false;
});
this.cardlist = resoult;
} else {
console.log(res.error);
}
})
});
},
// 全选
allcheck(){
let cardslist = this.cardlist
cardslist.map((a)=>{
a.checked = true
})
allcheck() {
let cardslist = this.cardlist;
cardslist.map(a => {
a.checked = true;
});
},
// 反选
rechecked(){
let cardslist = this.cardlist
cardslist.map((b)=>{ b.checked = !b.checked })
rechecked() {
let cardslist = this.cardlist;
cardslist.map(b => {
b.checked = !b.checked;
});
},
// 单选
changeCards(checked,name){
let lists = this.cardlist
lists.map((u,i)=>{
if(u.id==name){ u.checked = true }
})
changeCards(checked, name) {
let lists = this.cardlist;
lists.map((u, i) => {
if (u.id == name) {
u.checked = true;
}
});
},
// 让步
chanserang(){
let oldList = this.cardlist
let indese=[]
oldList.map((u,i)=>{
if(u.checked){
this.ranglist.push(u)
// 合格 1
chansehege() {
let oldList = this.cardlist;
let indese = [];
oldList.map((u, i) => {
if (u.checked) {
u.productStatus = 1;
this.hegelist.push(u);
}
})
indese = oldList.filter(item => !this.ranglist.includes(item))
this.cardlist = indese
});
indese = oldList.filter(item => !this.hegelist.includes(item));
this.cardlist = indese;
},
// 返工
chansefan(){
let oldList = this.cardlist
let indese=[]
oldList.map((u,i)=>{
if(u.checked){
this.fanlist.push(u)
// 让步 3
chanserang() {
let oldList = this.cardlist;
let indese = [];
oldList.map((u, i) => {
if (u.checked) {
u.productStatus = 3;
this.ranglist.push(u);
}
})
indese = oldList.filter(item => !this.fanlist.includes(item))
this.cardlist = indese
});
indese = oldList.filter(item => !this.ranglist.includes(item));
this.cardlist = indese;
},
// 不合格品
chansefei(){
let oldList = this.cardlist
let indese=[]
oldList.map((u,i)=>{
if(u.checked){
this.feilist.push(u)
// 返修 4
chansefan() {
let oldList = this.cardlist;
let indese = [];
oldList.map((u, i) => {
if (u.checked) {
u.productStatus = 4;
this.fanlist.push(u);
}
})
indese = oldList.filter(item => !this.feilist.includes(item))
this.cardlist = indese
});
indese = oldList.filter(item => !this.fanlist.includes(item));
this.cardlist = indese;
},
handleClose(event,name){
let rangold = this.ranglist
// 不合格品(报废)2
chansefei() {
let oldList = this.cardlist;
let indese = [];
oldList.map((u, i) => {
if (u.checked) {
u.productStatus = 2;
this.feilist.push(u);
}
});
indese = oldList.filter(item => !this.feilist.includes(item));
this.cardlist = indese;
},
// 让步关闭
handleClose(event, name) {
let rangold = this.ranglist;
let index = this.ranglist.findIndex(item => {
return item.id === name;
});
let itemlist = rangold.filter(item => {
if(item.id === name){ return item }
})
if (item.id === name) {
item.productStatus = 0
return item;
}
});
this.ranglist.splice(index, 1);
this.cardlist.splice( 0,0, itemlist[0]);
this.cardlist.splice(0, 0, itemlist[0]);
},
consoleFun(u){
this.suModal = true
this.num = u
consoleFun(u) {
this.suModal = true;
this.num = u;
},
okModal(){
let unmb = this.num
if(unmb==1){
this.cansolRang()
this.suModal = false
okModal() {
let unmb = this.num;
if (unmb == 1) {
this.cansolRang();
this.suModal = false;
}
if (unmb == 2) {
this.cansolfan();
this.suModal = false;
}
if(unmb==2){
this.cansolfan()
this.suModal = false
if (unmb == 3) {
this.cansolfei();
this.suModal = false;
} else {
this.cansolhege();
this.suModal = false;
}
if(unmb==3){
this.cansolfei()
this.suModal = false
},
cansolhege() {
let hegeplist = this.hegelist;
hegeplist.map(v => {
v.productStatus = 0
this.cardlist.unshift(v);
});
this.hegeplist = [];
},
hegeClose(event, name) {
let hegeold = this.hegelist;
let inde = this.hegelist.findIndex(item => {
return item.id === name;
});
let utemlist = hegeold.filter(utem => {
if (utem.id == name) {
utem.productStatus = 0
return utem;
}
});
this.hegelist.splice(inde, 1);
this.cardlist.splice(0, 0, utemlist[0]);
},
cansolRang(){
let rangblist = this.ranglist
rangblist.map(v =>{
cansolRang() {
let rangblist = this.ranglist;
rangblist.map(v => {
v.productStatus = 0
this.cardlist.unshift(v);
})
this.ranglist = []
});
this.ranglist = [];
},
fanClose(event,name){
let fanold = this.fanlist
fanClose(event, name) {
let fanold = this.fanlist;
let inde = this.fanlist.findIndex(item => {
return item.id === name;
});
let utemlist = fanold.filter(utem => {
if(utem.id == name){ return utem }
})
if (utem.id == name) {
utem.productStatus = 0
return utem;
}
});
this.fanlist.splice(inde, 1);
this.cardlist.splice(0, 0, utemlist[0]);
},
cansolfan(){
let fanglist = this.fanlist
fanglist.map(v =>{
cansolfan() {
let fanglist = this.fanlist;
fanglist.map(v => {
v.productStatus = 0
this.cardlist.unshift(v);
})
this.fanlist = []
});
this.fanlist = [];
},
feiClose(event,name){
let feiold = this.feilist
feiClose(event, name) {
let feiold = this.feilist;
let indexed = this.feilist.findIndex(item => {
return item.id === name;
});
let rtemlist = feiold.filter(rtem => {
if(rtem.id == name){ return rtem }
})
if (rtem.id == name) {
rtem.productStatus = 0
return rtem;
}
});
this.feilist.splice(indexed, 1);
this.cardlist.splice(0, 0, rtemlist[0]);
},
cansolfei(){
let feipinlist = this.feilist
feipinlist.map(v =>{
cansolfei() {
let feipinlist = this.feilist;
feipinlist.map(v => {
v.productStatus = 0
this.cardlist.unshift(v);
})
this.feilist = []
});
this.feilist = [];
},
// 提交
submit(){
this.$Message.success("提交中...")
submit() {
this.$Message.success("提交中...");
let parmes={
dispatchId: this.$route.query.id,
orderId: this.$route.query.orderId,
list: [
{
"productStatus": 0,
"prodcutIds": [
0
],
"cause": "string",
"reporter": "string"
}
]
};
let executeId = this.$route.query.executeId;
console.log()
// Api.submitData().then(res=>{
// })
},
// 送审
sendOrder(){
this.$refs['formValidate'].validate((valid) => {
if(valid){
sendOrder() {
this.$refs["formValidate"].validate(valid => {
if (valid) {
// this.$Message.success("送审...")
this.ModalOrder = true
this.ModalOrder = true;
}
})
});
},
orderSendOk(){
ahis.$Message.success("送审中...")
orderSendOk() {
ahis.$Message.success("送审中...");
},
// 取消
toOrder(){
// 取消 返回工单列表
toOrder() {
this.$router.push("/produce/orderlist");
},
},
}
}
}
};
</script>
<template>
<div class="">
<div class>
<div class="star" v-if="!starmodal">
<a class="start" @click="starFun" >
<Icon type="md-play" />
开工</a>
<a class="start" @click="starFun">
<Icon type="md-play" />开工
</a>
</div>
<div class="star" v-else-if="starmodal">
<div class=" flex fc-b">
<Button class="button" size='large' type="primary"><Icon type="ios-pause" /> 暂停</Button>
<Button class="button" size='large' type="primary"><Icon type="logo-angular" /> 交检</Button>
<Button class="button" size='large' type="primary"><Icon type="ios-checkmark-circle-outline" /> 完工</Button>
<Button class="button" size='large' type="primary"><Icon type="md-swap" /> 转序交接</Button>
<div class="flex fc-b">
<Button class="button" size="large" type="primary">
<Icon type="ios-pause" />暂停
</Button>
<Button class="button" size="large" type="primary">
<Icon type="logo-angular" />交检
</Button>
<Button class="button" size="large" type="primary">
<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="step_item" v-for="i of 6" :key="i">
......@@ -21,7 +29,9 @@
<p class="icon_B" v-else>
<Icon type="md-arrow-dropright-circle" />
</p>
<p><a> 开工</a></p>
<p>
<a>开工</a>
</p>
<ul>
<li>暂停 2020-02-06 15:35</li>
<li>继续 2020-02-06 15:35</li>
......@@ -29,54 +39,61 @@
</div>
<!-- <p><span></span>
2020-02-06 15:35
</p> -->
</p>-->
<!-- <Steps :current="6">
<Step icon="md-arrow-dropright-circle" v-for="i of 6" :key="i" :content="contentMsge"></Step>
</Steps> -->
</Steps>-->
</div>
</div>
<div class="footer_box">
<div class="ul_box fl">
<ul>
<li>名称:名称1</li>
<li>图号:UIGT-763245</li>
<li>状态:未开工</li>
<li>订单编号:097543346</li>
<li>订单属性1:</li>
<li>订单属性2:</li>
<li>订单属性3:</li>
<li>计划数量:10</li>
<li>节点日期:2020-02-25</li>
<li>产品名称:{{entity.productName}}</li>
<li>图号:{{entity.drawnNumber}}</li>
<li>状态:{{entity.status}}</li>
<li>订单编号:{{entity.mesCode}}</li>
<li>批次号:{{entity.batchNumber}}</li>
<li>计划数量:{{entity.quantity}}</li>
<li>节点日期:{{entity.demandFinishDate}}</li>
</ul>
</div>
<div class="ul_box fl">
<ul>
<li>工序名称:名称1</li>
<li>工序序号:UIGT-763245</li>
<li>派工数量:66</li>
<li>资源名称:23366</li>
<li>资源编号:986732038</li>
<li>人员信息:</li>
<li>开始时间:</li>
<li>结束时间:</li>
<li>单件工时:10</li>
<li>准备工时:2020-02-25</li>
<li>工序名称:{{entity.seqName}}</li>
<li>工序序号:{{entity.seqNo}}</li>
<li>派工数量:{{entity.dispatchQuantity}}</li>
<li>人员信息:{{entity.userNames}}</li>
<li>准备工时:{{entity.setupTime}}</li>
</ul>
</div>
<div class="img_box fl">
图片区
<div class="img_box fl" style="background:#DDD">
<ViewerImg :images="images" />
</div>
</div>
<Modal v-model="ransferModal" :title="transferTitle" width="800" >
<!-- <component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" footer-hide/> -->
<p>转序交接</p>
</Modal>
</div>
</template>
<script>
import Api from "../api";
import ApiTech from "../../../technology/productMix/product/api";
export default {
name:'starOrder',
data(){
return{
name: "starOrder",
data() {
return {
starmodal: true,
contentMsge:"<ul><li>暂停 2020-02-06 15:35</li><li>继续 2020-02-06 15:35</li></ul>",
}
downUrl: fileUrlDown,
contentMsge:
"<ul><li>暂停 2020-02-06 15:35</li><li>继续 2020-02-06 15:35</li></ul>",
ransferModal: false,
transferTitle: "确认转序",
images: [],
entity: {},
id: Number(this.$route.query.id),
eid: ""
};
},
created() {
// this.treeHeight = window.innerHeight - 120;
......@@ -85,6 +102,7 @@ export default {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.load(this.id)
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
......@@ -93,9 +111,70 @@ export default {
};
},
methods: {
starFun(){
this.$Message.success("开工...")
starFun() {
this.$Message.success("开工...");
},
transferFn(){
this.ransferModal = true
},
load(v) {
let params = {
id: v
};
Api.orderanddispatchinfos(params)
.then(r => {
if (r.success && r.result) {
this.entity = r.result;
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)
{
this.eid = res.result.productUrlList;
}
else
{
this.eid=this.$u.guid();
}
//查询上传到文件服务器上的文件
let parms = {
app: "technology",
eid: this.eid,
name: "",
field: ""
};
this.$http.sysUser.getFile(parms).then(res1 => {
if (res1.data != [] && res1.data.length > 0) {
this.images = [];
res1.data.forEach(datas => {
let objImag = {};
objImag.thumbnail=this.downUrl+datas.downloadPath
objImag.source=this.downUrl+datas.downloadPath
this.images.push(objImag)
});
}
});
}
});
}
}
})
.catch(e => {
this.$Message.error("连接错误");
});
},
inited(viewer) {
this.$viewer = viewer;
},
}
show() {
this.$viewer.show();
}
},
watch:{
images(v){
this.images=v
}
}
};
</script>
......@@ -53,6 +53,7 @@
:src="getUrl(row.productUrl)"
width="120"
height="120"
:title="row.productUrl"
style="border:#cacbd0 dashed 1px"
/>
</Col>
......@@ -278,7 +279,7 @@ export default {
//返回img需要显示的src值
let tempUrl = "";
if (url && url.length > 0) {
tempUrl = url;
tempUrl = this.downUrl +url;
} else {
tempUrl = iconImg + "noPic_product.png";
}
......@@ -297,6 +298,7 @@ export default {
// height: 100%;
// overflow: auto;
// padding: 15px 0 15px 15px;
height: calc(100vh - 110px);
.body {
background: white;
border-radius: 4px;
......
......@@ -2,7 +2,7 @@
<Layout>
<Sider width="300">
<div class="add-list">
<img :src="img" />
<img :src="downUrl+img" />
</div>
</Sider>
<Content>
......@@ -90,6 +90,7 @@ export default {
levelTitle: ""
},
downUrl: fileUrlDown,
componaylist: [],
componaylist: [],
data2: [],
......@@ -133,7 +134,7 @@ export default {
},
methods: {
clickData(data, liUrl) {
this.img = data;
this.img = liUrl;
this.entity.productUrl = liUrl;
},
handleSelect1(data) {
......
......@@ -2,7 +2,7 @@
<Layout>
<Sider width="300">
<div class="add-list">
<img :src="img" />
<img :src="downUrl+img" />
</div>
</Sider>
<Content>
......@@ -69,6 +69,7 @@ export default {
entity: {
levelTitle: ""
},
downUrl: fileUrlDown,
componayId: null,
componaylist: [],
label: "",
......@@ -116,7 +117,7 @@ export default {
methods: {
clickData(data, liUrl) {
this.img = data;
this.img = liUrl;
this.entity.productUrl = liUrl;
},
handleSelect1(data) {
......@@ -149,6 +150,7 @@ export default {
}
this.entity = r.result;
this.img = this.entity.productUrl;
this.entity.productUrlList=this.parms.eid;
this.componayId = r.result.madeCompany;
this.$refs.edit.dep = r.result.levelId;
this.$refs.edit.label = r.result.levelTitle;
......
......@@ -34,7 +34,7 @@
<Row class="row-down">
<Col span="7">
<div class="img-i">
<img :src="row.productUrl" />
<img :src="downUrl +row.productUrl" />
</div>
</Col>
<Col span="17" class="c">
......@@ -91,6 +91,7 @@ export default {
modal: false,
title: "新增",
detail: null,
downUrl: fileUrlDown,
curId: 0,
columns: [
{
......
<template>
<Form ref="form" :model="condition" :label-width="100">
<Row>
<Col :span="12" v-if="condition.id.show">
<FormItem :label="编号" prop="id">
<Input v-model="condition.id.value"></Input>
</FormItem>
</Col>
<Col :span="12" v-if="condition.classId.show">
<FormItem :label="l('classId')" prop="classId">
<Input v-model="condition.classId.value"></Input>
......@@ -151,6 +156,7 @@ export default {
condition: {
creationTime: { op: "Range", value: null, show: true },
creatorUserId: { op: "Equal", value: null, show: true },
id: { op: "Equal", value: null, show: true },
lastModificationTime: { op: "Range", value: null, show: true },
lastModifierUserId: { op: "Equal", value: null, show: true },
classId: { op: "Equal", value: null, show: false },
......
<template>
<div>
<viewer :options="options" :images="images" @inited="inited" class="viewer" ref="viewer">
<template slot-scope="scope">
<figure class="images">
<div
class="image-wrapper"
v-for="{source, thumbnail} in scope.images"
:key="source"
>
<img
class="image"
:src="thumbnail"
:data-source="source"
:alt="source.split('?image=').pop()"
/>
</div>
</figure>
</template>
</viewer>
</div>
</template>
<script>
export default {
data() {
return {
options: {
inline: true,
button: true,
navbar: true,
title: false,
toolbar: true,
tooltip: true,
movable: true,
zoomable: true,
rotatable: true,
scalable: true,
transition: true,
fullscreen: true,
keyboard: true,
url: "data-source"
},
// images: [...sourceImages].splice(0, 5)
images: [
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=451a44399616dbbdd4715c516122d88b&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=451a44399616dbbdd4715c516122d88b&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg"
},
{
thumbnail: "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2631377660,2065981666&fm=26&gp=0.jpg",
source: "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2631377660,2065981666&fm=26&gp=0.jpg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269201766&di=461437985d347920db7998b8c6e432aa&imgtype=0&src=http%3A%2F%2F7.tjoys.net%2Fslh_qn_item2_2015_12_30_292_kanazuw3cfwjawqxrjhhisokzhijnn98.jpeg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269201766&di=461437985d347920db7998b8c6e432aa&imgtype=0&src=http%3A%2F%2F7.tjoys.net%2Fslh_qn_item2_2015_12_30_292_kanazuw3cfwjawqxrjhhisokzhijnn98.jpeg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=451a44399616dbbdd4715c516122d88b&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=451a44399616dbbdd4715c516122d88b&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg"
},
{
thumbnail: "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2631377660,2065981666&fm=26&gp=0.jpg",
source: "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2631377660,2065981666&fm=26&gp=0.jpg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269201766&di=461437985d347920db7998b8c6e432aa&imgtype=0&src=http%3A%2F%2F7.tjoys.net%2Fslh_qn_item2_2015_12_30_292_kanazuw3cfwjawqxrjhhisokzhijnn98.jpeg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269201766&di=461437985d347920db7998b8c6e432aa&imgtype=0&src=http%3A%2F%2F7.tjoys.net%2Fslh_qn_item2_2015_12_30_292_kanazuw3cfwjawqxrjhhisokzhijnn98.jpeg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=451a44399616dbbdd4715c516122d88b&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=451a44399616dbbdd4715c516122d88b&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg"
},
{
thumbnail: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg",
source: "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591269122489&di=ed7471e3ffd2cd33ebd12d915a002070&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F64%2F76%2F20300001349415131407760417677.jpg"
},
]
};
},
computed: {},
methods: {
inited(viewer) {
this.$viewer = viewer;
},
}
};
</script>
<style lang="less" scoped>
.viewer {
height: 100%;
.images {
height: 100%;
display: flex;
justify-content: center;
align-content: center;
align-items: center;
flex-wrap: wrap;
padding: 5px;
.image-wrapper {
display: inline-block;
width: calc(10% - 20px);
margin: 5px 5px 0 5px;
.image {
width: 100%;
cursor: pointer;
display: inline-block;
}
}
}
}
</style>
\ No newline at end of file
......@@ -14,6 +14,12 @@ import iViewPro from '../iview-pro/src/index.js';
import '@/libs/iview-pro/iview-pro.css';
import '@/styles/index.less';
import 'viewerjs/dist/viewer.css'
import Viewer from 'v-viewer'
import Tools from '@/components/page/tool.vue'
import State from '@/components/page/state.vue'
import Dictionary from '@/components/page/dictionary.vue'
......@@ -48,6 +54,7 @@ import DTSpan from '@/components/page/dtSpan.vue'
import DTSearch from '@/components/page/dtSearch.vue'
import InputTime from '@/components/page/inputTime.vue'
import OutputTime from '@/components/page/outputTime.vue'
import ViewerImg from '@/components/page/viewer.vue'
// import FormMaking from 'form-making'
// import 'form-making/dist/FormMaking.css'
......@@ -61,6 +68,11 @@ import echarts from 'echarts'
// lang: 'zh-CN'
// })
Vue.use(VueEditor)
Vue.use(Viewer)
Viewer.setDefaults({
zIndexInline: 2017
})
// Vue.use(Element, {
// size: 'small',
// zIndex: 3000
......@@ -102,6 +114,8 @@ Vue.component("DTSpan", DTSpan)
Vue.component("DTSearch", DTSearch)
Vue.component("InputTime", InputTime)
Vue.component("OutputTime", OutputTime)
Vue.component("ViewerImg", ViewerImg)
//注入mock
// require("../mock")
......
......@@ -13,6 +13,7 @@ window.systemUrl = `http://${address}:10000/system`; //System-api 系统管理
window.authUrl = `http://${address}:10010`; //Authentication-api //统一登陆认证
window.designUrl = `http://${address}:10000/process`; // 工艺规程
window.PlanUrl = `http://${address}:10000/plan`; //订单
// window.PlanUrl = `http://localhost:10050/api/services/app`; //Process-api
window.bugUrl = `http://${address}:10000/bug`; //bug
window.fileUrl = `http://${address}:10080/fileServer`; //文件上传url
window.fileUrlDown = `http://${address}`; //文件下载url
......
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