Commit 04671c13 authored by 全洪江's avatar 全洪江

Merge branch 'dev' of http://git.local.topsunit.com/mes/mes-ui into dev

parents 10d1f42f 49782f65
FROM nginx
MAINTAINER xin.lu
VOLUME /tmp
ENV LANG en_US.UTF-8
RUN echo "server { \
listen 80; \
client_max_body_size 50M; \
location /stage-api/ { \
proxy_pass http://192.168.3.91:8080/; \
proxy_redirect off; \
proxy_set_header Host mes-ui; \
proxy_set_header X-Real-IP \$remote_addr; \
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \
} \
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
location / { \
root /var/mes/mes-ui/; \
index index.html index.htm; \
if (!-e \$request_filename) { \
rewrite ^(.*)\$ /index.html?s=\$1 last; \
break; \
} \
} \
access_log /var/log/nginx/access.log ; \
} " > /etc/nginx/conf.d/default.conf \
&& mkdir -p /var/mes \
&& mkdir -p /var/mes/mes-ui
ADD dist/ /var/mes/mes-ui/
EXPOSE 80
EXPOSE 443
import request from '@/utils/request'
import request from "@/utils/request";
// 查询打样申请列表
export function listPrototypeRequest(query) {
return request({
url: '/mes/pro/prototypeRequest/list',
method: 'get',
params: query
})
url: "/mes/pro/prototypeRequest/list",
method: "get",
params: query,
});
}
// 查询打样申请详细
export function getPrototypeRequest(prototypeRequestId) {
return request({
url: '/mes/pro/prototypeRequest/' + prototypeRequestId,
method: 'get'
})
url: "/mes/pro/prototypeRequest/" + prototypeRequestId,
method: "get",
});
}
// 新增打样申请
export function addPrototypeRequest(data) {
return request({
url: '/mes/pro/prototypeRequest',
method: 'post',
data: data
})
url: "/mes/pro/prototypeRequest",
method: "post",
data: data,
});
}
// 修改打样申请
export function updatePrototypeRequest(data) {
return request({
url: '/mes/pro/prototypeRequest',
method: 'put',
data: data
})
url: "/mes/pro/prototypeRequest",
method: "put",
data: data,
});
}
// 删除打样申请
export function delPrototypeRequest(prototypeRequestId) {
return request({
url: '/mes/pro/prototypeRequest/' + prototypeRequestId,
method: 'delete'
})
url: "/mes/pro/prototypeRequest/" + prototypeRequestId,
method: "delete",
});
}
// 修改状态
export function dofinish(data) {
return request({
url: "/mes/pro/prototypeRequest/modifyState/",
method: "put",
data: data,
});
}
......@@ -2,13 +2,16 @@
<div class="base-info">
<el-form :model="sapData" ref="form" label-width="120px" size="mini">
<el-row class="form-wrap" :gutter="gutter">
<template v-for="item in sapProperties">
<el-col :span="span" :key="item.id">
<el-form-item :label="item.name" :prop="item.sapField"
:rules="{required: true, validator: (rule, value, callback) => onValidate(rule, value, callback, item), trigger: ['blur', 'change']}">
<el-input-all v-model="sapData[item.sapField]" :item="item"/>
</el-form-item>
</el-col>
<template v-for="(sapProperties, key) in sapPropertyMap">
<div class="separator">{{ getViewTypeName(key) }}</div>
<template v-for="item in sapProperties">
<el-col :span="span" :key="item.id">
<el-form-item :label="item.name" :prop="item.sapField"
:rules="{required: item.required, validator: (rule, value, callback) => onValidate(rule, value, callback, item), trigger: ['blur', 'change']}">
<el-input-all v-model="sapData[item.sapField]" :item="item"/>
</el-form-item>
</el-col>
</template>
</template>
</el-row>
......@@ -25,6 +28,7 @@ import {listByType} from '@/api/mes/md/sapproperty'
import { addData, updateData, listData } from '@/api/mes/md/sapPropertyData'
export default {
dicts: ['sap_property_view', 'sap_property_relation'],
props: {
gutter: {type: Number, default: 10},
span: {type: Number, default: 8},
......@@ -32,7 +36,7 @@ export default {
data() {
return {
loading: false,
sapProperties: [],
sapPropertyMap: [],
customer: {},
form: {
type: null,
......@@ -65,6 +69,7 @@ export default {
if (!Object.keys(this.sapData).length) return
console.log(this.sapData)
if (this.loading) return
if (!this.form.type || !this.form.relationId) return this.$message.error("对象为创建")
this.$refs.form.validate(valid => {
if (valid) {
this.loading = true
......@@ -89,10 +94,21 @@ export default {
}
},
setData(data, sapData, sapProperties) {
for (let property of sapProperties) {
let propertyData = data[property.relationField]
sapData[property.sapField] = propertyData || sapData[property.sapField]
getViewTypeName(viewType) {
let viewTypeDict = this.dict.type.sap_property_view.find(item => item.value == this.form.type && item.raw.cssClass === viewType)
return viewTypeDict.label
},
setData(data, sapData, sapPropertyMap) {
let keys = Object.keys(sapPropertyMap)
for (const key of keys) {
if (!sapPropertyMap.hasOwnProperty(key)) continue
if (!sapData[key]) sapData[key] = {}
let properties = sapPropertyMap[key]
for (let property of properties) {
let propertyData = data[property.relationField]
sapData[key][property.sapField] = propertyData || sapData[key][property.sapField]
}
}
console.log(sapData)
this.sapData = sapData
......@@ -107,7 +123,13 @@ export default {
// 获取sap特性列表
listByType({type}).then(res => {
let sapProperties = res.data || []
this.sapProperties = sapProperties
let sapPropertyMap = sapProperties.reduce((sapPropertyMap, item) => {
if (!sapPropertyMap[item.viewType]) sapPropertyMap[item.viewType] = []
sapPropertyMap[item.viewType].push(item)
return sapPropertyMap
}, {})
console.log(sapPropertyMap)
this.sapPropertyMap = sapPropertyMap
if (relationId) {
// 获取sap特性值
listData({type, relationId}).then(resp => {
......@@ -115,10 +137,10 @@ export default {
this.form.id = row.id
sapData = JSON.parse(row.sapData)
// 再次赋值
this.setData(data, sapData, sapProperties)
this.setData(data, sapData, sapPropertyMap)
})
} else {
this.setData(data, sapData, sapProperties)
this.setData(data, sapData, sapPropertyMap)
}
})
}
......@@ -138,4 +160,12 @@ export default {
.footer {
text-align: right;
}
.separator {
line-height: 30px;
border-bottom: 1px solid #dddddd;
padding: 10px 20px;
margin: 0 20px 20px;
font-weight: bold;
}
</style>
......@@ -147,6 +147,15 @@
v-if="columns[5].visible"
width="120"
/>
<el-table-column
label="备注"
align="center"
key="remark"
prop="remark"
v-if="columns[7].visible"
:show-overflow-tooltip="true"
width="160"
/>
<el-table-column
label="创建时间"
align="center"
......@@ -236,6 +245,7 @@ export default {
{ key: 4, label: `物料/产品`, visible: true },
{ key: 5, label: `物料分类`, visible: true },
{ key: 6, label: `创建时间`, visible: true },
{ key: 7, label: `备注`, visible: true },
],
};
},
......
......@@ -126,7 +126,7 @@ export const loadView = (view) => {
return (resolve) => require([`@/views/${view}`], resolve)
} else {
// 使用 import 实现生产环境的路由懒加载
return () => import(`@/views/${view}`)
return (resolve) => require([`@/views/${view}`], resolve)
}
}
......
<template>
<div class="base-info">
<el-row>
<el-col :span="12">
<el-form-item label="客户工作时间" prop="clientWorkTime">
<el-input v-model="form.clientWorkTime" placeholder="请输入 客户工作时间"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开票地址" prop="invoiceAddr">
<el-input v-model="form.invoiceAddr" placeholder="请输入 开票地址"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户送货地址" prop="address">
<el-input v-model="form.address" placeholder="请输入 客户送货地址"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="城市" prop="city">
<el-input v-model="form.city" placeholder="请输入 城市"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="国家" prop="country">
<el-input v-model="form.country" placeholder="请输入 国家"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地区" prop="area">
<el-input v-model="form.area" placeholder="请输入 地区"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="语言" prop="lang">
<el-input v-model="form.lang" placeholder="请输入 语言"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮政编码" prop="postcode">
<el-input v-model="form.postcode" placeholder="请输入 邮政编码"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电话号码" prop="tel">
<el-input v-model="form.tel" placeholder="请输入 电话号码"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="移动电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入 移动电话"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Email" prop="email">
<el-input v-model="form.email" placeholder="请输入 e_Mail"/>
</el-form-item>
</el-col>
</el-row>
<el-form :label-position="labelPosition">
<el-row>
<el-col :span="12">
<el-form-item
label="客户工作时间"
prop="clientWorkTime"
:label-width="labelWidth"
>
<el-input
v-model="form.clientWorkTime"
placeholder="请输入客户工作时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="开票地址"
prop="invoiceAddr"
:label-width="labelWidth"
>
<el-input v-model="form.invoiceAddr" placeholder="请输入开票地址" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="客户送货地址"
prop="address"
:label-width="labelWidth"
>
<el-input v-model="form.address" placeholder="请输入客户送货地址" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="城市" prop="city" :label-width="labelWidth">
<el-input v-model="form.city" placeholder="请输入城市" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="国家" prop="country" :label-width="labelWidth">
<el-input v-model="form.country" placeholder="请输入国家" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地区" prop="area" :label-width="labelWidth">
<el-input v-model="form.area" placeholder="请输入地区" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="语言" prop="lang" :label-width="labelWidth">
<el-input v-model="form.lang" placeholder="请输入语言" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="邮政编码"
prop="postcode"
:label-width="labelWidth"
>
<el-input v-model="form.postcode" placeholder="请输入邮政编码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电话号码" prop="tel" :label-width="labelWidth">
<el-input v-model="form.tel" placeholder="请输入电话号码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="移动电话" prop="phone" :label-width="labelWidth">
<el-input v-model="form.phone" placeholder="请输入移动电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Email" prop="email" :label-width="labelWidth">
<el-input v-model="form.email" placeholder="请输入e_Mail" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
export default {
props: {
form: { type: Object, required: true }
form: { type: Object, required: true },
},
data() {
return {}
return {
labelPosition: "right",
labelWidth: "12em",
};
},
methods: {
init() {
}
init() {},
},
created() {
}
}
created() {},
};
</script>
<style scoped>
</style>
<style scoped></style>
<template>
<div class="base-info">
<el-row>
<el-col :span="12">
<el-form-item label="客户工作时间" prop="clientWorkTime">
<el-input v-model="form.clientWorkTime" placeholder="请输入客户工作时间" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属集团" prop="membershipGroup">
<el-input v-model="form.membershipGroup" placeholder="请输入所属集团" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司法人" prop="legalPerson">
<el-input v-model="form.legalPerson" placeholder="请输入公司法人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工商注册号" prop="licenseNo">
<el-input v-model="form.licenseNo" placeholder="请输入工商注册号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="国税注册号" prop="taxNo">
<el-input v-model="form.taxNo" placeholder="请输入国税注册号" />
</el-form-item>
</el-col>
</el-row>
<el-form :label-position="labelPosition">
<el-row>
<el-col :span="12">
<el-form-item
label="客户工作时间"
prop="clientWorkTime"
:label-width="labelWidth"
>
<el-input
v-model="form.clientWorkTime"
placeholder="请输入客户工作时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="所属集团"
prop="membershipGroup"
:label-width="labelWidth"
>
<el-input
v-model="form.membershipGroup"
placeholder="请输入所属集团"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="公司法人"
prop="legalPerson"
:label-width="labelWidth"
>
<el-input v-model="form.legalPerson" placeholder="请输入公司法人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="工商注册号"
prop="licenseNo"
:label-width="labelWidth"
>
<el-input v-model="form.licenseNo" placeholder="请输入工商注册号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="国税注册号"
prop="taxNo"
:label-width="labelWidth"
>
<el-input v-model="form.taxNo" placeholder="请输入国税注册号" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
export default {
props: {
form: {type: Object, required: true}
form: { type: Object, required: true },
},
data() {
return {}
return {
labelPosition: "right",
labelWidth: "12em",
};
},
methods: {
init() {
}
init() {},
},
created() {
}
}
created() {},
};
</script>
<style scoped>
</style>
<style scoped></style>
<template>
<div class="base-info">
<el-row>
<el-col :span="12">
<el-form-item label="验收单要求" prop="receiptRequest">
<el-input v-model="form.receiptRequest" placeholder="请输入验收单要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户系统验收要求" prop="clientCheckRequest">
<el-input v-model="form.clientCheckRequest" placeholder="请输入客户系统验收要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="要求签回货单" prop="requestSignReceipt">
<el-input v-model="form.requestSignReceipt" placeholder="请输入要求签回货单" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货单是否打印送货日期" prop="isPrintDate">
<el-input v-model="form.isPrintDate" placeholder="请输入 货单是否打印送货日期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收货方签字要求" prop="signRequest">
<el-input v-model="form.signRequest" placeholder="请输入 收货方签字要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货单打印要求" prop="billPrintRequest">
<el-input v-model="form.billPrintRequest" placeholder="请输入 货单打印要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品检验报告类型" prop="qcReportType">
<el-input v-model="form.qcReportType" placeholder="请输入 产品检验报告类型" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货单签回方式" prop="receiptSigningMethod">
<el-input v-model="form.receiptSigningMethod" placeholder="请输入 货单签回方式" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出货方式" prop="shippingMethod">
<el-input v-model="form.shippingMethod" placeholder="请输入 出货方式" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="线路" prop="path">
<el-input v-model="form.path" placeholder="请输入 线路" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="线路" prop="path">
<el-input v-model="form.path" placeholder="请输入 线路" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="送货单打印默认设置" prop="billPrintSetting">
<el-input v-model="form.billPrintSetting" placeholder="请输入 送货单打印默认设置" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="送货单统计异常期限" prop="billExceptionDeadline">
<el-input v-model="form.billExceptionDeadline" placeholder="请输入 送货单统计异常期限" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产发货方式" prop="sendMode">
<el-input v-model="form.sendMode" placeholder="请输入 生产发货方式" />
</el-form-item>
</el-col>
<el-form :label-position="labelPosition">
<el-row>
<el-col :span="12">
<el-form-item label="验收单要求" prop="receiptRequest" :label-width="labelWidth">
<el-input v-model="form.receiptRequest" placeholder="请输入验收单要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户系统验收要求" prop="clientCheckRequest" :label-width="labelWidth">
<el-input v-model="form.clientCheckRequest" placeholder="请输入客户系统验收要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="要求签回货单" prop="requestSignReceipt" :label-width="labelWidth">
<el-input v-model="form.requestSignReceipt" placeholder="请输入要求签回货单" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货单是否打印送货日期" prop="isPrintDate" :label-width="labelWidth">
<el-input v-model="form.isPrintDate" placeholder="请输入 货单是否打印送货日期" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收货方签字要求" prop="signRequest" :label-width="labelWidth">
<el-input v-model="form.signRequest" placeholder="请输入 收货方签字要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货单打印要求" prop="billPrintRequest" :label-width="labelWidth">
<el-input v-model="form.billPrintRequest" placeholder="请输入 货单打印要求" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品检验报告类型" prop="qcReportType" :label-width="labelWidth">
<el-input v-model="form.qcReportType" placeholder="请输入 产品检验报告类型" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="货单签回方式" prop="receiptSigningMethod" :label-width="labelWidth">
<el-input v-model="form.receiptSigningMethod" placeholder="请输入 货单签回方式" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出货方式" prop="shippingMethod" :label-width="labelWidth">
<el-input v-model="form.shippingMethod" placeholder="请输入 出货方式" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="线路" prop="path" :label-width="labelWidth">
<el-input v-model="form.path" placeholder="请输入 线路" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="线路" prop="path" :label-width="labelWidth">
<el-input v-model="form.path" placeholder="请输入 线路" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="送货单打印默认设置" prop="billPrintSetting" :label-width="labelWidth">
<el-input v-model="form.billPrintSetting" placeholder="请输入 送货单打印默认设置" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="送货单统计异常期限" prop="billExceptionDeadline" :label-width="labelWidth">
<el-input v-model="form.billExceptionDeadline" placeholder="请输入 送货单统计异常期限" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生产发货方式" prop="sendMode" :label-width="labelWidth">
<el-input v-model="form.sendMode" placeholder="请输入 生产发货方式" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-row>
</div>
</template>
......@@ -80,10 +83,13 @@
export default {
props: {
form: {type: Object, required: true}
form: { type: Object, required: true }
},
data() {
return {}
return {
labelPosition: 'right',
labelWidth: '12em'
}
},
methods: {
init() {
......@@ -96,6 +102,4 @@ export default {
}
</script>
<style scoped>
</style>
<style scoped></style>
<template>
<div class="base-info">
<el-form :label-position="labelPosition">
<el-row>
<el-col :span="12">
<el-form-item label="盖章方式" prop="stampMode">
<el-input v-model="form.stampMode" placeholder="请输入 盖章方式"/>
<el-form-item label="盖章方式" prop="stampMode" :label-width="labelWidth">
<el-input v-model="form.stampMode" placeholder="请输入盖章方式"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="请款联" prop="requisition">
<el-input v-model="form.requisition" placeholder="请输入 请款联"/>
<el-form-item label="请款联" prop="requisition" :label-width="labelWidth">
<el-input v-model="form.requisition" placeholder="请输入请款联"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户联" prop="clientForm">
<el-input v-model="form.clientForm" placeholder="请输入 客户联"/>
<el-form-item label="客户联" prop="clientForm" :label-width="labelWidth">
<el-input v-model="form.clientForm" placeholder="请输入客户联"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="不开发票" prop="noInvoice">
<el-input v-model="form.noInvoice" placeholder="请输入 不开发票"/>
<el-form-item label="不开发票" prop="noInvoice" :label-width="labelWidth">
<el-input v-model="form.noInvoice" placeholder="请输入不开发票"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="请款要求" prop="paymentRequest">
<el-input v-model="form.paymentRequest" placeholder="请输入 请款要求"/>
<el-form-item label="请款要求" prop="paymentRequest" :label-width="labelWidth">
<el-input v-model="form.paymentRequest" placeholder="请输入请款要求"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="月结方式" prop="settleMode">
<el-input v-model="form.settleMode" placeholder="请输入 月结方式"/>
<el-form-item label="月结方式" prop="settleMode" :label-width="labelWidth">
<el-input v-model="form.settleMode" placeholder="请输入月结方式"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="请款期限" prop="paymentDeadline">
<el-input v-model="form.paymentDeadline" placeholder="请输入 请款期限"/>
<el-form-item label="请款期限" prop="paymentDeadline" :label-width="labelWidth">
<el-input v-model="form.paymentDeadline" placeholder="请输入请款期限"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="做账截止日" prop="accountingDeadline">
<el-input v-model="form.accountingDeadline" placeholder="请输入 做账截止日"/>
<el-form-item label="做账截止日" prop="accountingDeadline" :label-width="labelWidth">
<el-input v-model="form.accountingDeadline" placeholder="请输入做账截止日"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户收账截止日" prop="collectionDeadline">
<el-input v-model="form.collectionDeadline" placeholder="请输入 客户收账截止日"/>
<el-form-item label="客户收账截止日" prop="collectionDeadline" :label-width="labelWidth">
<el-input v-model="form.collectionDeadline" placeholder="请输入客户收账截止日"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="扣款百分比" prop="deductionPercent">
<el-input v-model="form.deductionPercent" placeholder="请输入 扣款百分比"/>
<el-form-item label="扣款百分比" prop="deductionPercent" :label-width="labelWidth">
<el-input v-model="form.deductionPercent" placeholder="请输入扣款百分比"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="金额小数位数" prop="amountDecimal">
<el-input v-model="form.amountDecimal" placeholder="请输入 金额小数位数"/>
<el-col :span="12">
<el-form-item label="金额小数位数" prop="amountDecimal" :label-width="labelWidth">
<el-input v-model="form.amountDecimal" placeholder="请输入金额小数位数"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="要求用客户系统货单" prop="isClientWaybill">
<el-input v-model="form.isClientWaybill" placeholder="请输入 要求用客户系统货单"/>
<el-form-item label="要求用客户系统货单" prop="isClientWaybill" :label-width="labelWidth">
<el-input v-model="form.isClientWaybill" placeholder="请输入要求用客户系统货单"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="订单要求" prop="orderRequest">
<el-input v-model="form.orderRequest" placeholder="请输入 订单要求"/>
<el-form-item label="订单要求" prop="orderRequest" :label-width="labelWidth">
<el-input v-model="form.orderRequest" placeholder="请输入订单要求"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="订单统计异常期限" prop="orderExceptionDeadline">
<el-input v-model="form.orderExceptionDeadline" placeholder="请输入 订单统计异常期限"/>
<el-form-item label="订单统计异常期限" prop="orderExceptionDeadline" :label-width="labelWidth">
<el-input v-model="form.orderExceptionDeadline" placeholder="请输入订单统计异常期限"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="订单性质" prop="orderKind">
<el-input v-model="form.orderKind" placeholder="请输入 订单性质"/>
<el-form-item label="订单性质" prop="orderKind" :label-width="labelWidth">
<el-input v-model="form.orderKind" placeholder="请输入订单性质"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</template>
......@@ -88,7 +90,10 @@ export default {
form: { type: Object, required: true }
},
data() {
return {}
return {
labelWidth:'12em',
labelPosition:'regit'
}
},
methods: {
init() {
......
<template>
<div class="base-info">
<el-form :model="form" ref="form" label-width="120px" size="mini">
<el-row class="form-wrap" :gutter="10">
<template v-for="item in sapProperties">
<el-col :span="8" :key="item.id">
<el-form-item :label="item.name" :prop="item.sapField"
:rules="{required: true, validator: (rule, value, callback) => onValidate(rule, value, callback, item), trigger: ['blur', 'change']}">
<el-input-all v-model="form[item.sapField]" :item="item"/>
</el-form-item>
</el-col>
</template>
</el-row>
</el-form>
<div>
<el-button @click="onConfirm">确认</el-button>
</div>
</div>
</template>
<script>
import {listByType} from '@/api/mes/md/sapproperty'
export default {
props: {
},
data() {
return {
sapProperties: [],
customer: {},
form: {},
sapProperty: {
id: '',
type: '',
viewType: '',
name: '',
typeId: '',
sapField: '',
relationField: '',
typeName: '',
dataType: '',
length: '',
min: '',
max: '',
regEx: '',
dictId: '',
errMsg: '',
dictDataList: []
},
}
},
methods: {
onConfirm() {
console.log(this.form)
},
onValidate(rule, value, callback, item) {
if (value === '' || value == null) {
callback(new Error(item.errMsg))
} else {
if (item.dataType === 1) {
if (value.length > item.length || !new RegExp(item.regEx).test(value)) callback(new Error(item.errMsg))
} else if ([2, 3].includes(item.dataType)) {
if (value < item.min || value > max) callback(new Error(item.errMsg))
}
callback()
}
},
init() {
this.$refs.form && this.$refs.form.resetFields()
this.form = {}
listByType({type: 5}).then(res => {
this.sapProperties = res.data
})
}
},
created() {
}
}
</script>
<style scoped>
.form-wrap {
max-height: 400px;
overflow-y: auto;
}
</style>
......@@ -510,52 +510,60 @@
</el-row>
</el-form>
<el-tabs type="border-card" v-model="activeName" @tab-click="onTabClick" v-if="form.itemId != null && form.itemOrProduct == 'PRODUCT'">
<el-tab-pane label="基本信息">
<BaseInfo
ref="baseInfo"
:optType="optType"
:itemId="form.itemId"
></BaseInfo>
<el-tab-pane label="基本信息" name="BaseInfo">
<BaseInfo ref="BaseInfo" :optType="optType" :itemId="form.itemId"></BaseInfo>
</el-tab-pane>
<el-tab-pane label="产品特性">
<SpecProperty :optType="optType" :itemId="form.itemId"></SpecProperty>
<el-tab-pane label="产品特性" name="SpecProperty">
<SpecProperty ref="SpecProperty" :optType="optType" :itemId="form.itemId"></SpecProperty>
</el-tab-pane>
<el-tab-pane label="销售单位转换">
<SaleUnit ref="saleUnit" :optType="optType" :itemId="form.itemId"></SaleUnit>
<el-tab-pane label="销售单位转换" name="SaleUnit">
<SaleUnit ref="SaleUnit" :optType="optType" :itemId="form.itemId"></SaleUnit>
</el-tab-pane>
<el-tab-pane label="工厂信息">
<Factory :optType="optType" :itemId="form.itemId"></Factory>
<el-tab-pane label="工厂信息" name="Factory">
<Factory ref="Factory" :optType="optType" :itemId="form.itemId"></Factory>
</el-tab-pane>
<!-- <el-tab-pane label="客户信息">
<Customer :optType="optType" :itemId="form.itemId"></Customer>
</el-tab-pane>-->
<el-tab-pane label="产品外观">
<Look ref="look" :optType="optType" :itemId="form.itemId"></Look>
<el-tab-pane label="产品外观" name="Look">
<Look ref="Look" :optType="optType" :itemId="form.itemId"></Look>
</el-tab-pane>
<el-tab-pane label="排版参数">
<el-tab-pane label="排版参数" name="PublishedConf">
<PublishedConf
ref="publishedConf"
ref="PublishedConf"
:optType="optType"
:itemId="form.itemId"
></PublishedConf>
</el-tab-pane>
<el-tab-pane label="正面颜色">
<FaceColor :optType="optType" :itemId="form.itemId"></FaceColor>
<el-tab-pane label="正面颜色" name="FaceColor">
<FaceColor ref="FaceColor" :optType="optType" :itemId="form.itemId"></FaceColor>
</el-tab-pane>
<el-tab-pane label="反面颜色">
<BackFaceColor
:optType="optType"
:itemId="form.itemId"
></BackFaceColor>
<el-tab-pane label="反面颜色" name="BackFaceColor">
<BackFaceColor ref="BackFaceColor" :optType="optType" :itemId="form.itemId"></BackFaceColor>
</el-tab-pane>
<el-tab-pane label="客户loss" name="CustomerLoss">
<CustomerLoss ref="CustomerLoss" :optType="optType" :itemId="form.itemId"></CustomerLoss>
</el-tab-pane>
<el-tab-pane label="SAP销售特性" name="SapSaleProperty">
<SapPropertyData ref="SapSaleProperty"/>
</el-tab-pane>
<el-tab-pane label="SAP采购特性" name="SapPurchaseProperty">
<SapPropertyData ref="SapPurchaseProperty"/>
</el-tab-pane>
<el-tab-pane label="SAP物控特性" name="SapPMCProperty">
<SapPropertyData ref="SapPMCProperty"/>
</el-tab-pane>
<el-tab-pane label="SAP仓储特性" name="SapStorageProperty">
<SapPropertyData ref="SapStorageProperty"/>
</el-tab-pane>
<el-tab-pane label="客户loss">
<CustomerLoss :optType="optType" :itemId="form.itemId"></CustomerLoss>
<el-tab-pane label="SAP品控特性" name="SapQAProperty">
<SapPropertyData ref="SapQAProperty"/>
</el-tab-pane>
<el-tab-pane label="SAP特性" name="SapProperty">
<SapProperty ref="SapProperty"/>
<el-tab-pane label="SAP财务特性" name="SapFinanceProperty">
<SapPropertyData ref="SapFinanceProperty"/>
</el-tab-pane>
<el-tab-pane label="SOP">
<SOPTab :itemId="form.itemId" :optType="optType"></SOPTab>
<el-tab-pane label="SOP" name="SOP">
<SOPTab ref="SOP" :itemId="form.itemId" :optType="optType"></SOPTab>
</el-tab-pane>
</el-tabs>
<div slot="footer" class="dialog-footer">
......@@ -632,7 +640,6 @@ import FaceColor from "./components/faceColor.vue";
import BackFaceColor from "./components/backFaceColor.vue";
import CustomerLoss from "./components/customerLoss.vue";
import ItemBom from "./components/itembom.vue";
import SapProperty from './components/sapProperty.vue'
import SOPTab from "./components/sop.vue";
import { listAllUnitmeasure } from "@/api/mes/md/unitmeasure";
import { genCode } from "@/api/system/autocode/rule";
......@@ -645,7 +652,6 @@ export default {
name: "MdItem",
dicts: ["sys_yes_no", "mes_item_product"],
components: {
SapProperty,
Treeselect,
BaseInfo,
SpecProperty,
......@@ -658,7 +664,7 @@ export default {
BackFaceColor,
CustomerLoss,
ItemBom,
SOPTab,
SOPTab
},
data() {
return {
......@@ -882,18 +888,18 @@ export default {
if (valid) {
if (this.form.itemId != undefined) {
//基本信息保存
const baseInfoData = await this.$refs["baseInfo"].getBaseInfoData();
const baseInfoData = await this.$refs["BaseInfo"].getBaseInfoData();
baseInfoData.itemId = this.form.itemId;
//产品外观保存
const lookData = await this.$refs["look"].getLookFormData();
const lookData = await this.$refs["Look"].getLookFormData();
lookData.itemId = this.form.itemId;
//产品参数配置保存 publishedConf
const publishedConfData = await this.$refs["publishedConf"].getPublishedConfData();
const publishedConfData = await this.$refs["PublishedConf"].getPublishedConfData();
publishedConfData.itemId = this.form.itemId;
//销售单位转换保存
const saleUnit = await this.$refs["saleUnit"].getSaleUnitFormData();
const saleUnit = await this.$refs["SaleUnit"].getSaleUnitFormData();
saleUnit.itemId = this.form.itemId;
const params = {
......@@ -990,7 +996,19 @@ export default {
}
},
onTabClick() {
this.$refs[this.activeName].init && this.$refs[this.activeName].init(this.form.itemId)
if (this.activeName === 'SapSaleProperty') {
this.$refs.SapSaleProperty.init(5, this.form.itemId, this.form)
} else if (this.activeName === 'SapPurchaseProperty') {
this.$refs.SapPurchaseProperty.init(6, this.form.itemId, this.form)
} else if (this.activeName === 'SapPMCProperty'){
this.$refs.SapPMCProperty.init(7, this.form.itemId, this.form)
} else if (this.activeName === 'SapStorageProperty') {
this.$refs.SapStorageProperty.init(8, this.form.itemId, this.form)
} else if (this.activeName === 'SapQAProperty') {
this.$refs.SapQAProperty.init(9, this.form.itemId, this.form)
} else if (this.activeName === 'SapFinanceProperty') {
this.$refs.SapFinanceProperty.init(10, this.form.itemId, this.form)
} //else this.$refs[this.activeName].init && this.$refs[this.activeName].init(this.form)
}
},
};
......
......@@ -111,12 +111,12 @@
</el-table>
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="960px">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="特性类型" prop="type">
<el-select v-model="form.type" placeholder="请选择特性类型" clearable filterable>
<el-select v-model="form.type" placeholder="请选择特性类型" @change="onChangeType" clearable filterable>
<el-option v-for="item in dict.type.sap_property_type" :key="item.value" v-bind="item"/>
</el-select>
</el-form-item>
......@@ -124,9 +124,7 @@
<el-col :span="8">
<el-form-item label="视图类型" prop="viewType">
<el-select v-model="form.viewType" placeholder="请选择视图类型" clearable filterable>
<template v-for="item in viewTypes">
<el-option v-if="!item.types || item.types.includes(form.type)" :key="item.value" v-bind="item"/>
</template>
<el-option v-for="item in viewTypes" :key="item.value" v-bind="item"/>
</el-select>
</el-form-item>
</el-col>
......@@ -193,7 +191,7 @@ import { listPropertytype } from '@/api/mes/md/propertytype'
export default {
name: "Client",
dicts: ['mes_client_type','sys_yes_no','sys_data_type','sap_property_type'],
dicts: ['mes_client_type','sys_yes_no','sys_data_type','sap_property_type', 'sap_property_view', 'sap_property_relation'],
data() {
return {
//自动生成编码
......@@ -238,39 +236,8 @@ export default {
money: 1,
enableFlag: 'Y',
},
viewTypes: [
{label: '基本信息', value: '1', types: ''},
{label: '客户品牌联系人', value: '2', types: ''},
{label: '银行数据', value: '3', types: ''},
{label: '公司代码', value: '4', types: ''},
{label: '销售组织', value: '5', types: ''},
],
relationFields: [
{label: '客户编码', value: 'client_code'},
{label: '客户名称', value: 'client_name'},
{label: '客户简称', value: 'client_nick'},
{label: '客户英文名称', value: 'client_en'},
{label: '客户简介', value: 'client_des'},
{label: '客户LOGO地址', value: 'client_logo'},
{label: '客户类型', value: 'client_type'},
{label: '客户地址', value: 'address'},
{label: '客户官网地址', value: 'website'},
{label: '客户邮箱地址', value: 'email'},
{label: '客户电话', value: 'tel'},
{label: '联系人1', value: 'contact1'},
{label: '联系人1-电话', value: 'contact1_tel'},
{label: '联系人1-邮箱', value: 'contact1_email'},
{label: '联系人2', value: 'contact2'},
{label: '联系人2-电话', value: 'contact2_tel'},
{label: '联系人2-邮箱', value: 'contact2_email'},
{label: '统一社会信用代码', value: 'credit_code'},
{label: '是否启用', value: 'enable_flag'},
{label: '备注', value: 'remark'},
{label: '预留字段1', value: 'attr1'},
{label: '预留字段2', value: 'attr2'},
{label: '预留字段3', value: 'attr3'},
{label: '预留字段4', value: 'attr4'},
],
viewTypes: [],
relationFields: [],
// 表单校验
rules: {
type: [{ required: true, message: '特性类型不能为空', trigger: ['blur', 'change']}],
......@@ -288,6 +255,10 @@ export default {
this.getList();
},
methods: {
onChangeType(val) {
this.viewTypes = this.dict.type.sap_property_view.filter(item => item.value === val).map(item => ({label: item.label, value: item.raw.cssClass}))
this.relationFields = this.dict.type.sap_property_relation.filter(item => item.value === val).map(item => ({label: item.label, value: item.raw.cssClass}))
},
toDataType() {
this.$router.push({ path: '/mes/md/propertytype'})
},
......
<template>
<div>
<el-row :gutter="10" class="mb8">
<el-row :gutter="10" class="mb8" v-if="mode != 'info'">
<el-col :span="1.5">
<el-button
type="primary"
......@@ -85,7 +85,12 @@
prop="itemRemark"
min-width="120"
/>
<el-table-column label="操作" align="center" width="120">
<el-table-column
v-if="mode != 'info'"
label="操作"
align="center"
width="120"
>
<template slot-scope="{ row, $index }">
<el-button
type="text"
......@@ -116,11 +121,11 @@
>
<el-row>
<el-col :span="24">
<el-form-item label="产品" prop="itemId">
<el-form-item label="物料" prop="itemId">
<el-input
v-model="form.itemName"
readonly
placeholder="请选择产品"
placeholder="请选择物料"
>
<el-button
slot="append"
......@@ -232,7 +237,7 @@ export default {
rules: {},
/**多选 */
selection: [],
optType: 'add',
optType: "add",
/**表单初始化数据 */
form: {
quantity: "",
......@@ -247,7 +252,7 @@ export default {
bomItemRemark: "",
itemRemark: "",
},
currentRowIdx: undefined
currentRowIdx: undefined,
};
},
created() {},
......@@ -262,13 +267,13 @@ export default {
handleAdd() {
this.resetForm();
this.showFlag = true;
this.optType = 'add'
this.optType = "add";
},
/**更新行 */
updateRow(row, idx) {
Object.assign(this.form, row);
this.currentRowIdx = idx
this.optType = 'edit'
this.currentRowIdx = idx;
this.optType = "edit";
this.showFlag = true;
},
/**删除行 */
......@@ -284,17 +289,18 @@ export default {
if (row != undefined && row != null) {
this.form.itemId = row.itemId;
this.form.itemName = row.itemName;
this.form.unit = row.unitOfMeasure;
this.form.unitOfMeasure = row.unitOfMeasure;
this.form.itemRemark = row.remark;
}
},
/**表单提交 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.optType == 'add') {
if (this.optType == "add") {
this.tableData.unshift({ ...this.form });
} else {
this.tableData.splice(this.currentRowIdx, 1, this.form)
this.tableData.splice(this.currentRowIdx, 1, this.form);
}
this.showFlag = false;
}
......@@ -316,6 +322,11 @@ export default {
itemRemark: "",
};
},
/**重置组件状态 */
resetState() {
this.resetForm();
this.tableData = [];
},
/**获取组件数据 */
getComData() {
return this.tableData;
......
......@@ -10,7 +10,7 @@
/>
<el-table-column label="工作站" prop="workstationId" align="center" />
<el-table-column label="甘特图显示颜色" prop="colorCode" align="center" />
<el-table-column label="操作" align="center" width="150">
<el-table-column v-if="mode != 'info'" label="操作" align="center" width="150">
<template slot-scope="{ row, $index }">
<el-button
type="text"
......@@ -141,6 +141,7 @@ import ItemBomSelect from "@/components/itemBomSelect/single.vue";
import ProcessProd from "./ProcessProd.vue";
export default {
components: { ItemBomSelect, ProcessProd },
inject: ['mode'],
props: {
bomList: {
type: Array,
......@@ -218,6 +219,11 @@ export default {
itemRemark: "",
};
},
/**重置组件状态 */
resetState() {
this.resetForm()
this.tableData = []
}
},
};
</script>
......
......@@ -3,15 +3,14 @@
<el-form
:model="queryParams"
ref="queryForm"
style="with"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="产品名称" prop="itenName">
<el-form-item label="产品名称" prop="itemName">
<el-input
v-model="queryParams.itenName"
v-model="queryParams.itemName"
placeholder="请输入产品名称"
clearable
@keyup.enter.native="handleQuery"
......@@ -34,12 +33,12 @@
</el-form-item>
<!-- <el-form-item label="样品名称" prop="abbreviation">
<el-input
v-model="queryParams.itenName"
v-model="queryParams.itemName"
placeholder="请输入样品名称"
clearable
@keyup.enter.native="handleQuery"
/> -->
<!-- <el-date-picker
<!-- <el-date-picker
clearable
v-model="queryParams.abbreviation"
type="date"
......@@ -197,7 +196,14 @@
label="申请单状态"
align="center"
prop="prototypeRequestStatus"
/>
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.mes_pr_status"
:value="scope.row.prototypeRequestStatus"
/>
</template>
</el-table-column>
<el-table-column label="测试标准" align="center" prop="testStandard" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column
......@@ -211,7 +217,7 @@
size="mini"
type="text"
icon="el-icon-edit"
v-if="scope.row.prototypeRequestStatus == '审批中'"
v-if="scope.row.prototypeRequestStatus == '0'"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:edit']"
>修改</el-button
......@@ -220,10 +226,10 @@
size="mini"
type="text"
icon="el-icon-circle-check"
v-if="scope.row.prototypeRequestStatus == '审批中'"
v-if="scope.row.prototypeRequestStatus == '0'"
@click="handleFinish(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:update']"
>完成</el-button
>通过</el-button
>
<el-button
size="mini"
......@@ -233,6 +239,15 @@
v-hasPermi="['mes:pro:prototypeRequest:remove']"
>删除</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
v-if="scope.row.prototypeRequestStatus == '1'"
@click="generate(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:edit']"
>生成制作单</el-button
>
</template>
</el-table-column>
</el-table>
......@@ -243,281 +258,6 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改生产工单对话框 -->
<!-- <el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="工单编号" prop="prototypeRequestCode">
<el-input
v-model="form.prototypeRequestCode"
placeholder="请输入工单编号"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="80">
<el-switch
v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)"
v-if="optType != 'view' && form.status == 'PREPARE'"
>
</el-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工单名称" prop="prototypeRequestName">
<el-input
v-model="form.prototypeRequestName"
placeholder="请输入工单名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="来源类型" prop="orderSource">
<el-radio-group
v-model="form.orderSource"
disabled
v-if="optType == 'view'"
>
<el-radio
v-for="dict in dict.type.mes_prototypeRequest_sourcetype"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
<el-radio-group v-model="form.orderSource" v-else>
<el-radio
v-for="dict in dict.type.mes_prototypeRequest_sourcetype"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8" v-if="form.orderSource == 'ORDER'">
<el-form-item label="订单编号" prop="sourceCode">
<el-input
v-model="form.sourceCode"
placeholder="请输入订单编号"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单据状态" prop="status">
<el-select
v-model="form.status"
disabled
placeholder="请选择单据状态"
>
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工单类型" prop="prototypeRequestType">
<el-select
v-model="form.prototypeRequestType"
placeholder="请选择类型"
>
<el-option
v-for="dict in dict.type.mes_prototypeRequest_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品编号" prop="productCode">
<el-input v-model="form.productCode" placeholder="请选择产品">
<el-button
slot="append"
@click="handleSelectProduct"
icon="el-icon-search"
></el-button>
</el-input>
<ItemSelect ref="itemSelect" @onSelected="onItemSelected">
</ItemSelect>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="form.productName"
placeholder="请选择产品"
disabled
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="规格型号" prop="productSpc">
<el-input
v-model="form.productSpc"
placeholder="请选择产品"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位" prop="unitOfMeasure">
<el-input
v-model="form.unitOfMeasure"
placeholder="请选择产品"
disabled
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工单数量" prop="quantity">
<el-input-number
:min="1"
v-model="form.quantity"
placeholder="请输入生产数量"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="需求日期" prop="requestDate">
<el-date-picker
clearable
v-model="form.requestDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择需求日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="批次号" prop="batchCode">
<el-input v-model="form.batchCode" placeholder="请输入批次号" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.orderSource == 'ORDER'">
<el-col :span="12">
<el-form-item label="客户编码" prop="clientCode">
<el-input v-model="form.clientCode" placeholder="请选择客户">
<el-button
slot="append"
@click="handleSelectClient"
icon="el-icon-search"
></el-button>
</el-input>
<ClientSelect ref="clientSelect" @onSelected="onClientSelected">
</ClientSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户名称" prop="clientName">
<el-input
v-model="form.clientName"
readonly="readonly"
placeholder="请输入客户名称"
/>
</el-form-item>
</el-col>
<el-col></el-col>
</el-row>
<el-row
v-if="
form.prototypeRequestType == 'OUTSOURCE' ||
form.prototypeRequestType == 'PURCHASE'
"
>
<el-col :span="12">
<el-form-item label="供应商编码" prop="vendorCode">
<el-input v-model="form.vendorCode" placeholder="请选择供应商">
<el-button
slot="append"
@click="handleSelectVendor"
icon="el-icon-search"
></el-button>
</el-input>
<VendorSelect ref="vendorSelect" @onSelected="onVendorSelected" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商名称" prop="vendorName">
<el-input
v-model="form.vendorName"
readonly="readonly"
placeholder="请选择供应商"
/>
</el-form-item>
</el-col>
<el-col></el-col>
</el-row>
<el-row>
<el-col></el-col>
<el-col></el-col>
<el-col></el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-tabs type="border-card" v-if="form.prototypeRequestId != null">
<el-tab-pane label="BOM组成">
<prototypeRequestbom ref="bomlist" :optType="optType" :prototypeRequest="form" @handleAddSub="handleSubAdd" ></prototypeRequestbom>
</el-tab-pane>
<el-tab-pane label="物料需求">
</el-tab-pane>
</el-tabs>
<div slot="footer" class="dialog-footer">
<el-button
type="primary"
@click="cancel"
v-if="optType == 'view' || form.status != 'PREPARE'"
>返回</el-button
>
<el-button
type="primary"
@click="submitForm"
v-if="form.status == 'PREPARE' && optType != 'view'"
> </el-button
>
<el-button
type="success"
@click="handleConfirm"
v-if="
form.status == 'PREPARE' &&
optType != 'view' &&
form.prototypeRequestId != null
"
> </el-button
>
<el-button @click="cancel"> </el-button>
</div></el-dialog> -->
</div>
</template>
......@@ -528,6 +268,7 @@ import {
delPrototypeRequest,
addPrototypeRequest,
updatePrototypeRequest,
dofinish,
} from "@/api/mes/pro/prototypeRequest";
import ItemSelect from "@/components/itemSelect/single.vue";
import ClientSelect from "@/components/clientSelect/single.vue";
......@@ -538,7 +279,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "PrototypeRequest",
dicts: [
"mes_order_status",
"mes_pr_status",
"mes_prototypeRequest_sourcetype",
"mes_prototypeRequest_type",
],
......@@ -577,16 +318,16 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
itemName: null,// 可以查简称与英文名
itemName: null, // 可以查简称与英文名
prototypeRequestStatus: null,
},
options: [
{ value: "审批中", label: "审批中" },
{ value: "待制作", label: "待制作" },
{ value: "打样中", label: "打样中" },
{ value: "待质检", label: "待质检" },
{ value: "待确认", label: "待确认" },
{ value: "已完成", label: "已完成" },
{ value: 0, label: "审批中" },
{ value: 1, label: "待制作" },
{ value: 2, label: "打样中" },
{ value: 3, label: "待质检" },
{ value: 4, label: "待确认" },
{ value: 5, label: "已完成" },
],
// 表单参数
......@@ -679,7 +420,7 @@ export default {
this.reset();
const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push(
"/mes/proofing/info?prototypeRequestId="+prototypeRequestId
"/mes/proofing/info?prototypeRequestId=" + prototypeRequestId
);
// getprototypeRequest(prototypeRequestId).then((response) => {
// this.form = response.data;
......@@ -693,7 +434,7 @@ export default {
this.reset();
const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push(
"/mes/proofing/edit?prototypeRequestId="+prototypeRequestId
"/mes/proofing/edit?prototypeRequestId=" + prototypeRequestId
);
// getPrototypeRequest(prototypeRequestId).then((response) => {
// // this.form = response.data;
......@@ -703,28 +444,6 @@ export default {
// // 跳转修改
// });
},
// /** 提交按钮 */
// submitForm() {
// this.$refs["form"].validate(valid => {
// if (valid) {
// if (this.form.prototypeRequestId != null) {
// updateprototypeRequest(this.form).then(response => {
// this.$modal.msgSuccess("修改成功");
// //this.open = false;
// this.$refs["bomlist"].getList();
// this.getList();
// });
// } else {
// addprototypeRequest(this.form).then(response => {
// this.$modal.msgSuccess("新增成功");
// //this.open = false;
// this.form.prototypeRequestId = response.data;
// this.getList();
// });
// }
// }
// });
// },
/** 删除按钮操作 */
handleDelete(row) {
this.$modal
......@@ -755,65 +474,27 @@ export default {
`打样申请单_${new Date().getTime()}.xlsx`
);
},
// // 审批通过
// handleConfirm(){
// let that = this;
// this.$modal.confirm('是确认完成工单编制?【确认后将不能更改】').then(function(){
// that.form.status = '待制作';
// that.submitForm();
// });
// },
// // 审批
// handleFinish(row){
// const prototypeRequestIds = row.prototypeRequestId || this.ids;
// this.$modal.confirm('确认完成工单?一旦完成,此工单将无法继续报工').then(function() {
// return dofinish(prototypeRequestIds) //完成工单
// }).then(() => {
// this.getList();
// this.$modal.msgSuccess("更改成功");
// }).catch(() => {});
// },
// //物料选择弹出框
// onItemSelected(obj) {
// if (obj != undefined && obj != null) {
// this.form.productId = obj.itemId;
// this.form.productCode = obj.itemCode;
// this.form.productName = obj.itemName;
// this.form.productSpc = obj.specification;
// this.form.unitOfMeasure = obj.unitOfMeasure;
// }
// },
// //客户选择弹出框
// onClientSelected(obj) {
// if (obj != undefined && obj != null) {
// this.form.clientId = obj.clientId;
// this.form.clientCode = obj.clientCode;
// this.form.clientName = obj.clientName;
// }
// },
// //供应商选择
// handleSelectVendor() {
// this.$refs.vendorSelect.showFlag = true;
// },
// //供应商选择弹出框
// onVendorSelected(obj) {
// debugger;
// if (obj != undefined && obj != null) {
// this.form.vendorId = obj.vendorId;
// this.form.vendorCode = obj.vendorCode;
// this.form.vendorName = obj.vendorName;
// }
// },
// //自动生成编码
// handleAutoGenChange(autoGenFlag) {
// if (autoGenFlag) {
// genCode("WORKORDER_CODE").then((response) => {
// this.form.prototypeRequestCode = response;
// });
// } else {
// this.form.prototypeRequestCode = null;
// }
// },
// 审批
handleFinish(row) {
row.prototypeRequestStatus = 1
this.$modal
.confirm("确认通过样品申请单?一旦完成,此工单将无法继续修改")
.then(function () {
return dofinish(row); //完成申请单审批
})
.then(() => {
this.getList();
this.$modal.msgSuccess("审批成功");
})
.catch(() => {});
},
},
// 生成制作单
generate(row) {
// 跳转到制作单界面
this.$router.push("/mes/proofing/apply");
return;
},
};
</script>
<template>
<div class="form-page">
<div class="form-page" v-loading="loading">
<PageTitle>
{{ pageTitle }}
<!-- 申请按钮显示 -->
<template slot="buttons" v-if="mode == 'apply'">
<el-button size="mini" @click="resetForm">重置</el-button>
<el-button size="mini" type="primary" @click="saveForm">提交</el-button>
</template>
<!-- 修改 按钮显示 -->
<template slot="buttons" v-if="mode == 'edit'">
<el-button size="mini" type="primary" @click="saveForm">提交</el-button>
</template>
</PageTitle>
<PageWrapper>
......@@ -179,8 +185,12 @@ import ProogingProcess from "./components/ProogingProcess.vue";
import ItemSelect from "@/components/itemSelect/single.vue";
import RoutesProcessSelect from "@/components/routesProcessSelect/index.vue";
import { listRouteprocess } from "@/api/mes/pro/routeprocess";
import { Loading } from "element-ui";
import { addPrototypeRequest } from "@/api/mes/pro/prototypeRequest";
import tabPlugins from "@/plugins/tab";
import {
addPrototypeRequest,
getPrototypeRequest,
updatePrototypeRequest,
} from "@/api/mes/pro/prototypeRequest";
export default {
components: { ProogingBom, ProogingProcess, ItemSelect, RoutesProcessSelect },
......@@ -192,6 +202,7 @@ export default {
},
data() {
return {
loading: false,
bomList: [],
// 表单参数
form: {
......@@ -233,11 +244,34 @@ export default {
},
},
created() {
genCode("PROTOTYPE_REQUEST_CODE").then((response) => {
this.form.prototypeRequestCode = response;
});
this.getFormInfo();
this.gCode();
},
methods: {
/** 根据 id 获取页面数据 */
getFormInfo() {
if (this.mode != "apply") {
const id = this.$route.query.prototypeRequestId;
this.loading = true;
getPrototypeRequest(id)
.then(({ data }) => {
Object.assign(this.form, data);
this.bomList = data.bomList;
// 设置组件数据
this.$refs["ProogingBomRef"].tableData = data.bomList;
this.$refs["ProogingProcess"].tableData = data.processList;
})
.finally(() => {
this.loading = false;
});
}
},
/** 生成编码 */
gCode() {
genCode("PROTOTYPE_REQUEST_CODE").then((response) => {
this.form.prototypeRequestCode = response;
});
},
/** 点击tab 获取bom的数据,将参数传递给后面的组件 */
tabClick(val) {
if (val.index != 0) {
......@@ -275,16 +309,29 @@ export default {
bomList,
processList,
};
console.log("params", params);
const loadingInstance = Loading.service({ fullscreen: true });
addPrototypeRequest(params)
.then((res) => {
loadingInstance.close();
this.$modal.msgSuccess("提交成功!");
})
.catch(() => {
loadingInstance.close();
});
this.loading = true;
if (this.mode == "apply") {
addPrototypeRequest(params)
.then((res) => {
this.loading = false;
this.$modal.msgSuccess("提交成功!");
// 关闭页签
tabPlugins.closeOpenPage();
})
.catch(() => {
this.loading = false;
});
} else {
updatePrototypeRequest(params)
.then(() => {
this.loading = false;
this.$modal.msgSuccess("提交成功!");
})
.catch(() => {
this.loading = false;
});
}
},
/**重置表单 */
resetForm() {
......@@ -305,6 +352,9 @@ export default {
testStandard: "",
remark: "",
};
this.$refs["ProogingBomRef"].resetState();
this.$refs["ProogingProcessRef"].resetState();
this.gCode();
},
},
};
......
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