Commit e86694d7 authored by 仇晓婷's avatar 仇晓婷

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

parents 5bc047d5 8da78f1e
......@@ -4,25 +4,29 @@
<Divider />
<Timeline>
<div>
<TimelineItem v-for="(item, index) in dataImmut" :key="index">
<TimelineItem v-for="(item, index) in dataImmut" :key="index">
<Badge :count="index + 1" slot="dot" :type="index==cur?'primary':'normal'"></Badge>
<p class="time">{{ item.name }}
&nbsp;(<state code="workflow.form.audit.type" :value="item.operation" />)
<Icon v-if="item.isFixed" type="ios-lock"/>
<p class="time">
{{ item.name }}
&nbsp;(
<state code="workflow.form.audit.type" :value="item.operation" />)
<Icon v-if="item.isFixed" type="ios-lock" />
</p>
<p class="content" v-if="index==0">
发起人: <User :value="currentUserId" />
发起人:
<User :value="currentUserId" />
</p>
<p class="content" v-else>
<span>审批人:</span>
<CheckboxGroup v-model="item.userIds" @on-change="userIds">
<Checkbox v-for="(item1, index1) in item.defaultUsers.immutable"
:key="index1" :label="item1" :disabled="item.isFixed">
<User
:value="item1"
style="margin-right:5px;"
/>
</Checkbox>
<Checkbox
v-for="(item1, index1) in item.defaultUsers.immutable"
:key="index1"
:label="item1"
:disabled="item.isFixed"
>
<User :value="item1" style="margin-right:5px;" />
</Checkbox>
</CheckboxGroup>
</p>
<!-- <p class="content" v-else>
......@@ -31,7 +35,7 @@
:value="item1"
style="margin-right:5px;"
/>
</p> -->
</p>-->
</TimelineItem>
</div>
</Timeline>
......@@ -39,81 +43,99 @@
</template>
<script>
export default {
name: 'process',
name: "process",
components: {},
data() {
return {
currentUserId: 0,
processTitle: '审批流程',
processTitle: "审批流程",
dataImmut: [],
dataMut: [],
cur:0,
cur: 0,
immutData: [],
ids:[],
schemaId: ''
}
ids: [],
schemaId: ""
};
},
props: {
schemaIdVal: {
type: String,
default: ''
default: ""
}
},
created() {
this.currentUserId=this.$store.state.userInfo.userId
this.load(this.schemaIdVal)
this.currentUserId = this.$store.state.userInfo.userId;
this.load(this.schemaIdVal);
},
methods: {
load(v) {
this.dataImmut = []
this.dataMut = []
let url = `${workflowUrl}/schema/intend`
this.$api.get(url, { schemaId: v }).then((r) => {
if (r.success) {
// console.warn("VVVV",r)
r.result.nodes.map((u,i)=>{
if(i>0){
let ids=u.defaultUsers.immutable.concat(u.defaultUsers.mutable)
u.defaultUsers.immutable=ids;
u.userIds=this.$u.clone(ids);
}else{
u.userIds=[this.currentUserId]
}
})
this.dataImmut = r.result.nodes
this.processTitle = r.result.name
// if (this.dataImmut.length >= 1) {
// this.immutData = this.dataImmut[1].defaultUsers.immutable
this.dataImmut = [];
this.dataMut = [];
//判断流程是否启用
let params = {
id: v
};
this.$api.get(`${workflowUrl}/schema/getbyid`, params).then(res => {
if (res.success) {
let wfStatus = res.result.status;
if (wfStatus == 0) {
//启用
let url = `${workflowUrl}/schema/intend`;
this.$api.get(url, { schemaId: v }).then(r => {
if (r.success) {
// console.warn("VVVV",r)
r.result.nodes.map((u, i) => {
if (i > 0) {
let ids = u.defaultUsers.immutable.concat(
u.defaultUsers.mutable
);
u.defaultUsers.immutable = ids;
u.userIds = this.$u.clone(ids);
} else {
u.userIds = [this.currentUserId];
}
});
this.dataImmut = r.result.nodes;
this.processTitle = r.result.name;
// if (this.dataImmut.length >= 1) {
// this.immutData = this.dataImmut[1].defaultUsers.immutable
// }
this.userIds();
}
});
}
// else {
// this.$Message.error("流程未启用");
// }
this.userIds();
} else {
this.$Message.error("操作失败");
}
})
});
},
userIds(){
var ids=[];
this.dataImmut.map((u,i)=>{
ids.push({
id:u.id,
userIds:u.userIds
})
})
this.immutData=ids;
userIds() {
var ids = [];
this.dataImmut.map((u, i) => {
ids.push({
id: u.id,
userIds: u.userIds
});
});
this.immutData = ids;
// console.warn(ids);
},
l(key) {
key = 'orderInfo' + '.' + key
return this.$t(key)
key = "orderInfo" + "." + key;
return this.$t(key);
}
},
computed: {},
watch: {
schemaIdVal(v) {
if (v) {
this.load(v)
this.load(v);
}
}
}
}
};
</script>
<style scoped></style>
<template>
<div style="padding: 0;" class="excute">
<DataGrid
style="margin-top:2px; margin-bottom: -20px;"
style="margin-top:2px; margin-bottom: -5px;"
:columns="columns"
ref="grid"
:easy="false"
......@@ -9,8 +9,8 @@
:set="false"
:border="false"
:data="data1"
:page="false"
:height="gridHeight"
:page="false"
:size="size"
></DataGrid>
<Modal v-model="editModal" title="编辑" footer-hide width="800">
......@@ -60,7 +60,7 @@ export default {
insertlModal: false,
rowIndex: null,
curId: 0,
gridHeight: 50,
gridHeight: 150,
size: "small",
columns: [
{ title: " ", width: 130 },
......
......@@ -28,13 +28,17 @@
<Icon type="md-git-compare" />
</a>
<DropdownMenu slot="list" style="text-align: center;">
<DropdownItem v-for="li in items" :key="li.value" v-dragging="{ item: li, list: items}">
<DropdownItem
v-for="li in items"
:key="li.value"
v-dragging="{ item: li, list: items}"
>
<a href="#">
<Icon type="md-apps" />
</a>
<span>{{li.name}}</span>
</DropdownItem>
</DropdownMenu>
</DropdownItem>
</DropdownMenu>
</Dropdown>
</div>
<div class="slider">
......@@ -111,7 +115,7 @@
<span slot="close"></span>
</i-switch>
</FormItem>
<FormItem :label="l('discrete_percent')" prop="discrete_percent">
<FormItem :label="l('discrete_percent')" prop="discrete_percent">
<Slider
v-model="entity.discrete_percent"
:step="1"
......@@ -126,10 +130,10 @@
:disabled="count==0"
:min="1"
:max="count==0?1:count"
@on-change="setDiscrete"
@on-change="setDiscrete"
></InputNumber>
<!-- <span>{{count}}</span> -->
</FormItem>
</FormItem>
</div>
</Col>
</Row>
......@@ -145,7 +149,12 @@ import Api from "./api";
export default {
data() {
return {
items:[{name:"是否多台",value:"multiple"},{name:"转序规则",value:"planState"},{name:"加班策略",value:"over"},{name:"是否离散",value:"dis"}],
items: [
{ name: "是否多台", value: "multiple" },
{ name: "转序规则", value: "planState" },
{ name: "加班策略", value: "over" },
{ name: "是否离散", value: "dis" }
],
entity: {
partTaskPk: 0,
opTaskPk: 0,
......@@ -158,10 +167,10 @@ export default {
overTime: "不加班", //"六日加班", 不加班 加班
efficiencyValue: 11, // 效率系数, 必须大于 0
shopId: -1,
dis:false,
isDiscrete: "否",//是否离散 是否
dis: false,
isDiscrete: "否", //是否离散 是否
discrete: 1, //离散数值 必须大于 1
discrete_percent:0,
discrete_percent: 0,
multiple: false,
multipleEquip: "否", //"是否多台安排设备", 否 是
multipleCount: 1, //多台数量
......@@ -235,12 +244,12 @@ export default {
this.apsGet(); //获取参数级别和转序等的关系
},
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);
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: {
......@@ -264,13 +273,13 @@ export default {
});
},
setParameter(v) {
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;
}
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 => {
......@@ -284,10 +293,10 @@ export default {
this.entity.flog = 1;
return;
}
if(this.entity.multipleEquipPks){
if (this.entity.multipleEquipPks) {
this.entity.multipleEquipIds = this.entity.multipleEquipPks.join();
}
//
//
this.entity.planMethod = !this.entity.planState ? "重叠" : "平行";
this.entity.overTime = !this.entity.over ? "不加班" : "加班";
this.entity.isDiscrete = this.entity.dis ? "是" : "否";
......@@ -314,13 +323,14 @@ export default {
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);
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)
);
setDiscrete(v) {
this.entity.discrete_percent =
(100 * this.count - 100 * this.entity.discrete) / (this.count - 1);
}
},
computed: {
......@@ -346,36 +356,38 @@ export default {
},
opTaskPk(v, n) {
this.entity.opTaskPk = v;
if(v>0){
console.log("detail",this.row);
let entity={
if (v > 0) {
console.log("detail", this.row);
let entity = {
partTaskPk: this.row.part_task_pk,
opTaskPk: this.row.op_task_pk,
taskSeq: this.row.task_seq,
flog: 0, //参数应用范围
calId: -1,
planState: this.row.plan_method=="平行",
calId: parseInt(this.row.cal_id),
planState: this.row.plan_method == "平行",
planMethod: this.row.plan_method, // 平行 重叠
over: this.row.over_time=="加班",
over: this.row.over_time == "加班",
overTime: this.row.over_time, //"六日加班", 不加班 加班
efficiencyValue:this.row.efficiency_value|1, // 效率系数, 必须大于 0
efficiencyValue: this.row.efficiency_value | 1, // 效率系数, 必须大于 0
shopId: -1,
isDiscrete: this.row.isdiscrete=="是",
discrete: this.row.discrete_value|1, //离散数值 必须大于 1
multiple: this.row.multi_machine=="是",
multipleEquip: this.row.multi_machine|"否", //"是否多台安排设备", 否 是
dis: this.row.isdiscrete == "是",
isDiscrete: this.row.isdiscrete ? "是" : "否", //是否离散 是否
discrete: this.row.discrete_value | 1, //离散数值 必须大于 1
multiple: this.row.multi_machine == "是",
multipleEquip: this.row.multi_machine | "否", //"是否多台安排设备", 否 是
multipleCount: 1, //多台数量
multipleEquipPks: [],
multipleEquipIds: "", //"设备id", 用英文逗号分隔
}
this.entity=entity
multipleEquipIds: "" //"设备id", 用英文逗号分隔
};
this.entity = entity;
console.warn("detail", this.entity, this.row);
}
this.entity.taskSeq = this.taskSeq;
},
count(v, n) {
this.entity.discrete = 1;
},
}
}
};
</script>
......
<template>
<div>
<div id="myChart" style="width:380px;height:300px;margin:0 auto;top: 0px;"></div>
<div id="myChart" style="width:380px;height:400px;margin:0 auto;top: 30px;"></div>
</div>
</template>
<script>
......
......@@ -118,9 +118,7 @@ export default {
}
},
downUrl: fileUrlDown,
columns: {
count:7,
},
columns: [],
comondata:[
{
productName: "受电弓",
......
.new_body{
&{
background: #fff;
}
}
.set_card{
padding: 12px 30px 0;
.set_card_box{
......@@ -18,6 +23,7 @@
width: 150px;
height: 120px;
text-align: center;
margin: 0 auto;
}
.statu_box{
line-height: 30px;
......@@ -32,11 +38,11 @@
margin: 0 10px 0 0;
}
.set_masage{
min-height: 125px;
height: 125px;
line-height: 25px;
.time_bg{
background: #267feb49;
line-height: 34px;
margin: 0 auto;
width: 160px;
text-align: center;
border-radius: 3px;
......@@ -44,8 +50,13 @@
}
.set_masage02{
line-height: 35px;
height: 144px;
text-align: center;
}
}
.echarts02{
height: 462px;
}
}
}
#echarts{
......@@ -58,7 +69,7 @@
.tips_item{
background: #eff1f7;
margin: 20px;
line-height: 38px;
line-height: 58px;
padding: 0 20px;
.item_top{
border-bottom: 1px solid #b1b1b1;
......
......@@ -2,7 +2,7 @@
@import "./mnc.less";
</style>
<template>
<div>
<div class="new_body">
<a class="back_href" @click="goView">
<Icon type="ios-undo-outline" size="24" />返回设备监控
</a>
......@@ -74,7 +74,7 @@
<p class="set_top">设备状态</p>
<div class="set_card_body">
<Row>
<Col span="9">
<Col span="24">
<div class="set_img statu_box">
<img v-if="formData.statu=='关机'" src="../image/guan.png" alt="">
<img v-else-if="formData.statu=='空闲'" src="../image/kong.png" alt="">
......@@ -83,7 +83,7 @@
<p>{{formData.statu}}</p>
</div>
</Col>
<Col span="15">
<Col span="24">
<div class="set_masage set_masage02">
<p>当前状态开始时间:</p>
<p class="time_bg">11:45:05</p>
......@@ -96,7 +96,7 @@
</div>
<div class="set_card_box">
<p class="set_top">加工状态统计</p>
<div class="center">
<div class="center echarts02">
<Echart2 ></Echart2>
</div>
</div>
......@@ -151,7 +151,7 @@
<p>当前刀具名称:<span class="item_right"> GD236689 </span></p>
<p>当前刀库号: <span class="item_right"> 1213 </span></p>
<p>刀具已使用工时: <span class="item_right"> 10 </span></p>
<p>刀补值: <span class="item_right"> 20 </span>-</p>
<p>刀补值: <span class="item_right"> -20 </span></p>
<p>刀补地址: <span class="item_right"> D1 </span></p>
<p>扭矩: <span class="item_right"> 200 </span></p>
</div>
......
......@@ -171,10 +171,25 @@ export default {
}
]
},
disabled: false
disabled: false,
wfstatu: 1
};
},
mounted() {
let params = {
id: "123327da-42b3-41f6-b785-cf933f137a95"
};
this.$api.get(`${workflowUrl}/schema/getbyid`, params).then(res => {
if (res.success) {
let wfStatus = res.result.status;
if (wfStatus == 0) {
this.wfstatu = 1;
} else {
this.wfstatu = 3;
}
}
});
this.loadTree();
},
methods: {
......@@ -182,7 +197,7 @@ export default {
this.$refs.formValidate.validate(v => {
if (v) {
this.disabled = true;
this.orderSearchForm.status = 1;
this.orderSearchForm.status = this.wfstatu;
Api.mesplancreate(this.orderSearchForm)
.then(r => {
this.disabled = false;
......
......@@ -147,7 +147,8 @@ export default {
},
placeholdeinfo: "",
list: [],
data1: []
data1: [],
wfstatu: 1
};
},
props: {
......@@ -159,6 +160,19 @@ export default {
}
},
mounted() {
let params = {
id: "123327da-42b3-41f6-b785-cf933f137a95"
};
this.$api.get(`${workflowUrl}/schema/getbyid`, params).then(res => {
if (res.success) {
let wfStatus = res.result.status;
if (wfStatus == 0) {
this.wfstatu = 1;
} else {
this.wfstatu = 3;
}
}
});
this.loadTree();
},
methods: {
......@@ -172,7 +186,7 @@ export default {
this.$refs.formValidate.validate(v => {
if (v) {
this.disabled = true;
this.orderSearchForm.status = 1;
this.orderSearchForm.status = this.wfstatu;
Api.mesorderupdate(this.orderSearchForm)
.then(r => {
this.disabled = false;
......
This diff is collapsed.
<template>
<div style="width:100%;margin:0 auto">
<Table border :columns="columns1" :data="dataList" class="tableCommon" :height="tbHeight"></Table>
<div style="width100%;margin:40px auto">
<Row>
<Process ref="userProcess" schemaIdVal="123327da-42b3-41f6-b785-cf933f137a95" />
</Row>
</div>
</div>
</template>
<script>
import Process from "@/components/orderOperator/process";
export default {
name: "sendView",
components: {
Process
},
data() {
return {
divHeight: "400px",
columns1: [
{
title: this.l("mesCode"),
key: "mesCode",
width: 180,
tooltip: true
},
{
title: this.l("productName"),
key: "productName",
tooltip: true
},
{
key: "drawnNumber",
title: this.l("drawnNumber"),
align: "center",
width: 140
},
{
title: this.l("projectNumber"),
key: "projectNumber",
width: 140
},
{
title: this.l("batchNumber"),
key: "batchNumber",
width: 120,
tooltip: true
},
{
title: this.l("quantity"),
key: "quantity",
align: "right",
width: 70
}
],
dataList: [],
row1: {},
dataListRetrun: [], //确定后返回数据
rowList: [],
row1: {},
tbHeight: 0,
};
},
props: {
row: {
type: Array,
default: () => {
return [];
}
}
},
methods: {
getUsers() {
let ues = this.$refs.userProcess;
return ues.immutData;
},
l(key) {
let vkey = "mes_plan" + "." + key;
return this.$t(vkey) || key;
}
},
created() {},
mounted() {},
watch: {
row(v) {
if (v != []) {
this.dataList = this.$u.clone(this.row);
this.row1 = this.dataList[0];
this.tbHeight = 0;
if (this.dataList.length > 3) {
this.tbHeight = 200;
}
}
}
}
};
</script>
\ No newline at end of file
......@@ -155,6 +155,7 @@
</template>
<script>
import Api from "./api";
import ApiWorkflow from "../workflow/process/api";
import iQuill from "@/components/quill";
export default {
name: "Add",
......@@ -172,7 +173,7 @@ export default {
code: "",
productId: null,
productName: "",
productBomId:null,
productBomId: null,
version: "",
author: null,
departmentId: null,
......@@ -182,7 +183,7 @@ export default {
upDetailId: null,
routingType: null,
status: 0,
approvalStatus: 0,
approvalStatus: 4,
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
......@@ -243,19 +244,37 @@ export default {
} else {
this.entity.fileId = "";
}
Api.create(this.entity)
.then(r => {
this.disabled = false;
if (r.success) {
this.$Message.success("保存成功");
this.$emit("on-ok");
} else {
this.$Message.error("保存失败");
ApiWorkflow.getbyid({
id: "2085025d-9c38-4834-846a-8f9d2f4c8553"
})
.then(res => {
if (res.success) {
let wfStatus = res.result.status;
if (wfStatus == 0) {
this.entity.approvalStatus = 4;
} else {
this.entity.approvalStatus = 1;
}
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);
});
}
})
.catch(err => {
this.disabled = false;
this.$Message.error("保存失败");
this.$Message.error("操作失败");
console.warn(err);
});
}
......
......@@ -127,11 +127,12 @@
</Col>
</Row>
</Form>
<changeSendReview ref="changeSendReview" @on-ok="ok"></changeSendReview>
<changeSendReview ref="changeSendReview" @on-ok="ok"></changeSendReview>
</div>
</template>
<script>
import Api from "./api";
import ApiWorkflow from "../../../workflow/process/api";
import iQuill from "@/components/quill";
import changeSendReview from "./changeSendReview.vue";
export default {
......@@ -197,6 +198,27 @@ export default {
.cathc(err => {
this.$Message.error("数据连接错误");
});
ApiWorkflow.getbyid({
id: "d0cdafe3-2341-4499-a4f5-278ef0f30740"
})
.then(res1 => {
alret(JSON.stringify(res1))
if (res1.success) {
let wfStatus = res1.result.status;
if (wfStatus == 0) {
this.submitShow = true;
// this.entity.approvalStatus = 4;
} else {
// this.entity.approvalStatus = 1;
this.submitShow = false;
}
}
})
.catch(err => {
this.$Message.error("操作失败");
console.warn(err);
});
},
handleSubmit() {
this.$refs.form.validate(v => {
......@@ -291,9 +313,8 @@ export default {
this.entity.departmentId = v;
this.entity.departmentName = items.name;
},
ok()
{
this.$emit("on-ok")
ok() {
this.$emit("on-ok");
},
l(key) {
key = "routing_header_changeorder" + "." + key;
......
......@@ -33,4 +33,7 @@ export default {
updateNode(params) { //流程设计编辑保存
return Api.post(`${workflowUrl}/node/update`, params);
},
getbyid(params) {//根据shemaId获取详细详细
return Api.get(`${workflowUrl}/schema/getbyid`, params); //流程
},
}
\ No newline at end of file
This diff is collapsed.
......@@ -37,7 +37,6 @@ export const actions = {
// token 代表用户当前登录状态 建议在网络请求中携带 token
// 如有必要 token 需要定时更新,默认保存一天,可在 setting.js 中修改
// 如果你的 token 不是通过 cookie 携带,而是普通字段,也可视情况存储在 localStorage
console.warn(res);
if (res.result) {
util.cookies.set('uuid', res.result.userId);
......
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