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>
......
This diff is collapsed.
<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