Commit 0c22ad29 authored by 仇晓婷's avatar 仇晓婷

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

parents bf7f1901 f626184c
......@@ -104,7 +104,7 @@
<FooterToolbar v-if="batch" v-show="footerToolbar">
<div class="tip">已选{{selectItems.length}}</div>
<slot name="batch"></slot>
<Button @click="footerToolbar=false">取消</Button>
<Button @click="cancelBatch">取消</Button>
</FooterToolbar>
</div>
</template>
......@@ -296,8 +296,8 @@ export default {
}
if (this.action) {
//条件初始化处理。
if(this.initsearch){
this.initsearch(this.search)
if (this.initsearch) {
this.initsearch(this.search);
}
this.$api.post(this.action, this.search).then(r => {
if (this.format) {
......@@ -484,6 +484,11 @@ export default {
},
selectAll(status) {
this.$refs.table.selectAll(status);
},
//批量取消
cancelBatch() {
this.footerToolbar = false;
this.$refs.table.selectAll(false);
}
},
computed: {
......
<template>
<div style="padding: 0;" class="excute">
<DataGrid
style="margin-top: -25px; margin-bottom: -25px;"
style="margin-top:2px; margin-bottom: -20px;"
:columns="columns"
ref="grid"
:easy="false"
......
......@@ -11,11 +11,10 @@
@on-selection-change="onSelect"
:batch="true"
:border="true"
:easy="false"
:easy="true"
>
<template slot="easySearch"></template>
<template slot="searchBack">
<Select
<template slot="easySearch">
<div><Select
placeholder="选择排序优先级"
v-model="tempValue"
style="width: 150px;"
......@@ -29,8 +28,16 @@
</a>
<a style="font-weight: bold;" @click="openDuration">
<Icon type="md-create" size="14" />&nbsp;修改外协工期
</a>&nbsp;&nbsp;&nbsp;&nbsp;
<Select placeholder="选择历史方案" style="width: 150px;"></Select>&nbsp;&nbsp;&nbsp;&nbsp;
</a>
<Select placeholder="选择历史方案" style="width: 150px;"></Select>
</div>
</template>
<template slot="searchBack">
</template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<DatePicker
type="date"
placeholder="设置基准日期"
......@@ -41,11 +48,6 @@
<a style="font-weight: bold;" @click="openAddModel(1)">
<Icon type="ios-options" size="14" />&nbsp;工序参数调整
</a>
</template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<Button
type="primary"
@click="goResults"
......
......@@ -28,33 +28,12 @@
<Icon type="md-git-compare" />
</a>
<DropdownMenu slot="list" style="text-align: center;">
<DropdownItem>
<DropdownItem v-for="li in items" :key="li.value" v-dragging="{ item: li, list: items}">
<a href="#">
<Icon type="md-apps" />
</a>
<span>转序规则</span>
<span>{{li.name}}</span>
</DropdownItem>
<DropdownItem>
<a href="#">
<Icon type="md-apps" />
</a>
<span>加班策略</span>
</DropdownItem>
<DropdownItem>
<a href="#">
<Icon type="md-apps" />
</a>
<span>任务平衡</span>
</DropdownItem>
<DropdownItem>
<a href="#">
<Icon type="md-apps" />
</a>
<span>是否离散</span>
</DropdownItem>
<!-- <div>
<Button type="text" class="ib" @click="handleOk">确定</Button><Button type="text" class="ib" @click="handle">关闭</Button>
</div>-->
</DropdownMenu>
</Dropdown>
</div>
......@@ -63,7 +42,7 @@
v-model="level"
:step="1"
:min="0"
:max="5"
:max="4"
:marks="levelMarks"
show-stops
@on-change="setParameter"
......@@ -126,11 +105,20 @@
</Row>
<Divider />
<FormItem :label="l('isDiscrete')" prop="isDiscrete">
<i-switch v-model="entity.isDiscrete" size="large">
<FormItem :label="l('isDiscrete')" prop="dis">
<i-switch v-model="entity.dis" size="large">
<span slot="open"></span>
<span slot="close"></span>
</i-switch>
</FormItem>
<FormItem :label="l('discrete_percent')" prop="discrete_percent">
<Slider
v-model="entity.discrete_percent"
:step="1"
:min="0"
:max="100"
@on-change="setPercent"
></Slider>
</FormItem>
<FormItem :label="l('discrete')" prop="discrete">
<InputNumber
......@@ -138,12 +126,10 @@
:disabled="count==0"
:min="1"
:max="count==0?1:count"
@on-change="setDiscrete"
></InputNumber>
<!-- <span>{{count}}</span> -->
</FormItem>
<FormItem :label="l('discrete_percent')" prop="discrete_percent">
<span v-text="k"></span>
</FormItem>
</div>
</Col>
</Row>
......@@ -159,22 +145,25 @@ import Api from "./api";
export default {
data() {
return {
items:[{name:"是否多台",value:"multiple"},{name:"转序规则",value:"planState"},{name:"加班策略",value:"over"},{name:"是否离散",value:"dis"}],
entity: {
partTaskPk: 0,
opTaskPk: 0,
taskSeq: "",
flog: 5, //参数应用范围
calId: null,
planState: true,
calId: -1,
planState: false,
planMethod: "重叠", // 平行 重叠
over: false,
overTime: "不加班", //"六日加班", 不加班 加班
efficiencyValue: 11, // 效率系数, 必须大于 0
shopId: null,
isDiscrete: true,//是否离散 是否
shopId: -1,
dis:false,
isDiscrete: "否",//是否离散 是否
discrete: 1, //离散数值 必须大于 1
multiple: true,
multipleEquip: "是", //"是否多台安排设备", 否 是
discrete_percent:0,
multiple: false,
multipleEquip: "否", //"是否多台安排设备", 否 是
multipleCount: 1, //多台数量
multipleEquipPks: [],
multipleEquipIds: "" //"设备id", 用英文逗号分隔
......@@ -184,7 +173,7 @@ export default {
levelRules: [],
levelMarks: {
0: "慢",
5: "快"
4: "快"
},
rules: {
// calId: [
......@@ -245,7 +234,15 @@ export default {
this.getCal(); //获取连班策略
this.apsGet(); //获取参数级别和转序等的关系
},
mounted() {},
mounted() {
this.$dragging.$on('dragged', ({ value }) => {
localStorage.setItem("apsitems",JSON.stringify(value.list));
})
var items=localStorage.getItem("apsitems");
if(items){
this.items=JSON.parse(items);
}
},
methods: {
getCal() {
Api.getallcal().then(res => {
......@@ -267,20 +264,13 @@ export default {
});
},
setParameter(v) {
// alert(v)
let parameters = this.levelRules[v].prams;
parameters.map(u => {
if (u.parametersCode == "PlanMethod") {
this.entity.planState = u.parameterValue == "平行";
this.entity.planMethod = u.parameterValue;
} else if (u.parametersCode == "OverTime") {
this.entity.over = u.OverTime == "不加班";
this.entity.overTime = u.parameterValue;
} else if (u.parametersCode == "Discrete") {
this.entity.isDiscrete = u.parameterValue == "是";
this.entity.isDiscrete = u.parameterValue;
this.entity.multiple=false;
this.entity.planState=false;
this.entity.over=false;
this.entity.dis=false;
for(var i=0;i<v;i++){
this.entity[this.items[i].value]=true;
}
});
},
handleSubmit() {
this.$refs.form.validate(valid => {
......@@ -298,9 +288,9 @@ export default {
this.entity.multipleEquipIds = this.entity.multipleEquipPks.join();
}
//
this.entity.planMethod = this.entity.planState ? "重叠" : "平行";
this.entity.overTime = this.entity.over ? "不加班" : "加班";
this.entity.isDiscrete = this.entity.isDiscrete ? "是" : "否";
this.entity.planMethod = !this.entity.planState ? "重叠" : "平行";
this.entity.overTime = !this.entity.over ? "不加班" : "加班";
this.entity.isDiscrete = this.entity.dis ? "是" : "否";
this.entity.multipleEquip = this.entity.multiple ? "是" : "否";
Api.apsschedulupdateparameter(this.entity)
.then(res => {
......@@ -323,6 +313,14 @@ export default {
l(key) {
let vkey = "mes_op_task_plan_simulate" + "." + key;
return this.$t(vkey) || key;
},
setPercent(v){
this.entity.discrete=Math.round(((this.count-1)*v-this.count)/100);
},
setDiscrete(v){
this.entity.discrete_percent=(
(100 * this.count - 100 * this.entity.discrete) / (this.count - 1)
);
}
},
computed: {
......@@ -356,13 +354,13 @@ export default {
opTaskPk: this.row.op_task_pk,
taskSeq: this.row.task_seq,
flog: 5, //参数应用范围
calId: null,
calId: -1,
planState: this.row.plan_method=="平行",
planMethod: this.row.plan_method, // 平行 重叠
over: this.row.over_time=="加班",
overTime: this.row.over_time, //"六日加班", 不加班 加班
efficiencyValue:this.row.efficiency_value|1, // 效率系数, 必须大于 0
shopId: null,
shopId: -1,
isDiscrete: this.row.isdiscrete=="是",
discrete: this.row.discrete_value|1, //离散数值 必须大于 1
multiple: this.row.multi_machine=="是",
......
......@@ -46,8 +46,20 @@ export default {
getentryusers(params) {
return Api.get(`${PlanUrl}/orderexecutenew/entryusers`, params);
},
//工时分配--总工时待分配
//工时分配--工时列表
getentrylist(params) {
return Api.post(`${technologyUrl}workhours/list`, params);
},
//工时分配--总工时待分配workhours/
getallhours(params) {
return Api.post(`${technologyUrl}workhours/allhours`, params);
},
//工时分配--新增保存
subcreatehours(params) {
return Api.post(`${technologyUrl}workhours/createmore`, params);
},
//工时分配--删除一条
deletehours(params) {
return Api.delete(`${technologyUrl}workhours/delete?id=`+ params);
},
}
\ No newline at end of file
......@@ -66,7 +66,7 @@
<Col span="24">
<FormItem label="分配工时" prop="setTime">
<!-- <InputNumber :max="30" :min="0" v-model="value1"></InputNumber>&nbsp;&nbsp;&nbsp;&nbsp; -->
<InputNumber :max="maxHour" :min="1" v-model="entity.workHour" @on-change="testChange"></InputNumber>工时 &nbsp;&nbsp;&nbsp;&nbsp;
<InputNumber :max="maxHour" :min="1" v-model="entity.workHour" @on-change="testChange"></InputNumber>&nbsp;&nbsp;&nbsp;&nbsp;工时
<!-- <InputNumber :max="59" :min="1" v-model="value1"></InputNumber> 分钟 &nbsp;&nbsp;&nbsp;&nbsp; -->
</FormItem>
</Col>
......@@ -104,27 +104,27 @@ export default {
userName: "张珊珊1",
cardNo: "08965481",
id: 1
},
{
},{
checked: false,
userName: "张珊珊2",
cardNo: "08965482",
id: 2
},
{
checked: false,
userName: "张珊珊3",
cardNo: "08965483",
id: 3
}
]
};
},
created(){},
methods: {
handleSubmit() {
this.listMan.map(item=>{
if(item.checked){
this.entity.cardNo = item.cardNo
}
})
console.log(this.entity);
this.$emit("on-ok", this.entity);
this.showSelect = true
// this.entity={}
},
//单选框
radioChange(val) {
......@@ -132,6 +132,12 @@ export default {
},
handleClose() {
this.$emit("on-close");
this.entity={
cardNo: "",
oldUserse: null,
userse: null,
workHour: 1,
}
},
checkItem(i) {
if(this.userflag){
......@@ -153,10 +159,12 @@ export default {
});
oolist.map(u => {
if (u.checked) {
this.entity.oldUserse = u.userName;
this.entity.userName = u.userName;
this.entity.userId = u.id
this.showSelect = false
}else{
this.entity.oldUserse = '';
this.entity.userName = '';
this.entity.userId = ''
}
});
if(oolist.length==0){
......@@ -166,14 +174,23 @@ export default {
// 选择新增人员
changeUser(data){
console.log(data)
let alloterInfo = this.$refs.userSelected.getSelectItems();
if(data&&data!=undefined){
this.userflag = true
}
if(data==undefined){
this.userflag = false
}
let alloterInfo = this.$refs.userSelected.getSelectItems();
// if (!userInfo || userInfo.length == 0) {
// this.$Message.error("请选择人员!");
// return;
// }
console.log(alloterInfo)
if(alloterInfo.length>0){
this.entity.cardNo = alloterInfo[0].cardNo
this.entity.userName = alloterInfo[0].userName
this.entity.userId = alloterInfo[0].id
}
},
testChange() {
// 该方法在input内容改变是就会触发进行检测
......
......@@ -23,8 +23,8 @@
<div class="gs_card_box">
<Card class="gs_card" v-for="(item,index) in cardMan" :key="index">
<p slot="title" class="gs_title">
{{item.userName}}
<span class="fr">{{item.cardNo}}</span>
{{item.userTitle}}
<!-- <span class="fr">{{item.cardNo}}</span> -->
</p>
<!-- <p class="gs_p">所属车间:车间A{{i}}</p>
<p class="gs_p">所属班组:班组B{{i}}</p> -->
......@@ -41,7 +41,7 @@
<!-- <a class="gs_edit" @click="editItem">
<Icon type="md-create" />
编辑</a> -->
<a class="gs_del" @click="delItem">
<a class="gs_del" @click="delItem(item.id)">
<Icon type="ios-trash-outline" />
删除</a>
</p>
......@@ -112,8 +112,30 @@ export default {
console.log("获取失败。")
}
})
let parm = {
conditions: [
{
fieldName: "dispatchId",
fieldValue: this.$route.query.id,
conditionalType: "Equal"
}
],
}
Api.getentrylist(parm).then(rest =>{
if(rest.success){
this.cardMan = rest.result
}else{
console.log("获取失败。")
}
})
},
addItem(){
// let aa=this.$refs.addview.$refs.userSelected.getSelectItems()
// console.log("1",aa)
if(this.allHours==0){
this.$Message.info("无工时分配...")
return
}
this.addmodal = true
let id = this.$route.query.id
Api.getentryusers({Id:id}).then(res=>{
......@@ -127,12 +149,19 @@ export default {
editItem(){
this.$Message.success("编辑工时...")
},
delItem(){
delItem(itmid){
this.$Modal.confirm({
title: this.title,
content: "<p>" + this.msg + "</p>",
onOk: () => {
this.$Message.success("删除工时...")
Api.deletehours(itmid).then(res=>{
if(res.success){
this.laodHorse()
this.$Message.success("工时已删除")
}else{
this.$Message.error("删除失败...")
}
})
}
});
},
......@@ -140,12 +169,21 @@ export default {
this.addmodal = false
},
addInfo(formdata){
console.log(formdata)
this.cardMan.push(formdata)
// this.cardMan.userName = formdata.userse||formdata.oldUserse
// this.cardMan.cardNo = formdata.cardNo
// this.cardMan.workHour = formdata.workHour
console.log(this.cardMan)
let parme = {
users: [
{
userTitle: formdata.userName,
userId: formdata.userId
}
],
workHour: formdata.workHour,
dispatchId: this.$route.query.id,
routingDetailId: this.$route.query.routid,
count: this.$route.query.quantity
}
Api.subcreatehours(parme).then(res => {
if(res.success){ this.laodHorse() }
})
this.addmodal = false
}
},
......
......@@ -32,12 +32,16 @@
@click="toExecute(row.id,row.orderId,row.executeId,row.routingHeaderId,row.routingDetailId,row.quantity,row.status)"
>
<Row class="title-i">
<Col :span="10" class="order-code">{{row.productName}}</Col>
<Col :span="10" class="order-code">{{row.mesCode}}</Col>
<Col :span="10" class="order-code">
<Ellipsis :text="row.productName" :lines="1" tooltip transfer />
</Col>
<Col :span="10" class="order-code">
<Ellipsis :text="row.mesCode" :lines="1" tooltip transfer />
</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">
<div class="text">
<state
code="taskList.status"
ref="state"
......@@ -217,7 +221,15 @@ export default {
search() {
this.$refs.grid.reload(this.easySearch);
},
toExecute(id, orderId, executeId, headid, routingDetailId,quantity, status) {
toExecute(
id,
orderId,
executeId,
headid,
routingDetailId,
quantity,
status
) {
//跳转到对应操作页面 获取id:this.$route.query.id
this.$router.push({
path: "/produce/execute",
......@@ -315,11 +327,11 @@ export default {
height: calc(100vh - 110px);
.body {
background: white;
border-radius: 4px;
border-radius: 4px 0 4px 4px;
border: #cacbd0 solid 1px;
margin-bottom: 30px;
.title-i {
padding: 0 8px;
padding: 0 0 0 8px;
height: 38px;
line-height: 38px;
color: #2680eb;
......@@ -352,32 +364,30 @@ export default {
box-shadow: 0 0 10px #888888;
}
}
.sanjiao {
margin: 38px;
height: 0px;
width: 0px;
border-left: solid 60px transparent;
position: absolute;
right: -46px;
top: -38px;
width: 0;
border-left: solid 50px transparent;
float: right;
margin-right: -1px;
}
.box {
color: white;
width: 80px;
height: 30px;
overflow: hidden;
float: right;
margin-top: -42px;
/* 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 */
transform: rotate(37deg);
-ms-transform: rotate(37deg); /* Internet Explorer */
-moz-transform: rotate(37deg); /* Firefox */
-webkit-transform: rotate(37deg); /* Safari 和 Chrome */
-o-transform: rotate(37deg); /* Opera */
.text {
position: absolute;
left: 32px;
top: -13px;
font-size: 8px;
font-weight: normal;
}
}
.rowBottom .ivu-col-span-10 {
height: 24px;
padding-right: 10px;
......
<template>
<Layout class="full">
<Sider hide-trigger :style="{background: '#fff'}" class="menu" width="240" style=" flex:0;">
<StoreHouseLeft @storeIds="storeIds" :type='1'></StoreHouseLeft>
<StoreHouseLeft @storeIds="storeIds" :type='2'></StoreHouseLeft>
</Sider>
<Content class="content">
<DataGrid :columns="columns" ref="grid" :action="action" :conditions="easySearch" :height="tdHeight">
......
......@@ -51,6 +51,7 @@
:show.sync="showStoreHouseTree"
:value.sync="conditions.storeId.value"
:text.sync="conditions.storeTitle.value"
:type='2'
/>
</div>
</template>
......
......@@ -51,6 +51,7 @@
:show.sync="showStoreHouseTree"
:value.sync="conditions.storeId.value"
:text.sync="conditions.storeTitle.value"
:type='1'
/>
</div>
</template>
......
<template>
<Layout class="full">
<Sider hide-trigger :style="{background: '#fff'}" class="menu" width="240" style=" flex:0;">
<StoreHouseLeft @storeIds="storeIds" c></StoreHouseLeft>
<StoreHouseLeft @storeIds="storeIds" :type='3'></StoreHouseLeft>
</Sider>
<Content class="content">
<DataGrid :columns="columns" ref="grid" :action="action" :conditions="easySearch" :height="tdHeight">
......
......@@ -51,6 +51,7 @@
:show.sync="showStoreHouseTree"
:value.sync="conditions.storeId.value"
:text.sync="conditions.storeTitle.value"
:type='3'
/>
</div>
</template>
......
......@@ -126,10 +126,10 @@ service.interceptors.response.use(
},
error => {
if (error && error.response) {
// if(error.response.status=="401"){
// window.location.href = '/account/login';
// return;
// }
if(error.response.status=="401"){
window.location.href = '/account/login';
return;
}
switch (error.response.status) {
case 400: error.message = '请求错误'; break;
case 401: error.message = '未授权,请登录'; break;
......
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