|
|
@ -11,115 +11,141 @@ |
|
|
|
<div class="titwu">车辆出库</div> |
|
|
|
<el-form ref="dataForm" :model="temp" label-position="right" class="formadd" :rules="rules"> |
|
|
|
<el-row class="first_row"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<span>出库类型</span> |
|
|
|
</el-form-item> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>车架号</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item><span>{{ temp.vinNo }}</span></el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>出库类型</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="outLibraryValue"> |
|
|
|
<el-select ref="config" v-model="temp.outLibraryValue" class="addinputw" clearable placeholder="" |
|
|
|
filterable |
|
|
|
@change="outLibraryChange"> |
|
|
|
<el-option v-for="(item,index) in payType_list" :key="item.dictKey" :label="item.dictValue" |
|
|
|
:value="item.dictValue"/> |
|
|
|
<el-form-item prop="type"> |
|
|
|
<el-select v-model="temp.type" class="addinputw" placeholder="" filterable @change="outLibraryChange"> |
|
|
|
<el-option v-for="item in payType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<span>销售专员</span> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>销售部门</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="orgName"> |
|
|
|
<el-select v-model="temp.orgName" class="addinputw" placeholder="" @change="changeOrg"> |
|
|
|
<el-option v-for="item in org_list" :key="item.orgDeptSid" :label="item.orgDeptName" :value="item.orgDeptName"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>销售专员</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="person"> |
|
|
|
<el-select ref="config" v-model="temp.person" class="addinputw" clearable placeholder=""> |
|
|
|
<el-option v-for="(item,index) in person_list" :key="item.sid" :label="item.namePath" |
|
|
|
:value="item.sid"/> |
|
|
|
<el-form-item prop="staffName"> |
|
|
|
<el-select v-model="temp.staffName" class="addinputw" placeholder="" @change="changeStaff"> |
|
|
|
<el-option v-for="item in staff_list" :key="item.staffSid" :label="item.staffName" :value="item.staffName"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<span>合同编号</span> |
|
|
|
</el-form-item> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>合同编号</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="contractNo"> |
|
|
|
<el-input v-model="temp.contractNo" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<span>成交价(元)</span> |
|
|
|
</el-form-item> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>成交价(元)</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item> |
|
|
|
<el-input v-model="temp.salePrice" maxlength="125" placeholder="" class="addinputw" clearable |
|
|
|
@keyup.native="temp.salePrice = oninput(temp.salePrice,2)"/> |
|
|
|
<el-input v-model="temp.price" maxlength="125" placeholder="" class="addinputw" clearable @keyup.native="temp.price = oninput(temp.price,2)"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item prop=""> |
|
|
|
<span>客户类型</span> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="customerTypeKey"> |
|
|
|
<el-select v-model="temp.customerTypeKey" class="addinputw" clearable placeholder="" |
|
|
|
@change="customertypeChange"> |
|
|
|
<el-option v-for="(item,index) in customertype_list" :key="item.dictKey" :label="item.dictValue" |
|
|
|
:value="item.dictKey"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>是否为终端客户</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-col :span="20"> |
|
|
|
<el-form-item> |
|
|
|
<span>客户姓名</span> |
|
|
|
<el-radio v-model="temp.isTerminal" label="1">是</el-radio> |
|
|
|
<el-radio v-model="temp.isTerminal" label="0">否</el-radio> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>客户名称</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="customerName"> |
|
|
|
<el-input v-model="temp.customerName" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
|
<el-select v-model="temp.customerName" class="addinputw" clearable placeholder="" @change="changeCustomer"> |
|
|
|
<el-option v-for="item in customer_list" :key="item.sid" :label="item.name" :value="item.sid"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<span>手机号码</span> |
|
|
|
</el-form-item> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>手机号码</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="mobile"> |
|
|
|
<el-input v-model="temp.mobile" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<span>身份证号码</span> |
|
|
|
</el-row> |
|
|
|
<el-row v-show="temp.isTerminal == '0'"> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>实际购车人名称</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="actualCustomer"> |
|
|
|
<el-select v-model="temp.actualCustomer" class="addinputw" clearable placeholder="" @change="ChangeActualCustomer"> |
|
|
|
<el-option v-for="item in actualCustomer_list" :key="item.sid" :label="item.name" :value="item.sid"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>手机号码</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="idnumber"> |
|
|
|
<el-input v-model="temp.idnumber" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
|
<el-form-item prop="actualMobile"> |
|
|
|
<el-input v-model="temp.actualMobile" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>赠品说明</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="20"> |
|
|
|
<el-form-item> |
|
|
|
<span>联系地址</span> |
|
|
|
<el-input v-model="temp.giftsDescription" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="20"> |
|
|
|
<el-form-item prop="address"> |
|
|
|
<el-input v-model="temp.address" maxlength="125" placeholder="" class="addinputw" clearable/> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>二级经销商</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="distributorName"> |
|
|
|
<el-select v-model="temp.distributorName" class="addinputw" clearable placeholder="" @change="changeDistributor"> |
|
|
|
<el-option v-for="item in distributor_list" :key="item.sid" :label="item.name" :value="item.name"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" class="tleftb"> |
|
|
|
<span>返利金额(元)</span> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item prop="mobile"> |
|
|
|
<el-input v-model="temp.rebateAmount" maxlength="125" placeholder="" class="addinputw" clearable @keyup.native="temp.rebateAmount = oninput(temp.rebateAmount,2)"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
@ -129,7 +155,8 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import { getUserByOrgSid, vehicleOutLibrary } from '@/api/cheliang/basevehicle' |
|
|
|
import { vehicleOutLibrary } from '@/api/cheliang/basevehicle' |
|
|
|
import { selectOrgList, selectCustomerList, selectDisList } from '@/api/cheliang/dictcommons' |
|
|
|
import { typeValues } from '@/api/cheliang/dictcommons' |
|
|
|
|
|
|
|
export default { |
|
|
@ -148,53 +175,44 @@ export default { |
|
|
|
callback() |
|
|
|
} |
|
|
|
} |
|
|
|
var identitycard = (rules, value, callback) => { |
|
|
|
const card = |
|
|
|
/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ |
|
|
|
if (value) { |
|
|
|
// 如果没有通过验证!! |
|
|
|
if (!card.test(value)) { |
|
|
|
callback(new Error('请输入正确的身份证号')) |
|
|
|
} |
|
|
|
callback() |
|
|
|
} else { |
|
|
|
callback() |
|
|
|
} |
|
|
|
} |
|
|
|
return { |
|
|
|
temp: { |
|
|
|
person:'', |
|
|
|
address: '',// 联系地址 |
|
|
|
contractNo: '',// 合同编号 |
|
|
|
customerName: '',// 客户名称 |
|
|
|
customerType: '',// 客户类型value |
|
|
|
customerTypeKey: '',// 客户类型key |
|
|
|
idnumber: '', // 身份证号 |
|
|
|
mobile: '',// 手机号码 |
|
|
|
outLibraryValue: '',// 出库类型value |
|
|
|
salePrice: '',// 成交价 |
|
|
|
userSid: '',// userSid |
|
|
|
vehicleSid: '',// 车辆sid |
|
|
|
vehicleStateValue: '' // 库存状态value |
|
|
|
vinNo: '', |
|
|
|
contractNo: '', // 合同编号 |
|
|
|
distributorName: '', // 二次经销商 |
|
|
|
distributorSid: '', |
|
|
|
giftsDescription: '', // 赠品说明 |
|
|
|
isTerminal: '', // 是否为终端客户 |
|
|
|
customerName: '', // 客户名称 |
|
|
|
customerSid: '', |
|
|
|
mobile: '', // 手机号码 |
|
|
|
actualCustomer: '', // 实际购车人姓名 |
|
|
|
actualSid: '', |
|
|
|
actualMobile: '', // 实际购车人手机号 |
|
|
|
orgName: '', // 销售部门 |
|
|
|
orgSid: '', // 销售部门Sid |
|
|
|
price: '', // 成交价 |
|
|
|
rebateAmount: '', // 返利金额 |
|
|
|
staffName: '', // 销售专员 |
|
|
|
staffSid: '', // 销售专员sid |
|
|
|
type: '', // 出库类型 |
|
|
|
typeKey: '', // 出库类型Key |
|
|
|
queryList: [] // 车架号 |
|
|
|
}, |
|
|
|
payType_list:[], |
|
|
|
customertype_list:[], |
|
|
|
person_list:[], |
|
|
|
payType_list: [], // 出库类型 |
|
|
|
org_list: [], // 销售部门 |
|
|
|
staff_list: [], // 销售专员 |
|
|
|
customer_list: [], // 客户名称 |
|
|
|
actualCustomer_list: [], // 实际购车人名称 |
|
|
|
distributor_list: [], // 二级经销商 |
|
|
|
dialogFormVisible: false, |
|
|
|
rules: { |
|
|
|
mobile: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
validator: checkSubmit, |
|
|
|
trigger: 'blur', |
|
|
|
}, |
|
|
|
], |
|
|
|
idnumber: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
validator: identitycard, |
|
|
|
trigger: 'blur', |
|
|
|
}, |
|
|
|
trigger: 'blur' |
|
|
|
} |
|
|
|
] |
|
|
|
} |
|
|
|
} |
|
|
@ -202,12 +220,9 @@ export default { |
|
|
|
methods: { |
|
|
|
// 输入数字正则 |
|
|
|
oninput(val, limit = 0) { |
|
|
|
val = val.replace(/[^\d.]/g, ""); //保留数字 |
|
|
|
val = val.replace(/^00/, "0."); //开头不能有两个0 |
|
|
|
val = val.replace(/^\./g, "0."); //开头为小数点转换为0. |
|
|
|
val = val.replace(/\.{2,}/g, "."); //两个以上的小数点转换成一个 |
|
|
|
val = val.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); //只保留一个小数点 |
|
|
|
/^0\d+/.test(val) ? val = val.slice(1) : ''; //两位以上数字开头不能为0 |
|
|
|
val = val.replace(/[^\d]/g, '') // 保留数字 |
|
|
|
val = val.replace(/^00/, '0'); // 开头不能有两个0 |
|
|
|
/^0\d+/.test(val) ? val = val.slice(1) : '' // |
|
|
|
const str = '^(\\d+)\\.(\\d{' + limit + '}).*$' |
|
|
|
const reg = new RegExp(str) |
|
|
|
if (limit === 0) { |
|
|
@ -220,52 +235,72 @@ export default { |
|
|
|
return val |
|
|
|
}, |
|
|
|
getType() { |
|
|
|
typeValues({ |
|
|
|
type:'payType' |
|
|
|
}).then((res) => { |
|
|
|
if (res.success){ |
|
|
|
typeValues({type: 'payType'}).then((res) => { |
|
|
|
if (res.success) { |
|
|
|
this.payType_list = res.data |
|
|
|
} |
|
|
|
}) |
|
|
|
typeValues({ |
|
|
|
type:'customertype' |
|
|
|
}).then((res) => { |
|
|
|
if (res.success){ |
|
|
|
this.customertype_list = res.data |
|
|
|
selectOrgList({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => { |
|
|
|
if (resp.success) { |
|
|
|
this.org_list = resp.data |
|
|
|
} |
|
|
|
}) |
|
|
|
selectDisList({ userSid: window.sessionStorage.getItem('userSid') }).then((res) => { |
|
|
|
if (res.success) { |
|
|
|
this.distributor_list = res.data |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 出库类型 |
|
|
|
outLibraryChange(val) { |
|
|
|
if (val) { |
|
|
|
const choosetItem = this.payType_list.filter((item) => item.dictValue == val) |
|
|
|
const choosetItem = this.payType_list.filter((item) => item.dictValue === val) |
|
|
|
this.temp.outLibraryKey = choosetItem[0].dictKey |
|
|
|
console.log('name:', this.temp.outLibraryValue, 'key:', this.temp.outLibraryKey) |
|
|
|
} |
|
|
|
}, |
|
|
|
// 客户类型 |
|
|
|
customertypeChange(val) { |
|
|
|
if (val) { |
|
|
|
const choosetItem = this.customertype_list.filter((item) => item.dictKey == val) |
|
|
|
this.temp.customerType = choosetItem[0].dictValue |
|
|
|
console.log('name:', this.temp.customerType, 'key:', this.temp.customerTypeKey) |
|
|
|
} |
|
|
|
changeOrg(value) { |
|
|
|
const choosetItem = this.org_list.filter((item) => item.orgDeptName === value) |
|
|
|
this.temp.orgSid = choosetItem[0].orgDeptSid |
|
|
|
this.staff_list = choosetItem[0].staffinfoVoList |
|
|
|
}, |
|
|
|
getUser() { |
|
|
|
const data = { |
|
|
|
orgSid: window.sessionStorage.getItem('orgSid'), |
|
|
|
userSid: window.sessionStorage.getItem('userSid') |
|
|
|
} |
|
|
|
getUserByOrgSid(data).then((res) => { |
|
|
|
if (res.success){ |
|
|
|
this.person_list = res.data |
|
|
|
changeStaff(value) { |
|
|
|
const choosetItem = this.staff_list.filter((item) => item.staffName === value) |
|
|
|
this.temp.staffSid = choosetItem[0].staffSid |
|
|
|
selectCustomerList({ staffSid: this.temp.staffSid, userSid: window.sessionStorage.getItem('userSid') }).then((resp) => { |
|
|
|
if (resp.success) { |
|
|
|
this.customer_list = resp.data |
|
|
|
this.actualCustomer_list = resp.data |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
showChu(sid){ |
|
|
|
this.temp.vehicleSid = sid |
|
|
|
changeCustomer(value) { |
|
|
|
const choosetItem = this.customer_list.filter((item) => item.name === value) |
|
|
|
this.temp.customerSid = choosetItem[0].sid |
|
|
|
this.temp.mobile = choosetItem[0].mobile |
|
|
|
}, |
|
|
|
ChangeActualCustomer(value) { |
|
|
|
const choosetItem = this.actualCustomer_list.filter((item) => item.name === value) |
|
|
|
this.temp.actualSid = choosetItem[0].sid |
|
|
|
this.temp.actualMobile = choosetItem[0].mobile |
|
|
|
}, |
|
|
|
changeDistributor(value) { |
|
|
|
const choosetItem = this.distributor_list.filter((item) => item.name === value) |
|
|
|
this.temp.distributorSid = choosetItem[0].sid |
|
|
|
}, |
|
|
|
showChu(multipleSelection) { |
|
|
|
const aa = [] |
|
|
|
const bb = [] |
|
|
|
multipleSelection.forEach((e) => { |
|
|
|
aa.push({ |
|
|
|
vinNo: e.vinNo, |
|
|
|
vinSid: e.sid |
|
|
|
}) |
|
|
|
bb.push(e.vinNo) |
|
|
|
}) |
|
|
|
this.temp.queryList = aa |
|
|
|
this.temp.vinNo = bb.join(',') |
|
|
|
this.getType() |
|
|
|
this.getUser() |
|
|
|
}, |
|
|
|
// 保存 |
|
|
|
handleCreate() { |
|
|
@ -273,14 +308,14 @@ export default { |
|
|
|
vehicleOutLibrary(this.temp).then((response) => { |
|
|
|
if (response.code === '200') { |
|
|
|
this.dialogFormVisible = false |
|
|
|
this.$message({ showClose: true, type: 'success', message: '保存成功' }) |
|
|
|
this.handleReturn('true') |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
this.dialogFormVisible = false |
|
|
|
} |
|
|
|
}).catch(e => { |
|
|
|
this.dialogFormVisible = false |
|
|
|
}) |
|
|
|
.catch(e => { |
|
|
|
this.dialogFormVisible = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 返回 |
|
|
|
handleReturn(isreload) { |
|
|
|