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

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

parents 728be2ca f3a60094
...@@ -30,7 +30,6 @@ export default { ...@@ -30,7 +30,6 @@ export default {
}, },
title: { title: {
type: String, type: String,
default:'确定'
}, },
msg: { msg: {
type: String, type: String,
......
...@@ -43,12 +43,12 @@ henq.isArray = u => { ...@@ -43,12 +43,12 @@ henq.isArray = u => {
return Object.prototype.toString.call(u) == '[object Array]'; return Object.prototype.toString.call(u) == '[object Array]';
} }
henq.toIntArray = u => { henq.toIntArray = u => {
if(henq.isNull(u)){ if (henq.isNull(u)) {
return []; return [];
} }
var arrs=u.split(',') var arrs = u.split(',')
var result=[]; var result = [];
arrs.map(p=>{ arrs.map(p => {
result.push(parseInt(p)); result.push(parseInt(p));
}) })
return result; return result;
...@@ -96,7 +96,7 @@ henq.getDate = (strDate) => { ...@@ -96,7 +96,7 @@ henq.getDate = (strDate) => {
}).match(/\d+/g) + ')'); }).match(/\d+/g) + ')');
return date; return date;
} }
henq.group=(array, f)=> { henq.group = (array, f) => {
const groups = {}; const groups = {};
array.forEach(function (o) { array.forEach(function (o) {
const group = JSON.stringify(f(o)); const group = JSON.stringify(f(o));
...@@ -130,19 +130,20 @@ henq.toTree = (list, rootId, format, parentFiledName) => { ...@@ -130,19 +130,20 @@ henq.toTree = (list, rootId, format, parentFiledName) => {
return toTree(list, rootId, i) return toTree(list, rootId, i)
} }
henq.treeToList = (tree) => { henq.treeToList = (tree) => {
let list=[]; let list = [];
function treeToList(data) { function treeToList(data) {
data.map(u=>{ data.map(u => {
if(u.children){ if (u.children) {
treeToList(u.children,u) treeToList(u.children, u)
} }
let copy=henq.clone(u); let copy = henq.clone(u);
delete copy.delete; delete copy.delete;
copy.parent=u; copy.parent = u;
list.push(copy); list.push(copy);
}) })
} }
treeToList(tree,null) treeToList(tree, null)
return list; return list;
} }
//导出pdf //导出pdf
...@@ -169,4 +170,15 @@ henq.outPdf = (ele, fileName) => { ...@@ -169,4 +170,15 @@ henq.outPdf = (ele, fileName) => {
window.open("/static/pdf.html", '_blank'); window.open("/static/pdf.html", '_blank');
}, 1000) }, 1000)
} }
henq.getArry = (arryList) => {//得到数据字典对应的label和value,用于table排序
let arry = [];
arryList.forEach(data => {
var that = this;
let arryObj = {};
arryObj["label"] = data.name;
arryObj["value"] = data.code;
arry.push(arryObj);
});
return arry;
}
export default henq; export default henq;
...@@ -310,7 +310,7 @@ export default { ...@@ -310,7 +310,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "detail" }, attrs: { oprate: "detail",title: params.row.mainRoutingSetStatus == 0? "工艺派发": "移入排产"},
style: { style: {
color: params.row.mainRoutingSetStatus == 0 ? "red" : "" color: params.row.mainRoutingSetStatus == 0 ? "red" : ""
}, },
...@@ -331,7 +331,7 @@ export default { ...@@ -331,7 +331,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "detail" }, attrs: { oprate: "detail",title: params.row.isSupportingFinish == 2|| params.row.isSupportingFinish == 3? "配套派发": "" },
style: { style: {
color: params.row.mainRoutingSetStatus == 0 ? "red" : "" color: params.row.mainRoutingSetStatus == 0 ? "red" : ""
}, },
......
...@@ -166,7 +166,8 @@ export default { ...@@ -166,7 +166,8 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",
title: this.tabIndex == 2? "审核": "查看"
}, },
on: { on: {
click: () => { click: () => {
......
...@@ -68,7 +68,8 @@ export default { ...@@ -68,7 +68,8 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "add" oprate: "add",
title:"查看"
}, },
on: { on: {
click: () => { click: () => {
......
...@@ -297,7 +297,7 @@ export default { ...@@ -297,7 +297,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "detail" }, attrs: { oprate: "detail",title: "查看" },
on: { click: () => this.detail(params.row) } on: { click: () => this.detail(params.row) }
}, },
"查看" "查看"
...@@ -305,7 +305,7 @@ export default { ...@@ -305,7 +305,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "edit" }, attrs: { oprate: "edit",title: "编辑" },
on: { click: () => this.edit(params.row) }, on: { click: () => this.edit(params.row) },
style: style:
(params.row.status == 1 && (params.row.status == 1 &&
...@@ -321,7 +321,7 @@ export default { ...@@ -321,7 +321,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "remove" }, attrs: { oprate: "remove",title: "删除" },
on: { click: () => this.remove(params.row) }, on: { click: () => this.remove(params.row) },
style: style:
(params.row.status == 1 && (params.row.status == 1 &&
...@@ -336,7 +336,7 @@ export default { ...@@ -336,7 +336,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "detail" }, attrs: { oprate: "detail",title: "分解" },
on: { click: () => this.split(params.row) }, on: { click: () => this.split(params.row) },
style: style:
(params.row.divideMark != 0 && (params.row.divideMark != 0 &&
......
...@@ -321,7 +321,6 @@ export default { ...@@ -321,7 +321,6 @@ export default {
} }
} }
}, },
params.row.finishCount //完成数 params.row.finishCount //完成数
) )
] ]
...@@ -345,7 +344,7 @@ export default { ...@@ -345,7 +344,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "record", class: "edit" }, attrs: { oprate: "record", class: "edit",title:'暂停记录' },
on: { click: () => this.record(params.row.id) } on: { click: () => this.record(params.row.id) }
}, },
"暂停记录" "暂停记录"
......
<template> <template>
<div class="record"> <div class="record">
<DataGrid :columns="columns" ref="grid" :action="action" :tool="false" :height="820"></DataGrid> <Tabs value="name1">
<TabPane label="订单暂停记录" name="name1">
<DataGrid :columns="columns" ref="grid" :action="action" :tool="false" :height="tdHeight"></DataGrid>
</TabPane>
<TabPane label="工单暂停记录" name="name2">
<DataGrid :columns="columnsProcess" ref="gridProcess" :tool="false" :height="tdHeight"></DataGrid>
</TabPane>
</Tabs>
<Modal v-model="detailModal" title="详情" width="800"> <Modal v-model="detailModal" title="详情" width="800">
<Detail :eid="curId" /> <Detail :eid="curId" />
</Modal> </Modal>
...@@ -18,6 +25,7 @@ export default { ...@@ -18,6 +25,7 @@ export default {
return { return {
detailModal: false, detailModal: false,
action: Api.record, action: Api.record,
tdHeight: "",
condition: { condition: {
orderId: { op: "Equal", value: this.eid }, orderId: { op: "Equal", value: this.eid },
keys: { op: "pauseCause,", value: null } keys: { op: "pauseCause,", value: null }
...@@ -111,13 +119,81 @@ export default { ...@@ -111,13 +119,81 @@ export default {
align: "left", align: "left",
high: true high: true
} }
],
columnsProcess: [
{
key: "productName",
title: "工序Id",
align: "left",
width: 90
},
{
key: "productName",
title: "工序号",
align: "left",
width: 90
},
{
key: "productName",
title: "工序名称",
align: "left",
width: 350,
},
{
key: "remark",
title: "暂停原因",
align: "left"
},
{
key: "productName",
title: "暂停人",
align: "left",
high: true,
width: 180
},
{
key: "productName",
title: "暂停时间",
align: "left",
width: 180
},
{
key: "productName",
title: "恢复人",
align: "left",
width: 180
},
{
key: "productName",
title: "恢复时间",
align: "left",
width: 180
},
{
key: "productName",
title: "相关人",
align: "left",
width: "180"
}
] ]
}; };
}, },
props: { props: {
eid: Number eid: Number
}, },
created() {}, mounted() {
window.onresize = () => {
///浏览器窗口大小变化
return (() => {
window.screenHeight = window.innerHeight;
this.tdHeight = window.screenHeight - 180;
})();
};
},
created() {
this.tdHeight = window.innerHeight - 180;
},
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
}, },
......
...@@ -6,23 +6,67 @@ ...@@ -6,23 +6,67 @@
<div v-show="!load"> <div v-show="!load">
<DataGrid :columns="columns" :data="result" border :tool="false" :height="820" :page="false"></DataGrid> <DataGrid :columns="columns" :data="result" border :tool="false" :height="820" :page="false"></DataGrid>
</div> </div>
<Modal v-model="modalSplit" title="订单分卡" width="800"> <Modal v-model="modalSplit" title="订单分卡" width="650" footer-hide>
<Form model="entity" label-width="100"> <div slot="close">
<Row > <Icon type="ios-close" size="31" color="gray" @click="handleClose" />
</div>
<Form :model="entity" ref="form" :label-width="110" :rules="rules">
<Row>
<Col span="24"> <Col span="24">
<FormItem label="选择序列号"></FormItem> <FormItem label="选择序列号" prop="num">
<Select v-model="entity.num" multiple>
<Option
v-for="(item,index) in numList"
:value="item.value"
:key="index"
>{{ item.label }}</Option>
</Select>
</FormItem>
</Col> </Col>
<Col span="24"> <Col span="24">
<FormItem label="选择分卡原因"></FormItem> <FormItem label="选择分卡原因" prop="reason">
<Select v-model="entity.reason" style="width:260px">
<Option
v-for="(item,index) in reasonList"
:value="item.value"
:key="index"
>{{ item.label }}</Option>
</Select>
</FormItem>
</Col> </Col>
<Col span="24"> <Col span="24">
<FormItem label="备注说明"></FormItem> <FormItem label="备注说明">
<Input v-model="entity.remark" placeholder type="textarea" :rows="3" />
</FormItem>
</Col> </Col>
<Col span="24"> <!--
<FormItem label="选择序列号"></FormItem> <Col span="14">
<FormItem label prop="action">
<RadioGroup v-model="entity.action" @on-change="onchangeAction">
<Radio :label="1">暂停</Radio>
<Radio :label="2">继续</Radio>
<Radio :label="3">移入排产</Radio>
</RadioGroup>
</FormItem>
</Col> </Col>
<Col span="10" v-if="entity.action===3">
<FormItem label prop="scheduleType">
<Dictionary
code="aps.plan.scheduleType"
v-model="entity.scheduleType"
class="scheduleTypeSelect"
></Dictionary>
</FormItem>
</Col>
-->
</Row> </Row>
</Form> </Form>
<Row>
<Col span="24" style="text-align:right;height:60px;line-height:60px">
<Button type="primary" @click="splitOk">确定分卡</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</Col>
</Row>
</Modal> </Modal>
</div> </div>
</template> </template>
...@@ -34,8 +78,14 @@ export default { ...@@ -34,8 +78,14 @@ export default {
data() { data() {
return { return {
modalSplit:false, modalSplit: false,
entity:{}, entity: {
num: [], //序列号组合
reason: null, //分卡原因
remark: "", //备注信息
action: null, //操作
scheduleType: null //排产类型
},
columns: [ columns: [
{ {
key: "detailId", key: "detailId",
...@@ -128,7 +178,7 @@ export default { ...@@ -128,7 +178,7 @@ export default {
code: "taskList.status", code: "taskList.status",
align: "center", align: "center",
width: 140, width: 140,
filters: this.getArry( filters: this.$u.getArry(
this.$store.getters.dictionaryByKey("taskList.status") this.$store.getters.dictionaryByKey("taskList.status")
), ),
filterMethod(value, row) { filterMethod(value, row) {
...@@ -143,38 +193,38 @@ export default { ...@@ -143,38 +193,38 @@ export default {
align: "center", align: "center",
render: (h, params) => { render: (h, params) => {
return h("div", { class: "action" }, [ return h("div", { class: "action" }, [
// h(
// "op",
// {
// attrs: { oprate: "detail" },
// on: { click: () => this.detail(params.row) }
// },
// "查看"
// ),
h( h(
"op", "op",
{ {
props: { oprate: "delete",title:"操作信息",msg:"确定暂停工序:"+params.row.detailName+"?" }, props: {
oprate: "delete",
title: "暂停",
msg: "确定暂停工序:" + params.row.detailName + "?"
},
style: params.row.status == 14 ? "" : "display:none", style: params.row.status == 14 ? "" : "display:none",
on: { click: () => this.pause(params.row) }, on: { click: () => this.pause(params.row) }
}, },
"暂停" "暂停"
), ),
h( h(
"op", "op",
{ {
attrs: { oprate: "edit" }, props: { oprate: "edit", title: "分卡" },
style: params.row.status == 12 ? "" : "display:none", style: params.row.status == 5 ? "" : "display:none",
on: { click: () => this.split(params.row) }, on: { click: () => this.split(params.row) }
}, },
"分卡" "分卡"
), ),
h( h(
"op", "op",
{ {
props: { oprate: "delete",msg:"确定继续执行工序:"+params.row.detailName+"?" }, props: {
style: params.row.status == 5 ? "" : "display:none", oprate: "delete",
on: { click: () => this.continue(params.row) }, title: "继续",
msg: "确定继续执行工序:" + params.row.detailName + "?"
},
style: params.row.status == 5? "" : "display:none",
on: { click: () => this.continue(params.row) }
}, },
"继续" "继续"
) )
...@@ -183,26 +233,149 @@ export default { ...@@ -183,26 +233,149 @@ export default {
} }
], ],
listTask: [], listTask: [],
numList: [
{
value: 1,
label: "SKJC-001"
},
{
value: 2,
label: "SKJC-002"
},
{
value: 3,
label: "SKJC-003"
},
{
value: 4,
label: "SKJC-004"
},
{
value: 5,
label: "SKJC-005"
},
{
value: 6,
label: "SKJC-006"
},
{
value: 7,
label: "SKJC-007"
},
{
value: 8,
label: "SKJC-008"
}
],
reasonList: [
{
value: 1,
label: "分卡原因1"
},
{
value: 2,
label: "分卡原因2"
},
{
value: 3,
label: "分卡原因3"
}
],
rules: {
num: [
{
required: true,
message: "请选择分卡原因",
trigger: "change",
type: "array"
}
],
reason: [
{
required: true,
message: "请选择分卡原因",
trigger: "change",
type: "number"
}
],
action: [
{
required: true,
message: "请选择操作",
trigger: "change",
type: "number"
}
],
scheduleType: [
{
required: true,
message: "请选择排产类型",
trigger: "change",
type: "number"
}
]
}
}; };
}, },
props: { props: {
result: Array, result: Array,
load:Boolean, load: Boolean
}, },
async fetch({ store, params }) { async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典 await store.dispatch("loadDictionary"); // 加载数据字典
}, },
created() {}, created() {},
methods: { methods: {
split(row){//工单分卡 split(row) {
alert(JSON.stringify(row)) //工单分卡
this.modalSplit=true this.modalSplit = true;
},
onchangeAction(val) {
//选择移入排产时显示排产模型下拉框
if (val != 3) {
this.entity.scheduleType = null;
}
}, },
pause(row){//暂停工单 splitOk() {
alert(JSON.stringify(row)) //确定分卡
this.$refs.form.validate(valid => {
if (valid) {
let params = {
num: this.entity.num,
reason: this.entity.reason,
remark: this.entity.remark,
action: this.entity.action,
scheduleType: this.entity.scheduleType
};
alert(JSON.stringify(params));
this.handleClose();
} else {
this.modalSplit = true;
}
});
}, },
continue(row){//继续工单 handleClose() {
alert(JSON.stringify(row)) //取消分卡
this.entityReset();
this.modalSplit = false;
},
entityReset() {
//重置分卡项目
this.entity = {
num: [],
reason: null,
remark: "",
action: null,
scheduleType: null
};
},
pause(row) {
//暂停工单
alert(JSON.stringify(row));
},
continue(row) {
//继续工单
alert(JSON.stringify(row));
}, },
//截取字符串 //截取字符串
sliceStr(str, lenS, lenE) { sliceStr(str, lenS, lenE) {
...@@ -211,18 +384,6 @@ export default { ...@@ -211,18 +384,6 @@ export default {
l(key) { l(key) {
let vkey = "mes_order_watch" + "." + key; let vkey = "mes_order_watch" + "." + key;
return this.$t(vkey) || key; return this.$t(vkey) || key;
},
//得到数据字典对应的label和value,用于table排序
getArry(arryList) {
let arry = [];
arryList.forEach(data => {
var that = this;
let arryObj = {};
arryObj["label"] = data.name;
arryObj["value"] = data.code;
arry.push(arryObj);
});
return arry;
} }
}, },
watch: { watch: {
...@@ -234,5 +395,13 @@ export default { ...@@ -234,5 +395,13 @@ export default {
} }
}; };
</script> </script>
<style lang='less'> <style lang='less' scope>
.scheduleTypeSelect {
display: inline;
width: 180px;
margin-left: -110px;
.ivu-select {
width: 180px;
}
}
</style> </style>
\ No newline at end of file
...@@ -371,7 +371,7 @@ export default { ...@@ -371,7 +371,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "预览"
}, },
on: { on: {
click: () => { click: () => {
...@@ -390,7 +390,7 @@ export default { ...@@ -390,7 +390,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "编辑"
}, },
on: { on: {
click: () => { click: () => {
......
...@@ -357,7 +357,7 @@ export default { ...@@ -357,7 +357,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "预览"
}, },
on: { on: {
click: () => { click: () => {
...@@ -376,7 +376,7 @@ export default { ...@@ -376,7 +376,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "编辑"
}, },
on: { on: {
click: () => { click: () => {
......
...@@ -129,7 +129,7 @@ export default { ...@@ -129,7 +129,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "查看合格证"
}, },
on: { click: () => this.detail(params.row.id) } on: { click: () => this.detail(params.row.id) }
}, },
......
...@@ -316,7 +316,7 @@ export default { ...@@ -316,7 +316,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "检验"
}, },
on: { on: {
click: () => { click: () => {
......
...@@ -285,7 +285,7 @@ export default { ...@@ -285,7 +285,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "设置最低库存"
}, },
on: { click: () => this.setNum(params.row) } on: { click: () => this.setNum(params.row) }
}, },
......
...@@ -290,7 +290,7 @@ export default { ...@@ -290,7 +290,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "修改"
}, },
on: { click: () => this.edit(params.row.id) } on: { click: () => this.edit(params.row.id) }
}, },
...@@ -300,7 +300,7 @@ export default { ...@@ -300,7 +300,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "delete" oprate: "delete",title: "删除"
}, },
class: class:
params.row.totalNum === params.row.numberAvailable params.row.totalNum === params.row.numberAvailable
...@@ -314,7 +314,7 @@ export default { ...@@ -314,7 +314,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "查看日志"
}, },
on: { click: () => this.logDetail(params.row.id) } on: { click: () => this.logDetail(params.row.id) }
}, },
......
...@@ -536,7 +536,7 @@ export default { ...@@ -536,7 +536,7 @@ export default {
{ {
attrs: { attrs: {
oprate: "detail", oprate: "detail",
class: "edit" class: "edit",title: "设置日历"
}, },
on: { on: {
click: () => { click: () => {
......
...@@ -573,7 +573,8 @@ export default { ...@@ -573,7 +573,8 @@ export default {
{ {
attrs: { attrs: {
oprate: "detail", oprate: "detail",
class: "edit" class: "edit",
title: "编辑"
}, },
on: { on: {
click: () => { click: () => {
...@@ -587,7 +588,7 @@ export default { ...@@ -587,7 +588,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "delete" oprate: "delete",title: "删除"
}, },
style: { style: {
color: "red" color: "red"
...@@ -604,7 +605,7 @@ export default { ...@@ -604,7 +605,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "保养"
}, },
on: { on: {
click: () => { click: () => {
...@@ -618,7 +619,7 @@ export default { ...@@ -618,7 +619,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "detail" oprate: "detail",title: "维修"
}, },
on: { on: {
click: () => { click: () => {
......
...@@ -147,7 +147,8 @@ export default { ...@@ -147,7 +147,8 @@ export default {
{ {
attrs: { attrs: {
oprate: "detail", oprate: "detail",
class: "edit" class: "edit",
title: "编辑"
}, },
on: { on: {
click: () => { click: () => {
...@@ -161,7 +162,7 @@ export default { ...@@ -161,7 +162,7 @@ export default {
"op", "op",
{ {
attrs: { attrs: {
oprate: "delete" oprate: "delete",title: "删除"
}, },
style: { style: {
color: "red" color: "red"
......
...@@ -178,7 +178,7 @@ export default { ...@@ -178,7 +178,7 @@ export default {
h( h(
"op", "op",
{ {
attrs: { oprate: "remove" }, attrs: { oprate: "remove",title: "删除" },
on: { click: () => this.remove(params.row.id) } on: { click: () => this.remove(params.row.id) }
}, },
"删除" "删除"
......
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