Commit 092e0486 authored by 仇晓婷's avatar 仇晓婷

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

parents 617bdabb 3081f0de
......@@ -868,6 +868,7 @@ textarea::-webkit-input-placeholder {
background: #F6F8FB;
}
}
.tableCommon tr td {
line-height: 25px;
font-size: 14px;
......@@ -1345,4 +1346,8 @@ html [type=button] {
.ivu-input-number{
width: 100%;
}
}
\ No newline at end of file
}
//显示富文本框时的图片
.tohtml img{
max-width: 95%;
}
\ No newline at end of file
......@@ -31,8 +31,8 @@
</div>
<h3 class="mb20">用户登陆</h3>
<Login @on-submit="handleSubmit">
<UserName name="username" value="13211111111" />
<Password name="password" value="1" enter-to-submit />
<UserName name="username" value="" />
<Password name="password" value="" enter-to-submit />
<div class="page-account-auto-login mb20">
<Checkbox v-model="autoLogin">{{ $t('page.login.remember') }}</Checkbox>
<a href>{{ $t('page.login.forgot') }}</a>
......
......@@ -40,6 +40,10 @@ export default {
return Api.post(`${apsUrl}/apspoolappservices/recoveryoptasksimluate`, params);
},
//移出排产池前判断
beforeshiftoutapspool(params) {
return Api.post(`${apsUrl}/apspoolappservices/beforeshiftoutapspool`, params);
},
//移出排产池
shiftoutapspool(params) {
return Api.post(`${apsUrl}/apspoolappservices/shiftoutapspool`, params);
......
......@@ -60,7 +60,7 @@
<Modal v-model="addModalTemp" title="自定义排序模板" footer-hide width="1000" class="tempModal">
<Temp :data="listTemp" ref="tempRef"></Temp>
</Modal>
<Modal v-model="modalDuration" title="外协任务" footer-hide width="1000" >
<Modal v-model="modalDuration" title="外协任务" footer-hide width="1000">
<Duration ref="durationRef"></Duration>
</Modal>
<Modal v-model="addModal" title="工序参数设置" footer-hide width="1000">
......@@ -76,6 +76,9 @@
<Modal v-model="apsModal" title="确定APS排产" @on-ok="apsOk" @on-cancel="cancel">
<p>确定进行APS排产?</p>
</Modal>
<Modal v-model="apsCheckModal" title="确定APS排产" @on-ok="apsCheckOk" @on-cancel="cancel">
<p>已有排产方案,是否移出排产池?</p>
</Modal>
<Modal v-model="circleModal" title footer-hide :mask-closable="false">
<div slot="close"></div>
<Row>
......@@ -123,6 +126,8 @@ export default {
addModalTemp: false,
modalDuration: false,
insertlModal1: false,
apsCheckModal: false,
tempParams: null,
insertTItle1: "插单",
rowIndex1: null,
list: [],
......@@ -197,7 +202,8 @@ export default {
color: params.row.insert_flag == 1 ? "#2680EB" : "#aaa"
},
on: {
click: () => this.changeFlag1(params.row.part_task_pk, params.index)
click: () =>
this.changeFlag1(params.row.part_task_pk, params.index)
}
})
]
......@@ -431,6 +437,7 @@ export default {
},
remove(partPkId) {
//移出排产池
this.tempParams = null;
let paramsArry = [];
if (partPkId.constructor == Array) {
paramsArry = partPkId;
......@@ -440,17 +447,45 @@ export default {
let params = {
partPks: paramsArry
};
Api.shiftoutapspool(params).then(r => {
if (r.success) {
this.$Message.success("移出排产池操作成功");
this.loadList();
//移出排产后将aps对应的store数量去掉
this.$store.commit(
"setCountAps",
this.$store.state.countAps - paramsArry.length
);
}
});
Api.beforeshiftoutapspool(params)
.then(res => {
if (res.success) {
if (res.result) {
this.checkapspool(params);
} else {
this.tempParams = null;
this.tempParams = params;
this.apsCheckModal = true;
}
} else {
this.$Message.error("校验失败");
}
})
.catch(err => {
this.$Message.error("连接错误1");
});
},
apsCheckOk() {
this.checkapspool(this.tempParams);
},
checkapspool(params) {
Api.shiftoutapspool(params)
.then(r => {
if (r.success) {
this.$Message.success("移出排产池操作成功");
this.loadList();
//移出排产后将aps对应的store数量去掉
this.$store.commit(
"setCountAps",
this.$store.state.countAps - params.partPks.length
);
} else {
this.$Message.error("移出排产池操作失败");
}
})
.catch(err => {
this.$Message.error("连接失败2");
});
},
onSelect(a, b) {
//批量选择
......@@ -474,6 +509,7 @@ export default {
this.editModal = false;
this.deletedlModal = false;
this.apsModal = false;
this.apsCheckModal = false;
},
onDragDrop(a, b) {
//拖拽排序
......@@ -650,7 +686,7 @@ export default {
},
//外协工期修改end
//插单start
//插单事件start----
//插单事件start----
changeFlag1(id, index) {
this.rowIndex1 = index;
if (this.list[this.rowIndex1].insert_flag == 1) {
......@@ -663,7 +699,10 @@ export default {
insertOk1() {
if (this.list[this.rowIndex1].insert_flag == 1) {
//根据插单数据状态进行插单或取消插单操作
let params1 = { partTaskPks: [this.list[this.rowIndex1].part_task_pk], opTaskPks: [] };
let params1 = {
partTaskPks: [this.list[this.rowIndex1].part_task_pk],
opTaskPks: []
};
Api.cancelinsertorder(params1)
.then(res => {
if (res.success) {
......@@ -677,7 +716,10 @@ export default {
this.$Message.error("数据异常!");
});
} else {
let params = { partTaskPks: [this.list[this.rowIndex1].part_task_pk], opTaskPks: [] };
let params = {
partTaskPks: [this.list[this.rowIndex1].part_task_pk],
opTaskPks: []
};
Api.saveinsertorder(params)
.then(res => {
if (res.success) {
......@@ -692,7 +734,7 @@ export default {
});
}
this.insertlModal1 = false;
},
}
//插单end
}
};
......
......@@ -299,7 +299,7 @@
<td class="tl">{{item5.taskseq}}</td>
<td class="tl">{{item5.name}}</td>
<td class="tl">
<div v-html="item5.task_content" ></div>
<div v-html="item5.task_content" class="tohtml"></div>
</td>
<td class="tl">{{item5.operator}}</td>
<td class="tl">{{item5.proofreader}}</td>
......@@ -308,7 +308,7 @@
<td class="tl">{{item6.taskseq}}</td>
<td class="tl">{{item6.name}}</td>
<td class="tl">
<div v-html="item6.task_content" ></div>
<div v-html="item6.task_content" class="tohtml"></div>
</td>
<td class="tl">{{item6.operator}}</td>
<td class="tl">{{item6.proofreader}}</td>
......
......@@ -292,7 +292,7 @@
<td class="tl">{{item5.taskseq}}</td>
<td class="tl">{{item5.name}}</td>
<td class="tl">
<div v-html="item5.task_content" ></div>
<div v-html="item5.task_content" class="tohtml"></div>
</td>
<td class="tl">{{item5.operator}}</td>
<td class="tl">{{item5.proofreader}}</td>
......@@ -301,7 +301,7 @@
<td class="tl">{{item6.taskseq}}</td>
<td class="tl">{{item6.name}}</td>
<td class="tl">
<div v-html="item6.task_content" ></div>
<div v-html="item6.task_content" class="tohtml"></div>
</td>
<td class="tl">{{item6.operator}}</td>
<td class="tl">{{item6.proofreader}}</td>
......
import Api from '@/plugins/request'
export default {
index: `${PlanUrl}/orderexecutenew/paged_img`,
paged(params) {
return Api.post(`${PlanUrl}/orderexecutenew/paged_img`, params);
},
}
......@@ -6,7 +6,7 @@
<Input search class="search_box mr10" enter-button placeholder="请输入文件名" />
<a @click="allChecked" ><Icon type="md-checkbox-outline" />全选</a>
<!-- <a @click="copyCard" ><Icon type="ios-browsers-outline" />复制</a> -->
<a @click="importCard" ><Icon type="ios-log-in" />导入</a>
<!-- <a @click="importCard" ><Icon type="ios-log-in" />导入</a> -->
<a @click="addCard" ><Icon type="ios-add-circle-outline" />新建</a>
<span>{{cardlist.length}} 个案例;</span>
</div>
......@@ -48,12 +48,12 @@
</Checkbox>
</CheckboxGroup>
</div>
<FooterToolbar style="height:65px" v-show="checkCards!=0">
<span>已选 {{checkCards}} 个案例</span>
<Button class="span ml20" type="primary" @click="deliteCard"><Icon type="ios-trash-outline" />删除</Button>
<Button class="span ml20" type="primary" @click="exportCard"><Icon type="ios-log-out" />导出</Button>
<Button @click="cancel">取消</Button>
</FooterToolbar>
<div class="footer" v-if="checkCards!=0">
<span>已选: {{checkCards}} 个案例</span>
<Button class="span ml20 mr15" type="primary" @click="deliteCard"><Icon type="ios-trash-outline" />删除</Button>
<!-- <Button class="span ml20" type="primary" @click="exportCard"><Icon type="ios-log-out" />导出</Button> -->
<Button type="default" @click="cancel">取消</Button>
</div>
</div>
</template>
<script>
......
......@@ -2,7 +2,7 @@
<template>
<div class="addd">
<ul>
<li><a @click="gnFunto(0,'进度汇报')" :class="{active:gnFlag == 0}"><Icon type="ios-clipboard" /> 进度汇报</a></li>
<!-- <li><a @click="gnFunto(0,'进度汇报')" :class="{active:gnFlag == 0}"><Icon type="ios-clipboard" /> 进度汇报</a></li>
<li><a @click="gnFunto(1,'物料领用')" :class="{active:gnFlag == 1}"><Icon type="ios-cube" /> 物料领用</a></li>
<li><a @click="gnFunto(2,'产品装配')" :class="{active:gnFlag == 2}"><Icon type="md-build" /> 产品装配</a></li>
<li><a @click="gnFunto(3,'工时分配')" :class="{active:gnFlag == 3}"><Icon type="ios-time" /> 工时分配</a></li>
......@@ -11,7 +11,29 @@
<li><a @click="gnFunto(6,'工艺案例')" :class="{active:gnFlag == 6}"><Icon type="ios-paper" /> 工艺案例</a></li>
<li><a @click="gnFunto(7,'质量判定')" :class="{active:gnFlag == 7}"><Icon type="ios-medal" /> 质量判定</a></li>
<li><a @click="gnFunto(8,'数据填报')" :class="{active:gnFlag == 8}"><Icon type="ios-create" /> 数据填报</a></li>
<li><a @click="gnFunto(9,'测试数据')" :class="{active:gnFlag == 9}"><Icon type="logo-codepen" /> 测试数据</a></li>
<li><a @click="gnFunto(9,'测试数据')" :class="{active:gnFlag == 9}"><Icon type="logo-codepen" /> 测试数据</a></li> -->
<li><a @click="gnFunto(0,'进度汇报')" :class="{active:gnFlag == 0}">
<img src="@/assets/imgicon/execute/ex01.png" alt=""/>
进度汇报</a></li>
<li><a @click="gnFunto(1,'物料领用')" :class="{active:gnFlag == 1}">
<img src="@/assets/imgicon/execute/ex02.png" alt=""/>
物料领用</a></li>
<li><a @click="gnFunto(2,'产品装配')" :class="{active:gnFlag == 2}">
<img src="@/assets/imgicon/execute/ex03.png" alt=""/> 产品装配</a></li>
<li><a @click="gnFunto(3,'工时分配')" :class="{active:gnFlag == 3}">
<img src="@/assets/imgicon/execute/ex04.png" alt=""/> 工时分配</a></li>
<li><a @click="gnFunto(4,'生产准备')" :class="{active:gnFlag == 4}">
<img src="@/assets/imgicon/execute/ex05.png" alt=""/> 生产准备</a></li>
<li><a @click="gnFunto(5,'工艺查看')" :class="{active:gnFlag == 5}">
<img src="@/assets/imgicon/execute/ex06.png" alt=""/> 工艺查看</a></li>
<li><a @click="gnFunto(6,'工艺案例')" :class="{active:gnFlag == 6}">
<img src="@/assets/imgicon/execute/ex07.png" alt=""/> 工艺案例</a></li>
<li><a @click="gnFunto(7,'质量判定')" :class="{active:gnFlag == 7}">
<img src="@/assets/imgicon/execute/ex08.png" alt=""/> 质量判定</a></li>
<li><a @click="gnFunto(8,'数据填报')" :class="{active:gnFlag == 8}">
<img src="@/assets/imgicon/execute/ex09.png" alt=""/> 数据填报</a></li>
<li><a @click="gnFunto(9,'测试数据')" :class="{active:gnFlag == 9}">
<img src="@/assets/imgicon/execute/ex10.png" alt=""/> 测试数据</a></li>
</ul>
</div>
</template>
......
......@@ -189,6 +189,10 @@
}
}
.addd{
ul li a img{
vertical-align: middle;
margin: 0 7px 3px 0;
}
a.active{
background: #2680EB;
}
......@@ -339,8 +343,108 @@
}
}
.wu_bg{
height: calc(100vh - 165px);
height: calc(100vh - 150px);
.mass_box{
padding: 0 50px;
}
.footer {
width: 100%;
position: absolute;
left: 0;
bottom: -5px;
height: 60px;
line-height: 60px;
background: rgba(0, 0, 0, 0.6);
color: #fff;
padding-left: 50px;
}
.mass_box{
.heger{ color: #2680EB;}
.rangb{ color: #515A6E;}
.fanxiu{ color: #FFA000;}
.feipin{ color: #FE7777;}
.chuanse{
button{
width: 88px;
height: 40px;
font-size: 16px;
margin: 0 30px 0 0;
color: #fff;
}
.button01{ background: #515A6E; }
.button02{ background: #FFA000; }
.button03{ background: #FE7777; }
}
.mass_list{
border: 1px solid #CACBD0;
border-radius: 4px;
padding: 10px 15px;
margin: 15px 0;
.btn_play{
margin: 0 0 20px 0;
}
.list01{
.tag_card{
cursor: pointer;
margin: 0 20px 15px 0;
.hege{ i{color: #2680EB;} }
.rang{ i{color: #515A6E;} }
.fanxiu{ i{color: #FFA000;} }
.feipin{ i{color: #FE7777;} }
}
.ivu-tag-checked{
border: 1px solid #2680EB !important;
}
.card_bor{
border: 1px solid #2680EB !important;
}
}
.list02{
.tag_card02{
margin: 0 20px 15px 0;
}
}
}
.rangbu{
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #515a6e;
}
}
}
}
.fanxiu_box{
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #FFA000;
}
}
}
}
.fei_box{
.list02{
.tag_card02{
.ivu-tag-dot-inner{
background: #FE7777;
}
}
}
}
.fei_box{
width: calc(100% - 520px);
display: inline-block;
margin: 0;
}
.fei_right{
float: right;
line-height: 50px;
width: 460px;
}
}
}
.tech_box{
height: calc(100vh - 165px);
.ivu-layout-header{
......
<template>
<div class="">
<div class="star" v-if="!starmodal">
<a class="start" @click="starFun" >
<Icon type="md-play" />
质量判定</a>
<div class="wu_bg">
<div class="mass_box">
<h2 class="heger">合格({{cardlist.length}}</h2>
<div class="mass_list">
<p class="btn_play">
<Button class="button" type="primary">全选</Button>
<Button class="button" type="primary">反选</Button>
</p>
<div class="list01">
<Tag type="dot" :checkable="true" class="tag_card" :checked="item.checked" size="large" v-for="(item,index) in cardlist" :name="item.id" :key="index"
color="primary" @on-change="changeCards" >
{{item.code}}</Tag>
</div>
</div>
<div class="star flex fc-b" v-else-if="starmodal">
<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>
<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>
</ul>
<div class="chuanse">
<Button class="button01">让步</Button>
<Button class="button02">返修</Button>
<Button class="button03">废品</Button>
</div>
<div class="mass_list rangbu">
<h2 class="rangb">让步({{ranglist.length}}</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>
</div>
</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>
</ul>
<div class="mass_list fanxiu_box">
<h2 class="fanxiu">返修({{ranglist.length}}</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>
</div>
</div>
<div class="mass_list fei_box">
<h2 class="feipin">废品({{ranglist.length}}</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>
<!-- <div class="file_card" v-for="(item,index) in ranglist" :label="item.id" :key="index">
{{item.code}}
<a class="del_card" @click="delCard"><Icon type="ios-close"/></a>
</div> -->
</div>
</div>
<div class="img_box fl">
图片区
<div class="fei_right">
<p>问题原因:<Select style="width:80%">
<!-- <Option value="" class="option-text">请选择</Option> placeholder="选择问题原因" -->
<Option v-for="item in outerCodeList" :value="item" :key="item">{{ item }}</Option>
</Select></p>
<p>责任归属:<Select style="width:80%">
<!-- <Option value="" class="option-text">请选择</Option> placeholder="选择责任人" -->
<Option v-for="item in outerCodeList" :value="item" :key="item">{{ item }}</Option>
</Select></p>
</div>
</div>
<div class="star flex fc-m" >
<Button class="button" size='large' type="primary"> 提交</Button>
<Button class="button" size='large' type="primary"> 取消</Button>
</div>
</div>
</template>
<script>
......@@ -51,7 +65,134 @@ export default {
name:'starOrder',
data(){
return{
starmodal: false,
checkedflag:false,
cardlist:[
{
status:0,
code:1001210011,
id:1,
checked:false,
},{
status:1,
code:1001210012,
id:2,
checked:false,
},{
status:2,
code:1001210013,
id:3,
checked:false,
},{
status:3,
code:1001210014,
id:4,
checked:false,
},{
status:0,
code:1001210011,
id:5,
checked:false,
},{
status:1,
code:1001210012,
id:6,
checked:false,
},{
status:2,
code:1001210013,
id:7,
checked:false,
},{
status:3,
code:1001210014,
id:8,
checked:false,
},{
status:0,
code:1001210015,
id:9,
checked:false,
},{
status:1,
code:1001210016,
id:10,
checked:false,
},{
status:2,
code:1001210017,
id:11,
checked:false,
},{
status:3,
code:1001210018,
id:12,
checked:false,
},{
status:0,
code:1001210019,
id:13,
checked:false,
},{
status:1,
code:10012100110,
id:14,
checked:false,
},{
status:2,
code:10012100111,
id:15,
checked:false,
},{
status:3,
code:10012100112,
id:16,
checked:false,
},
],
ranglist:[
{
status:0,
code:1001210011,
id:1,
checked:false,
},{
status:1,
code:1001210012,
id:2,
checked:false,
},{
status:2,
code:1001210013,
id:3,
checked:false,
},{
status:3,
code:1001210014,
id:4,
checked:false,
},{
status:0,
code:1001210011,
id:1,
checked:false,
},{
status:1,
code:1001210012,
id:2,
checked:true,
},{
status:2,
code:1001210013,
id:3,
checked:false,
},{
status:3,
code:1001210014,
id:4,
checked:false,
},
],
outerCodeList:[],
}
},
created() {
......@@ -72,6 +213,18 @@ export default {
starFun(){
this.$Message.success("开工...")
},
delCard(){
this.$Message.success("删除一条")
},
changeCards(checked,name){
// console.log(checked)
// console.log(name)
},
handleClose(event,name){
console.log(name)
let index = this.ranglist.indexOf(name);
this.ranglist.splice(index, 1);
},
},
}
</script>
<template>
<div class="">
<div class="">
<Button @click="toExecute">工单执行</Button>
</div>
</div>
<div class="aps-r">
<!-- <Button @click="toExecute">工单执行</Button> -->
<DataGrid
:columns="columns"
ref="grid"
:data="list"
:batch="false"
:type="typeInfo"
:high="false"
:span="6"
:lazy="true"
:conditions="easySearch"
:action="action"
:set="false"
>
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input placeholder="请输入订单编号/产品名称" v-model="easySearch.keys.value" v-width="260" />
</FormItem>
<FormItem>
<Button type="primary" @click="search">查询</Button>
</FormItem>
</Form>
</template>
<template slot="buttons">
<Button :icon="iconInfo" shape="circle" :title="titleInfo" @click="changeShwo"></Button>
</template>
<template slot="card" slot-scope="{row}">
<div class="body" @click="toExecute">
<Row class="title-i">
<Col :span="10" class="order-code">{{row.productName}}</Col>
<Col :span="10" class="order-code">{{row.mesCode}}</Col>
<Col :span="4">
<div class="sanjiao" :style="tdStyle(row.status)"></div>
<div class="box">
<div class="text" style="font-size:4px;font-weight:normal">
<state
code="taskList.status"
ref="state"
:value="row.status"
type="text"
:color="false"
></state>
</div>
</div>
</Col>
</Row>
<div class="panel-text">
<Row>
<Col span="8">
<img
:src="getUrl(row.productUrl)"
width="120"
height="120"
style="border:#cacbd0 dashed 1px"
/>
</Col>
<Col span="16" class="row">
<p>开始时间:{{row.beginTime}}</p>
<p>
<span v-if="getStatus(row.status)">计划</span>结束时间:{{row.endTime}}
</p>
<p v-if="getStatus(row.status)&&getTimes(row.endTime)>0">
剩余时间:
<OutputTime :value="getTimes(row.endTime)" style="display:inline"></OutputTime>
</p>
<p>生产数量:{{row.quantity}}</p>
</Col>
</Row>
<Row class="rowBottom">
<Col span="14">图号:{{row.drawnNumber}}</Col>
<Col span="10" class="tr">
<Icon
type="md-alert"
size="18"
color="#FFA000"
v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0"
/>
<span
style="color:#FFA000"
v-if="getStatus(row.status)&&getTimes(row.endTime)<86400&&getTimes(row.endTime)>0"
>预警</span>&nbsp;&nbsp;
<Icon
type="md-timer"
size="18"
color="#FE7777"
v-if="getStatus(row.status)&&compareTime(row.endTime)"
/>
<span
style="color:#FE7777"
v-if="getStatus(row.status)&&compareTime(row.endTime)"
>超期</span>
</Col>
</Row>
</div>
</div>
</template>
</DataGrid>
</div>
</template>
<script>
import Api from "./api";
export default {
name:'starOrder',
data(){
return{
starmodal: false,
name: "starOrder",
data() {
return {
action: Api.index,
easySearch: {
keys: {
op: "mesCode,productName",
value: null
}
},
downUrl: fileUrlDown,
columns: [
{
title: this.l("mesCode"),
key: "mesCode",
width: 240,
align: "left"
},
{
key: "status",
title: "工单状态",
align: "center",
high: true,
code: "taskList.status",
width: 120
},
{
key: "productName",
title: "产品名称",
align: "left",
high: true
},
{
key: "drawnNumber",
title: "图号",
align: "left",
high: true
},
{
key: "quantity",
title: "生产数量",
align: "right",
width: 120,
high: true
},
{
key: "beginTime",
title: "开始时间",
align: "center",
width: 180,
high: true
},
{
key: "endTime",
title: "结束时间",
align: "center",
width: 180,
high: true
},
{
title: "操作",
key: "action",
width: 140,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: { oprate: "edit" },
on: { click: () => this.toExecute(params.row.id) }
},
"查看"
)
]);
}
}
],
list: [
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 1
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 2
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 3
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 4
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 5
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 6
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 8
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 11
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 1,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 12
},
{
actualBeginTime: "2020-05-12 14:58:17",
img: "/2020/5/12/b8cbee7b-6faa-4cfa-a05a-aa7a7f13b8d7.png",
id: 1,
orderIDs: "5",
platesnum: 0,
processcode: "ZGY_20200315_2",
processname: "增材制造主工艺规程",
quantity: 13,
routing_header_id: 181,
routing_type: 1,
actualStartDate: "2020-05-12 14:58:17",
demandFinishDate: "2020-05-10 23:59:59",
demandStartDate: "2020-05-09 00:00:01",
mesCode: "DDBH_20200509_2",
order_id: 5,
picnumber: 0,
productName: "气源分配器壳体",
drawNum: "JPEG4620",
taskTypeName: "正式计划",
status: 14
}
],
typeInfo: "card",
iconInfo: "md-apps",
titleInfo: "卡片模式",
nowTime: new Date().getTime()//页面当前打开时间
};
},
created() {},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
mounted() {
this.search();
},
methods: {
search() {
this.$refs.grid.reload(this.easySearch);
},
created() { },
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
toExecute() {
//跳转到对应操作页面
this.$router.push("/produce/execute");
},
mounted() { },
methods: {
toExecute(){
this.$router.push("/produce/execute");
},
tdStyle(val) {
//动态根据状态值加载状态值对应的颜色
let temDic = this.$store.getters.dictionaryByKey("taskList.status");
let temColor = "#666";
temDic.forEach(data => {
if (Number(data.code) == val) {
temColor = data.color;
}
});
var style = {};
style["border-top"] = " solid 38px " + temColor;
return style;
},
}
changeShwo() {
//显示模式切换
if (this.typeInfo == "card") {
this.typeInfo = "table";
this.iconInfo = "md-list";
this.titleInfo = "卡片模式";
} else {
this.typeInfo = "card";
this.iconInfo = "md-apps";
this.titleInfo = "列表模式";
}
},
compareTime(dateStart) {
//比较当前时间和计划完成时间
let planEndTime = new Date(dateStart).getTime();
let res = true;
if (this.nowTime - planEndTime > 0) {
res = true;
} else {
res = false;
}
return res;
},
getTimes(dateStart) {
//返回计划完成时间和当前时间的差值
let planEndTime = new Date(dateStart).getTime();
let res = 0;
if (this.nowTime - planEndTime > 0) {
res = 0;
} else {
res = (this.nowTime - planEndTime) / 1000;
}
return res;
},
getStatus(status) {
//根据状态返回未开工、执行中、暂停状态的bool值
let res = true;
if (status == 12 || status == 14 || status == 5) {
res = true;
} else {
res = false;
}
return res
},
getUrl(url) {
//返回img需要显示的src值
let tempUrl = "";
if (url && url.length > 0) {
tempUrl = this.downUrl + JSON.parse(url)[0].filePath;
} else {
tempUrl = iconImg + "noPic_product.png";
}
return tempUrl;
},
l(key) {
let vkey = "mes_order" + "." + key;
return this.$t(vkey) || key;
}
}
};
</script>
<style lang="less">
.aps-r {
width: 100%;
height: 100%;
overflow: auto;
padding: 15px 0 15px 15px;
.body {
background: white;
border-radius: 4px;
border: #cacbd0 solid 1px;
margin-left: 40px;
margin-right: 40px;
margin-bottom: 39px;
.title-i {
padding: 0 8px;
height: 38px;
line-height: 38px;
color: #2680eb;
font-size: 14px;
font-weight: bold;
border-bottom: #cacbd0 dotted 1px;
.btn-click {
text-align: right;
a {
color: #fff;
}
a:hover {
color: #249e91;
}
}
}
.panel-text {
padding: 5px 8px;
.row {
color: #666666;
padding-left: 10px;
p {
line-height: 30px;
}
}
}
}
.body:hover {
cursor: pointer;
box-shadow: 0 0 10px #888888;
}
}
.sanjiao {
margin: 38px;
height: 0px;
width: 0px;
border-left: solid 60px transparent;
position: absolute;
right: -46px;
top: -38px;
}
.box {
color: white;
width: 70px;
height: 20px;
overflow: hidden;
/* Rotate div */
transform: rotate(33deg);
-ms-transform: rotate(33deg); /* Internet Explorer */
-moz-transform: rotate(33deg); /* Firefox */
-webkit-transform: rotate(33deg); /* Safari 和 Chrome */
-o-transform: rotate(33deg); /* Opera */
.text {
position: absolute;
left: 32px;
top: -13px;
}
}
.rowBottom .ivu-col-span-10 {
height: 24px;
padding-right: 10px;
}
</style>
......@@ -28,7 +28,7 @@
<Filed :span="12" :name="l('efficiencyValue')">{{entity.efficiencyValue}}</Filed>
<Filed :span="12" :name="l('singleOut')">{{entity.singleOut}}</Filed>
<Filed :span="24" :name="l('taskContent')" >
<div v-html="entity.taskContent" class="html"></div>
<div v-html="entity.taskContent" class="tohtml"></div>
</Filed>
</Row>
</div>
......
......@@ -3,7 +3,7 @@
<Row>
<Filed :span="12" :name="l('stepSeq')">{{entity.stepSeq}}</Filed>
<Filed :span="12" :name="l('name')">{{entity.name}}</Filed>
<Filed :span="24" :name="l('stepContent')"><div v-html="entity.stepContent" class="html"></div></Filed>
<Filed :span="24" :name="l('stepContent')"><div v-html="entity.stepContent" class="tohtml"></div></Filed>
<Filed :span="12" :name="l('creationTime')">{{entity.creationTime}}</Filed>
<Filed :span="12" :name="l('creatorUserId')"><User :value="entity.creatorUserId"></User></Filed>
</Row>
......
......@@ -17,10 +17,10 @@
<!-- <Filed :span="12" :name="l('handlingOpinionsId')">{{entity.handlingOpinionsId}}</Filed> -->
<Filed :span="12" :name="l('handlingOpinions')">{{entity.handlingOpinions}}</Filed>
<Filed :span="24" :name="l('beforeChangeContent')">
<div v-html="entity.beforeChangeContent"></div>
<div v-html="entity.beforeChangeContent" class="tohtml"></div>
</Filed>
<Filed :span="24" :name="l('afterChangeContent')">
<div v-html="entity.afterChangeContent"></div>
<div v-html="entity.afterChangeContent" class="tohtml"></div>
</Filed>
<Filed :span="12" :name="l('changeorderCode')">{{entity.changeorderCode}}</Filed>
<Filed :span="24" :name="l('changeReason')">{{entity.changeReason}}</Filed>
......
......@@ -168,7 +168,7 @@
<td class="tl">{{item5.taskseq}}</td>
<td class="tl">{{item5.name}}</td>
<td class="tl">
<div v-html="item5.task_content" class="html"></div>
<div v-html="item5.task_content" class="tohtml"></div>
</td>
<td class="tl">{{item5.operator}}</td>
<td class="tl">{{item5.proofreader}}</td>
......@@ -177,7 +177,7 @@
<td class="tl">{{item6.taskseq}}</td>
<td class="tl">{{item6.name}}</td>
<td class="tl">
<div v-html="item6.task_content" class="html"></div>
<div v-html="item6.task_content" class="tohtml"></div>
</td>
<td class="tl">{{item6.operator}}</td>
<td class="tl">{{item6.proofreader}}</td>
......@@ -347,5 +347,6 @@ export default {
position: relative;
border: 0px solid #eee;
}
</style>
<template>
<div class="flex view">
<div class="item">
aaa
<div class="flex">
<div class="fg1">
<Form ref="form" :model="entity" :rules="rules" :label-width="110">
<Row class="view">
<Col :span="12" class="item" v-for="(li,i) in items" :key="i" v-dragging="{ item: li, list: items}">
<FormItem :label="li.key" :prop="li.key">
<component :is="li.control" :value="entity[li.key]" />
</FormItem>
</Col>
</Row>
<div>
{{
entity
}}
<Button type="primary" @click="con">conso</Button>
</div>
</Form>
</div>
</template>
<div v-width="25">
<ul>
<li>
名称
控件
显示
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
name: '',
data() {
return {
items:[]
}
},
methods:{
init(){
var items=[];
for (let i = 0; i <30; i++) {
items.push({
key:"I"+i,
name:"Item"+v,
width:4,
height:1
})
}
}
}
export default {
name: "",
data() {
return {
items: [],
entity: {},
rules: null
};
},
created() {
this.init();
},
methods: {
con() {
console.warn("entity", this.entity);
},
init() {
let items = [];
let controls = ["Input", "InputNumber", "Dictionary", "DatePicker"];
for (let i = 0; i < 5; i++) {
this.entity["I" + i] = i;
items.push({
key: "I" + i,
name: "Item" + i,
width: 4,
control: controls[i % 4],
height: 1
});
}
this.items = items;
}
}
};
</script>
<style lang="less" >
@line-height:40px;
@item-width:12.5%;
.view{
}
@line-height: 40px;
@item-width: 12.5%;
.view {
margin: 30px;
border: 1px solid #ddd;
line-height: @line-height;
background-color: white;
.item {
border-right: 1px solid #ddd;
border-top: 1px solid #ddd;
margin-right: -1px;
margin-top: -1px;
border-bottom: 1px solid #ddd;
text-align: center;
box-sizing: border-box;
}
}
</style>
\ No newline at end of file
......@@ -8,6 +8,29 @@ html body {
#__layout {
height: 100%;
}
ul,
li {
list-style: none;
}
div::-webkit-scrollbar {
width: 10px;
height: 10px;
/**/
}
div::-webkit-scrollbar-track {
background: #efefef;
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: #2680eb;
}
/*flex*/
.flex {
display: flex;
......@@ -15,6 +38,9 @@ html body {
.fc-m {
justify-content: center;
}
.fa-m {
align-items: center;
}
.fc-e {
justify-content: flex-end;
}
......@@ -30,6 +56,9 @@ html body {
.fg {
flex-grow: 1;
}
.fs {
flex-shrink: 0;
}
.fg2 {
flex-grow: 2;
}
......@@ -615,13 +644,15 @@ textarea::-webkit-input-placeholder {
background: #f5f6fa;
}
.tableCommon .tableCommon tr th {
line-height: 30px;
line-height: 24px;
font-size: 14px;
background: #EEEDF0;
}
.tableCommon .tableCommon tr td {
border: none;
border-bottom: 1px solid #E4E6ED;
padding: 0 2px;
background: #D5E6FB;
background: #F6F8FB;
}
.tableCommon tr td {
line-height: 25px;
......@@ -707,8 +738,20 @@ html [type=button] {
font-weight: bold;
}
.action a {
margin: 0 5px;
color: #1890FF;
background: transparent;
}
.action a span {
padding: 4px;
}
.action a i {
font-size: 16px;
padding: 4px;
border-radius: 3px;
}
.action a i:hover {
background: #1890FF;
color: #fff;
}
.action a.detail {
color: #1890FF;
......@@ -716,19 +759,18 @@ html [type=button] {
.action a.add {
color: #249E91;
}
.action a.add:hover {
color: #27AB9D;
}
.action a.edit {
color: #0693d4;
}
.action a.edit:hover {
color: #35BD90;
}
.action a.remove,
.action a.delete {
color: #FF7A8B;
}
.action a.remove i:hover,
.action a.delete i:hover {
background: #FF7A8B;
color: #fff;
}
.action a.delete {
color: #FF7A8B;
}
......@@ -752,14 +794,6 @@ html [type=button] {
font-weight: bold;
font-size: 18px;
}
.action a.icon:hover {
background: #27AB9D;
color: #fff;
}
.action a.icon:active {
background: #229185;
color: #fff;
}
.icon_box a.icon {
display: inline-grid;
width: 28px;
......@@ -977,3 +1011,53 @@ html [type=button] {
.detail .ivu-row .filed-col p .html p {
margin: 0 10px 0 0;
}
.con_bord {
margin: 10px 20px;
}
.lay100 {
height: calc(100vh - 105px);
background-color: #f5f6fa;
background: #f5f6fa;
}
.lay100 .con {
padding: 5px 5px 0px 10px;
}
.lay100 .con_bord {
margin: 10px 20px;
box-shadow: #c7c7c7 1px 2px 7px 3px;
}
.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;
}
.show_menu .menu_play {
width: 30px;
height: 30px;
line-height: 34px;
font-size: 14px;
text-align: center;
color: #515A6E;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
background: #ffffff;
box-shadow: #ccc 2px 2px 4px 1px;
}
.show_menu .menu_play:hover {
background-color: #2d8cf0;
color: white;
}
.details .ivu-input-number {
width: 100%;
}
.tohtml img {
max-width: 95%;
}
......@@ -1559,4 +1559,7 @@ img.imglogo {
height: 150px;
padding: 5px;
border-bottom: 2px solid #333;
}
.tohtml img{
max-width: 95%;
}
\ No newline at end of file
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