Commit 21100141 authored by 佟礼's avatar 佟礼

Merge branch 'product' of 39.98.128.195:zhouyx/mes-ui into product

parents d74d48bb 821105bb
This diff is collapsed.
This diff is collapsed.
......@@ -21,8 +21,8 @@
<i-header-fullscreen v-if="isDesktop && showFullscreen" />
<i-header-notice v-if="showNotice" />
<i-header-user />
<i-header-i18n v-if="showI18n" />
<i-header-setting v-if="enableSetting && !isMobile" />
<!-- <i-header-i18n v-if="showI18n" />
<i-header-setting v-if="enableSetting && !isMobile" /> -->
</div>
</Header>
</transition>
......
......@@ -14,6 +14,13 @@
</a>
</td>
</tr>
<tr>
<td class="t_title">
<a class="a_goIndex" @click="goIndexTwo">
<b class="title">首页二</b>
</a>
</td>
</tr>
<tr v-for="(item,i) in filterSider">
<td class="t_title">
<b class="title"
......@@ -44,8 +51,8 @@
<i-header-fullscreen v-if="isDesktop && showFullscreen" />
<i-header-notice v-if="showNotice" />
<i-header-user />
<i-header-i18n v-if="showI18n" />
<i-header-setting v-if="enableSetting && !isMobile" />
<!-- <i-header-i18n v-if="showI18n" />
<i-header-setting v-if="enableSetting && !isMobile" /> -->
</div>
</Header>
<Content class="i-layout-content">
......@@ -287,6 +294,9 @@ export default {
goIndex(){
this.$router.push("/")
},
goIndexTwo(){
this.$router.push("/home")
}
},
mounted() {
document.addEventListener("scroll", this.handleScroll, { passive: true });
......
......@@ -2,8 +2,8 @@
<MainLayout />
</template>
<script>
import MainLayout from "./basic-layout";
// import MainLayout from "./basic-layout/product";
// import MainLayout from "./basic-layout";
import MainLayout from "./basic-layout/product";
// 配置
import Setting from "@/setting";
// 方法
......
This diff is collapsed.
......@@ -31,6 +31,11 @@
<Search />
</template>
<template slot="buttons">
<Button
type="primary"
@click="goResults"
style="background:#515A6E;border:solid 1px #515A6E"
>查看历史方案</Button>
<Button type="primary" @click="openApsModal">APS排产</Button>
</template>
<template slot="batch">
......@@ -229,7 +234,8 @@ export default {
attrs: {
icon: "md-options",
type: "icon",
title: "工序参数设置"
title: "工序参数设置",
oprate: "edit",
},
on: { click: () => this.openAddModel(2, params.row) }
}),
......@@ -238,7 +244,7 @@ export default {
icon: "md-return-left",
type: "icon",
title: "移出排产池",
oprate: "delete",
oprate: "edit",
msg: "确认要移出排产吗?"
},
on: { click: () => this.remove(params.row.part_task_pk) }
......@@ -248,7 +254,7 @@ export default {
icon: "md-refresh",
type: "icon",
title: "恢复工序",
oprate: "delete",
oprate: "edit",
msg: "确认要恢复工序吗?"
},
on: { click: () => this.refresh(params.row.part_task_pk) }
......@@ -386,6 +392,13 @@ export default {
this.$Message.error("请设置基准日期");
}
},
//查看历史方案
goResults() {
this.$router.push({
path: "/aps/results"
// params: { customerId: id }
});
},
//确定aps排产
apsOk() {
this.circleModal = true;
......@@ -422,7 +435,7 @@ export default {
this.$Message.success("排产计算成功");
this.circleModal = false;
this.$router.push({
name: "aps-results"
path: "/aps/results"
// params: { customerId: id }
});
} else {
......
......@@ -89,7 +89,7 @@ export default {
},
{
title: "零件图号",
key: "part_id",
key: "part_number",
align: "center"
},
{
......
......@@ -24,32 +24,32 @@
</Col>
</Row>
<Row v-for="(item,index) in dataList" :key="item.id">
<Col span="4">
<span class="expand-value">{{ item.op_task_pk }}</span>
<Col span="4" class="expand-value">
<span>{{ item.task_seq }}</span>
</Col>
<Col span="3">
<span class="expand-value">{{ item.task_name }}</span>
<Col span="3" class="expand-value">
<span>{{ item.task_name }}</span>
</Col>
<Col span="3">
<span class="expand-value">{{ item.put_into_qty }}</span>
<Col span="3" class="expand-value">
<span>{{ item.put_into_qty }}</span>
</Col>
<Col span="3">
<span class="expand-value">{{ item.dispatch_qty }}</span>
<Col span="3" class="expand-value">
<span>{{ item.dispatch_qty }}</span>
</Col>
<Col span="4">
<span class="expand-value">{{ item.plan_start }}</span>
<Col span="4" class="expand-value">
<span>{{ item.plan_start }}</span>
</Col>
<Col span="4">
<span class="expand-value">{{ item.plan_finish }}</span>
<Col span="4" class="expand-value">
<span>{{ item.plan_finish }}</span>
</Col>
<Col span="3">
<span class="expand-value">{{ row.equip_id }}</span>
<Col span="3" class="expand-value">
<span>{{ item.equip_id }}</span>
</Col>
</Row>
</div>
</template>
<script>
import Api from './api'
import Api from "./api";
export default {
props: {
row: Object
......@@ -57,33 +57,36 @@ export default {
data() {
return {
dataList: []
}
};
},
mounted() {
this.getList(this.row)
this.getList(this.row);
},
methods: {
getList(row) {
Api.getdetail({
part_task_pk: row.id,
scheduleId: row.schedule_id
}).then((r) => {
}).then(r => {
if (r.success) {
this.dataList = r.result
this.dataList = r.result;
}
})
});
}
}
}
};
</script>
<style lang='less'>
.result-aps {
.expand-row {
text-align: center;
margin: 5px 0;
font-weight: bold;
}
.expand-value {
text-align: center;
margin: 3px 0;
}
// .ivu-row {
// font-weight: bold !important;
// }
}
td.ivu-table-expanded-cell {
padding: 0 !important;
......
......@@ -12,7 +12,7 @@
<Filed :span="12" :name="l('status')">
<state code="crm.sales.status" :value="entity.status" />
</Filed>
<Filed :span="12" :name="l('deliverable')">{{entity.deliverable}}</Filed>
<Filed :span="24" :name="l('deliverable')">{{entity.deliverable}}</Filed>
<Filed :span="24" :name="l('arrange')">{{entity.arrange}}</Filed>
<Filed :span="24" :name="l('notes')">{{entity.notes}}</Filed>
</Row>
......
......@@ -108,7 +108,7 @@
<Modal v-model="editModal" title="编辑" footer-hide>
<Edit :eid="curId" @on-close="cancel" @on-ok="addOk" />
</Modal>
<Modal v-model="detailModal" title="详情" footer-hide>
<Modal v-model="detailModal" title="详情" footer-hide width="1000">
<Detail :eid="curId" />
</Modal>
<Modal v-model="deletelModal" title="删除" @on-ok="removeOk" @on-cancel="cancel">
......
import Api from '@/plugins/request'
export default {
getUserInfo(params) {
return Api.get(`${systemUrl}/user/getuserinfo`, params);
},
// 获取打你审批数据
getpaged(params) {
return Api.post(`${workflowUrl}/instance/getpaged`, params);
},
}
\ No newline at end of file
<template>
<div>
<Card class="todolist">
<p class="row_head">
<Icon type="md-contact" class="f20" />
<span class="ml10">待审批</span>
<a class="row_more fr" @click="toivew">更多</a>
</p>
<div class="row_card_body">
<Table border :columns="columns1" :data="data1" height="230"></Table>
</div>
</Card>
<Modal v-model="viewModal" width="800" title="详情">
<Row class="mo_cont">
<Col span="12" class="label">
<span class="title">编号:</span>
{{viewData.code}}
</Col>
<Col span="12" class="label">
<span class="title">审批类型:</span>
{{viewData.schemaName}}
</Col>
<Col span="12" class="label">
<span class="title">当前环节:</span>
{{viewData.currentNodeName}}
</Col>
<Col span="12" class="label">
<span class="title">下一环节:</span>
{{viewData.nextNodeName}}
</Col>
<Col span="12" class="label">
<span class="title">创建人:</span>
{{viewData.creator}}
</Col>
<Col span="12" class="label">
<span class="title">创建时间:</span>
{{viewData.creationTime}}
</Col>
</Row>
</Modal>
</div>
</template>
<script>
import Api from "../api";
export default {
name: "Approval",
data() {
return {
imgUrl: iconImg,
viewModal: false, //详情弹框
viewData: {}, //详情数据
columns1: [
{ type: "index", title: "序号", width: 70, align: "center" },
{ key: "schemaName", title: "类别", align: "center", width: 150 },
{ key: "currentNodeName", title: "环节", align: "center" },
{ key: "nextNodeName", title: "下一环节", align: "center" },
{ key: "creationTime", title: "创建时间", align: "center", width: 170 },
{
key: "id",
title: "操作",
align: "center",
width: 90,
render: (h, parmse) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: {
oprate: "add"
},
on: {
click: () => {
this.viewRow(parmse.row);
}
}
},
"查看"
)
]);
}
}
],
data1: []
};
},
created() {
this.getlaoed();
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
getlaoed() {
let parme = {
pageIndex: 1,
pageSize: 20,
conditions: [
{ fieldName: "type", fieldValue: 2, conditionalType: "Equal" }
]
};
Api.getpaged(parme).then(res => {
let arry = res.result.items;
let arr = arry.slice(0, 4);
this.data1 = arr;
});
},
viewRow(rowData) {
this.viewModal = true;
this.viewData = rowData;
},
toivew() {
var info = { id: "123", message: "成功" };
this.$router.push({ name: "handle", params: info });
// tab(1)
}
},
mounted() {}
};
</script>
<style lang="less" scoped>
.row_head {
height: 30px;
color: #249e91;
a {
color: #249e91;
}
}
.mo_cont {
border-top: 1px solid #ddd;
border-left: 1px solid #ddd;
.label {
display: table-cell;
border-bottom: 1px solid #ddd;
border-right: 1px solid #ddd;
// margin: 0 0 -1px -1px;
line-height: 30px;
box-sizing: border-box;
.title {
background: #e8eaf1;
display: inline-block;
width: 100px;
text-align: right;
padding: 0 5px;
}
}
}
</style>
\ No newline at end of file
<template>
<Card class="todolist">
<p class="row_head">
<Icon type="ios-chatbubbles" class="f20" />
<Badge :count="3" :offset="[9,-5]">
<span class="ml10">未读消息</span>
</Badge>
<a href class="row_more fr">更多</a>
</p>
<div class="msg">
<Row v-for="(item,index) in listTask" :key="index" class="row-text">
<Col :span="2">
<div></div>
</Col>
<Col :span="6">{{index+1}}&nbsp&nbsp {{item.name}}</Col>
<Col :span="8">
{{item.data}}
<Icon type="md-link" />
</Col>
<Col :span="8">{{item.Date}}</Col>
</Row>
</div>
</Card>
</template>
<script>
export default {
name: "UnreadMessage",
data() {
return {
imgUrl: iconImg,
listTask: [
{
name: "张飞",
data: "生产订单缺料",
Date: "2020-03-12 11.30"
},
{
name: "张飞",
data: "送审订单待审批",
Date: "2020-03-12 11.30"
},
{
name: "张飞",
data: "排产未完成",
Date: "2020-03-12 11.30"
},
{
name: "张飞",
data: "物料补料中",
Date: "2020-03-12 11.30"
},
{
name: "张飞",
data: "物料补料中",
Date: "2020-03-12 11.30"
},
{
name: "张飞",
data: "物料补料中",
Date: "2020-03-12 11.30"
}
]
};
},
methods: {
link() {
console.log("路径");
}
}
};
</script>
<style lang="less" scoped>
.row_head {
height: 35px;
line-height: 30px;
color: #0099ff;
}
.msg {
height: 225px;
overflow-y: auto;
.row-text {
height: 40px;
line-height: 40px;
border-top: 1px solid #eee;
}
}
</style>
\ No newline at end of file
<template>
<div class="home">
<Card class="card-user">
<div class="img-header">
<img src="@/assets/images/home/user.png" />
</div>
<div class="user-text">
<p>你好:张飞,欢迎登陆MES系统!</p>
<p>
<span>xx公司/xx车间xx班组</span> &nbsp &nbsp
<span>工艺技术员</span>
</p>
</div>
<div class="incon-carousel">
<div class="bg-b">
<Icon type="ios-arrow-back" />
</div>
<div class="bg bg0">
<Icon type="ios-cube" />
<p>电子对账单</p>
</div>
<div class="bg bg1">
<Icon type="md-mail" />
<p>站内邮件</p>
</div>
<div class="bg bg2">
<Icon type="md-map" />
<p>站内邮件</p>
</div>
<div class="bg bg3">
<Icon type="ios-cube" />
<p>电子对账单</p>
</div>
<div class="bg bg0">
<Icon type="ios-cube" />
<p>电子对账单</p>
</div>
<div class="bg bg1">
<Icon type="md-mail" />
<p>站内邮件</p>
</div>
<div class="bg bg2">
<Icon type="md-mail" />
<p>站内邮件</p>
</div>
<div class="bg-l">
<Icon type="ios-arrow-forward" />
</div>
</div>
</Card>
<div class="card-list">
<div class="bg-b">
<Icon type="ios-arrow-back" />
</div>
<Card
v-for="(item,index) in listTask"
:key="index"
:class="item.name=='物料复验' ? 'img_bg02':(item.name=='产品合格证' ? 'img_bg03':(item.name=='生产执行' ? 'img_bg04' : 'img_bg01'))"
@click.native="goPage(item)"
>
<div class="leftIco">
<img class="img_icon" src="@/assets/imgicon/u1640.png" alt />
</div>
<div class="text-p">
<p>{{item.totalUrl}}</p>
<p>{{item.name}}</p>
</div>
</Card>
<div class="bg-l">
<Icon type="ios-arrow-forward" />
</div>
</div>
<Row class="table" :gutter="16">
<Col :span="12">
<Approval ref="approval" />
</Col>
<Col :span="12">
<UnreadMessage />
</Col>
</Row>
<div class="url-img"></div>
</div>
</template>
<script>
import Api from "./api";
import Approval from "./component/approval";
import UnreadMessage from "./component/unreadMessage";
export default {
components: {
Approval,
UnreadMessage
},
data() {
return {
listTask: [],
imgUrl: iconImg
};
},
created() {
this.get();
},
methods: {
get() {
let list = [];
let url = `${systemUrl}/backlog/get`;
this.$api.get(url).then(r => {
list = r.result;
list.forEach(data => {
// console.log(data.totalUrl)
let ulrt = `http://${address}:` + data.totalUrl;
data.totalUrl = 0;
this.$api.get(ulrt).then(r => {
return (data.totalUrl = r.result);
});
});
console.log(list);
this.listTask = list;
});
},
goPage(u) {
// alert(u.menuUrl)
this.$router.push(u.menuUrl);
}
}
};
</script>
<style lang="less" scoped>
.home {
padding: 10px 0;
.card-user {
height: 100px;
.img-header {
margin-top: -8px;
float: left;
}
.user-text {
float: left;
p {
margin: 10px;
}
}
.incon-carousel {
float: right;
// margin-top: 8px;
width: 800px;
.bg-b {
float: left;
margin-top: 10px;
font-size: 30px;
color: #dcdfe6;
}
.bg-l {
float: right;
margin-top: 10px;
font-size: 30px;
color: #dcdfe6;
}
.bg {
text-align: center;
width: 100px;
float: left;
.ivu-icon {
font-size: 35px;
}
p {
margin-top: 8px;
}
}
.bg0 {
.ivu-icon {
color: #ffc300;
}
}
.bg1 {
.ivu-icon {
color: #0099ff;
}
}
.bg2 {
.ivu-icon {
color: #ff7a8b;
}
}
.bg3 {
.ivu-icon {
color: #ffc300;
}
}
}
}
.card-list {
display: flex;
display: -webkit-flex;
margin-top: 15px;
justify-content: space-around;
.bg-b {
margin-top: 18px;
font-size: 30px;
color: #dcdfe6;
width: 35px;
}
.bg-l {
margin-top: 18px;
font-size: 30px;
color: #dcdfe6;
width: 35px;
}
.img_bg01 {
background-color: #ff9100;
width: 200px;
cursor: pointer;
background: linear-gradient(to left, #ff9100, #ffcf87);
}
.img_bg02 {
width: 200px;
cursor: pointer;
background: linear-gradient(to left, #003fd4, #8ac7fc);
}
.img_bg03 {
cursor: pointer;
width: 200px;
background: linear-gradient(to left, #fe1b1b, #fc9c92);
}
.img_bg04 {
cursor: pointer;
width: 200px;
background: linear-gradient(to left, #249e91, #79ece0);
}
.img_icon {
width: 24px;
margin: 23% 0 0 0;
}
.text-p {
text-align: center;
color: #fff;
p:first-child {
font-size: 20px;
font-weight: bold;
margin-bottom: 5px;
}
}
}
.url-img {
width: 100%;
height: 370px;
background: url("../../assets/images/home/echars.png") no-repeat;
background-size: 100% 100%;
}
.table {
margin-top: 15px;
}
}
</style>
\ No newline at end of file
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12">
<FormItem :label="l('mesCode')" prop="mesCode">
<Input v-model="entity.mesCode"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('taskType')" prop="taskType">
<Dictionary code="mes.mes_plan.task_type" v-model="entity.taskType"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productId')" prop="productId">
<InputNumber v-model="entity.productId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quantity')" prop="quantity">
<InputNumber v-model="entity.quantity"></InputNumber>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('taskRequire')" prop="taskRequire">
<Input v-model="entity.taskRequire" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="mes.mes_plan.status" v-model="entity.status"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('divideMark')" prop="divideMark">
<Dictionary code="mes.mes_plan.divide_mark" v-model="entity.divideMark"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('productCode')" prop="productCode">
<Input v-model="entity.productCode" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productName')" prop="productName">
<Input v-model="entity.productName"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('drawnNumber')" prop="drawnNumber">
<Input v-model="entity.drawnNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('rootId')" prop="rootId">
<InputNumber v-model="entity.rootId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('batchNumber')" prop="batchNumber">
<Input v-model="entity.batchNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('projectNumber')" prop="projectNumber">
<Input v-model="entity.projectNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('urgencyLevel')" prop="urgencyLevel">
<Dictionary code="mes.mes_plan.urgency_level" v-model="entity.urgencyLevel"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productingPreparationPeople')" prop="productingPreparationPeople">
<InputNumber v-model="entity.productingPreparationPeople"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem
:label="l('productingPreparationFinishDate')"
prop="productingPreparationFinishDate"
>
<DatePicker type="date" v-model="entity.productingPreparationFinishDate"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quotationPeople')" prop="quotationPeople">
<InputNumber v-model="entity.quotationPeople"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quotationFinishDate')" prop="quotationFinishDate">
<DatePicker type="date" v-model="entity.quotationFinishDate"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('upId')" prop="upId">
<InputNumber v-model="entity.upId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('demandStartDate')" prop="demandStartDate">
<DatePicker type="date" v-model="entity.demandStartDate"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('demandFinishDate')" prop="demandFinishDate">
<DatePicker type="date" v-model="entity.demandFinishDate"></DatePicker>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
disabled: false,
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
v: Object
},
methods: {
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.create(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "mes_plan" + "." + key;
return this.$t(key);
}
},
watch: {
v() {
this.entity = this.$u.clone(this.v);
}
}
};
</script>
import Api from '@/plugins/request'
export default {
index: `${PlanUrl}/mesplan/paged`,
paged(params) {
return Api.post(`${PlanUrl}/mesplan/paged`, params);
},
get(params) {
return Api.get(`${PlanUrl}/mesplan/get`, params);
},
create(params) {
return Api.post(`${PlanUrl}/mesplan/create`, params);
},
update(params) {
return Api.post(`${PlanUrl}/mesplan/update`, params);
},
//删除:
delete(params) {
return Api.delete(`${PlanUrl}/mesplan/delete`, {
params: params
});
},
}
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('mesCode')">{{entity.mesCode}}</Filed>
<Filed :span="12" :name="l('taskType')">{{entity.taskType}}</Filed>
<Filed :span="12" :name="l('productId')">{{entity.productId}}</Filed>
<Filed :span="12" :name="l('quantity')">{{entity.quantity}}</Filed>
<Filed :span="24" :name="l('remark')">{{entity.remark}}</Filed>
<Filed :span="24" :name="l('taskRequire')">{{entity.taskRequire}}</Filed>
<Filed :span="12" :name="l('status')">{{entity.status}}</Filed>
<Filed :span="12" :name="l('divideMark')">{{entity.divideMark}}</Filed>
<Filed :span="24" :name="l('productCode')">{{entity.productCode}}</Filed>
<Filed :span="12" :name="l('productName')">{{entity.productName}}</Filed>
<Filed :span="12" :name="l('drawnNumber')">{{entity.drawnNumber}}</Filed>
<Filed :span="12" :name="l('rootId')">{{entity.rootId}}</Filed>
<Filed :span="12" :name="l('batchNumber')">{{entity.batchNumber}}</Filed>
<Filed :span="12" :name="l('projectNumber')">{{entity.projectNumber}}</Filed>
<Filed :span="12" :name="l('urgencyLevel')">{{entity.urgencyLevel}}</Filed>
<Filed
:span="12"
:name="l('productingPreparationPeople')"
>{{entity.productingPreparationPeople}}</Filed>
<Filed
:span="12"
:name="l('productingPreparationFinishDate')"
>{{entity.productingPreparationFinishDate}}</Filed>
<Filed :span="12" :name="l('quotationPeople')">{{entity.quotationPeople}}</Filed>
<Filed :span="12" :name="l('quotationFinishDate')">{{entity.quotationFinishDate}}</Filed>
<Filed :span="12" :name="l('upId')">{{entity.upId}}</Filed>
<Filed :span="12" :name="l('demandStartDate')">{{entity.demandStartDate}}</Filed>
<Filed :span="12" :name="l('demandFinishDate')">{{entity.demandFinishDate}}</Filed>
</Row>
</div>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
eid: Number
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.$emit("on-load");
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "mes_plan" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v != 0) {
this.load(v);
}
}
}
};
</script>
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12">
<FormItem :label="l('mesCode')" prop="mesCode">
<Input v-model="entity.mesCode"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('taskType')" prop="taskType">
<Dictionary code="mes.mes_plan.task_type" v-model="entity.taskType"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productId')" prop="productId">
<InputNumber v-model="entity.productId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quantity')" prop="quantity">
<InputNumber v-model="entity.quantity"></InputNumber>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="entity.remark" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('taskRequire')" prop="taskRequire">
<Input v-model="entity.taskRequire" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('status')" prop="status">
<Dictionary code="mes.mes_plan.status" v-model="entity.status"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('divideMark')" prop="divideMark">
<Dictionary code="mes.mes_plan.divide_mark" v-model="entity.divideMark"></Dictionary>
</FormItem>
</Col>
<Col :span="24">
<FormItem :label="l('productCode')" prop="productCode">
<Input v-model="entity.productCode" type="textarea" :rows="5"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productName')" prop="productName">
<Input v-model="entity.productName"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('drawnNumber')" prop="drawnNumber">
<Input v-model="entity.drawnNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('rootId')" prop="rootId">
<InputNumber v-model="entity.rootId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('batchNumber')" prop="batchNumber">
<Input v-model="entity.batchNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('projectNumber')" prop="projectNumber">
<Input v-model="entity.projectNumber"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('urgencyLevel')" prop="urgencyLevel">
<Dictionary code="mes.mes_plan.urgency_level" v-model="entity.urgencyLevel"></Dictionary>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('productingPreparationPeople')" prop="productingPreparationPeople">
<InputNumber v-model="entity.productingPreparationPeople"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem
:label="l('productingPreparationFinishDate')"
prop="productingPreparationFinishDate"
>
<DatePicker type="date" v-model="entity.productingPreparationFinishDate"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quotationPeople')" prop="quotationPeople">
<InputNumber v-model="entity.quotationPeople"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('quotationFinishDate')" prop="quotationFinishDate">
<DatePicker type="date" v-model="entity.quotationFinishDate"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('upId')" prop="upId">
<InputNumber v-model="entity.upId"></InputNumber>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('demandStartDate')" prop="demandStartDate">
<DatePicker type="date" v-model="entity.demandStartDate"></DatePicker>
</FormItem>
</Col>
<Col :span="12">
<FormItem :label="l('demandFinishDate')" prop="demandFinishDate">
<DatePicker type="date" v-model="entity.demandFinishDate"></DatePicker>
</FormItem>
</Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Edit",
data() {
return {
disabled: false,
entity: {},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
props: {
eid: Number
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.$emit("on-load");
});
},
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
Api.update(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
console.warn(err);
});
}
});
},
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "mes_plan" + "." + key;
return this.$t(key);
}
},
watch: {
eid(v) {
if (v != 0) {
this.load(v);
}
}
}
};
</script>
This diff is collapsed.
<template>
<Form ref="form" :model="condition" :label-width="90">
<Row>
<Col :span="12" :v-if="condition.id.show">
<FormItem :label="l('id')" prop="id">
<Input v-model="condition.id.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.creationTime.show">
<FormItem :label="l('creationTime')" prop="creationTime">
<DatePicker type="daterange" v-model="condition.creationTime.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.creatorUserId.show">
<FormItem :label="l('creatorUserId')" prop="creatorUserId">
<Input v-model="condition.creatorUserId.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.lastModificationTime.show">
<FormItem :label="l('lastModificationTime')" prop="lastModificationTime">
<DatePicker type="daterange" v-model="condition.lastModificationTime.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.lastModifierUserId.show">
<FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId">
<Input v-model="condition.lastModifierUserId.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.isDeleted.show">
<FormItem :label="l('isDeleted')" prop="isDeleted">
<Input v-model="condition.isDeleted.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.deletionTime.show">
<FormItem :label="l('deletionTime')" prop="deletionTime">
<DatePicker type="daterange" v-model="condition.deletionTime.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.deleterUserId.show">
<FormItem :label="l('deleterUserId')" prop="deleterUserId">
<Input v-model="condition.deleterUserId.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.mesCode.show">
<FormItem :label="l('mesCode')" prop="mesCode">
<Input v-model="condition.mesCode.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.taskType.show">
<FormItem :label="l('taskType')" prop="taskType">
<Dictionary code="mes.mes_plan.task_type" v-model="condition.taskType.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.productId.show">
<FormItem :label="l('productId')" prop="productId">
<Input v-model="condition.productId.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.quantity.show">
<FormItem :label="l('quantity')" prop="quantity">
<Input v-model="condition.quantity.value"></Input>
</FormItem>
</Col>
<Col :span="24" :v-if="condition.remark.show">
<FormItem :label="l('remark')" prop="remark">
<Input v-model="condition.remark.value"></Input>
</FormItem>
</Col>
<Col :span="24" :v-if="condition.taskRequire.show">
<FormItem :label="l('taskRequire')" prop="taskRequire">
<Input v-model="condition.taskRequire.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.status.show">
<FormItem :label="l('status')" prop="status">
<Dictionary code="mes.mes_plan.status" v-model="condition.status.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.divideMark.show">
<FormItem :label="l('divideMark')" prop="divideMark">
<Dictionary code="mes.mes_plan.divide_mark" v-model="condition.divideMark.value"></Dictionary>
</FormItem>
</Col>
<Col :span="24" :v-if="condition.productCode.show">
<FormItem :label="l('productCode')" prop="productCode">
<Input v-model="condition.productCode.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.productName.show">
<FormItem :label="l('productName')" prop="productName">
<Input v-model="condition.productName.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.drawnNumber.show">
<FormItem :label="l('drawnNumber')" prop="drawnNumber">
<Input v-model="condition.drawnNumber.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.rootId.show">
<FormItem :label="l('rootId')" prop="rootId">
<Input v-model="condition.rootId.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.batchNumber.show">
<FormItem :label="l('batchNumber')" prop="batchNumber">
<Input v-model="condition.batchNumber.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.projectNumber.show">
<FormItem :label="l('projectNumber')" prop="projectNumber">
<Input v-model="condition.projectNumber.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.urgencyLevel.show">
<FormItem :label="l('urgencyLevel')" prop="urgencyLevel">
<Dictionary code="mes.mes_plan.urgency_level" v-model="condition.urgencyLevel.value"></Dictionary>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.productingPreparationPeople.show">
<FormItem :label="l('productingPreparationPeople')" prop="productingPreparationPeople">
<Input v-model="condition.productingPreparationPeople.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.productingPreparationFinishDate.show">
<FormItem
:label="l('productingPreparationFinishDate')"
prop="productingPreparationFinishDate"
>
<DatePicker type="daterange" v-model="condition.productingPreparationFinishDate.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.quotationPeople.show">
<FormItem :label="l('quotationPeople')" prop="quotationPeople">
<Input v-model="condition.quotationPeople.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.quotationFinishDate.show">
<FormItem :label="l('quotationFinishDate')" prop="quotationFinishDate">
<DatePicker type="daterange" v-model="condition.quotationFinishDate.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.upId.show">
<FormItem :label="l('upId')" prop="upId">
<Input v-model="condition.upId.value"></Input>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.demandStartDate.show">
<FormItem :label="l('demandStartDate')" prop="demandStartDate">
<DatePicker type="daterange" v-model="condition.demandStartDate.value"></DatePicker>
</FormItem>
</Col>
<Col :span="12" :v-if="condition.demandFinishDate.show">
<FormItem :label="l('demandFinishDate')" prop="demandFinishDate">
<DatePicker type="daterange" v-model="condition.demandFinishDate.value"></DatePicker>
</FormItem>
</Col>
</Row>
</Form>
</template>
<script>
import Api from "./api";
export default {
name: "Add",
data() {
return {
condition: {
id: { op: "Equal", value: null, show: false },
creationTime: { op: "Range", value: null, show: false },
creatorUserId: { op: "Equal", value: null, show: false },
lastModificationTime: { op: "Range", value: null, show: false },
lastModifierUserId: { op: "Equal", value: null, show: false },
isDeleted: { op: "Equal", value: null, show: false },
deletionTime: { op: "Range", value: null, show: false },
deleterUserId: { op: "Equal", value: null, show: false },
mesCode: { op: "Equal", value: null, show: true },
taskType: { op: "Equal", value: null, show: true },
productId: { op: "Equal", value: null, show: true },
quantity: { op: "Equal", value: null, show: true },
remark: { op: "Equal", value: null, show: true },
taskRequire: { op: "Equal", value: null, show: true },
status: { op: "Equal", value: null, show: true },
divideMark: { op: "Equal", value: null, show: true },
productCode: { op: "Equal", value: null, show: true },
productName: { op: "Equal", value: null, show: true },
drawnNumber: { op: "Equal", value: null, show: true },
rootId: { op: "Equal", value: null, show: true },
batchNumber: { op: "Equal", value: null, show: true },
projectNumber: { op: "Equal", value: null, show: true },
urgencyLevel: { op: "Equal", value: null, show: true },
productingPreparationPeople: { op: "Equal", value: null, show: true },
productingPreparationFinishDate: {
op: "Range",
value: null,
show: true
},
quotationPeople: { op: "Equal", value: null, show: true },
quotationFinishDate: { op: "Range", value: null, show: true },
upId: { op: "Equal", value: null, show: true },
demandStartDate: { op: "Range", value: null, show: true },
demandFinishDate: { op: "Range", value: null, show: true }
}
};
},
methods: {
handleClose() {
this.$emit("on-close");
},
l(key) {
key = "mes_plan" + "." + key;
return this.$t(key);
}
}
};
</script>
......@@ -17,16 +17,28 @@
<div class="tableBox mb10" :style="{height:tbHeight}">
<div class="table">
<div v-if="listTask.length==0" class="wu_data">暂无数据</div>
<Card class="card" v-for="(item,index) in listTask" :key="index">
<h3 slot="title">订单编号:{{item.mesCode}}</h3>
<ul class="card_body01">
<li class="card_line">产品名称:{{item.productName}}</li>
<li class="card_line">任务类型:{{item.equipment}}</li>
</ul>
<p class="footer01">
<a class="footer_btn" href="#" @click.event="reviewFn(item)">追 溯</a>
</p>
</Card>
<Row :gutter="16">
<Col span="6" v-for="(item,index) in listTask" :key="index">
<Card class="card">
<h3 slot="title">
订单编号:{{item.mesCode}}
</h3>
<ul class="card_body01">
<li class="card_line">
产品名称:{{item.productName}}
</li>
<li class="card_line">
任务类型:{{item.equipment}}
</li>
</ul>
<p class="footer01">
<a class="footer_btn" href="#" @click.event="reviewFn(item)">
追 溯
</a>
</p>
</Card>
</Col>
</Row>
</div>
<div v-show="noData" class="no_data">
<h3>暂无数据</h3>
......@@ -492,18 +504,14 @@ li {
text-align: center;
line-height: 800px;
}
.card {
width: 375px;
.card{
margin: 10px 0 10px 20px;
}
.wu_data {
margin: 200px auto;
font-size: 18px;
}
/* .card_body01{
margin: 0 0 10px 0;
} */
.card_line {
.card_line{
height: 30px;
line-height: 30px;
}
......
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