<template>
|
<el-dialog
|
width="75%"
|
top="10vh"
|
:fullscreen="isFullScreen"
|
:close-on-click-modal="false"
|
:visible.sync="visible"
|
>
|
<template slot="title">
|
<i
|
:class="isFullScreen ? 'icon-zuixiaohua' : 'icon-quanpingzuidahua'"
|
style="position: absolute; right: 52px; float: right"
|
@click="fullscreen"
|
>
|
</i>
|
<span>{{ title }}</span>
|
</template>
|
<el-divider
|
><span style="font-weight:bold;font-size:16px;"
|
>订单主体</span
|
></el-divider
|
>
|
<div>
|
<el-form
|
:model="dataForm"
|
:rules="dataRule"
|
ref="dataForm"
|
label-width="100px"
|
class="l-mes"
|
>
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="合同号" prop="contractNo">
|
<el-input
|
v-model="dataForm.contractNo"
|
placeholder=""
|
disabled
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="客户名称" prop="customerName">
|
<el-input
|
v-model="dataForm.customerName"
|
placeholder=""
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="工程名称" prop="entityName">
|
<el-input v-model="dataForm.entityName" placeholder=""></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="事业部" prop="salesDepartment">
|
<el-input
|
v-model="dataForm.salesDepartment"
|
placeholder=""
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="省份" prop="province">
|
<el-input v-model="dataForm.province" placeholder=""></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="业务员" prop="salesMan">
|
<el-input v-model="dataForm.salesMan" placeholder=""></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="正本状态" prop="originalContractStatus">
|
<el-input
|
v-model="dataForm.originalContractStatus"
|
placeholder=""
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="项目性质" prop="isCp">
|
<el-input v-model="dataForm.isCp" placeholder=""></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="6">
|
<el-form-item label="客户编码" prop="customerNo">
|
<el-input v-model="dataForm.customerNo" placeholder=""></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="合同正本状态" prop="returnStatus">
|
<el-input
|
v-model="dataForm.returnStatus"
|
placeholder=""
|
></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="下单日期" prop="placeOrderDate">
|
<el-date-picker
|
v-model="dataForm.placeOrderDate"
|
style="width: 100%"
|
type="datetime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="工厂下单日期" prop="factoryPlaceOrderDate">
|
<el-date-picker
|
v-model="dataForm.factoryPlaceOrderDate"
|
style="width: 100%"
|
type="datetime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</div>
|
|
<el-divider
|
><span style="font-weight:bold;font-size:16px;">订单行</span></el-divider
|
>
|
<div class="l-mes normal-form">
|
<el-row :gutter="20">
|
<el-col :span="2">
|
<span>零件号</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.partNo"
|
placeholder=""
|
readonly
|
>
|
<el-button
|
slot="append"
|
icon="el-icon-search"
|
@click="openPartDialog()"
|
></el-button>
|
</el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>单位</span>
|
</el-col>
|
<el-col :span="6">
|
<el-select
|
v-model="dataForm.customerOrder.unit"
|
placeholder=""
|
style="width: 100%"
|
>
|
<el-option
|
v-for="item in units"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-col>
|
<el-col :span="2">
|
<span>数量</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.buyQtyDue"
|
placeholder=""
|
></el-input>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="2">
|
<span>电压等级</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.voltAgeClass"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>产品名称</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.productName"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>制造属性</span>
|
</el-col>
|
<el-col :span="6">
|
<el-select
|
v-model="dataForm.customerOrder.manufactureAttr"
|
placeholder=""
|
style="width: 100%"
|
disabled
|
>
|
<el-option
|
v-for="item in manufactureAttrs"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="2">
|
<span>外护颜色</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.outerColor"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>零件规格</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.customerPartSpec"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>印字类型</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.printType"
|
placeholder=""
|
></el-input>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="2">
|
<span>印字要求</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.printingRequirements"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>包装要求</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.packageRequire"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>质量要求</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.qualityRequire"
|
placeholder=""
|
></el-input>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="2">
|
<span>生产需求说明</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.otherProductRequire"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>系统</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.divisionSystem"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>收货地址</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.shippingAddress"
|
placeholder=""
|
></el-input>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="2">
|
<span>业务员</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.salesmanName"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>盘长要求</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.lengthRequirement"
|
placeholder=""
|
></el-input>
|
</el-col>
|
<el-col :span="2">
|
<span>备注</span>
|
</el-col>
|
<el-col :span="6">
|
<el-input
|
v-model="dataForm.customerOrder.remark"
|
placeholder=""
|
></el-input>
|
</el-col>
|
</el-row>
|
</div>
|
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="visible = false">取消</el-button>
|
<el-button
|
type="primary"
|
:disabled="buttonDisable"
|
v-thinclick="`dataFormSubmit`"
|
>确定</el-button
|
>
|
</span>
|
|
<part-dialog
|
:currshowlist.sync="showPart"
|
@listenToPartEvent="selectPart"
|
/>
|
</el-dialog>
|
</template>
|
<style>
|
.normal-form .el-input-group__append,
|
.normal-form .el-input-group__prepend {
|
padding: 0;
|
border-top: none;
|
border-right: none;
|
border-left: none;
|
border-radius: 0;
|
background-color: transparent;
|
}
|
.normal-form .el-input-group__append .el-button,
|
.normal-form .el-input-group__prepend .el-button {
|
padding: 0;
|
width: 25px;
|
border: none !important;
|
line-height: 28px;
|
color: #c0c4cc;
|
margin: -1px 0;
|
}
|
</style>
|
<script>
|
import { addObj } from '@/api/plan/customer'
|
import { remote } from '@/api/admin/dict'
|
import PartDialog from '@/views/common/part.vue'
|
import { validateSixDecimal } from '@/util/validate'
|
|
export default {
|
components: {
|
PartDialog
|
},
|
data() {
|
return {
|
title: '',
|
isFullScreen: false,
|
visible: false,
|
buttonDisable: false,
|
showPart: false,
|
dataForm: {
|
id: 0,
|
contractNo: null,
|
customerName: null,
|
entityName: null,
|
salesDepartment: null,
|
province: null,
|
salesMan: null,
|
originalContractStatus: null,
|
isCp: null,
|
customerNo: null,
|
returnStatus: null,
|
placeOrderDate: null,
|
factoryPlaceOrderDate: null,
|
customerOrder: {
|
partNo: null,
|
unit: null,
|
buyQtyDue: null,
|
voltAgeClass: null,
|
productName: null,
|
manufactureAttr: 'S',
|
outerColor: null,
|
customerPartSpec: null,
|
printType: null,
|
printingRequirements: null,
|
packageRequire: null,
|
qualityRequire: null,
|
otherProductRequire: null,
|
divisionSystem: null,
|
shippingAddress: null,
|
salesmanName: null,
|
lengthRequirement: null,
|
remark: null
|
}
|
},
|
dataRule: {},
|
units: [],
|
manufactureAttrs: []
|
}
|
},
|
mounted: function() {
|
this.getDicUnit('unit') // 获取单位
|
this.getManufactureAttrs('manufacture_attr_type')
|
},
|
methods: {
|
init(id) {
|
this.initDataForm()
|
this.visible = true
|
this.$nextTick(() => {
|
this.title = '新增'
|
})
|
},
|
initDataForm() {
|
this.dataForm.id = 0
|
this.dataForm.contractNo = null
|
this.dataForm.customerName = null
|
this.dataForm.entityName = null
|
this.dataForm.salesDepartment = null
|
this.dataForm.province = null
|
this.dataForm.salesMan = null
|
this.dataForm.originalContractStatus = null
|
this.dataForm.isCp = null
|
this.dataForm.customerNo = null
|
this.dataForm.returnStatus = null
|
this.dataForm.placeOrderDate = null
|
this.dataForm.factoryPlaceOrderDate = null
|
this.dataForm.customerOrder.partNo = null
|
this.dataForm.customerOrder.unit = null
|
this.dataForm.customerOrder.buyQtyDue = null
|
this.dataForm.customerOrder.voltAgeClass = null
|
this.dataForm.customerOrder.productName = null
|
this.dataForm.customerOrder.manufactureAttr = 'S'
|
this.dataForm.customerOrder.outerColor = null
|
this.dataForm.customerOrder.customerPartSpec = null
|
this.dataForm.customerOrder.printType = null
|
this.dataForm.customerOrder.printingRequirements = null
|
this.dataForm.customerOrder.packageRequire = null
|
this.dataForm.customerOrder.qualityRequire = null
|
this.dataForm.customerOrder.otherProductRequire = null
|
this.dataForm.customerOrder.divisionSystem = null
|
this.dataForm.customerOrder.shippingAddress = null
|
this.dataForm.customerOrder.salesmanName = null
|
this.dataForm.customerOrder.lengthRequirement = null
|
this.dataForm.customerOrder.remark = null
|
},
|
// 表单提交
|
dataFormSubmit() {
|
this.buttonDisable = true
|
this.$refs.dataForm.validate((valid) => {
|
if (valid) {
|
addObj(this.dataForm)
|
.then((data) => {
|
this.$message.success('添加成功')
|
this.visible = false
|
this.buttonDisable = false
|
this.$emit('refreshDataList', 1)
|
})
|
.catch((error) => {
|
this.buttonDisable = false
|
})
|
} else {
|
this.buttonDisable = false
|
}
|
})
|
},
|
// 零件选择
|
openPartDialog() {
|
this.showPart = true
|
},
|
selectPart(part) {
|
if (part) {
|
this.dataForm.customerOrder.partNo = part.partNo
|
}
|
},
|
// 全屏
|
fullscreen() {
|
this.isFullScreen = !this.isFullScreen
|
},
|
// 获取字典显示名称并缓存
|
getDicUnit(type) {
|
remote(type).then((response) => {
|
const code = response.data.code
|
if (code === 0) {
|
const _data = response.data.data
|
this.units = _data
|
}
|
})
|
},
|
getManufactureAttrs(type) {
|
remote(type).then((response) => {
|
const code = response.data.code
|
if (code === 0) {
|
const _data = response.data.data
|
this.manufactureAttrs = _data
|
}
|
})
|
}
|
}
|
}
|
</script>
|