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

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

parents 7f08beb0 79d960c7
...@@ -102,6 +102,7 @@ export default { ...@@ -102,6 +102,7 @@ export default {
userId: this.$store.state.userInfo.userId, userId: this.$store.state.userInfo.userId,
treeData: [], //物料数据 treeData: [], //物料数据
codeRuleData: [], //物料编码 codeRuleData: [], //物料编码
routingHeaderData: [], //工艺规程
}; };
}, },
props: { props: {
...@@ -276,6 +277,7 @@ export default { ...@@ -276,6 +277,7 @@ export default {
//物料加载类型数据 //物料加载类型数据
this.getTreeData(); this.getTreeData();
this.getcodeRuleData(); this.getcodeRuleData();
this.getRoutingHeaderData();
}, },
methods: { methods: {
//数据加载 //数据加载
...@@ -518,10 +520,11 @@ export default { ...@@ -518,10 +520,11 @@ export default {
const tHeader = []; // 设置Excel的表格第一行的标题 const tHeader = []; // 设置Excel的表格第一行的标题
const filterVal = []; //list里对象的属性 const filterVal = []; //list里对象的属性
var tempCol = []; var tempCol = [];
var tempCol1 = []; var tempCol1 = []; //存放物料相关表头
var columnsCur = this.$u.clone(this.columnsNow); //导出列标题信息griddata this.$refs.grid.columnsCur var tempCol2 = []; //存放工艺规程相关表头
var columnsCur = this.$u.clone(this.columnsCur); //导出列标题信息griddata this.$refs.grid.columnsCur
columnsCur.forEach((el) => { columnsCur.forEach((el) => {
if ((el.hide && !el.import) || (!el.hide && el.key != "action" && el.type != "selection" && el.key != "ico")) { if ((el.hide && el.import) || (!el.hide && el.key != "action" && el.type != "selection" && el.key != "ico")) {
if (el.code) { if (el.code) {
tempCol.push({ tempCol.push({
key: el.key, key: el.key,
...@@ -534,6 +537,13 @@ export default { ...@@ -534,6 +537,13 @@ export default {
code: el.materialKey code: el.materialKey
}); //临时存放物料管理大类和子类列表 }); //临时存放物料管理大类和子类列表
} }
if (el.techKey) {
tempCol2.push({
key: el.key,
code: el.techKey
}); //临时存放工艺规程相关转换
}
tHeader.push(el.title); tHeader.push(el.title);
filterVal.push(el.key); filterVal.push(el.key);
} }
...@@ -546,7 +556,7 @@ export default { ...@@ -546,7 +556,7 @@ export default {
e[ele.key] e[ele.key]
); );
}); });
//导出数据增加对应的物料管理信息 //导出数据增加对应的物料管理信息 code: 1【rootCategoryId 大类】 2【categoryId 大类】 3【codeRuleId 编码名称】
tempCol1.forEach((elcol1) => { tempCol1.forEach((elcol1) => {
if (elcol1.code == 1) { if (elcol1.code == 1) {
e[elcol1.key] = this.getType1(e[elcol1.key]) e[elcol1.key] = this.getType1(e[elcol1.key])
...@@ -556,6 +566,12 @@ export default { ...@@ -556,6 +566,12 @@ export default {
e[elcol1.key] = this.getType3(e[elcol1.key]) e[elcol1.key] = this.getType3(e[elcol1.key])
} }
}); });
//导出工艺规程相关转换表头信息
tempCol2.forEach((elcol2) => {
if (elcol2.code == 1) {
e[elcol2.key] = this.getRoutingHeaderName(e[elcol2.key])
}
});
}); });
...@@ -620,6 +636,29 @@ export default { ...@@ -620,6 +636,29 @@ export default {
return codeRuleName return codeRuleName
}, },
//物料大类和子类的解析end //物料大类和子类的解析end
//工艺规程的解析start
//获取工艺规程名称
getRoutingHeaderData() {
let data = {
conditions: []
};
this.$api.post(`${technologyUrl}routingheader/list`, data).then((r) => {
if (r.success) {
this.routingHeaderData = r.result || []
}
});
},
getRoutingHeaderName(val) {
let routingHeaderDataList = this.$u.clone(this.routingHeaderData)
let routingHeaderName = ""
routingHeaderDataList.forEach(ele => {
if (ele.id == val) {
routingHeaderName = ele.name
}
})
return routingHeaderName
},
//工艺规程的解析end
}, },
computed: { computed: {
columnsNow() { columnsNow() {
......
...@@ -215,12 +215,13 @@ export default { ...@@ -215,12 +215,13 @@ export default {
useData.forEach(eles => { useData.forEach(eles => {
//如果导入文件没有departmentid,但存在departmentTitle的话,通过title获取id //如果导入文件没有departmentid,但存在departmentTitle的话,通过title获取id
if ( if (
eles.departmentTitle && [(eles.departmentTitle &&
eles.departmentTitle != "" && eles.departmentTitle != "") || (eles.departmentName &&
eles.departmentName != "")] &&
(!eles.departmentId || eles.departmentId == "") (!eles.departmentId || eles.departmentId == "")
) { ) {
this.departArr.forEach((e) => { this.departArr.forEach((e) => {
if (eles.departmentTitle && eles.departmentTitle == e.name) { if ((eles.departmentTitle && eles.departmentTitle == e.name) || (eles.departmentName && eles.departmentName == e.name)) {
eles.departmentId = e.id; eles.departmentId = e.id;
} }
}); });
...@@ -228,14 +229,16 @@ export default { ...@@ -228,14 +229,16 @@ export default {
//如果导入文件没有departmentTitle,但存在departmentid的话,通过id获取departmentTitle //如果导入文件没有departmentTitle,但存在departmentid的话,通过id获取departmentTitle
eles.departmentId && eles.departmentId &&
eles.departmentId + "" != "" && eles.departmentId + "" != "" &&
(!eles.departmentTitle || eles.departmentTitle == "") (!eles.departmentTitle || eles.departmentTitle == "") && (!eles.departmentName || eles.departmentName == "")
) { ) {
this.departArr.forEach((e) => { this.departArr.forEach((e) => {
if (eles.departmentId && eles.departmentId == e.id) { if (eles.departmentId && eles.departmentId == e.id) {
eles.departmentTitle = e.name; eles.departmentTitle = e.name;
eles.departmentName = e.name;
} }
}); });
} }
arrTitleUse.forEach((elem) => { arrTitleUse.forEach((elem) => {
if (eles[elem.key] && eles[elem.key] != "" && eles[elem.key] != null) { if (eles[elem.key] && eles[elem.key] != "" && eles[elem.key] != null) {
//如果数据字典项对应的DirName字段存在,通过name查询到对应的code,然后赋值 //如果数据字典项对应的DirName字段存在,通过name查询到对应的code,然后赋值
......
<template> <template>
<Select v-model="dep" :placeholder="placeholdeinfo" clearable @on-clear="onClear"> <Select v-model="dep" :placeholder="placeholdeinfo" clearable @on-clear="onClear">
<Option <Option v-for="(item,index) in list" :key="index" :value="item.value" style="display:none" :label="item.label"></Option>
v-for="(item,index) in list"
:key="index"
:value="item.value"
style="display:none"
:label="item.label"
></Option>
<Tree key="mytree" :data="data1" ref="mytree" :render="renderContent"></Tree> <Tree key="mytree" :data="data1" ref="mytree" :render="renderContent"></Tree>
</Select> </Select>
</template> </template>
<script>
<script>
export default { export default {
name: "Add", name: "Add",
model: { model: {
prop: "value", prop: "value",
event: "on-change" event: "on-change"
},
data() {
return {
dep: "",
list: [],
data1: [],
selectdata: [],
placeholdeinfo: "请选择",
orderSearchForm: {
productId: null, //产品id
productName: "", //产品名称
drawingNo: "", //图号
bomId: null //bomId
}
};
},
props: {
value: [String, Number, Array],
placeholder: {
type: String,
default: "请选择部门"
}, },
multiple: { data() {
type: Boolean, return {
default: false dep: "",
list: [],
data1: [],
selectdata: [],
placeholdeinfo: "请选择",
orderSearchForm: {
productId: null, //产品id
productName: "", //产品名称
drawingNo: "", //图号
bomId: null //bomId
}
};
}, },
disabled: { props: {
type: Boolean, value: [String, Number, Array],
default: false placeholder: {
} type: String,
}, default: "请选择部门"
mounted() {}, },
created() { multiple: {
this.dep = this.value | ""; type: Boolean,
this.loadTree(); default: false
}, },
methods: { disabled: {
handleSelect(data) { type: Boolean,
if (data.length > 0) { default: false
this.selectdata = [];
this.selectdata = data;
if (data[0].isProduct == "1") {
this.list = [];
this.list.push({ label: data[0].title, value: data[0].id });
this.orderSearchForm.productName = data[0].title;
this.orderSearchForm.productId = data[0].productId;
this.orderSearchForm.drawingNo = data[0].drawingNo;
this.orderSearchForm.bomId = data[0].bomId;
this.$emit(
"on-change",
this.orderSearchForm.productId,
this.orderSearchForm
);
} else {
this.$Message.error("此节点不是产品,请选择产品节点!");
} }
}
},
resetFields() {
this.orderSearchForm = {
productId: null, //产品id
productName: "", //产品名称
drawingNo: "", //图号
bomId: null
};
}, },
loadTree() { mounted() {},
//打开新增订单窗口加载产品 created() {
this.resetFields(); this.dep = this.value | "";
var sumData = []; this.loadTree();
this.$http.order.getallselecttree().then(res => {
if (res.result) {
for (var i = 0; i < res.result.length; i++) {
sumData = sumData.concat(res.result[i]);
}
this.data1 = sumData;
} else {
this.$Message.error("加载产品树失败!");
}
});
}, },
renderContent(h, { root, node, data }) { methods: {
let type = "md-folder"; handleSelect(data) {
let title = data.title; if (data.length > 0) {
if (data.isProduct != 0) { this.selectdata = [];
let version = this.$store.getters.dictionaryByCode( this.selectdata = data;
"material.main.version", if (data[0].isProduct == "1") {
data.version this.list = [];
); this.list.push({
type = "ios-image"; label: data[0].title,
if (version) { value: data[0].id
title = data.title + "(" + data.mmcode + "/" + version.name + ")"; });
} else { this.orderSearchForm.productName = data[0].title;
title = data.title + "(" + data.mmcode + ")"; this.orderSearchForm.productId = data[0].productId;
} this.orderSearchForm.drawingNo = data[0].drawingNo;
} this.orderSearchForm.bomId = data[0].bomId;
//渲染树的样式 this.$emit(
return h( "on-change",
"span", this.orderSearchForm.productId,
{ this.orderSearchForm
on: { );
click: () => { } else {
let arrTree = []; this.$Message.error("此节点不是产品,请选择产品节点!");
arrTree.push(data); }
this.handleSelect(arrTree); //手动选择树节点
} }
}
}, },
[ resetFields() {
h("Icon", { this.orderSearchForm = {
props: { productId: null, //产品id
type: type productName: "", //产品名称
}, drawingNo: "", //图号
style: { bomId: null
marginRight: "8px" };
} },
}), loadTree() {
h( //打开新增订单窗口加载产品
"span", this.resetFields();
{ var sumData = [];
style: { this.$http.order.getallselecttree().then(res => {
color: data.isProduct == 0 ? "#000" : "rgba(38, 128, 235, 1)" if (res.result) {
} for (var i = 0; i < res.result.length; i++) {
}, sumData = sumData.concat(res.result[i]);
title }
) this.data1 = sumData;
] } else {
); this.$Message.error("加载产品树失败!");
}, }
onClear() { });
this.list = []; },
this.placeholdeinfo = "请选择"; renderContent(h, {
this.resetFields(); root,
this.$emit("on-change", null, this.orderSearchForm); node,
} data
}, }) {
watch: { let type = "md-folder";
value: { let title = data.title;
handler(v, o) { if (data.isProduct != 0) {
this.dep = v | ""; let version = this.$store.getters.dictionaryByCode(
this.resetFields(); "material.main.version",
var sumData = []; data.version
this.$http.order.getallselecttree().then(res => { );
if (res.result) { type = "ios-image";
for (var i = 0; i < res.result.length; i++) { if (version) {
sumData = sumData.concat(res.result[i]); title = data.title + "(" + data.mmcode + "/" + version.name + ")";
} } else {
this.data1 = sumData; title = data.title + "(" + data.mmcode + ")";
let temData = this.$u.clone(this.data1);
this.list = [];
if (v != "" && v != null) {
let dataTemp = this.$u.treeToList(temData);
dataTemp.forEach(data => {
if (data.isProduct == 1 && data.id == this.dep) {
this.placeholdeinfo = data.title;
this.list.push({ label: data.title, value: data.id });
} }
});
} }
} else { //渲染树的样式
this.$Message.error("加载产品树失败!"); return h(
} "span", {
}); on: {
}, click: () => {
deep: true let arrTree = [];
arrTree.push(data);
this.handleSelect(arrTree); //手动选择树节点
}
}
},
[
h("Icon", {
props: {
type: type
},
style: {
marginRight: "8px"
}
}),
h(
"span", {
style: {
color: data.isProduct == 0 ? "#000" : "rgba(38, 128, 235, 1)"
}
},
title
)
]
);
},
onClear() {
this.list = [];
this.placeholdeinfo = "请选择";
this.resetFields();
this.$emit("on-change", null, this.orderSearchForm);
}
},
watch: {
value: {
handler(v, o) {
this.dep = v | "";
this.resetFields();
var sumData = [];
this.$http.order.getallselecttree().then(res => {
if (res.result) {
for (var i = 0; i < res.result.length; i++) {
sumData = sumData.concat(res.result[i]);
}
this.data1 = sumData;
let temData = this.$u.clone(this.data1);
this.list = [];
if (v != "" && v != null) {
let dataTemp = this.$u.treeToList(temData);
dataTemp.forEach(data => {
if (data.isProduct == 1 && data.id == this.dep) {
this.placeholdeinfo = data.title;
this.list.push({
label: data.title,
value: data.id
});
}
});
}
} else {
this.$Message.error("加载产品树失败!");
}
});
},
deep: true
}
} }
}
}; };
</script> </script>
...@@ -1175,10 +1175,11 @@ export default { ...@@ -1175,10 +1175,11 @@ export default {
code: '工艺文件编号', code: '工艺文件编号',
productId: '产品id', productId: '产品id',
productName: '产品名称', productName: '产品名称',
productBomId: '产品BomId',
drawingNo: '图号', drawingNo: '图号',
version: '版本', version: '版本',
author: '编制人', author: '编制人',
departmentId: '主制车间', departmentId: '主制车间Id',
departmentName: '主制车间', departmentName: '主制车间',
isMain: '主工艺', isMain: '主工艺',
upId: '父工艺', upId: '父工艺',
...@@ -1188,8 +1189,8 @@ export default { ...@@ -1188,8 +1189,8 @@ export default {
approvalStatus: '审批状态', approvalStatus: '审批状态',
remark: '工艺说明', remark: '工艺说明',
approvalStatusRemark: '审批备注', approvalStatusRemark: '审批备注',
auditUserId1: '审批人', auditUserId1: '审批人1',
auditUserId2: '审批人', auditUserId2: '审批人2',
isDeleted: '是否删除', isDeleted: '是否删除',
platesnum: '板数', platesnum: '板数',
isEffect: '有效', isEffect: '有效',
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<Search /> <Search />
</template> </template>
<template slot="buttons"> <template slot="buttons">
应用规则:
<Select v-model="rulesAi" multiple style="width:280px;" class="tl"> <Select v-model="rulesAi" multiple style="width:280px;" class="tl">
<Option v-for="item in rulesAiList" :value="item.value" :key="item.value">{{ item.label }}</Option> <Option v-for="item in rulesAiList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select> </Select>
......
...@@ -331,15 +331,15 @@ export default { ...@@ -331,15 +331,15 @@ export default {
code: "User.base.status", code: "User.base.status",
}, },
], ],
columns3: [{ columns2: [{
key: "resourceCode", key: "resourceCode",
title: this.l3("resourceId"), title: this.l2("resourceId"),
align: "left", align: "left",
easy: true, easy: true,
}, },
{ {
key: "nameOfResource", key: "nameOfResource",
title: this.l3("nameOfResource"), title: this.l2("nameOfResource"),
align: "left", align: "left",
easy: true, easy: true,
tooltip: true, tooltip: true,
...@@ -351,56 +351,56 @@ export default { ...@@ -351,56 +351,56 @@ export default {
}, },
{ {
key: "creatorUserId", key: "creatorUserId",
title: this.l3("creatorUserId"), title: this.l2("creatorUserId"),
hide: false, hide: false,
type: "user", type: "user",
align: "left", align: "left",
}, },
{ {
key: "lastModificationTime", key: "lastModificationTime",
title: this.l3("lastModificationTime"), title: this.l2("lastModificationTime"),
hide: true, hide: true,
align: "left", align: "left",
}, },
{ {
key: "lastModifierUserId", key: "lastModifierUserId",
title: this.l3("lastModifierUserId"), title: this.l2("lastModifierUserId"),
hide: true, hide: true,
align: "left", align: "left",
}, },
{ {
key: "isDeleted", key: "isDeleted",
title: this.l3("isDeleted"), title: this.l2("isDeleted"),
hide: true, hide: true,
align: "left", align: "left",
}, },
{ {
key: "deletionTime", key: "deletionTime",
title: this.l3("deletionTime"), title: this.l2("deletionTime"),
hide: true, hide: true,
align: "left", align: "left",
}, },
{ {
key: "deleterUserId", key: "deleterUserId",
title: this.l3("deleterUserId"), title: this.l2("deleterUserId"),
hide: true, hide: true,
align: "left", align: "left",
}, },
{ {
key: "totalNum", key: "totalNum",
title: this.l3("totalNum"), title: this.l2("totalNum"),
align: "right", align: "right",
easy: true, easy: true,
}, },
{ {
key: "numberAvailable", key: "numberAvailable",
title: this.l3("numberAvailable"), title: this.l2("numberAvailable"),
align: "right", align: "right",
easy: true, easy: true,
}, },
{ {
key: "measuringUnit", key: "measuringUnit",
title: this.l3("measuringUnit"), title: this.l2("measuringUnit"),
align: "left", align: "left",
easy: true, easy: true,
high: true, high: true,
...@@ -408,7 +408,7 @@ export default { ...@@ -408,7 +408,7 @@ export default {
}, },
{ {
key: "qualityCharacteristics", key: "qualityCharacteristics",
title: this.l3("qualityCharacteristics"), title: this.l2("qualityCharacteristics"),
align: "left", align: "left",
easy: true, easy: true,
high: true, high: true,
...@@ -416,7 +416,7 @@ export default { ...@@ -416,7 +416,7 @@ export default {
}, },
{ {
key: "batchNo", key: "batchNo",
title: this.l3("batchNo"), title: this.l2("batchNo"),
align: "left", align: "left",
easy: true, easy: true,
high: true, high: true,
...@@ -424,24 +424,24 @@ export default { ...@@ -424,24 +424,24 @@ export default {
}, },
{ {
key: "storeId", key: "storeId",
title: this.l3("storeId"), title: this.l2("storeId"),
align: "left", align: "left",
high: true, high: true,
hide: true, hide: true,
}, },
{ {
key: "storeTitle", key: "storeTitle",
title: this.l3("storeTitle"), title: this.l2("storeTitle"),
align: "left", align: "left",
}, },
{ {
key: "state", key: "state",
title: this.l3("state"), title: this.l2("state"),
align: "center", align: "center",
code: "mes_xingchi_resource.resource.state", code: "mes_xingchi_resource.resource.state",
} }
], ],
columns4: [{ columns3: [{
key: "codeRuleType", key: "codeRuleType",
title: "类型", title: "类型",
align: "center", align: "center",
...@@ -518,6 +518,226 @@ export default { ...@@ -518,6 +518,226 @@ export default {
type: "user" type: "user"
} }
], ],
columns4: [{
key: "code",
title: this.l4("code"),
align: "left",
width: 200,
easy: true,
high: true
},
{
key: "name",
title: this.l4("name"),
align: "left",
easy: true,
high: true,
tooltip: true,
},
{
key: "phase",
title: this.l4("phase"),
align: "center",
high: true,
width: 100,
code: "Process.Routing.phase"
},
{
key: "versionid",
title: this.l4("version"),
align: "center",
high: true,
width: 100,
code: "Process.Routing.version"
},
{
title: this.l4("approvalStatus"),
key: "approvalStatus",
align: "center",
width: "120",
code: "process.RoutingStatus"
},
{
key: "routingType",
title: this.l4("routingType"),
align: "center",
width: 100,
high: true,
code: "Process.Routing.routingType"
},
{
key: "drawingNo",
title: this.l4("drawingNo"),
align: "left",
high: true
},
{
key: "productName",
title: this.l4("productName"),
align: "left",
high: true,
tooltip: true,
},
{
key: "productId",
title: this.l4("productId"),
align: "left",
import: true,
hide: true,
},
{
key: "productBomId",
title: this.l4("productBomId"),
align: "left",
import: true,
hide: true,
},
{
key: "departmentName",
title: this.l4("departmentName"),
width: 100,
align: "left",
high: true,
tooltip: true,
},
{
key: "departmentId",
title: this.l4("departmentId"),
align: "left",
import: true,
hide: true,
},
{
key: "isEffect",
title: this.l4("isEffect"),
align: "center",
width: 80,
high: true,
code: "Process.Status"
}
],
columns5: [{
key: "routingDetailNo",
title: this.l5("routingDetailNo"),
align: "left",
high: true,
width: 100,
sortable: true
},
{
key: "routingHeaderId",
title: this.l5("routingHeaderName"),
hide: true,
import: true,
techKey: '1',
// render: (h, params) => {
// return h(
// "span", {},
// this.getRoutingHeaderName(params.row.routingHeaderId)
// );
// }
},
{
key: "routingDetailName",
title: this.l5("routingDetailName"),
align: "left",
high: true
},
{
key: "routingDetailId",
title: this.l5("routingDetailId"),
hide: true,
import: true,
},
{
key: "quantity",
title: this.l5("quantity"),
align: "right",
high: true,
width: 80,
},
{
key: "materialType",
title: this.l5("materialType"),
align: "center",
easy: true,
high: true,
code: "mes_xingchi_resource.material.materialReType",
width: 100,
},
{
key: "materialNumber",
title: this.l5("materialNumber"),
align: "left",
easy: true,
high: true
},
{
key: "materialId",
title: this.l5("materialId"),
align: "left",
hide: true,
import: true
},
{
key: "nameMaterial",
title: this.l5("nameMaterial"),
align: "left",
easy: true,
high: true,
},
{
key: "brand",
title: this.l5("brand"),
align: "left",
easy: true,
high: true
},
{
key: "specifications",
title: this.l5("specifications"),
align: "left",
easy: true,
high: true
},
{
key: "xhgg",
title: this.l5("xhgg"),
align: "left",
easy: true,
high: true,
hide: true,
},
{
key: "texture",
title: this.l5("texture"),
align: "left",
easy: true,
high: true
},
{
key: "procurementStandards",
title: this.l5("procurementStandards"),
align: "left",
easy: true,
high: true
},
{
key: "qualityGrade",
title: this.l5("qualityGrade"),
align: "left",
easy: true,
high: true
},
{
key: "drawNum",
title: this.l5("drawNum"),
align: "left",
easy: true,
high: true
},
],
tdHeightExcel: "", tdHeightExcel: "",
excelData: [], excelData: [],
excelDataBack: [], //临时存储原始数据 excelDataBack: [], //临时存储原始数据
...@@ -540,6 +760,7 @@ export default { ...@@ -540,6 +760,7 @@ export default {
//物料管理 //物料管理
treeData: [], //物料管理左侧类别树 treeData: [], //物料管理左侧类别树
codeRuleData: [], //物料编码等信息 codeRuleData: [], //物料编码等信息
routingHeaderData: [], //工艺规程列表信息
}; };
}, },
props: { props: {
...@@ -561,6 +782,8 @@ export default { ...@@ -561,6 +782,8 @@ export default {
//物料加载类型数据 //物料加载类型数据
this.getTreeData(); this.getTreeData();
this.getcodeRuleData(); this.getcodeRuleData();
//获取工艺规程信息
this.getRoutingHeaderData();
window.onresize = () => { window.onresize = () => {
///浏览器窗口大小变化 ///浏览器窗口大小变化
return (() => { return (() => {
...@@ -596,7 +819,6 @@ export default { ...@@ -596,7 +819,6 @@ export default {
} }
} }
}).catch(e => { }).catch(e => {
//this.$Message.error("数据解析失败,请下载原文件后转为Excel重新进行上传!")
this.noDataText = "文件无法解析,建议下载原文件后转换为Excel文件格式重新上传!" this.noDataText = "文件无法解析,建议下载原文件后转换为Excel文件格式重新上传!"
}) })
...@@ -678,12 +900,13 @@ export default { ...@@ -678,12 +900,13 @@ export default {
useData.forEach(eles => { useData.forEach(eles => {
//如果导入文件没有departmentid,但存在departmentTitle的话,通过title获取id //如果导入文件没有departmentid,但存在departmentTitle的话,通过title获取id
if ( if (
eles.departmentTitle && [(eles.departmentTitle &&
eles.departmentTitle != "" && eles.departmentTitle != "") || (eles.departmentName &&
eles.departmentName != "")] &&
(!eles.departmentId || eles.departmentId == "") (!eles.departmentId || eles.departmentId == "")
) { ) {
this.departArr.forEach((e) => { this.departArr.forEach((e) => {
if (eles.departmentTitle && eles.departmentTitle == e.name) { if ((eles.departmentTitle && eles.departmentTitle == e.name) || (eles.departmentName && eles.departmentName == e.name)) {
eles.departmentId = e.id; eles.departmentId = e.id;
} }
}); });
...@@ -691,11 +914,12 @@ export default { ...@@ -691,11 +914,12 @@ export default {
//如果导入文件没有departmentTitle,但存在departmentid的话,通过id获取departmentTitle //如果导入文件没有departmentTitle,但存在departmentid的话,通过id获取departmentTitle
eles.departmentId && eles.departmentId &&
eles.departmentId + "" != "" && eles.departmentId + "" != "" &&
(!eles.departmentTitle || eles.departmentTitle == "") (!eles.departmentTitle || eles.departmentTitle == "") && (!eles.departmentName || eles.departmentName == "")
) { ) {
this.departArr.forEach((e) => { this.departArr.forEach((e) => {
if (eles.departmentId && eles.departmentId == e.id) { if (eles.departmentId && eles.departmentId == e.id) {
eles.departmentTitle = e.name; eles.departmentTitle = e.name;
eles.departmentName = e.name;
} }
}); });
} }
...@@ -850,12 +1074,18 @@ export default { ...@@ -850,12 +1074,18 @@ export default {
case 1: case 1:
this.loadColum(this.columns1); this.loadColum(this.columns1);
break; break;
case 2:
this.loadColum(this.columns2);
break;
case 3: case 3:
this.loadColum(this.columns3); this.loadColum(this.columns3);
break; break;
case 4: case 4:
this.loadColum(this.columns4); this.loadColum(this.columns4);
break; break;
case 5:
this.loadColum(this.columns5);
break;
default: default:
this.loadColum(this.columns0); this.loadColum(this.columns0);
} }
...@@ -879,12 +1109,18 @@ export default { ...@@ -879,12 +1109,18 @@ export default {
case 0: case 0:
this.importUser(); this.importUser();
break; break;
case 3: case 2:
this.importResource(); this.importResource();
break; break;
case 4: case 3:
this.importMateriel(); this.importMateriel();
break; break;
case 4:
this.importRountingHeader();
break;
case 5:
this.importRountingBom();
break;
default: default:
//this.loadColum(this.columns1); //this.loadColum(this.columns1);
} }
...@@ -1083,6 +1319,146 @@ export default { ...@@ -1083,6 +1319,146 @@ export default {
}, },
//获取编码名称等end //获取编码名称等end
//插入物料管理end //插入物料管理end
//插入工艺规程 及工艺相关start
importRountingHeader() {
let tempData = this.$u.clone(this.dataIm);
let tempList = [];
tempData.forEach((ele) => {
let obj = {
classId: null,
unicode: "",
name: ele.name ? ele.name : '',
code: ele.code ? ele.code : '',
productId: ele.productId ? ele.productId : '', //?
productName: ele.productName ? ele.productName : "", //?
productBomId: ele.productBomId ? ele.productBomId : "", //?
drawingNo: ele.drawingNo ? ele.drawingNo : "", //?
version: "",
versionid: ele.versionid ? ele.versionid : "",
author: null,
departmentId: ele.departmentId ? ele.departmentId : null, //?
departmentName: ele.departmentName ? ele.departmentName : "", //?
isMain: 1,
upId: null,
upDetailId: null,
routingType: ele.routingType ? ele.routingType : null,
status: 0,
approvalStatus: 4, //?
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
auditUserId2: "",
platesnum: null,
versionnotes: "",
isSendPpm: 1,
fileId: "",
phase: ele.phase ? ele.phase : null,
isEffect: ele.isEffect ? ele.isEffect : 1
};
if (ele.name && ele.name != '') {
tempList.push(obj);
}
});
if (tempList.length == 0) {
this.$Message.error("所有导入的数据均不合法!");
} else {
let parms = {
list: tempList,
};
let url = `${technologyUrl}routingheaderimportservice/import`
this.$api.post(url, parms).then((r) => {
if (r.success) {
this.$Message.success("成功批量导入工艺规程模块 " + tempList.length + " 条数据");
this.imBtn = false;
this.cancelExcel();
} else {
this.$Message.error("批量导入失败")
}
}).catch(err => {
this.$Message.error("数据异常!");
});
}
},
//导入工艺bom
importRountingBom() {
let tempData = this.$u.clone(this.dataIm);
let tempList = [];
tempData.forEach((ele) => {
let obj = {
routingHeaderId: Number(this.getRoutingHeaderId(ele.routingHeaderId)),
routingDetailId: ele.routingDetailId ? Number(ele.routingDetailId) : null,
routingDetailNo: ele.routingDetailNo ? Number(ele.routingDetailNo) : null,
routingDetailName: ele.routingDetailName ? ele.routingDetailName : '',
routingStepId: 0,
quantity: ele.quantity ? Number(ele.quantity) : 0,
materialId: ele.materialId ? ele.materialId : '',
materialType: ele.materialType ? Number(ele.materialType) : '',
materialNumber: ele.materialNumber ? ele.materialNumber : '',
nameMaterial: ele.nameMaterial ? ele.nameMaterial : '',
brand: ele.brand ? ele.brand : '',
specifications: ele.specifications ? ele.specifications : '',
xhgg: ele.xhgg ? ele.xhgg : '',
texture: ele.texture ? ele.texture : '',
procurementStandards: ele.procurementStandards ? ele.procurementStandards : '',
qualityGrade: ele.qualityGrade ? ele.qualityGrade : '',
state: null,
extend: "",
remark: "",
drawNum: ele.drawNum ? ele.drawNum : ''
};
if (ele.routingDetailId && ele.routingDetailId != null) {
tempList.push(obj);
}
});
if (tempList.length == 0) {
this.$Message.error("所有导入的数据均不合法!");
} else {
let parms = {
list: tempList,
};
let url = `${technologyUrl}productinfoimportservice/import`
this.$api.post(url, parms).then((r) => {
if (r.success) {
this.$Message.success("成功批量导入工艺Bom模块 " + tempList.length + " 条数据");
this.imBtn = false;
this.cancelExcel();
} else {
this.$Message.error("批量导入失败")
}
}).catch(err => {
this.$Message.error("数据异常!");
});
}
},
//获取工艺规程列表
getRoutingHeaderData() {
let url = `${technologyUrl}routingheader/list`;
let data = {
conditions: []
};
this.$api.post(url, data).then((r) => {
if (r.success) {
this.routingHeaderData = r.result || []
}
});
},
//根据工艺规程ID获得name
getRoutingHeaderId(val) {
let routingHeaderDataList = this.$u.clone(this.routingHeaderData)
let routingHeaderId = 0
routingHeaderDataList.forEach(ele => {
if (ele.name == val) {
routingHeaderId = ele.id
}
})
return routingHeaderId
},
//插入工艺规程 及工艺相关end
//切换列表和excel按钮 //切换列表和excel按钮
changeExcel(val) { changeExcel(val) {
...@@ -1107,10 +1483,18 @@ export default { ...@@ -1107,10 +1483,18 @@ export default {
key = "user" + "." + key; key = "user" + "." + key;
return this.$t(key); return this.$t(key);
}, },
l3(key) { l2(key) {
key = "resource" + "." + key; key = "resource" + "." + key;
return this.$t(key); return this.$t(key);
}, },
l4(key) {
key = "routingHeader" + "." + key;
return this.$t(key);
},
l5(key) {
key = "routingsupporting" + "." + key;
return this.$t(key);
},
}, },
watch: { watch: {
eid(v) { eid(v) {
......
...@@ -74,12 +74,16 @@ export default { ...@@ -74,12 +74,16 @@ export default {
key: "codeRuleType", key: "codeRuleType",
title: "类型", title: "类型",
align: "center", align: "center",
code: "material.code.type" code: "material.code.type",
import: true,
hide: true,
}, },
{ {
key: "codeRuleId", key: "codeRuleId",
title: "编码名称", title: "编码名称",
materialKey: '3', materialKey: '3',
import: true,
hide: true,
render: (h, params) => { render: (h, params) => {
return h( return h(
"span", {}, "span", {},
...@@ -92,6 +96,8 @@ export default { ...@@ -92,6 +96,8 @@ export default {
title: "大类", title: "大类",
align: "right", align: "right",
materialKey: '1', materialKey: '1',
import: true,
hide: true,
render: (h, params) => { render: (h, params) => {
return h( return h(
"span", {}, "span", {},
...@@ -104,6 +110,8 @@ export default { ...@@ -104,6 +110,8 @@ export default {
title: "子类", title: "子类",
align: "right", align: "right",
materialKey: '2', materialKey: '2',
import: true,
hide: true,
render: (h, params) => { render: (h, params) => {
return h( return h(
"span", {}, "span", {},
......
<template> <template>
<Form ref="form" :model="entity" :rules="rules" :label-width="110"> <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">
<InputNumber v-model="entity.classId"></InputNumber> <InputNumber v-model="entity.classId"></InputNumber>
</FormItem> </FormItem>
...@@ -11,56 +11,56 @@ ...@@ -11,56 +11,56 @@
<Input v-model="entity.unicode"></Input> <Input v-model="entity.unicode"></Input>
</FormItem> </FormItem>
</Col>--> </Col>-->
<Col :span="8"> <Col :span="8">
<!-- <FormItem v-if="title=='新增'" :label="l('code')" prop="code"> <!-- <FormItem v-if="title=='新增'" :label="l('code')" prop="code">
<Input v-model="entity.code"></Input> <Input v-model="entity.code"></Input>
</FormItem> v-else-if="title=='克隆'"--> </FormItem> v-else-if="title=='克隆'"-->
<FormItem :label="l('code')" prop="code"> <FormItem :label="l('code')" prop="code">
<Input disabled v-model="entity.code"></Input> <Input disabled v-model="entity.code"></Input>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('name')" prop="name"> <FormItem :label="l('name')" prop="name">
<Input v-model="entity.name"></Input> <Input v-model="entity.name"></Input>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('routingType')" prop="routingType"> <FormItem :label="l('routingType')" prop="routingType">
<Dictionary code="Process.Routing.routingType" v-model="entity.routingType"></Dictionary> <Dictionary code="Process.Routing.routingType" v-model="entity.routingType"></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('phase')" prop="phase"> <FormItem :label="l('phase')" prop="phase">
<Dictionary code="Process.Routing.phase" v-model="entity.phase"></Dictionary> <Dictionary code="Process.Routing.phase" v-model="entity.phase"></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('productName')" prop="productId"> <FormItem :label="l('productName')" prop="productId">
<ProductSelect v-model="entity.productId" @on-change="proChange"></ProductSelect> <ProductSelect v-model="entity.productId" @on-change="proChange"></ProductSelect>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('drawingNo')" prop="drawingNo"> <FormItem :label="l('drawingNo')" prop="drawingNo">
<Input v-model="entity.drawingNo" disabled></Input> <Input v-model="entity.drawingNo" disabled></Input>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('version')" prop="versionid"> <FormItem :label="l('version')" prop="versionid">
<Dictionary code="Process.Routing.version" v-model="entity.versionid"></Dictionary> <Dictionary code="Process.Routing.version" v-model="entity.versionid"></Dictionary>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <Col :span="8">
<FormItem :label="l('departmentName')" prop="departmentId"> <FormItem :label="l('departmentName')" prop="departmentId">
<departmentSelect v-model="entity.departmentId" type="3" @on-change="departChange"></departmentSelect> <departmentSelect v-model="entity.departmentId" :type="3" @on-change="departChange"></departmentSelect>
</FormItem> </FormItem>
</Col> </Col>
<Col :span="8"> <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>
</Col> </Col>
<!-- <!--
<Col :span="8"> <Col :span="8">
<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>
...@@ -76,13 +76,13 @@ ...@@ -76,13 +76,13 @@
<InputNumber v-model="entity.upId"></InputNumber> <InputNumber v-model="entity.upId"></InputNumber>
</FormItem> </FormItem>
</Col>--> </Col>-->
<!-- <Col :span="12"> <!-- <Col :span="12">
<FormItem :label="l('upDetailId')" prop="upDetailId"> <FormItem :label="l('upDetailId')" prop="upDetailId">
<InputNumber v-model="entity.upDetailId"></InputNumber> <InputNumber v-model="entity.upDetailId"></InputNumber>
</FormItem> </FormItem>
</Col>--> </Col>-->
<!-- <Col :span="12"> <!-- <Col :span="12">
<FormItem :label="l('status')" prop="status"> <FormItem :label="l('status')" prop="status">
<Dictionary code="Process.Status" v-model="entity.status"></Dictionary> <Dictionary code="Process.Status" v-model="entity.status"></Dictionary>
</FormItem> </FormItem>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</FormItem> </FormItem>
</Col>--> </Col>-->
<!-- <Col :span="12"> <!-- <Col :span="12">
<FormItem :label="l('approvalStatusRemark')" prop="approvalStatusRemark"> <FormItem :label="l('approvalStatusRemark')" prop="approvalStatusRemark">
<Input v-model="entity.approvalStatusRemark"></Input> <Input v-model="entity.approvalStatusRemark"></Input>
</FormItem> </FormItem>
...@@ -114,17 +114,17 @@ ...@@ -114,17 +114,17 @@
</FormItem> </FormItem>
</Col>--> </Col>-->
<!-- <Col :span="12"> <!-- <Col :span="12">
<FormItem :label="l('versionnotes')" prop="versionnotes"> <FormItem :label="l('versionnotes')" prop="versionnotes">
<Input v-model="entity.versionnotes"></Input> <Input v-model="entity.versionnotes"></Input>
</FormItem> </FormItem>
</Col>--> </Col>-->
<!-- <Col :span="12"> <!-- <Col :span="12">
<FormItem :label="l('phase')" prop="phase"> <FormItem :label="l('phase')" prop="phase">
<InputNumber v-model="entity.phase"></InputNumber> <InputNumber v-model="entity.phase"></InputNumber>
</FormItem> </FormItem>
</Col>--> </Col>-->
<!-- <Col :span="12"> <!-- <Col :span="12">
<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>
...@@ -135,238 +135,251 @@ ...@@ -135,238 +135,251 @@
</FormItem> </FormItem>
</Col> </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" />
</FormItem> </FormItem>
</Col> </Col>
<Col :span="24"> <Col :span="24">
<FormItem label="多媒体附件" prop="files"> <FormItem label="多媒体附件" prop="files">
<files ref="refFile" :parms="parms" fileFormat /> <files ref="refFile" :parms="parms" fileFormat />
</FormItem> </FormItem>
</Col> </Col>
</Row> </Row>
<FormItem> <FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button> <Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button> <Button @click="handleClose" class="ml20">取消</Button>
</FormItem> </FormItem>
</Form> </Form>
</template> </template>
<script>
<script>
import Api from "./api"; import Api from "./api";
import ApiWorkflow from "../workflow/process/api"; import ApiWorkflow from "../workflow/process/api";
import iQuill from "@/components/quill"; import iQuill from "@/components/quill";
export default { export default {
name: "Add", name: "Add",
components: { components: {
iQuill iQuill
// VueUeditorWrap // VueUeditorWrap
},
data() {
return {
disabled: false,
entity: {
classId: null,
unicode: "",
name: "",
code: "",
productId: null,
productName: "",
productBomId: null,
version: "",
author: null,
departmentId: null,
departmentName: "",
isMain: 1,
upId: null,
upDetailId: null,
routingType: null,
status: 0,
approvalStatus: 4,
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
auditUserId2: "",
platesnum: null,
isEffect: 1,
versionnotes: "",
phase: null,
versionid: null,
isSendPpm: 1,
fileId: ""
},
rules: {
name: [{ required: true, message: "必填", trigger: "blur" }],
code: [{ required: true, message: "必填", trigger: "blur" }],
routingType: [
{
required: true,
message: "请选择工艺类型",
trigger: "change",
type: "number"
}
]
},
parms: {
app: "technology",
eid: null,
name: "",
field: ""
}
};
},
props: {
v: Object,
eid: Number,
title: String
},
mounted() {
this.parms.eid = this.$u.guid();
this.$refs.refFile.intFiles();
if (this.eid > 0) {
this.load(this.eid);
} else {
this.getCodNumber();
}
},
methods: {
handleSubmit() {
this.$refs.form.validate(v => {
if (v) {
this.disabled = true;
if (this.title == "克隆") {
this.$Message.success("克隆");
this.getcloneData();
} else {
if (this.$refs.refFile.nameList.length > 0) {
this.entity.fileId = this.parms.eid;
} else {
this.entity.fileId = "";
}
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("操作失败");
console.warn(err);
});
}
}
});
}, },
// 克隆工艺 data() {
getcloneData() { return {
let parmese = { disabled: false,
headerId: this.eid, entity: {
code: this.entity.code classId: null,
}; unicode: "",
Api.getCloneHeader(parmese) name: "",
.then(r => { code: "",
this.disabled = false; productId: null,
if (r.success) { productName: "",
this.$Message.success("克隆成功"); productBomId: null,
this.$emit("on-ok"); version: "",
} else { author: null,
this.$Message.error("克隆失败"); departmentId: null,
} departmentName: "",
}) isMain: 1,
.catch(err => { upId: null,
this.disabled = false; upDetailId: null,
this.$Message.error("克隆失败"); routingType: null,
console.warn(err); status: 0,
}); approvalStatus: 4,
}, remark: "",
handleClose() { approvalStatusRemark: "",
this.$emit("on-close"); auditUserId1: "",
}, auditUserId2: "",
handleImg(e) { platesnum: null,
console.warn(e); isEffect: 1,
let file = null; versionnotes: "",
if ( phase: null,
e.clipboardData && versionid: null,
e.clipboardData.items[0] && isSendPpm: 1,
e.clipboardData.items[0].type && fileId: ""
e.clipboardData.items[0].type.indexOf("image") > -1 },
) { rules: {
//这里就是判断是否有粘贴进来的文件且文件为图片格式 name: [{
file = e.clipboardData.items[0].getAsFile(); required: true,
let reader = new FileReader(); message: "必填",
reader.readAsDataURL(file); trigger: "blur"
setTimeout(() => { }],
var img = '<img src="' + reader.result + '" alt=""/>'; code: [{
this.entity.remark += img; required: true,
}, 1000); message: "必填",
trigger: "blur"
// new R }],
} routingType: [{
required: true,
message: "请选择工艺类型",
trigger: "change",
type: "number"
}]
},
parms: {
app: "technology",
eid: null,
name: "",
field: ""
}
};
}, },
load(v) { props: {
Api.get({ id: v }).then(r => { v: Object,
this.entity = r.result; eid: Number,
this.entity.isEffect = parseInt(r.result.isEffect); title: String
this.entity.id = 0;
});
this.getCodNumber();
}, },
getCodNumber() { mounted() {
Api.getCodeNumber({ code: "GY", count: "1" }).then(r => { this.parms.eid = this.$u.guid();
if (r.success) { this.$refs.refFile.intFiles();
this.entity.code = r.result[0]; if (this.eid > 0) {
this.load(this.eid);
} else { } else {
this.$Message.error("生成编号失败"); this.getCodNumber();
} }
});
},
l(key) {
key = "routingHeader" + "." + key;
return this.$t(key);
}, },
proChange(v, items) { methods: {
this.entity.productName = items.productName; handleSubmit() {
this.entity.drawingNo = items.drawingNo; this.$refs.form.validate(v => {
this.entity.productBomId = items.bomId; if (v) {
}, this.disabled = true;
departChange(v, items) { if (this.title == "克隆") {
this.entity.departmentName = items.name; this.$Message.success("克隆");
} this.getcloneData();
}, } else {
watch: { if (this.$refs.refFile.nameList.length > 0) {
v() { this.entity.fileId = this.parms.eid;
this.entity = this.$u.clone(this.v); } else {
this.entity.fileId = "";
}
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("操作失败");
console.warn(err);
});
}
}
});
},
// 克隆工艺
getcloneData() {
let parmese = {
headerId: this.eid,
code: this.entity.code
};
Api.getCloneHeader(parmese)
.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");
},
handleImg(e) {
console.warn(e);
let file = null;
if (
e.clipboardData &&
e.clipboardData.items[0] &&
e.clipboardData.items[0].type &&
e.clipboardData.items[0].type.indexOf("image") > -1
) {
//这里就是判断是否有粘贴进来的文件且文件为图片格式
file = e.clipboardData.items[0].getAsFile();
let reader = new FileReader();
reader.readAsDataURL(file);
setTimeout(() => {
var img = '<img src="' + reader.result + '" alt=""/>';
this.entity.remark += img;
}, 1000);
// new R
}
},
load(v) {
Api.get({
id: v
}).then(r => {
this.entity = r.result;
this.entity.isEffect = parseInt(r.result.isEffect);
this.entity.id = 0;
});
this.getCodNumber();
},
getCodNumber() {
Api.getCodeNumber({
code: "GY",
count: "1"
}).then(r => {
if (r.success) {
this.entity.code = r.result[0];
} else {
this.$Message.error("生成编号失败");
}
});
},
l(key) {
key = "routingHeader" + "." + key;
return this.$t(key);
},
proChange(v, items) {
this.entity.productName = items.productName;
this.entity.drawingNo = items.drawingNo;
this.entity.productBomId = items.bomId;
},
departChange(v, items) {
this.entity.departmentName = items.name;
}
}, },
eid(v) { watch: {
// console.log("id:",v) v() {
if (v != 0) { this.entity = this.$u.clone(this.v);
this.load(v); },
} eid(v) {
// console.log("id:",v)
if (v != 0) {
this.load(v);
}
}
} }
}
}; };
</script> </script>
\ No newline at end of file
...@@ -27,4 +27,8 @@ export default { ...@@ -27,4 +27,8 @@ export default {
getmaterialids(params) { getmaterialids(params) {
return Api.get(`${technologyUrl}productinfo/getmaterialids`, params); return Api.get(`${technologyUrl}productinfo/getmaterialids`, params);
}, },
//获取所有工艺规程
getRoutingheaderList(params) {
return Api.post(`${technologyUrl}routingheader/list`, params);
},
} }
...@@ -16,11 +16,13 @@ ...@@ -16,11 +16,13 @@
</template> </template>
<template slot="buttons"> <template slot="buttons">
<Button type="primary" @click="add" v-show="headerStatus==0||headerStatus==4">新增</Button> <Button type="primary" @click="add" v-show="headerStatus==0||headerStatus==4">新增</Button>
<Button @click="openModalIm">导入</Button>
</template> </template>
</DataGrid> </DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide> <Modal v-model="modal" :title="title" width="1200" footer-hide>
<component :is="detail" :eid="curId" :headid="hid" :productBomId="productBomId" @on-close="cancel" @on-ok="ok" /> <component :is="detail" :eid="curId" :headid="hid" :productBomId="productBomId" @on-close="cancel" @on-ok="ok" />
</Modal> </Modal>
<ImportExcel ref="importExcel" @on-get-data="getData" :modalTitle="temTitle" :columns="columns" :open="ModalIm" @on-cancel="ModalImCancel" @on-ok="ok" />
</div> </div>
</template> </template>
...@@ -56,7 +58,9 @@ export default { ...@@ -56,7 +58,9 @@ export default {
detail: null, detail: null,
curId: 0, curId: 0,
hid: 0, hid: 0,
columns: [{ columns: [
{
key: "routingDetailNo", key: "routingDetailNo",
title: this.l("routingDetailNo"), title: this.l("routingDetailNo"),
align: "left", align: "left",
...@@ -64,12 +68,31 @@ export default { ...@@ -64,12 +68,31 @@ export default {
width: 100, width: 100,
sortable: true sortable: true
}, },
{
key: "routingHeaderId",
title: this.l("routingHeaderName"),
hide: true,
import: true,
techKey: '1',
render: (h, params) => {
return h(
"span", {},
this.getRoutingHeaderName(params.row.routingHeaderId)
);
}
},
{ {
key: "routingDetailName", key: "routingDetailName",
title: this.l("routingDetailName"), title: this.l("routingDetailName"),
align: "left", align: "left",
high: true high: true
}, },
{
key: "routingDetailId",
title: this.l("routingDetailId"),
hide: true,
import: true,
},
{ {
key: "quantity", key: "quantity",
title: this.l("quantity"), title: this.l("quantity"),
...@@ -93,6 +116,13 @@ export default { ...@@ -93,6 +116,13 @@ export default {
easy: true, easy: true,
high: true high: true
}, },
{
key: "materialId",
title: this.l("materialId"),
align: "left",
hide: true,
import: true
},
{ {
key: "nameMaterial", key: "nameMaterial",
title: this.l("nameMaterial"), title: this.l("nameMaterial"),
...@@ -229,6 +259,9 @@ export default { ...@@ -229,6 +259,9 @@ export default {
], ],
headerStatus: -1, headerStatus: -1,
productBomId: -1, productBomId: -1,
ModalIm: false,
temTitle: "工艺Bom",
routingHeaderData: [],
}; };
}, },
created() { created() {
...@@ -243,6 +276,7 @@ export default { ...@@ -243,6 +276,7 @@ export default {
}, },
mounted() { mounted() {
console.log(this); console.log(this);
this.getRoutingHeaderData();
this.search(); this.search();
}, },
async fetch({ async fetch({
...@@ -298,6 +332,81 @@ export default { ...@@ -298,6 +332,81 @@ export default {
this.curId = 0; this.curId = 0;
this.modal = false; this.modal = false;
}, },
//批量导入start
//导入功能
openModalIm() {
this.ModalIm = true
},
ModalImCancel() {
this.ModalIm = false
},
getData(val) {
let url = `${technologyUrl}productinfoimportservice/import`;
this.$refs.importExcel.deelData(url, this.cols, this.formatMethod(val))
},
//根据页面二次处理数据
formatMethod(val) {
// alert(JSON.stringify(val))
let tempData = this.$u.clone(val);
let tempList = [];
tempData.forEach((ele) => {
let obj = {
routingHeaderId: Number(this.headerid),
routingDetailId: ele.routingDetailId ? Number(ele.routingDetailId) : null,
routingDetailNo: ele.routingDetailNo ? Number(ele.routingDetailNo) : null,
routingDetailName: ele.routingDetailName ? ele.routingDetailName : '',
routingStepId: 0,
quantity: ele.quantity ? Number(ele.quantity) : 0,
materialId: ele.materialId ? ele.materialId : '',
materialType: ele.materialType ? Number(ele.materialType) : '',
materialNumber: ele.materialNumber ? ele.materialNumber : '',
nameMaterial: ele.nameMaterial ? ele.nameMaterial : '',
brand: ele.brand ? ele.brand : '',
specifications: ele.specifications ? ele.specifications : '',
xhgg: ele.xhgg ? ele.xhgg : '',
texture: ele.texture ? ele.texture : '',
procurementStandards: ele.procurementStandards ? ele.procurementStandards : '',
qualityGrade: ele.qualityGrade ? ele.qualityGrade : '',
state: null,
extend: "",
remark: "",
drawNum: ele.drawNum ? ele.drawNum : ''
};
if (ele.routingDetailId && ele.routingDetailId != null) {
obj.ico = false
} else {
obj.ico = true
}
tempList.push(obj);
});
return tempList
},
//批量导入end
//工艺规程id和name之间的转换
//获取工艺规程信息
getRoutingHeaderData() {
let data = {
conditions: []
};
Api.getRoutingheaderList(data).then((r) => {
if (r.success) {
this.routingHeaderData = r.result || []
}
});
},
//根据工艺规程ID获得name
getRoutingHeaderName(val) {
let routingHeaderDataList = this.$u.clone(this.routingHeaderData)
let routingHeaderName = ""
routingHeaderDataList.forEach(ele => {
if (ele.id == Number(val)) {
routingHeaderName = ele.name
}
})
return routingHeaderName
},
l(key) { l(key) {
let vkey = "routingsupporting" + "." + key; let vkey = "routingsupporting" + "." + key;
return this.$t(vkey) || key; return this.$t(vkey) || key;
......
...@@ -2,117 +2,99 @@ ...@@ -2,117 +2,99 @@
@import "./technolog.less"; @import "./technolog.less";
.fullWindow { .fullWindow {
position: fixed; position: fixed;
width: 100%; width: 100%;
left: 0; left: 0;
top: 50px; top: 50px;
bottom: 0; bottom: 0;
right: 0; right: 0;
// bottom:100%; // bottom:100%;
// right: 100%; // right: 100%;
z-index: 100; z-index: 100;
background-color: white; background-color: white;
// background: red;
.top { // background: red;
height: 42px; .top {
line-height: 42px; height: 42px;
background: #f5f7f9; line-height: 42px;
} background: #f5f7f9;
}
} }
</style> </style>
<template> <template>
<Layout class="lay100"> <Layout class="lay100">
<Sider hide-trigger v-if="showMenu" class="menu_side" width="300"> <Sider hide-trigger v-if="showMenu" class="menu_side" width="300">
<ProductTree @on-hide="onHide" @on-select="productSearch" /> <ProductTree @on-hide="onHide" @on-select="productSearch" />
</Sider> </Sider>
<div v-if="!showMenu" class="show_menu"> <div v-if="!showMenu" class="show_menu">
<a class="menu_play fr" @click="showMenuFn" title="展开"> <a class="menu_play fr" @click="showMenuFn" title="展开">
<Icon type="ios-arrow-forward" size="24" /> <Icon type="ios-arrow-forward" size="24" />
</a> </a>
</div> </div>
<Content class="con" :class="!showMenu?'con_bord':''"> <Content class="con" :class="!showMenu?'con_bord':''">
<DataGrid :columns="columns" ref="grid" :action="action"> <DataGrid :columns="columns" ref="grid" :action="action" exportTitle="工艺规程">
<template slot="easySearch"> <template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline> <Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys"> <FormItem prop="keys">
<Input <Input placeholder="请输入工艺名称/工艺编号" v-width="200" v-model="easySearch.keys.value" clearable />
placeholder="请输入工艺名称/工艺编号" </FormItem>
v-width="200" <FormItem>
v-model="easySearch.keys.value" <Button type="primary" @click="search">查询</Button>
clearable </FormItem>
/> </Form>
</FormItem> </template>
<FormItem> <template slot="searchForm">
<Button type="primary" @click="search">查询</Button> <Search />
</FormItem> </template>
</Form> <template slot="buttons">
</template> <Button type="primary" @click="add">新增</Button>
<template slot="searchForm"> <Button @click="openModalIm">导入</Button>
<Search /> </template>
</template> </DataGrid>
<template slot="buttons"> <Modal v-model="modal" :title="title" width="1120" footer-hide>
<Button type="primary" @click="add">新增</Button> <component :is="detail" :eid="curId" :uid="uId" :title="title" :headid="hid" @on-close="cancel" @on-ok="ok" />
</template> </Modal>
</DataGrid> <Modal v-model="documentShow" title="送审" :mask-closable="false" :scrollable="true" ok-text="确定" cancel-text="取消" fullscreen>
<Modal v-model="modal" :title="title" width="1120" footer-hide> <sendAudit ref="sendAudit"></sendAudit>
<component
:is="detail"
:eid="curId"
:uid="uId"
:title="title"
:headid="hid"
@on-close="cancel"
@on-ok="ok"
/>
</Modal>
<Modal
v-model="documentShow"
title="送审"
:mask-closable="false"
:scrollable="true"
ok-text="确定"
cancel-text="取消"
fullscreen
>
<sendAudit ref="sendAudit"></sendAudit>
<div slot="footer"> <div slot="footer">
<Button @click="documentShow = false">取消</Button> <Button @click="documentShow = false">取消</Button>
<Button type="primary" @click="passDocument">工艺规程送审</Button> <Button type="primary" @click="passDocument">工艺规程送审</Button>
</div>
</Modal>
<!-- 工艺更改弹框 -->
<routingchangeorder ref="routingchangeorder"></routingchangeorder>
<!-- 工艺更改表弹框 -->
<changelist ref="changelist"></changelist>
<div class="fullWindow flex fd" v-if="viewModal">
<div class="top flex">
<div v-width="200">
<a class="back_href" @click="viewClose">
<Icon type="ios-undo-outline" size="24" />返回工艺规程
</a>
</div>
<div class="fg tc f14 fwBold blueTitle" style="padding-right:200px;">
{{l('code')}}:
<span class="grayTitle mr10">{{titleObj.code}}</span>
{{l('name')}}:
<span class="grayTitle mr10">{{titleObj.name}}</span>
{{l('routingType')}}:
<span class="grayTitle mr10">
<state code="Process.Routing.routingType" :value="titleObj.routingType" type="text"></state>
</span>
{{l('version')}}:
<span class="grayTitle">{{titleObj.version}}</span>
{{l('departmentName')}}:
<span class="grayTitle">{{titleObj.departmentName}}</span>
</div>
</div>
<div class="fg">
<iframe width="100%" id="infoFrame" height="100%" frameborder="0" :src="src"></iframe>
</div>
</div> </div>
</Modal> <ImportExcel ref="importExcel" @on-get-data="getData" :modalTitle="temTitle" :columns="columns" :open="ModalIm" @on-cancel="ModalImCancel" @on-ok="ok" />
<!-- 工艺更改弹框 -->
<routingchangeorder ref="routingchangeorder"></routingchangeorder>
<!-- 工艺更改表弹框 -->
<changelist ref="changelist"></changelist>
<div class="fullWindow flex fd" v-if="viewModal">
<div class="top flex">
<div v-width="200">
<a class="back_href" @click="viewClose">
<Icon type="ios-undo-outline" size="24" />返回工艺规程
</a>
</div>
<div class="fg tc f14 fwBold blueTitle" style="padding-right:200px;">
{{l('code')}}:
<span class="grayTitle mr10">{{titleObj.code}}</span>
{{l('name')}}:
<span class="grayTitle mr10">{{titleObj.name}}</span>
{{l('routingType')}}:
<span class="grayTitle mr10">
<state code="Process.Routing.routingType" :value="titleObj.routingType" type="text"></state>
</span>
{{l('version')}}:
<span class="grayTitle">{{titleObj.version}}</span>
{{l('departmentName')}}:
<span class="grayTitle">{{titleObj.departmentName}}</span>
</div>
</div>
<div class="fg">
<iframe width="100%" id="infoFrame" height="100%" frameborder="0" :src="src"></iframe>
</div>
</div>
</Content> </Content>
</Layout> </Layout>
</template> </template>
<script> <script>
...@@ -124,392 +106,509 @@ import sendAudit from "./sendAudit.vue"; ...@@ -124,392 +106,509 @@ import sendAudit from "./sendAudit.vue";
import routingchangeorder from "../processDesign/Process/routingchangeorder.vue"; import routingchangeorder from "../processDesign/Process/routingchangeorder.vue";
import changelist from "../processDesign/Process/changelist.vue"; import changelist from "../processDesign/Process/changelist.vue";
export default { export default {
components: { components: {
ProductTree, ProductTree,
Search, Search,
sendAudit, sendAudit,
routingchangeorder, routingchangeorder,
changelist changelist
}, },
head: { head: {
title: "工艺规程", title: "工艺规程",
author: "henq", author: "henq",
description: "routing_header 4/26/2020 10:12:38 AM" description: "routing_header 4/26/2020 10:12:38 AM"
}, },
data() { data() {
return { return {
showMenu: true, showMenu: true,
treeHeight: "", treeHeight: "",
action: Api.index, action: Api.index,
easySearch: { easySearch: {
keys: { op: "unicode,name,code", value: null } keys: {
}, op: "unicode,name,code",
hid: 0, value: null
modal: false, }
title: "新增", },
info: null, hid: 0,
viewModal: false, modal: false,
src: null, title: "新增",
detail: null, info: null,
curId: 0, viewModal: false,
uId: "", src: null,
documentShow: false, detail: null,
columns: [ curId: 0,
{ uId: "",
key: "code", documentShow: false,
title: this.l("code"), columns: [{
align: "left", key: "code",
width: 200, title: this.l("code"),
easy: true, align: "left",
high: true width: 200,
}, easy: true,
{ high: true
key: "name", },
title: this.l("name"),
align: "left",
easy: true,
high: true,
tooltip:true,
},
{
key: "phase",
title: this.l("phase"),
align: "center",
high: true,
width: 100,
code: "Process.Routing.phase"
},
{
key: "versionid",
title: this.l("version"),
align: "center",
high: true,
width: 100,
code:"Process.Routing.version"
},
{
title: this.l("approvalStatus"),
key: "approvalStatus",
align: "center",
width: "120",
code:"process.RoutingStatus"
},
{
key: "routingType",
title: this.l("routingType"),
align: "center",
width: 100,
high: true,
code: "Process.Routing.routingType"
},
{
key: "drawingNo",
title: this.l("drawingNo"),
align: "left",
high: true
},
{
key: "productName",
title: this.l("productName"),
align: "left",
high: true,
tooltip:true,
},
{
key: "departmentName",
title: this.l("departmentName"),
width: 100,
align: "left",
high: true,
tooltip:true,
},
{
key: "isEffect",
title: this.l("isEffect"),
align: "center",
width: 80,
high: true,
code: "Process.Status"
},
//{ key: "id", title: this.$t("id"), hide: true, align: "left" },
// { key:"upId",title:this.l("upId") ,align:"left" ,high:true },
// { key:"upDetailId",title:this.l("upDetailId") ,hide:true ,align:"left" ,high:true },
//{ key: "classId", title: this.l("classId"), align: "left", hide: true },
//{ key: "unicode", title: this.l("unicode"),align: "left",easy: false,hide: true},
// { key:"approvalStatus",title:this.l("approvalStatus") ,align:"left" ,high:true ,code:'process.RoutingStatus' },
// { key:"approvalStatusRemark",title:this.l("approvalStatusRemark") ,align:"left" ,high:true },
// { key:"auditUserId1",title:this.l("auditUserId1") ,align:"left" ,high:true },
// { key:"auditUserId2",title:this.l("auditUserId2") ,align:"left" ,high:true },
// { key:"platesnum",title:this.l("platesnum") ,align:"left" ,high:true },
// { key: "isMain", title: this.l("isMain"),align: "center",width: 80,high: true,code: "Process.state"},
//{key: "creatorUserId",title: this.l("author"),align: "left", high: true,type: "user",hide: true},
//{key: "versionnotes",title: this.l("versionnotes"),align: "left", high: true,hide: true},
//{key: "versionid", title: this.l("versionid"), align: "left", hide: true, code: "Process.Routing.version"},
{
key: "creationTime",
title: this.$t("creationTime"),
align: "left",
hide: true
},
{
key: "creatorUserId",
title: this.$t("creatorUserId"),
align: "left",
hide: true,
type:"user"
},
{
key: "lastModificationTime",
title: this.$t("lastModificationTime"),
align: "left",
hide: true
},
{
key: "lastModifierUserId",
title: this.$t("lastModifierUserId"),
align: "left",
hide: true,
type:"user"
},
{
title: "操作",
key: "action",
width: 260,
align: "left",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{ {
attrs: { oprate: "detail" }, key: "name",
on: { click: () => this.viewprocess(params.row) } title: this.l("name"),
align: "left",
easy: true,
high: true,
tooltip: true,
}, },
"预览"
),
h(
"op",
{ {
attrs: { oprate: "detail" }, key: "phase",
on: { click: () => this.view(params.row) } title: this.l("phase"),
align: "center",
high: true,
width: 100,
code: "Process.Routing.phase"
}, },
"查看"
),
h(
"op",
{ {
attrs: { oprate: "copy" }, key: "versionid",
on: { click: () => this.copy(params.row.id) } title: this.l("version"),
align: "center",
high: true,
width: 100,
code: "Process.Routing.version"
}, },
"克隆"
),
h(
"op",
{ {
attrs: { oprate: "edit" }, title: this.l("approvalStatus"),
on: { click: () => this.edit(params.row) } key: "approvalStatus",
align: "center",
width: "120",
code: "process.RoutingStatus"
}, },
'编辑'
// params.row.approvalStatus == 4||params.row.approvalStatus == 0 ? "编辑" : ""
),
h(
"op",
{ {
attrs: { oprate: "delete" }, key: "routingType",
on: { click: () => this.remove(params.row.id) } title: this.l("routingType"),
align: "center",
width: 100,
high: true,
code: "Process.Routing.routingType"
}, },
params.row.approvalStatus == 4||params.row.approvalStatus == 0 ? "删除" : ""
),
h(
"op",
{ {
attrs: { oprate: "detail" }, key: "drawingNo",
on: { click: () => this.TechnologyChange(params.row) } title: this.l("drawingNo"),
align: "left",
high: true
}, },
params.row.approvalStatus == 1 ? "新增更改单" : ""
),
h(
"op",
{ {
attrs: { oprate: "detail" }, key: "productName",
on: { click: () => this.sendAuditFun(params.row) } title: this.l("productName"),
align: "left",
high: true,
tooltip: true,
}, },
params.row.approvalStatus == 4 ? "送审" : "" {
) key: "productId",
]); title: this.l("productId"),
} align: "left",
} import: true,
], hide: true,
titleObj: { },
code: "", //工艺编号 {
name: "", //工艺名称 key: "productBomId",
routingType: 0, //工艺类型 title: this.l("productBomId"),
version: "", //工艺版本 align: "left",
departmentName: null //车间 import: true,
}, hide: true,
processviewModal: false },
}; {
}, key: "departmentName",
created() { title: this.l("departmentName"),
this.treeHeight = window.innerHeight - 120; width: 100,
}, align: "left",
async fetch({ store, params }) { high: true,
await store.dispatch("loadDictionary"); // 加载数据字典 tooltip: true,
}, },
mounted() { {
window.onresize = () => { key: "departmentId",
///浏览器窗口大小变化 title: this.l("departmentId"),
return (() => { align: "left",
this.treeHeight = window.innerHeight - 120; import: true,
})(); hide: true,
}; },
}, {
computed: {}, key: "isEffect",
methods: { title: this.l("isEffect"),
onHide() { align: "center",
// this.$Message.info("收起左侧树") width: 80,
this.showMenu = false; high: true,
}, code: "Process.Status"
showMenuFn() { },
//this.$Message.info("展开左侧树") //{ key: "id", title: this.$t("id"), hide: true, align: "left" },
this.showMenu = true; // { key:"upId",title:this.l("upId") ,align:"left" ,high:true },
}, // { key:"upDetailId",title:this.l("upDetailId") ,hide:true ,align:"left" ,high:true },
productSearch(id, item, ids) { //{ key: "classId", title: this.l("classId"), align: "left", hide: true },
let where = { productId: { op: "In", value: ids } }; //{ key: "unicode", title: this.l("unicode"),align: "left",easy: false,hide: true},
this.$refs.grid.reload(where);
},
// 详情页面
view(row) {
this.viewModal = true;
this.titleObj = {
code: row.code,
name: row.name,
routingType: row.routingType,
version: row.version,
departmentName: row.departmentName
};
// this.info=()=>import("./details")
this.src = "/technology/details?id=" + row.id+"&headerStatus="+row.approvalStatus+"&productBomId="+row.productBomId;
},
viewClose() {
this.viewModal = false;
this.src = null;
},
ok() {
this.$refs.grid.load();
this.modal = false;
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch);
},
add() {
this.curId = 0;
this.title = "新增";
this.detail = () => import("./add");
this.modal = true;
},
copy(id) {
this.curId = id;
this.title = "克隆";
this.detail = () => import("./add");
this.modal = true;
},
// view(id) {
// this.curId = id;
// this.title = "详情";
// this.detail = () => import("./detail");
// this.modal = true;
// },
viewprocess(row) {
this.curId = row.id;
if (row.fileId) {
this.uId = row.fileId;
} else {
this.uId = this.$u.guid(); //未上传过文件
}
this.title = "预览";
this.detail = () => import("./processview");
this.modal = true;
},
edit(row) {
this.curId = row.id;
if (row.fileId) {
this.uId = row.fileId;
} else {
this.uId = this.$u.guid(); //未上传过文件
}
this.title = "编辑"; // { key:"approvalStatus",title:this.l("approvalStatus") ,align:"left" ,high:true ,code:'process.RoutingStatus' },
this.detail = () => import("./edit"); // { key:"approvalStatusRemark",title:this.l("approvalStatusRemark") ,align:"left" ,high:true },
this.modal = true; // { key:"auditUserId1",title:this.l("auditUserId1") ,align:"left" ,high:true },
}, // { key:"auditUserId2",title:this.l("auditUserId2") ,align:"left" ,high:true },
remove(id) { // { key:"platesnum",title:this.l("platesnum") ,align:"left" ,high:true },
Api.delete(id).then(r => { // { key: "isMain", title: this.l("isMain"),align: "center",width: 80,high: true,code: "Process.state"},
if (r.success) { //{key: "creatorUserId",title: this.l("author"),align: "left", high: true,type: "user",hide: true},
this.$refs.grid.load(); //{key: "versionnotes",title: this.l("versionnotes"),align: "left", high: true,hide: true},
this.$Message.success("删除成功"); //{key: "versionid", title: this.l("versionid"), align: "left", hide: true, code: "Process.Routing.version"},
} {
}); key: "creationTime",
}, title: this.$t("creationTime"),
cancel() { align: "left",
this.curId = 0; hide: true
this.modal = false; },
}, {
l(key) { key: "creatorUserId",
let vkey = "routingHeader" + "." + key; title: this.$t("creatorUserId"),
return this.$t(vkey) || key; align: "left",
}, hide: true,
//送审 type: "user"
sendAuditFun(row) { },
this.documentShow = true; {
this.$refs.sendAudit.intData(row); key: "lastModificationTime",
title: this.$t("lastModificationTime"),
align: "left",
hide: true
},
{
key: "lastModifierUserId",
title: this.$t("lastModifierUserId"),
align: "left",
hide: true,
type: "user"
},
{
title: "操作",
key: "action",
width: 260,
align: "left",
render: (h, params) => {
return h("div", {
class: "action"
}, [
h(
"op", {
attrs: {
oprate: "detail"
},
on: {
click: () => this.viewprocess(params.row)
}
},
"预览"
),
h(
"op", {
attrs: {
oprate: "detail"
},
on: {
click: () => this.view(params.row)
}
},
"查看"
),
h(
"op", {
attrs: {
oprate: "copy"
},
on: {
click: () => this.copy(params.row.id)
}
},
"克隆"
),
h(
"op", {
attrs: {
oprate: "edit"
},
on: {
click: () => this.edit(params.row)
}
},
'编辑'
// params.row.approvalStatus == 4||params.row.approvalStatus == 0 ? "编辑" : ""
),
h(
"op", {
attrs: {
oprate: "delete"
},
on: {
click: () => this.remove(params.row.id)
}
},
params.row.approvalStatus == 4 || params.row.approvalStatus == 0 ? "删除" : ""
),
h(
"op", {
attrs: {
oprate: "detail"
},
on: {
click: () => this.TechnologyChange(params.row)
}
},
params.row.approvalStatus == 1 ? "新增更改单" : ""
),
h(
"op", {
attrs: {
oprate: "detail"
},
on: {
click: () => this.sendAuditFun(params.row)
}
},
params.row.approvalStatus == 4 ? "送审" : ""
)
]);
}
}
],
titleObj: {
code: "", //工艺编号
name: "", //工艺名称
routingType: 0, //工艺类型
version: "", //工艺版本
departmentName: null //车间
},
processviewModal: false,
ModalIm: false,
temTitle: "工艺规程",
};
}, },
saveDocument() { created() {
this.documentShow = true; this.treeHeight = window.innerHeight - 120;
this.$refs.sendAudit.intData(this.headerInfo);
}, },
passDocument() { async fetch({
this.dataListRetrun = []; store,
this.dataListRetrun = this.$refs.sendAudit.returnDataList(); params
this.$http.order.batchstart(this.dataListRetrun).then(res => { }) {
if (res.success) { await store.dispatch("loadDictionary"); // 加载数据字典
this.$Message.success("工艺规程送审成功!");
this.loaddata();
//this.easySearch('')
} else {
this.$Message.error("工艺规程送审失败!");
}
});
this.documentShow = false;
}, },
//工艺更改 mounted() {
TechnologyChange(row) { window.onresize = () => {
this.hid = row.id; ///浏览器窗口大小变化
this.title = "新增"; return (() => {
this.detail = () => import("./details/routinghcorder/add"); this.treeHeight = window.innerHeight - 120;
this.modal = true; })();
};
}, },
computed: {},
methods: {
onHide() {
// this.$Message.info("收起左侧树")
this.showMenu = false;
},
showMenuFn() {
//this.$Message.info("展开左侧树")
this.showMenu = true;
},
productSearch(id, item, ids) {
let where = {
productId: {
op: "In",
value: ids
}
};
this.$refs.grid.reload(where);
},
// 详情页面
view(row) {
this.viewModal = true;
this.titleObj = {
code: row.code,
name: row.name,
routingType: row.routingType,
version: row.version,
departmentName: row.departmentName
};
// this.info=()=>import("./details")
this.src = "/technology/details?id=" + row.id + "&headerStatus=" + row.approvalStatus + "&productBomId=" + row.productBomId;
},
viewClose() {
this.viewModal = false;
this.src = null;
},
ok() {
this.$refs.grid.load();
this.modal = false;
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch);
},
add() {
this.curId = 0;
this.title = "新增";
this.detail = () => import("./add");
this.modal = true;
},
copy(id) {
this.curId = id;
this.title = "克隆";
this.detail = () => import("./add");
this.modal = true;
},
// view(id) {
// this.curId = id;
// this.title = "详情";
// this.detail = () => import("./detail");
// this.modal = true;
// },
viewprocess(row) {
this.curId = row.id;
if (row.fileId) {
this.uId = row.fileId;
} else {
this.uId = this.$u.guid(); //未上传过文件
}
this.title = "预览";
this.detail = () => import("./processview");
this.modal = true;
},
edit(row) {
this.curId = row.id;
if (row.fileId) {
this.uId = row.fileId;
} else {
this.uId = this.$u.guid(); //未上传过文件
}
Main(data) { this.title = "编辑";
// this.eid1 = '' this.detail = () => import("./edit");
this.seleId = data.row.id; this.modal = true;
this.$refs.changelist.seleId = data.row.id; },
let url = `${designUrl}/routingheaderchangeorder/getpaged`; remove(id) {
service.get(`${url}`, { routing_header_id: this.seleId }).then(res => { Api.delete(id).then(r => {
//console.log(res) if (r.success) {
this.$refs.changelist.data2 = res.result.items; this.$refs.grid.load();
this.$refs.changelist.myloading = false; this.$Message.success("删除成功");
if (this.$refs.changelist.data2.length == 0) { }
this.$Message.error("该工艺规程没有更改单!"); });
this.$refs.changelist.show3 = false; },
return; cancel() {
} this.curId = 0;
this.$refs.changelist.show3 = true; this.modal = false;
}); },
l(key) {
let vkey = "routingHeader" + "." + 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;
},
//工艺更改
TechnologyChange(row) {
this.hid = row.id;
this.title = "新增";
this.detail = () => import("./details/routinghcorder/add");
this.modal = true;
},
Main(data) {
// this.eid1 = ''
this.seleId = data.row.id;
this.$refs.changelist.seleId = data.row.id;
let url = `${designUrl}/routingheaderchangeorder/getpaged`;
service.get(`${url}`, {
routing_header_id: this.seleId
}).then(res => {
//console.log(res)
this.$refs.changelist.data2 = res.result.items;
this.$refs.changelist.myloading = false;
if (this.$refs.changelist.data2.length == 0) {
this.$Message.error("该工艺规程没有更改单!");
this.$refs.changelist.show3 = false;
return;
}
this.$refs.changelist.show3 = true;
});
},
//批量导入start
//导入功能
openModalIm() {
this.ModalIm = true
},
ModalImCancel() {
this.ModalIm = false
},
getData(val) {
let url = `${technologyUrl}routingheaderimportservice/import`;
this.$refs.importExcel.deelData(url, this.columns, this.formatMethod(val))
},
//根据页面二次处理数据
formatMethod(val) {
let tempData = this.$u.clone(val);
let tempList = [];
tempData.forEach((ele) => {
let obj = {
classId: null,
unicode: "",
name: ele.name ? ele.name : '',
code: ele.code ? ele.code : '',
productId: ele.productId ? ele.productId : '', //?
productName: ele.productName ? ele.productName : "", //?
productBomId: ele.productBomId ? ele.productBomId : "", //?
drawingNo: ele.drawingNo ? ele.drawingNo : "", //?
version: "",
versionid: ele.versionid ? ele.versionid : "",
author: null,
departmentId: ele.departmentId ? ele.departmentId : null, //?
departmentName: ele.departmentName ? ele.departmentName : "", //?
isMain: 1,
upId: null,
upDetailId: null,
routingType: ele.routingType ? ele.routingType : null,
status: 0,
approvalStatus: 4, //?
remark: "",
approvalStatusRemark: "",
auditUserId1: "",
auditUserId2: "",
platesnum: null,
versionnotes: "",
isSendPpm: 1,
fileId: "",
phase: ele.phase ? ele.phase : null,
isEffect: ele.isEffect ? ele.isEffect : 1
};
if (ele.name && ele.name != '') {
obj.ico = false
} else {
obj.ico = true
}
tempList.push(obj);
});
return tempList
},
//批量导入end
} }
}
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
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