Commit 630bffc8 authored by 康振飞's avatar 康振飞

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

parents 821aa184 a5f4d12f
...@@ -56,7 +56,8 @@ export default { ...@@ -56,7 +56,8 @@ export default {
item=items[0]; item=items[0];
} }
this.$emit("on-change",v,item) this.$emit("on-change",v,item)
} },
}, },
watch: { watch: {
value: { value: {
......
...@@ -611,7 +611,7 @@ export default { ...@@ -611,7 +611,7 @@ export default {
id: 'id', id: 'id',
productName: '产品名称', productName: '产品名称',
name: '工艺名称', name: '工艺名称',
routingType: '', routingType: '工艺类型',
routingTypeDesc: '工艺类型', routingTypeDesc: '工艺类型',
version: '文档版本', version: '文档版本',
code: '规程编号', code: '规程编号',
...@@ -1169,11 +1169,13 @@ export default { ...@@ -1169,11 +1169,13 @@ export default {
classId: '类id', classId: '类id',
unicode: 'unicode', unicode: 'unicode',
name: '工艺名称', name: '工艺名称',
code: '工艺编号', code: '工艺文件编号',
productId: '产品id', productId: '产品id',
productName:'产品名称',
version: '版本', version: '版本',
author: '编制人', author: '编制人',
departmentId: '主制车间', departmentId: '主制车间',
departmentName:'主制车间',
isMain: '主工艺', isMain: '主工艺',
upId: '父工艺', upId: '父工艺',
upDetailId: '上级工序', upDetailId: '上级工序',
...@@ -1186,11 +1188,15 @@ export default { ...@@ -1186,11 +1188,15 @@ export default {
auditUserId2: '审批人', auditUserId2: '审批人',
isDeleted: '是否删除', isDeleted: '是否删除',
platesnum: '板数', platesnum: '板数',
isEffect: '效', isEffect: '效',
versionnotes: '版本说明', versionnotes: '版本说明',
phase: '阶段', phase: '阶段',
versionid: '版本ID', versionid: '版本ID',
isSendPpm: '发送PPM', isSendPpm: '发送PPM',
creationTime:'创建时间',
creatorUserId:'创建人',
lastModificationTime:'最近修改时间',
lastModifierUserId:'最近修改人',
}, },
routing_detail:{ routing_detail:{
id:'', id:'',
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<Carousel v-model="value1" autoplay :autoplay-speed="5000" loop class="zmd"> <Carousel v-model="value1" autoplay :autoplay-speed="5000" loop class="zmd">
<!-- <CarouselItem> <!-- <CarouselItem>
<div class="bg bg0">1</div> <div class="bg bg0">1</div>
</CarouselItem> --> </CarouselItem>-->
<CarouselItem> <CarouselItem>
<div class="bg bg1">1</div> <div class="bg bg1">1</div>
</CarouselItem> </CarouselItem>
...@@ -16,12 +16,13 @@ ...@@ -16,12 +16,13 @@
</Carousel> </Carousel>
<!-- <div v-if="showI18n" class="page-account-header"> <!-- <div v-if="showI18n" class="page-account-header">
<i-header-i18n /> <i-header-i18n />
</div> --> </div>-->
<div class="main"> <div class="main">
<div class="ad"> <div class="ad">
<img src="@/assets/images/login/ad.png" /> <img src="@/assets/images/login/ad.png" />
</div> </div>
<div class="login"> <div class="login">
<div class="cen">
<div class="page-account-top"> <div class="page-account-top">
<div class="page-account-top-logo tc"> <div class="page-account-top-logo tc">
<img src="@/assets/images/logo.png" alt="logo" /> <img src="@/assets/images/logo.png" alt="logo" />
...@@ -43,6 +44,7 @@ ...@@ -43,6 +44,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import iCopyright from "@/components/copyright"; import iCopyright from "@/components/copyright";
...@@ -102,13 +104,13 @@ export default { ...@@ -102,13 +104,13 @@ export default {
let info = res.result; let info = res.result;
info.auth = ["admin"]; info.auth = ["admin"];
info.avatar = info.avatarUrl; info.avatar = info.avatarUrl;
info.userId=info.id; info.userId = info.id;
info.name=info.userName; info.name = info.userName;
this.$store.dispatch("admin/user/set", info, { this.$store.dispatch("admin/user/set", info, {
root: true root: true
}); });
// setUserInfo // setUserInfo
this.$store.commit("setUserInfo",info) this.$store.commit("setUserInfo", info);
this.$router.replace(this.$route.query.redirect || "/"); this.$router.replace(this.$route.query.redirect || "/");
} else { } else {
this.$Message.error("用户信息22查询失败!"); this.$Message.error("用户信息22查询失败!");
...@@ -162,16 +164,19 @@ export default { ...@@ -162,16 +164,19 @@ export default {
flex: 1; flex: 1;
text-align: center; text-align: center;
img { img {
margin-top: 400px; margin-top:26%;
} }
} }
.login { .login {
background-color: white; background-color: white;
width: 600px; width: 600px;
padding: 150px 90px; padding: 0 90px;
// background-image: url("../../../assets/images/login/33.png"); display: flex;
// background-repeat: no-repeat; align-items: center;
// background-position-y: 525px; flex-direction: row;
.cen {
width: 100%;
margin-top: -50px;
.ivu-input-wrapper { .ivu-input-wrapper {
margin-bottom: 5px; margin-bottom: 5px;
} }
...@@ -186,5 +191,6 @@ export default { ...@@ -186,5 +191,6 @@ export default {
} }
} }
} }
}
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div> <div>
<Button type="dashed">新增</Button> <Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12">
<FormItem label="编码" prop="userUnit">
<Input v-model="entity.userUnit" placeholder="请输入"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="名称" prop="taskBased">
<Input v-model="entity.taskBased" placeholder="请输入"></Input>
</FormItem>
</Col>
<Col :span="12">
<FormItem label="状态" prop="productName" placeholder="请选择">
<Select v-model="entity.productName" style="width:200px">
<Option value="0">New York</Option>
<Option value="1" disabled>London</Option>
<Option value="2">Sydney</Option>
</Select>
</FormItem>
</Col>
<Col :span="24">
<FormItem label="描述" prop="productName">
<Input v-model="entity.productName" type="textarea" placeholder="请输入..."></Input>
</FormItem>
</Col>
<Col :span="24">
<h4>属性配置</h4>
</Col>
<Col :span="24" style="padding:20px 0 0px 10px;margin-bottom:10px;" class="table-solt">
<Table border :columns="columns" :data="checkList" class="tableCommon">
<template slot-scope="{ row, index }" slot="name">
<Input v-model="row.name" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
<template slot-scope="{ row, index }" slot="require">
<Input v-model="row.require" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
<template slot-scope="{ row, index }" slot="result">
<Input v-model="row.result" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
<template slot-scope="{ row, index }" slot="pash">
<inputFile v-model="row.file" :files="true" :parms="getParams(row.fileId)" />
</template>
<template slot-scope="{ row, index }" slot="remark">
<Input v-model="row.remark" placeholder="请输入" @on-blur="setRow(row,index)" />
</template>
</Table>
</Col>
<Col :span="24" style="margin-bottom:20px;">
<Button type="primary" long @click="addNew" class="mt10">添加</Button>
</Col>
<Col :span="24" style="text-align: right;">
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Col>
</Row>
</Form>
</div> </div>
</template> </template>
<script>
export default {
data() {
return {
entity: {},
disabled: false,
columns: [
{
title: "序号",
type: "index",
width: 80,
align: "center"
},
{
title: "检验项目",
key: "name",
align: "center",
slot: "name"
},
{
title: "要求",
key: "require",
align: "center",
slot: "require"
},
{
title: "预测结果",
key: "result",
align: "center",
slot: "result"
}
],
checkList: [],
rules: {
businessName: [{ required: true, message: "必填", trigger: "blur" }],
businessCode: [{ required: true, message: "必填", trigger: "blur" }]
}
};
},
methods: {
setRow() {
this.checkList = r.result;
},
addNew() {},
handleSubmit() {
this.$refs.form.validate(v => {});
},
handleClose() {
this.$emit('on-close')
}
}
};
</script>
<template> <template>
<div> <div class="classification">
<Button type="dashed">新增</Button> <Button type="dashed" @click="add">新增</Button>
<Modal v-model="addModal" title="新增" footer-hide width='1000'>
<Add @on-close="cancel" @on-ok="addOk" ref="add" />
</Modal>
</div> </div>
</template> </template>
<script>
import Add from "./add";
export default {
components: {
Add
},
data() {
return {
addModal: false
};
},
methods: {
add() {
this.addModal = true;
},
remove(){
},
addOk() {
this.addModal = false;
},
cancel() {
this.addModal = false;
}
}
};
</script>
<style lang="less" scoped>
.classification {
width: 100%;
height: 100%;
}
</style>
\ No newline at end of file
...@@ -114,6 +114,7 @@ export default { ...@@ -114,6 +114,7 @@ export default {
cursor: pointer; cursor: pointer;
background: rgba(38, 128, 235, 0.4); background: rgba(38, 128, 235, 0.4);
color: rgba(38, 128, 235, 1); color: rgba(38, 128, 235, 1);
font-weight: bold;
} }
.addclass { .addclass {
height: 40px; height: 40px;
......
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90"> <Form ref="form" :model="entity" :rules="rules" :label-width="110">
<Row> <Row>
<!-- <Col :span="12"> <!-- <Col :span="12">
<FormItem :label="l('classId')" prop="classId"> <FormItem :label="l('classId')" prop="classId">
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('productId')" prop="productId"> <FormItem :label="l('productName')" prop="productId">
<ProductSelect v-model="entity.productId"></ProductSelect> <ProductSelect v-model="entity.productId" @on-change="proChange"></ProductSelect>
</FormItem> </FormItem>
</Col> </Col>
...@@ -41,26 +41,21 @@ ...@@ -41,26 +41,21 @@
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('author')" prop="author"> <FormItem :label="l('departmentName')" prop="departmentId">
<UserSelect v-model="entity.author"></UserSelect> <departmentSelect v-model="entity.departmentId" @on-change="departChange"></departmentSelect>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('departmentId')" prop="departmentId">
<departmentSelect v-model="entity.departmentId"></departmentSelect>
</FormItem>
</Col>
<Col :span="5">
<FormItem :label="l('isMain')" prop="isMain"> <FormItem :label="l('isMain')" prop="isMain">
<Dictionary code="Process.state" v-model="entity.isMain" type="radio"></Dictionary> <Dictionary code="Process.state" v-model="entity.isMain" type="radio"></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="6"> <Col :span="8">
<FormItem :label="l('isSendPpm')" prop="isSendPpm"> <FormItem :label="l('isSendPpm')" prop="isSendPpm">
<Dictionary code="Process.Status" v-model="entity.isSendPpm" type="radio"></Dictionary> <Dictionary code="Process.Status" v-model="entity.isSendPpm" type="radio"></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="5"> <Col :span="8">
<FormItem :label="l('isEffect')" prop="isEffect"> <FormItem :label="l('isEffect')" prop="isEffect">
<Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary> <Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary>
</FormItem> </FormItem>
...@@ -123,7 +118,13 @@ ...@@ -123,7 +118,13 @@
<FormItem :label="l('versionid')" prop="versionid"> <FormItem :label="l('versionid')" prop="versionid">
<InputNumber v-model="entity.versionid"></InputNumber> <InputNumber v-model="entity.versionid"></InputNumber>
</FormItem> </FormItem>
</Col>--> </Col>
<Col :span="8">
<FormItem :label="l('author')" prop="author">
<UserSelect v-model="entity.author"></UserSelect>
</FormItem>
</Col>
-->
<Col :span="24"> <Col :span="24">
<FormItem :label="l('remark')" prop="remark"> <FormItem :label="l('remark')" prop="remark">
<i-quill v-model="entity.remark" :height="300" border v-paste="handleImg" /> <i-quill v-model="entity.remark" :height="300" border v-paste="handleImg" />
...@@ -160,9 +161,11 @@ export default { ...@@ -160,9 +161,11 @@ export default {
name: "", name: "",
code: "", code: "",
productId: null, productId: null,
productName:'',
version: "", version: "",
author: null, author: null,
departmentId: null, departmentId: null,
departmentName:'',
isMain: 1, isMain: 1,
upId: null, upId: null,
upDetailId: null, upDetailId: null,
...@@ -196,7 +199,7 @@ export default { ...@@ -196,7 +199,7 @@ export default {
props: { props: {
v: Object, v: Object,
eid: Number, eid: Number,
title: String title: String,
}, },
mounted() { mounted() {
this.parms.eid = this.$u.guid(); this.parms.eid = this.$u.guid();
...@@ -304,6 +307,15 @@ export default { ...@@ -304,6 +307,15 @@ export default {
l(key) { l(key) {
key = "routingHeader" + "." + key; key = "routingHeader" + "." + key;
return this.$t(key); return this.$t(key);
},
proChange(v,items)
{
this.entity.productName=items.name
},
departChange(v,items)
{
this.entity.departmentName=items.name
} }
}, },
watch: { watch: {
......
<template>
<div class="detail">
<Row>
<Filed :span="5" :name="l('productName')">{{info.productName}}</Filed>
<Filed :span="6" :name="l('name')">{{info.name}}</Filed>
<Filed :span="5" :name="l('code')">{{info.code}}</Filed>
<Filed :span="5" :name="l('routingType')"><state code="Process.Routing.routingType" :value="info.routingType" type="text"></state></Filed>
<Filed :span="3" :name="l('version')">{{info.version}}</Filed>
</Row>
</div>
</template>
<script>
export default {
name: 'detailExamine',
props: ['info'],
async fetch({ store, params }) {
await store.dispatch('loadDictionary') // 加载数据字典
},
data() {
return {}
},
methods: {
arry2Name(arryList, values) {
//预警类别转换
var codes = arryList
var name = ''
for (let i in codes) {
if (values == codes[i].value) {
name = codes[i].name
}
}
return name
},
l(key) {
key = 'processList' + '.' + key
return this.$t(key)
}
}
}
</script>
<style lang="less" scope>
.detail {
display: table;
border-collapse: collapse;
width: 100%;
.ivu-row {
display: table-row;
.filed-col {
display: table-cell;
margin: 0 0 -1px 0px;
line-height: 30px;
box-sizing: border-box;
.label {
background: #e8eaf1;
display: inline-block;
width: 120px;
text-align: right;
padding: 0 5px;
}
}
}
}
</style>
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="100"> <div class="details">
<Form ref="form" :model="entity" :rules="rules" :label-width="110">
<Row> <Row>
<!-- <!--
<Col :span="12"> <Col :span="12">
...@@ -74,7 +75,7 @@ ...@@ -74,7 +75,7 @@
--> -->
<Col :span="8"> <Col :span="8">
<FormItem :label="l('taskSeq')" prop="taskSeq"> <FormItem :label="l('taskSeq')" prop="taskSeq">
<InputNumber v-model="entity.taskSeq"></InputNumber> <InputNumber v-model="maxNum" style="width:100%"></InputNumber>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
...@@ -122,9 +123,14 @@ ...@@ -122,9 +123,14 @@
<InputTime v-model="entity.realWorkingHours" /> <InputTime v-model="entity.realWorkingHours" />
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8" > <Col :span="8">
<FormItem :label="l('isOutside')" prop="isOutside"> <FormItem :label="l('isOutside')" prop="isOutside">
<Dictionary code="Process.state" v-model="entity.isOutside" type="radio" style="height:20px"></Dictionary> <Dictionary
code="Process.state"
v-model="entity.isOutside"
type="radio"
style="height:20px"
></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8" v-show="entity.isOutside==1"> <Col :span="8" v-show="entity.isOutside==1">
...@@ -140,22 +146,17 @@ ...@@ -140,22 +146,17 @@
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('efficiencyValue')" prop="efficiencyValue"> <FormItem :label="l('efficiencyValue')" prop="efficiencyValue">
<InputNumber v-model="entity.efficiencyValue"></InputNumber> <InputNumber v-model="entity.efficiencyValue" style="width:100%"></InputNumber>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('singleOut')" prop="singleOut"> <FormItem :label="l('singleOut')" prop="singleOut">
<InputNumber v-model="entity.singleOut"></InputNumber> <InputNumber v-model="entity.singleOut" style="width:100%"></InputNumber>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="24"> <Col :span="24">
<FormItem :label="l('taskContent')" prop="taskContent"> <FormItem :label="l('taskContent')" prop="taskContent">
<i-quill <i-quill v-model="entity.taskContent" :height="200" v-paste="handleImg" border />
v-model="entity.taskContent"
:height="200"
v-paste="handleImg"
border
/>
</FormItem> </FormItem>
</Col> </Col>
</Row> </Row>
...@@ -164,6 +165,7 @@ ...@@ -164,6 +165,7 @@
<Button @click="handleClose" class="ml20">取消</Button> <Button @click="handleClose" class="ml20">取消</Button>
</FormItem> </FormItem>
</Form> </Form>
</div>
</template> </template>
<script> <script>
import Api from "./api"; import Api from "./api";
...@@ -191,7 +193,7 @@ export default { ...@@ -191,7 +193,7 @@ export default {
realWorkingHours: 0, realWorkingHours: 0,
realRuntime: 0, realRuntime: 0,
isParticipateIntime: null, isParticipateIntime: null,
equipType: "", equipType: ""
}, },
rules: { rules: {
name: [{ required: true, message: "必填", trigger: "blur" }] name: [{ required: true, message: "必填", trigger: "blur" }]
...@@ -201,7 +203,8 @@ export default { ...@@ -201,7 +203,8 @@ export default {
props: { props: {
v: Object, v: Object,
eid: Number, eid: Number,
headid:Number, headid: Number,
maxNum:Number,
}, },
mounted() { mounted() {
if (this.eid > 0) { if (this.eid > 0) {
...@@ -213,7 +216,8 @@ export default { ...@@ -213,7 +216,8 @@ export default {
this.$refs.form.validate(v => { this.$refs.form.validate(v => {
if (v) { if (v) {
this.disabled = true; this.disabled = true;
this.entity.routingHeaderId=this.headid this.entity.routingHeaderId = this.headid;
this.entity.taskSeq=this.maxNum
Api.create(this.entity) Api.create(this.entity)
.then(r => { .then(r => {
this.disabled = false; this.disabled = false;
...@@ -279,3 +283,5 @@ export default { ...@@ -279,3 +283,5 @@ export default {
} }
}; };
</script> </script>
<style type="less">
</style>
\ No newline at end of file
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
:eid="curId" :eid="curId"
:headid="hid" :headid="hid"
:eName="curName" :eName="curName"
:maxNum="maxNum"
@on-close="cancel" @on-close="cancel"
@on-ok="ok" @on-ok="ok"
/> />
...@@ -70,18 +71,24 @@ export default { ...@@ -70,18 +71,24 @@ export default {
}); });
} }
}, },
{ key: "taskSeq", title: this.l("taskSeq"), align: "left",width:100,sortable:true }, {
key: "taskSeq",
title: this.l("taskSeq"),
align: "left",
width: 100,
sortable: true
},
{ {
key: "name", key: "name",
title: this.l("name"), title: this.l("name"),
align: "left", align: "left"
}, },
{ {
key: "equipType", key: "equipType",
title: this.l("equipType"), title: this.l("equipType"),
align: "left", align: "left",
easy: true, easy: true,
hide:true, hide: true
}, },
{ {
key: "resourceType", key: "resourceType",
...@@ -119,15 +126,15 @@ export default { ...@@ -119,15 +126,15 @@ export default {
title: this.l("isParticipateIntime"), title: this.l("isParticipateIntime"),
align: "center", align: "center",
code: "Process.state", code: "Process.state",
hide: true, hide: true
}, },
{ {
key: "isImportant", key: "isImportant",
title: this.l("isImportant"), title: this.l("isImportant"),
align: "center", align: "center",
code: "Process.state", code: "Process.state",
width:100, width: 100,
hide: true, hide: true
}, },
{ {
key: "isOutside", key: "isOutside",
...@@ -135,7 +142,7 @@ export default { ...@@ -135,7 +142,7 @@ export default {
align: "center", align: "center",
hide: true, hide: true,
code: "Process.state", code: "Process.state",
width:100 width: 100
}, },
{ {
...@@ -270,7 +277,7 @@ export default { ...@@ -270,7 +277,7 @@ export default {
{ {
attrs: { oprate: "detail" }, attrs: { oprate: "detail" },
on: { on: {
click: () => this.addStep(params.row.id, params.row.name) click: () => this.addStep(params.row.id, params.row.name,params.row.maxNumStep)
} }
}, },
"新增" "新增"
...@@ -304,17 +311,18 @@ export default { ...@@ -304,17 +311,18 @@ export default {
} }
} }
], ],
list: [] list: [],
maxNum: 0,
maxNumTemp:0,
}; };
}, },
created() { created() {
console.warn("dfadf:", this.headerid);
if (this.headerid != -1) { if (this.headerid != -1) {
this.easySearch.routingHeaderId.value = this.headerid; this.easySearch.routingHeaderId.value = this.headerid;
} else { } else {
this.easySearch.routingHeaderId.value = this.$route.query.id; this.easySearch.routingHeaderId.value = this.$route.query.id;
} }
this.hid = this.easySearch.routingHeaderId.value; this.hid =Number(this.easySearch.routingHeaderId.value);
}, },
mounted() { mounted() {
this.load(); this.load();
...@@ -337,7 +345,30 @@ export default { ...@@ -337,7 +345,30 @@ export default {
Api.getdetailsteps(params) Api.getdetailsteps(params)
.then(r => { .then(r => {
if (r.success) { if (r.success) {
this.list = r.result; this.list = [];
let tempNum = [];
let listTemp = r.result;
if (listTemp.length > 0) {
listTemp.forEach(data => {
tempNum.push(data.taskSeq);
let listStepTemp = [];
if (data.steps.length > 0) {
listStepTemp = data.steps;
let tempNum1 = [];
listStepTemp.forEach(dataStep => {
tempNum1.push(dataStep.stepSeq);
});
let maxNumStep = Math.max(...tempNum1) + 1;
data.maxNumStep = maxNumStep;
} else {
data.maxNumStep = 1;
}
});
this.maxNumTemp = Math.max(...tempNum) + 1;
} else {
this.maxNumTemp = 1;
}
this.list = listTemp;
} }
}) })
.catch(err => { .catch(err => {
...@@ -354,6 +385,7 @@ export default { ...@@ -354,6 +385,7 @@ export default {
}, },
add() { add() {
this.curId = 0; this.curId = 0;
this.maxNum=this.maxNumTemp
this.title = "新增"; this.title = "新增";
this.detail = () => import("./add"); this.detail = () => import("./add");
this.modal = true; this.modal = true;
...@@ -388,9 +420,10 @@ export default { ...@@ -388,9 +420,10 @@ export default {
this.curId = 0; this.curId = 0;
this.modal = false; this.modal = false;
}, },
addStep(detailId, detailName) { addStep(detailId, detailName,detailMaxNumStep) {
this.curId = detailId; this.curId = detailId;
this.curName = detailName; this.curName = detailName;
this.maxNum=detailMaxNumStep;
this.title = "新增工步"; this.title = "新增工步";
this.detail = () => import("./routingStep/add"); this.detail = () => import("./routingStep/add");
this.modal = true; this.modal = true;
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<Col :span="12"> <Col :span="12">
<FormItem :label="l('stepSeq')" prop="stepSeq"> <FormItem :label="l('stepSeq')" prop="stepSeq">
<!-- <InputNumber v-model="entity.stepSeq"></InputNumber> --> <!-- <InputNumber v-model="entity.stepSeq"></InputNumber> -->
<InputNumber v-model="entity.stepSeq"></InputNumber> <InputNumber v-model="maxNum"></InputNumber>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="12"> <Col :span="12">
...@@ -133,7 +133,7 @@ export default { ...@@ -133,7 +133,7 @@ export default {
eid: Number,//工序id eid: Number,//工序id
eName:String,//工序名称 eName:String,//工序名称
headid:Number,//工艺id headid:Number,//工艺id
maxNum:Number,
}, },
mounted() { mounted() {
...@@ -145,6 +145,7 @@ export default { ...@@ -145,6 +145,7 @@ export default {
this.disabled = true; this.disabled = true;
this.entity.routingHeaderId=this.headid this.entity.routingHeaderId=this.headid
this.entity.routingDetailId=this.eid this.entity.routingDetailId=this.eid
this.entity.stepSeq=this.maxNum
Api.create(this.entity) Api.create(this.entity)
.then(r => { .then(r => {
this.disabled = false; this.disabled = false;
......
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90"> <Form ref="form" :model="entity" :rules="rules" :label-width="110">
<Row> <Row>
<!-- <Col :span="12"> <!-- <Col :span="12">
<FormItem :label="l('classId')" prop="classId"> <FormItem :label="l('classId')" prop="classId">
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('productId')" prop="productId"> <FormItem :label="l('productName')" prop="productId">
<ProductSelect v-model="entity.productId"></ProductSelect> <ProductSelect v-model="entity.productId" @on-change="proChange"></ProductSelect>
</FormItem> </FormItem>
</Col> </Col>
...@@ -38,26 +38,21 @@ ...@@ -38,26 +38,21 @@
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('author')" prop="author"> <FormItem :label="l('departmentName')" prop="departmentId">
<UserSelect v-model="entity.author"></UserSelect> <departmentSelect v-model="entity.departmentId" @on-change="departChange"></departmentSelect>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('departmentId')" prop="departmentId">
<departmentSelect v-model="entity.departmentId"></departmentSelect>
</FormItem>
</Col>
<Col :span="5">
<FormItem :label="l('isMain')" prop="isMain"> <FormItem :label="l('isMain')" prop="isMain">
<Dictionary code="Process.state" v-model="entity.isMain" type="radio"></Dictionary> <Dictionary code="Process.state" v-model="entity.isMain" type="radio"></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="6"> <Col :span="8">
<FormItem :label="l('isSendPpm')" prop="isSendPpm"> <FormItem :label="l('isSendPpm')" prop="isSendPpm">
<Dictionary code="Process.Status" v-model="entity.isSendPpm" type="radio"></Dictionary> <Dictionary code="Process.Status" v-model="entity.isSendPpm" type="radio"></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="5"> <Col :span="8">
<FormItem :label="l('isEffect')" prop="isEffect"> <FormItem :label="l('isEffect')" prop="isEffect">
<Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary> <Dictionary code="Process.Status" v-model="entity.isEffect" type="radio"></Dictionary>
</FormItem> </FormItem>
...@@ -151,7 +146,9 @@ export default { ...@@ -151,7 +146,9 @@ export default {
data() { data() {
return { return {
disabled: false, disabled: false,
entity: {}, entity: {
},
rules: { rules: {
name: [{ required: true, message: "必填", trigger: "blur" }] name: [{ required: true, message: "必填", trigger: "blur" }]
}, },
...@@ -230,6 +227,15 @@ export default { ...@@ -230,6 +227,15 @@ export default {
l(key) { l(key) {
key = "routingHeader" + "." + key; key = "routingHeader" + "." + key;
return this.$t(key); return this.$t(key);
},
proChange(v,items)
{
this.entity.productName=items.name
},
departChange(v,items)
{
this.entity.departmentName=items.name
} }
}, },
watch: { watch: {
......
...@@ -64,6 +64,22 @@ ...@@ -64,6 +64,22 @@
@on-ok="ok" @on-ok="ok"
/> />
</Modal> </Modal>
<Modal
v-model="documentShow"
title="送审"
:mask-closable="false"
:scrollable="true"
ok-text="确定"
cancel-text="取消"
fullscreen
>
<sendAudit ref="sendAudit"></sendAudit>
<div slot="footer">
<Button @click="documentShow = false">取消</Button>
<Button type="primary" @click="passDocument">工艺规程送审</Button>
</div>
</Modal>
<div class="fullWindow flex fd" v-if="viewModal"> <div class="fullWindow flex fd" v-if="viewModal">
<div class="top flex"> <div class="top flex">
<div v-width="200"> <div v-width="200">
...@@ -71,17 +87,17 @@ ...@@ -71,17 +87,17 @@
<Icon type="ios-undo-outline" size="24" />返回工艺规程 <Icon type="ios-undo-outline" size="24" />返回工艺规程
</a> </a>
</div> </div>
<div class="fg tc f14 fwBold blueTitle"> <div class="fg tc f14 fwBold blueTitle" style="padding-right:200px;">
{{l('code')}}: {{l('code')}}:
<span class="grayTitle mr10">{{titleObj.code}}</span> <span class="grayTitle mr10">{{titleObj.code}}</span>
{{l('name')}}: {{l('name')}}:
<span class="grayTitle mr10">{{titleObj.name}}</span> <span class="grayTitle mr10">{{titleObj.name}}</span>
{{l('routingType')}}: {{l('routingType')}}:
<span class="grayTitle mr10">{{titleObj.routingType}}</span> <span class="grayTitle mr10"><state code="Process.Routing.routingType" :value="titleObj.routingType" type="text"></state></span>
{{l('version')}}: {{l('version')}}:
<span class="grayTitle">{{titleObj.version}}</span> <span class="grayTitle">{{titleObj.version}}</span>
<!-- {{l('departmentId')}}: {{l('departmentName')}}:
<span class="grayTitle">{{titleObj.departmentId}}</span>--> <span class="grayTitle">{{titleObj.departmentName}}</span>
</div> </div>
</div> </div>
<div class="fg"> <div class="fg">
...@@ -96,8 +112,9 @@ ...@@ -96,8 +112,9 @@
import Api from "./api"; import Api from "./api";
import Search from "./search"; import Search from "./search";
import ProductTree from "@/components/page/productTree.vue"; import ProductTree from "@/components/page/productTree.vue";
import sendAudit from './sendAudit.vue'
export default { export default {
components: { ProductTree, Search }, components: { ProductTree, Search,sendAudit},
head: { head: {
title: "工艺规程", title: "工艺规程",
author: "henq", author: "henq",
...@@ -119,6 +136,7 @@ export default { ...@@ -119,6 +136,7 @@ export default {
detail: null, detail: null,
curId: 0, curId: 0,
uId: "", uId: "",
documentShow: false,
columns: [ columns: [
{ key: "id", title: this.$t("id"), hide: true, align: "left" }, { key: "id", title: this.$t("id"), hide: true, align: "left" },
...@@ -142,33 +160,31 @@ export default { ...@@ -142,33 +160,31 @@ export default {
key: "name", key: "name",
title: this.l("name"), title: this.l("name"),
align: "left", align: "left",
width: 200,
easy: true, easy: true,
high: true high: true
}, },
{ {
key: "productId", key: "productName",
title: this.l("productId"), title: this.l("productName"),
align: "left", align: "left",
high: true high: true
}, },
{ key: "version", title: this.l("version"), align: "left", high: true }, { key: "version", title: this.l("version"), align: "left", high: true },
{ key: "author", title: this.l("author"), align: "left", high: true },
{ {
key: "departmentId", key: "creatorUserId",
title: this.l("departmentId"), title: this.l("author"),
width: 100,
align: "left", align: "left",
high: true high: true,
type: "user"
}, },
{ {
key: "isMain", key: "departmentName",
title: this.l("isMain"), title: this.l("departmentName"),
align: "center", width: 100,
width: 80, align: "left",
high: true, high: true
code: "Process.state"
}, },
// { key:"upId",title:this.l("upId") ,align:"left" ,high:true }, // { key:"upId",title:this.l("upId") ,align:"left" ,high:true },
// { key:"upDetailId",title:this.l("upDetailId") ,hide:true ,align:"left" ,high:true }, // { key:"upDetailId",title:this.l("upDetailId") ,hide:true ,align:"left" ,high:true },
{ {
...@@ -205,6 +221,7 @@ export default { ...@@ -205,6 +221,7 @@ export default {
title: this.l("phase"), title: this.l("phase"),
align: "left", align: "left",
high: true, high: true,
hide: true,
code: "Process.Routing.phase" code: "Process.Routing.phase"
}, },
{ {
...@@ -214,6 +231,14 @@ export default { ...@@ -214,6 +231,14 @@ export default {
hide: true, hide: true,
code: "Process.Routing.version" code: "Process.Routing.version"
}, },
{
key: "isMain",
title: this.l("isMain"),
align: "center",
width: 80,
high: true,
code: "Process.state"
},
{ {
key: "isSendPpm", key: "isSendPpm",
title: this.l("isSendPpm"), title: this.l("isSendPpm"),
...@@ -249,8 +274,8 @@ export default { ...@@ -249,8 +274,8 @@ export default {
{ {
title: "操作", title: "操作",
key: "action", key: "action",
width: 180, width: 210,
align: "center", align: "left",
render: (h, params) => { render: (h, params) => {
return h("div", { class: "action" }, [ return h("div", { class: "action" }, [
h( h(
...@@ -292,6 +317,16 @@ export default { ...@@ -292,6 +317,16 @@ export default {
on: { click: () => this.remove(params.row.id) } on: { click: () => this.remove(params.row.id) }
}, },
"删除" "删除"
),
h(
"op",
{
attrs: { oprate: "detail" },
on: { click: () => this.sendAuditFun(params.row) }
},
params.row.approvalStatus == 4
? "送审"
: ""
) )
]); ]);
} }
...@@ -302,7 +337,7 @@ export default { ...@@ -302,7 +337,7 @@ export default {
name: "", //工艺名称 name: "", //工艺名称
routingType: 0, //工艺类型 routingType: 0, //工艺类型
version: "", //工艺版本 version: "", //工艺版本
departmentId: null //车间 departmentName: null //车间
}, },
processviewModal: false processviewModal: false
}; };
...@@ -345,7 +380,7 @@ export default { ...@@ -345,7 +380,7 @@ export default {
name: row.name, name: row.name,
routingType: row.routingType, routingType: row.routingType,
version: row.version, version: row.version,
departmentId: row.departmentId departmentName: row.departmentName
}; };
// this.info=()=>import("./details") // this.info=()=>import("./details")
this.src = "/technology/details?id=" + row.id; this.src = "/technology/details?id=" + row.id;
...@@ -418,6 +453,29 @@ export default { ...@@ -418,6 +453,29 @@ export default {
l(key) { l(key) {
let vkey = "routingHeader" + "." + key; let vkey = "routingHeader" + "." + key;
return this.$t(vkey) || key; return this.$t(vkey) || key;
},
//送审
sendAuditFun(row) {
this.documentShow = true;
this.$refs.sendAudit.intData(row);
},
saveDocument() {
this.documentShow = true;
this.$refs.sendAudit.intData(this.headerInfo);
},
passDocument() {
this.dataListRetrun = [];
this.dataListRetrun = this.$refs.sendAudit.returnDataList();
this.$http.order.batchstart(this.dataListRetrun).then(res => {
if (res.success) {
this.$Message.success("工艺规程送审成功!");
this.loaddata();
//this.easySearch('')
} else {
this.$Message.error("工艺规程送审失败!");
}
});
this.documentShow = false;
} }
} }
}; };
......
<template>
<div style="width:80%;margin:0 auto">
<DetailExamine :info="info"></DetailExamine>
<Process
ref="userProcess"
schemaIdVal="2085025d-9c38-4834-846a-8f9d2f4c8553"
/>
</div>
</template>
<script>
import Process from '@/components/orderOperator/process'
import DetailExamine from './detailExamine'
export default {
name: 'sendAudit',
components: {
Process,
DetailExamine
},
data() {
return {
info: {},
dataList: {},
dataListRetrun: [], //确定后返回数据
dataListRetrunNew: {
schemaId: '2085025d-9c38-4834-846a-8f9d2f4c8553', //订单送审的schemaId
idList: [], //订单id List
codeList: [], //订单编号List
operatorIdList: [] //操作员id
} //确定后返回数据
}
},
created: function() {},
methods: {
intData(data) {
//打开modal层时给订单list赋值
this.dataList ={}
this.dataList = data
this.info = data
},
returnDataList() {
this.dataListRetrunNew.idList = []
this.dataListRetrunNew.codeList = []
this.dataListRetrunNew.operatorIdList = []
this.dataListRetrunNew.idList.push(this.dataList.id)
this.dataListRetrunNew.codeList.push(this.dataList.code)
let ues = this.$refs.userProcess
this.dataListRetrunNew.operatorIdList = ues.immutData
// alert(JSON.stringify( this.dataListRetrunNew))
//返回审批数据
return this.dataListRetrunNew
}
}
}
</script>
const systemApi = { const systemApi = {
//本地测试: local: 'localhost',
// dev:'192.168.0.88', product: '39.100.148.168',
dev: '39.100.148.168', dev:"49.232.68.61",
aps:'47.92.102.113'
bjdev: 'localhost',
//本地88服务器:
localServer: '39.100.148.168',
local: '192.168.0.88',
// localServer:'192.168.0.159',
//云上228服务器:
cloudServer: '39.100.148.168',
product:"49.232.68.61",
//云上113服务器:
//cloudServer:'47.92.111.113',
//上传文件
fileServer: '192.168.0.204',
//此处添加其他环境:
//……
} }
//环境切换(只修改此处): //环境切换(只修改此处):
//let address=systemApi.dev; let address=systemApi.dev;
//let address=systemApi.product;
let local = systemApi.dev; //let address=systemApi.local;
let hostAddress = "localhost"; //192.168.0.159
let filePath = '39.100.148.168'; //文件上传ip
let filePathDown = '39.100.148.168'; //文件上传ip
let apsAdress = '47.92.102.113'
let address = systemApi.cloudServer;
//占位符自动替换: //占位符自动替换:
window.systemUrl = `http://${address}:10020/api/services/app`; //System-api 系统管理(基础数据) window.systemUrl = `http://${address}:10020/api/services/app`; //System-api 系统管理(基础数据)
window.authUrl = `http://${address}:10010`; //Authentication-api //统一登陆认证 window.authUrl = `http://${address}:10010`; //Authentication-api //统一登陆认证
window.designUrl = `http://${address}:10030/api/services/app`; //Process-api 工艺规程 window.designUrl = `http://${address}:10030/api/services/app`; //Process-api 工艺规程
window.PlanUrl = `http://${address}:10050/api/services/app`; //Process-api window.PlanUrl = `http://${address}:10050/api/services/app`; //Process-api
window.routeUrl = `http://${address}:10050/api/services/app`; //Process-api window.routeUrl = `http://${address}:10050/api/services/app`; //Process-api
window.bugUrl = `http://${address}:10070/api/services/app`; //Process-api window.bugUrl = `http://${address}:10070/api/services/app`; //Process-api
window.fileUrl = `http://${filePath}:10080/fileServer`; //文件上传url window.fileUrl = `http://${address}:10080/fileServer`; //文件上传url
window.fileUrlDown = `http://${filePathDown}:80`; //文件下载url window.fileUrlDown = `http://${address}`; //文件下载url
window.resourceUrl = `http://${address}:10040/api/services/app`; // 制造资源地址 window.resourceUrl = `http://${address}:10040/api/services/app`; // 制造资源地址
window.workflowUrl = `http://${address}:10060/api/services/app`; // 工作流地址 window.workflowUrl = `http://${address}:10060/api/services/app`; // 工作流地址
window.certificateUrl = `http://${address}:10090/api/services/app`; //Process-api window.certificateUrl = `http://${address}:10090/api/services/app`; //Process-api
window.crmUrl = `http://${address}:10100/api/services/app`; //crm客户、合同、项目管理 window.crmUrl = `http://${address}:10100/api/services/app`; //crm客户、合同、项目管理
window.iconImg = `http://${address}:3006/imgicon/`; //待办任务图标路径 window.iconImg = `http://${address}:3000/imgicon/`; //待办任务图标路径
window.apsManualUrl = `http://${apsAdress}:10091/api/services/app`;//aps手工排产 window.apsUrl = `http://${systemApi.aps}:10110/api/services/app`;//aps排产
window.apsUrl = `http://${apsAdress}:10110/api/services/app`;//aps排产
window.technologyUrl =`http://${address}:10031/api/services/app/`; window.technologyUrl =`http://${address}:10031/api/services/app/`;
\ No newline at end of file
//oidc配置:
window.authConfig = {
authority: `http://${address}:10010`,
client_id: 'js',
redirect_uri: `http://${hostAddress}:3006/callback`,
response_type: 'code',
scope: 'openid profile system process plan resource qms bug workflow crm aps',
post_logout_redirect_uri: `http://${hostAddress}:3006/`
};
\ 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