feat: 修改无锡采购发票和菲律宾换货单问题

feat: 修改无锡采购发票和菲律宾换货单问题
This commit is contained in:
shawnzhang 2021-03-18 17:43:32 +08:00
parent 5f1f4e0204
commit 6cf32b7ae9
36 changed files with 1392 additions and 196 deletions

View file

@ -81,6 +81,9 @@ export function outsourceEnterlist(query) {
if (query.customerId !== '' && query.customerId !== null && query.customerId !== undefined) {
params.append('customerId', query.customerId) // 你要传给后台的参数值 key/value
}
if (query.outFactoryName !== '' && query.outFactoryName !== null && query.outFactoryName !== undefined) {
params.append('outFactoryName', query.outFactoryName) // 你要传给后台的参数值 key/value
}
params.append('pageNum', query.pageNum) // 你要传给后台的参数值 key/value
params.append('pageSize', query.pageSize) // 你要传给后台的参数值 key/value
return request({

View file

@ -4620,6 +4620,8 @@ export default {
shoukuandanzhinajin: 'collection bill(penalty)',
shoukandajlreceiptNumber: 'compensation bill Number',
shoukandanquerenshouk: 'verify received payment',
querenmingxi: ' verify detail'
querenmingxi: ' verify detail',
zhehoujine: 'zhehoujine',
zhehouhanshuijine: 'zhehouhanshuijine'
}
}

View file

@ -4626,7 +4626,9 @@ export default {
querenfanhuan: '确认返还库存',
shengchengpeichangdan: '生成赔偿单',
quedingfanhuan: '确定返还?',
queding: '确定'
queding: '确定',
zhehoujine: '折后金额',
zhehouhanshuijine: '折后含税金额',
zhehoujineheji: '折后金额合计'
}
}

View file

@ -123,11 +123,11 @@
<el-col :span="6">
<el-form-item :label="$t('CheckReport.productCode')" prop="productCode" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input v-model="personalForm.productCode" style="margin-left: 18px;width:200px" @focus="handlemater"/>
<my-mater :matercontrol.sync="matercontrol" @mater="mater"/>
<detail-report :reportcontrol.sync="reportcontrol" :number.sync="number3" :reportdata.sync="reportdata" @report="report"/>
<detail-report2 :reportcontrol2.sync="reportcontrol2" :number.sync="number2" :reportdata2.sync="reportdata2" @report2="report2"/>
<detail-report3 :reportcontrol3.sync="reportcontrol3" :number.sync="number4" :reportdata3.sync="reportdata3" @report3="report3"/>
<detail-report4 :reportcontrol4.sync="reportcontrol4" :number.sync="number5" :reportdata4.sync="reportdata4" @report4="report4"/>
<my-mater v-if="matercontrol" :matercontrol.sync="matercontrol" @mater="mater"/>
<detail-report v-if="reportcontrol" :reportcontrol.sync="reportcontrol" :number.sync="number3" :reportdata.sync="reportdata" @report="report"/>
<detail-report2 v-if="reportcontrol2" :reportcontrol2.sync="reportcontrol2" :number.sync="number2" :reportdata2.sync="reportdata2" @report2="report2"/>
<detail-report3 v-if="reportcontrol3" :reportcontrol3.sync="reportcontrol3" :number.sync="number4" :reportdata3.sync="reportdata3" @report3="report3"/>
<detail-report4 v-if="reportcontrol4" :reportcontrol4.sync="reportcontrol4" :number.sync="number5" :reportdata4.sync="reportdata4" @report4="report4"/>
</el-form-item>
</el-col>
<el-col :span="6">

View file

@ -87,7 +87,12 @@
sortable
width="240"
align="center"/>
<el-table-column
:label="$t('InstallmentList.Latefee')"
prop="penalty"
sortable
width="240"
align="center"/>
<el-table-column
:label="$t('collectAndPay.collectMoney')"
prop="collectMoney"

View file

@ -177,7 +177,7 @@
</el-col>
<el-col :span="6">
<el-form-item :label="$t('InstallmentApply.installmentDays')" prop="installmentDays" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input-number v-model="personalForm.installmentDays" :min="1.00" :max="31.00" :controls="false" style="width: 200px" clearable/>
<el-input-number v-model="personalForm.installmentDays" :min="1.00" :max="31.00" :controls="false" style="width: 200px" clearable @change="handleChangeDays"/>
</el-form-item>
</el-col>
<el-col :span="6">
@ -1131,6 +1131,22 @@ export default {
_that = this
},
methods: {
handleChangeDays(val) {
const date = new Date()
const day = date.getDate()
console.log('day', day)
let maxDays = 0
if (day + 15 >= 31) {
maxDays = 31
} else {
maxDays = val + 15
}
if (val > maxDays) {
this.$nextTick(() => {
this.personalForm.installmentDays = day
})
}
},
haveAccessAddress2() {
confirmAddress(this.personalForm.permanentAddress).then(res => {
console.log('xxx', res)

View file

@ -176,7 +176,7 @@
</el-col>
<el-col :span="12">
<el-form-item :label="$t('InstallmentApply.installmentDays')" prop="installmentDays" style="width: 100%;">
<el-input-number v-model="personalForm.installmentDays" :min="1.00" :max="31.00" :controls="false" style="margin-left: 18px;width: 200px" clearable/>
<el-input-number v-model="personalForm.installmentDays" :min="1.00" :max="31.00" :controls="false" style="margin-left: 18px;width: 200px" clearable @change="handleChangeDays"/>
</el-form-item>
</el-col>
<el-col :span="12">
@ -1042,6 +1042,22 @@ export default {
_that = this
},
methods: {
handleChangeDays(val) {
const date = new Date()
const day = date.getDate()
console.log('day', day)
let maxDays = 0
if (day + 15 >= 31) {
maxDays = 31
} else {
maxDays = val + 15
}
if (val > maxDays) {
this.$nextTick(() => {
this.personalForm.installmentDays = day
})
}
},
cancel2() {
this.comakerVisible = false
this.newcomarker = {}

View file

@ -111,7 +111,7 @@ export default {
default: null
},
packagerepository: {
type: Number,
type: [Number, String],
default: null
}
},

View file

@ -11,6 +11,8 @@
:value="item.id"
:label="item.deptName"/>
</el-select>
<el-input v-model="getemplist.outFactoryName" :placeholder="$t('OutSource.outFactoryName')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<!-- 更多搜索条件下拉栏 -->
<el-popover
v-model="visible2"
@ -79,7 +81,6 @@
@row-click="clickRow"
@selection-change="handleSelectionChange">
<el-table-column
:selectable="selectInit"
type="selection"
width="55"
fixed="left"
@ -95,11 +96,11 @@
<span>{{ scope.row.title }}</span>
</template>
</el-table-column>
<!-- <el-table-column :label="$t('Stockenter.enterNumber')" :resizable="false" align="center" min-width="150">
<el-table-column :label="$t('OutSource.outFactoryName')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.enterNumber }}</span>
<span>{{ scope.row.outFactoryName }}</span>
</template>
</el-table-column> -->
</el-table-column>
<el-table-column :label="$t('Stockenter.deliveryPersonId')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.deliveryPersonName }}</span>
@ -580,7 +581,9 @@ export default {
//
//
handleCommand(command) {
const ids = this.moreaction.map(item => item.id).join()
const ids = this.moreaction.map(item => item.id).filter(item => {
return item.judgeStat === 0
}).join()
if (command === 'delete') {
this.$confirm(this.$t('prompt.scts'), this.$t('prompt.ts'), {
confirmButtonText: this.$t('prompt.qd'),
@ -648,17 +651,33 @@ export default {
//
handleExport() {
this.downloadLoading = true
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['供应商编号', '供应商名称', '供应商简称', '供应商类别', '所在区域', '采购员', '供应商优质级别', '建档人', '建档日期']
const filterVal = ['id', 'StockenterName', 'StockenterShortName', 'typeName', 'regionName', 'buyerName', 'levelName', 'createName', 'createTime']
const data = this.formatJson(filterVal, this.list)
excel.export_json_to_excel({
header: tHeader,
data,
filename: '经销商资料表'
})
this.downloadLoading = false
console.log('this.moreaction', this.moreaction)
const arr = []
for (const i in this.moreaction) {
this.moreaction[i].outsourceEnterDetailVos[0].createDate = this.moreaction[i].createDate
this.moreaction[i].outsourceEnterDetailVos[0].outFactoryName = this.moreaction[i].outFactoryName
this.moreaction[i].outsourceEnterDetailVos[0].enterNumber = this.moreaction[i].enterNumber
this.moreaction[i].outsourceEnterDetailVos[0].enterPersonName = this.moreaction[i].enterPersonName
this.moreaction[i].outsourceEnterDetailVos[0].judgeStat = this.moreaction[i].judgeStat
for (const j in this.moreaction[i].outsourceEnterDetailVos) {
const detailData = this.moreaction[i].outsourceEnterDetailVos
if (this.moreaction[i].id === detailData[j].enterId) {
arr.push(detailData[j])
}
}
}
console.log('arr', arr)
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['单据编号', '日期', '加工单位', '物品编号', '物品名称', '颜色', '规格', '单位', '入库数量', '入库价格', '入库金额', '货位', '批次', '入库人']
const filterVal = ['enterNumber', 'createDate', 'outFactoryName', 'productCode', 'productName', 'color', 'productType', 'unit', 'actualEnterQuantity', 'enterPrice', 'enterMoney', 'locationCode', 'batch', 'enterPersonName']
const data = this.formatJson(filterVal, arr)
excel.export_json_to_excel({
header: tHeader,
data,
filename: '委外入库单'
})
this.downloadLoading = false
})
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => {

View file

@ -130,15 +130,17 @@
<el-editable-column :label="$t('Hmodule.gg')" prop="productType" align="center" />
<el-editable-column :label="$t('Hmodule.dw')" prop="unit" align="center" />
<!-- <el-editable-column prop="basicQuantity" align="center" :label="$t('updates.jbel')" />-->
<el-editable-column :label="$t('updates.rksl')" prop="actualEnterQuantity" align="center" />
<el-editable-column :label="$t('update4.enterPrice')" prop="enterPrice" align="center" />
<el-editable-column :label="$t('updates.rkje')" prop="enterMoney" align="center" >
<template slot-scope="scope">
<p>{{ getSize(scope.row.actualEnterQuantity, scope.row.enterPrice) }}</p>
</template>
</el-editable-column>
<!-- <el-editable-column :edit-render="{name: 'ElInput'}" :label="$t('updates.bz')" prop="remarks" align="center" />-->
</el-editable>
<el-editable-column prop="invoiceQuantity" align="center" label="已开票数量" min-width="100px" />
<el-editable-column v-if="jundgeprice()" prop="noinvoiceQuantity" align="center" label="未开票数量" min-width="100px" >
<el-editable-column :label="$t('updates.rksl')" prop="actualEnterQuantity" align="center" />
<el-editable-column :label="$t('update4.enterPrice')" prop="enterPrice" align="center" />
<el-editable-column :label="$t('updates.rkje')" prop="enterMoney" align="center" >
<template slot-scope="scope">
<p>{{ getSize(scope.row.actualEnterQuantity, scope.row.enterPrice) }}</p>
</template>
</el-editable-column>
<!-- <el-editable-column :edit-render="{name: 'ElInput'}" :label="$t('updates.bz')" prop="remarks" align="center" />-->
</el-editable-column></el-editable>
</div>
</el-card>
<!-- 合计信息 -->

View file

@ -137,7 +137,7 @@
</el-editable-column>
<el-editable-column :label="$t('update4.enterPrice')" prop="enterPrice" align="center" min-width="150px"/>
<el-editable-column :label="$t('update4.enterMoney')" prop="enterMoney" align="center" min-width="150px"/>
<el-editable-column :label="$t('StockQuery.taxRate')" prop="taxRate" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.enterQuantity')" prop="enterQuantity" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.damageQuantity')" prop="damageQuantity" align="center" min-width="150px"/>
</el-editable>
@ -191,7 +191,7 @@
<p>{{ getdiscountMoney(scope.row.includeTaxMoney, scope.row.discountRate, scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('StockQuery.taxRate')" prop="taxRate" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.outQuantity')" prop="outQuantity" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.damageQuantity')" prop="damageQuantity" align="center" min-width="150px"/>
</el-editable>

View file

@ -107,6 +107,7 @@
<el-editable-column :label="$t('updates.ybjsl')" prop="reportCheckingQuantity" align="center" width="150px"/>
<!-- <el-editable-column :label="$t('updates.jgf')" prop="money" align="center" />
<el-editable-column :label="$t('Hmodule.je')" prop="totalMoney" align="center" /> -->
<el-editable-column :label="$t('StockQuery.taxRate')" prop="taxRate" align="center" min-width="150px"/>
<el-editable-column :label="$t('update4.enterPrice')" prop="enterPrice" align="center" min-width="150px"/>
<el-editable-column :label="$t('update4.enterMoney')" prop="enterMoney" align="center" min-width="150px"/>
</el-editable>
@ -142,6 +143,7 @@
</el-editable-column>
<el-editable-column :label="$t('stockTrackList.price')" prop="includeTaxPrice" align="center" min-width="150px"/>
<el-editable-column :label="$t('stockTrackList.money')" prop="includeTaxMoney" align="center" min-width="150px"/>
<el-editable-column :label="$t('StockQuery.taxRate')" prop="taxRate" align="center" min-width="150px"/>
<el-editable-column :label="$t('repair.Discountrate')" prop="discountRate" align="center" min-width="150px"/>
<el-editable-column :label="$t('repair.Discountamount')" prop="discountMoney" align="center" min-width="150px"/>
</el-editable>

View file

@ -137,6 +137,7 @@
</el-editable-column>
<el-editable-column :label="$t('update4.enterPrice')" prop="enterPrice" align="center" min-width="150px"/>
<el-editable-column :label="$t('update4.enterMoney')" prop="enterMoney" align="center" min-width="150px"/>
<el-editable-column :label="$t('StockQuery.taxRate')" prop="taxRate" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.enterQuantity')" prop="enterQuantity" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.damageQuantity')" prop="damageQuantity" align="center" min-width="150px"/>
</el-editable>
@ -190,6 +191,7 @@
<p>{{ getdiscountMoney(scope.row.includeTaxMoney, scope.row.discountRate, scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('StockQuery.taxRate')" prop="taxRate" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.outQuantity')" prop="outQuantity" align="center" min-width="150px"/>
<el-editable-column :label="$t('Hmodule.damageQuantity')" prop="damageQuantity" align="center" min-width="150px"/>
</el-editable>

View file

@ -320,6 +320,7 @@ export default {
totalMoney: 0,
enterQuantity: 0,
damageQuantity: 0,
taxRate: item.taxRate,
idx: item.id,
includeTaxPrice: item.includeTaxPrice,
discountRate: item.discountRate
@ -360,6 +361,7 @@ export default {
for (const j in finalproduct) {
if (productDetail[i].idx === finalproduct[j].idx) {
// finalproduct[j].money = productDetail[i].money
finalproduct[j].taxRate = productDetail[i].taxRate
finalproduct[j].price = productDetail[i].price
finalproduct[j].includeTaxPrice = productDetail[i].includeTaxPrice
finalproduct[j].includeTaxMoney = Number(productDetail[i].includeTaxPrice) * productDetail[i].quantity

View file

@ -1079,6 +1079,9 @@ export default {
},
//
handlesave() {
delete this.personalForm.receiptDetails
delete this.personalForm.approvalUseVos
if (this.personalForm.couponSupportOld === null || this.personalForm.couponSupportOld === '' || this.personalForm.couponSupportOld === undefined) {
this.personalForm.couponSupportOld = 0
}
@ -1181,6 +1184,8 @@ export default {
const parms = JSON.stringify(Data)
this.$refs.personalForm.validate((valid) => {
if (valid) {
console.log('parms', parms)
console.log('parms2', parms2)
updatereceipt2(parms, parms2).then(res => {
if (res.data.ret === 200) {
this.$notify({

View file

@ -187,7 +187,7 @@ export default {
productid: '',
code: '',
productname: '',
categoryid: '99',
categoryid: '',
typeid: '',
isactive: '',
Productid: '',

View file

@ -71,6 +71,15 @@
<el-input v-model="personalForm.applyNumber" style="width: 200px" disabled clearable/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('SaleOut.saleType')" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-select v-model="personalForm.saleType" style="width: 200px" @change="handleChangeSaleType">
<el-option :label="$t('prompt.xj')" value="1" />
<el-option :label="$t('prompt.fq')" value="2" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('ReturnExchange.handlePersonId')" prop="handlePersonId" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input v-model="handlePersonId" style="width: 200px" @focus="handlechooseStock"/>
@ -108,6 +117,7 @@
<el-editable
ref="editable"
:data.sync="list2"
:key="talbeKey"
:edit-config="{ showIcon: true, showStatus: true}"
:edit-rules="validRules"
class="click-table1"
@ -350,6 +360,8 @@ export default {
return time.getTime() > _now || time.getTime() < sevenDays
}
},
talbeKey: 1,
saleOutData: {},
saveLoading: false,
moreaction: [],
productnumber: null,
@ -395,7 +407,8 @@ export default {
stat: '1',
diffMoney: '0.00',
sourceMoney: '0.00',
isManila: 2
isManila: 2,
saleType: ''
},
//
personalrules: {
@ -462,8 +475,17 @@ export default {
}
console.log('num1', num1)
console.log('num2', num2)
this.personalForm.shouldMoney = (num2 - num1).toFixed(6)
this.personalForm.diffMoney = (num2 - num1).toFixed(6)
this.personalForm.shouldMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
this.personalForm.diffMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
// if (this.personalForm.saleType === '1') {
// this.personalForm.shouldMoney = (num2 - num1).toFixed(6)
// this.personalForm.diffMoney = (num2 - num1).toFixed(6)
// } else if (this.personalForm.saleType === '2') {
// this.personalForm.shouldMoney = 0 - Number(this.saleOutData.shouldMoney)
// this.personalForm.diffMoney = 0 - Number(this.saleOutData.shouldMoney)
// }
},
deep: true,
immediate: true
@ -481,8 +503,16 @@ export default {
console.log('list3', this.list3)
console.log('num1', num1)
console.log('num2', num2)
this.personalForm.shouldMoney = (num2 - num1).toFixed(6)
this.personalForm.diffMoney = (num2 - num1).toFixed(6)
this.personalForm.shouldMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
this.personalForm.diffMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
// if (this.personalForm.saleType === '1') {
// this.personalForm.shouldMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
// this.personalForm.diffMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
// } else if (this.personalForm.saleType === '2') {
// this.personalForm.shouldMoney = this.saleOutData.shouldMoney
// this.personalForm.diffMoney = this.saleOutData.shouldMoney
// }
},
deep: true,
immediate: true
@ -496,6 +526,23 @@ export default {
_that = this
},
methods: {
/**
*
* @param val 改变数据
*/
handleChangeSaleType(val) {
console.log('val', val)
console.log('this.personalForm.saleOutData', this.saleOutData)
if (this.saleOutData.saleType === 2 && val === '1') {
this.$set(this.personalForm, 'sourceMoney', this.saleOutData.shouldMoney)
this.personalForm.shouldMoney = 0 - Number(this.saleOutData.shouldMoney)
this.personalForm.diffMoney = 0 - Number(this.saleOutData.shouldMoney)
} else if (this.saleOutData.saleType === 2 && val === '2') {
this.$set(this.personalForm, 'sourceMoney', this.saleOutData.shouldMoney)
this.personalForm.shouldMoney = 0 - Number(this.saleOutData.shouldMoney)
this.personalForm.diffMoney = 0 - Number(this.saleOutData.shouldMoney)
}
},
//
handleSelectionChange(val) {
console.log(val)
@ -993,6 +1040,7 @@ export default {
saleOutDetail(val) {
console.log('saleout data', val)
this.list2 = val
this.talbeKey = Math.random()
// this.$refs.editable.clear()
// for (let i = 0; i < val.length; i++) {
// this.$refs.editable.insert(val[i])
@ -1000,16 +1048,24 @@ export default {
},
saleOutdata(val) {
console.log(val)
this.saleOutData = val
// this.personalForm.isManila = val.isManila
this.personalForm.applyNumber = val.applyNumber
this.personalForm.sourceNumber = val.number
this.personalForm.sourceMoney = val.allIncludeTaxMoney
this.personalForm.customerType = String(val.customerType)
this.personalForm.saleType = String(val.saleType)
if (this.personalForm.saleType === '1') {
this.personalForm.sourceMoney = val.allIncludeTaxMoney
this.personalForm.diffMoney = val.allIncludeTaxMoney
} else if (this.personalForm.saleType === '2') {
this.personalForm.sourceMoney = val.shouldMoney
this.personalForm.diffMoney = val.shouldMoney
}
this.Issource = true
this.customerId = val.customerName
this.personalForm.customerPhone = val.phoneNumber
this.personalForm.customerId = val.customerId
this.personalForm.diffMoney = val.actualMoney
// this.personalForm.sourceMoney = val.actualMoney
this.repositoryId = val.saleRepositoryName
this.personalForm.repositoryId = val.saleRepositoryId
@ -1076,7 +1132,8 @@ export default {
customerType: '2',
exchangeDate: null,
stat: '1',
isManila: 2
isManila: 2,
saleType: ''
}
this.customerId = ''

View file

@ -328,6 +328,7 @@ export default {
detaildata() {
this.personalForm = this.detaildata
this.testMoney = this.detaildata.diffMoney
this.personalForm.shouldMoney = this.detaildata.shouldMoney
this.list2 = this.personalForm.returnExchangeRetreatVos
this.list3 = this.personalForm.returnExchangeOutVos
for (const i in this.list2) {

View file

@ -64,6 +64,14 @@
<el-input v-model="personalForm.applyNumber" style="margin-left: 18px;width: 200px" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('SaleOut.saleType')" style="width: 100%;">
<el-select v-model="personalForm.saleType" style="margin-left: 18px;width: 200px" @change="handleChangeSaleType">
<el-option :label="$t('prompt.xj')" value="1" />
<el-option :label="$t('prompt.fq')" value="2" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('ReturnExchange.handlePersonId')" prop="handlePersonId" style="width: 100%;">
<el-input v-model="handlePersonId" style="margin-left: 18px;width: 200px" @focus="handlechooseStock"/>
@ -100,6 +108,7 @@
<el-editable
ref="editable"
:data.sync="list2"
:key="talbeKey"
:edit-config="{ showIcon: true, showStatus: true}"
:edit-rules="validRules"
class="click-table1"
@ -331,6 +340,8 @@ export default {
return time.getTime() > _now || time.getTime() < sevenDays
}
},
talbeKey: 1,
saleOutData: {},
batchlist: [],
packagecontrol: false,
//
@ -417,6 +428,8 @@ export default {
this.customerId = this.personalForm.customerName
this.handlePersonId = this.personalForm.handlePersonName
this.repositoryId = this.personalForm.repositoryName
this.personalForm.shouldMoney = this.detaildata.shouldMoney
this.list2 = this.personalForm.returnExchangeRetreatVos
for (const i in this.list2) {
this.list2[i].taxPrice = this.list2[i].salePrice + this.list2[i].taxMoney
@ -435,7 +448,12 @@ export default {
}
console.log('num1', num1)
console.log('num2', num2)
this.personalForm.diffMoney = (num2 - num1).toFixed(6)
console.log('this.saleOutData', this.saleOutData)
if (this.saleOutData) {
this.personalForm.shouldMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
this.personalForm.diffMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
}
},
deep: true,
immediate: true
@ -453,7 +471,11 @@ export default {
console.log('list3', this.list3)
console.log('num1', num1)
console.log('num2', num2)
this.personalForm.diffMoney = (num2 - num1).toFixed(6)
console.log('this.saleOutData', this.saleOutData)
if (this.saleOutData) {
this.personalForm.shouldMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
this.personalForm.diffMoney = (num2 - Number(this.saleOutData.shouldMoney)).toFixed(6)
}
},
deep: true,
immediate: true
@ -466,6 +488,23 @@ export default {
_that = this
},
methods: {
/**
*
* @param val 改变数据
*/
handleChangeSaleType(val) {
console.log('val', val)
console.log('this.personalForm.saleOutData', this.saleOutData)
if (this.saleOutData.saleType === 2 && val === '1') {
this.$set(this.personalForm, 'sourceMoney', this.saleOutData.shouldMoney)
this.personalForm.shouldMoney = 0 - Number(this.saleOutData.shouldMoney)
this.personalForm.diffMoney = 0 - Number(this.saleOutData.shouldMoney)
} else if (this.saleOutData.saleType === 2 && val === '2') {
this.$set(this.personalForm, 'sourceMoney', this.saleOutData.shouldMoney)
this.personalForm.shouldMoney = 0 - Number(this.saleOutData.shouldMoney)
this.personalForm.diffMoney = 0 - Number(this.saleOutData.shouldMoney)
}
},
isEdit4(row) {
console.log('222', row)
const re = row.productCode.slice(0, 2)
@ -843,24 +882,35 @@ export default {
},
//
saleOutDetail(val) {
this.$refs.editable.clear()
for (let i = 0; i < val.length; i++) {
this.$refs.editable.insert(val[i])
}
this.list2 = val
this.talbeKey = Math.random()
// this.$refs.editable.clear()
// for (let i = 0; i < val.length; i++) {
// this.$refs.editable.insert(val[i])
// }
},
saleOutdata(val) {
console.log(val)
this.saleOutData = val
this.personalForm.applyNumber = val.applyNumber
this.personalForm.sourceNumber = val.number
this.personalForm.sourceMoney = val.allIncludeTaxMoney
// this.personalForm.sourceMoney = val.allIncludeTaxMoney
this.personalForm.customerType = String(val.customerType)
this.personalForm.saleType = String(val.saleType)
if (this.personalForm.saleType === '1') {
this.personalForm.sourceMoney = val.allIncludeTaxMoney
this.personalForm.diffMoney = val.allIncludeTaxMoney
} else if (this.personalForm.saleType === '2') {
this.personalForm.sourceMoney = val.shouldMoney
this.personalForm.diffMoney = val.shouldMoney
}
this.Issource = true
this.customerId = val.customerName
// this.personalForm.isManila = val.isManila
this.personalForm.customerPhone = val.phoneNumber
this.personalForm.customerId = val.customerId
this.personalForm.diffMoney = val.actualMoney
// this.personalForm.diffMoney = val.actualMoney
// this.personalForm.sourceMoney = val.actualMoney
this.repositoryId = val.saleRepositoryName
this.personalForm.repositoryId = val.saleRepositoryId

View file

@ -1924,7 +1924,7 @@ export default {
// }
} else if (val === '6') {
this.IsSourceNumber = true
this.Isproduct = true
this.Isproduct = false
this.personalForm.saleType = '1'
} else if (val === '2') {
this.Isproduct = true

View file

@ -1968,7 +1968,7 @@ export default {
// }
} else if (val === '6') {
this.IsSourceNumber = true
this.Isproduct = true
this.Isproduct = false
this.personalForm.saleType = '1'
} else if (val === '2') {
this.Isproduct = true

View file

@ -123,9 +123,7 @@
<el-col :span="6">
<el-form-item
:label="$t('StockInvoice.invoiceNumber')"
:rules="$store.getters.countryId === 2? personalrules.invoiceNumber: [
{ required: true, message: '请输入发票号', trigger: 'blur' }
]"
prop="invoiceNumber"
style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input v-model="personalForm.invoiceNumber" style="width: 200px" clearable/>
@ -301,6 +299,23 @@ export default {
callback()
}
}
const validatePass8 = (rule, value, callback) => {
console.log('value', value)
console.log('this.$store.getters.countryId', this.$store.getters.countryId)
if (this.$store.getters.countryId === 2 && value.length !== 8) {
callback(new Error('发票号位数不正确'))
} else {
callback()
}
// :rules="$store.getters.countryId === 2? personalrules.invoiceNumber: [
// { required: true, validator:validatePass8, trigger: 'blur' }
// ]"
// if (this.personalForm.deductionMoney > this.yufu) {
// callback(new Error(''))
// } else {
// callback()
// }
}
return {
repositorycontrol: false,
//
@ -366,7 +381,7 @@ export default {
//
personalrules: {
invoiceNumber: [
{ message: '请输入发票号', trigger: 'blur' }
{ required: true, validator: validatePass8, trigger: 'blur' }
],
customerPay: [
{ required: true, message: '请输入客户支付金额', trigger: 'change' }

View file

@ -120,9 +120,6 @@
<el-col :span="12">
<el-form-item
:label="$t('StockInvoice.invoiceNumber')"
:rules="$store.getters.countryId === 2? personalrules.invoiceNumber: [
{ required: true, message: '请输入发票号', trigger: 'blur' }
]"
prop="invoiceNumber"
style="width: 100%;">
<el-input v-model="personalForm.invoiceNumber" style="margin-left: 18px;width: 200px" clearable/>
@ -289,6 +286,15 @@ export default {
callback()
}
}
const validatePass8 = (rule, value, callback) => {
console.log('value', value)
console.log('this.$store.getters.countryId', this.$store.getters.countryId)
if (this.$store.getters.countryId === 2 && value.length !== 8) {
callback(new Error('发票号位数不正确'))
} else {
callback()
}
}
return {
personalForm2: {
couponSupports: [
@ -345,7 +351,7 @@ export default {
//
personalrules: {
invoiceNumber: [
{ message: '请输入发票号', trigger: 'change' }
{ required: true, validator: validatePass8, trigger: 'blur' }
],
customerPay: [
{ required: true, message: '请输入客户支付金额', trigger: 'change' }

View file

@ -64,6 +64,11 @@
<span>{{ scope.row.supplierName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('updates.wbgc')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('ShouldPayList.payDate')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.payDate }}</span>

View file

@ -140,22 +140,22 @@
<span>{{ scope.row.stockPersonName }}</span>
</template>
</el-table-column>
<el-table-column v-if="jundgeprice()" :label="$t('StockArrival.allMoney')" :resizable="false" align="center" min-width="100">
<el-table-column v-if="jundgeprice()" :label="$t('StockArrival.allMoney')" :resizable="true" align="center" min-width="100">
<template slot-scope="scope">
<span>{{ scope.row.allMoney }}</span>
</template>
</el-table-column>
<el-table-column v-if="jundgeprice()" :label="$t('StockArrival.allTaxMoney')" :resizable="false" align="center" min-width="100">
<el-table-column v-if="jundgeprice()" :label="$t('StockArrival.allTaxMoney')" :resizable="true" align="center" min-width="100">
<template slot-scope="scope">
<span>{{ scope.row.allTaxMoney }}</span>
</template>
</el-table-column>
<el-table-column v-if="jundgeprice()" :label="$t('StockArrival.allIncludeTaxMoney')" :resizable="false" align="center" min-width="100">
<el-table-column v-if="jundgeprice()" :label="$t('StockArrival.allIncludeTaxMoney')" :resizable="true" align="center" min-width="100">
<template slot-scope="scope">
<span>{{ scope.row.allIncludeTaxMoney }}</span>
</template>
</el-table-column>
<el-table-column v-if="jundgeprice()" :label="$t('StockOrder.discountMoney')" :resizable="false" align="center" min-width="100">
<el-table-column v-if="jundgeprice()" :label="$t('StockOrder.discountMoney')" :resizable="true" align="center" min-width="100">
<template slot-scope="scope">
<span>{{ scope.row.allDiscountMoney }}</span>
</template>
@ -652,10 +652,10 @@ export default {
const newarr = res.data.data.content.list.map(item => {
return item.stockArrivalDetailVos
})
console.table('newarr==============', newarr)
// console.table('newarr==============', newarr)
const newarr2 = [].concat.apply([], newarr)
const processarr = this._.cloneDeep(newarr2)
console.table('newarr2==============', newarr2)
// console.table('newarr2==============', newarr2)
for (const i in needlist) {
for (const j in processarr) {
if (needlist[i].id === processarr[j].stockArrivalId) {
@ -731,22 +731,7 @@ export default {
this.getemplist.endTime = this.date[1]
}
this.getemplist.pageNum = 1
searchstockArrival(this.getemplist).then(res => {
if (res.data.ret === 200) {
this.list = res.data.data.content.list
for (const j in this.list) {
const newarr = []
for (const i in this.list[j].stockArrivalDetailVos) {
newarr.push(this.list[j].stockArrivalDetailVos[i].productName)
}
this.list[j].presentdata = newarr.join(' || ')
}
this.total = res.data.data.content.totalCount
// this.restFilter()
} else {
// this.restFilter()
}
})
this.getlist()
},
// focus
handlechooseStock() {

View file

@ -192,21 +192,6 @@
@input="gettaxRate(scope.row)"/>
</template>
</el-editable-column>
<el-editable-column :label="$t('Hmodule.je')" prop="money" align="center" min-width="150px">
<template slot-scope="scope">
<p>{{ getMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.hsje')" prop="includeTaxMoney" align="center" min-width="150px">
<template slot-scope="scope">
<p>{{ getTaxMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.se')" prop="tax" align="center" min-width="150px">
<template slot-scope="scope">
<p>{{ getTaxMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.zk')" prop="discountRate" align="center" min-width="170px">
<template slot="edit" slot-scope="scope">
<el-input-number
@ -223,6 +208,22 @@
@change="getdiscountMoney(scope.row)"/>
</template>
</el-editable-column>
<el-editable-column :label="$t('Hmodule.je')" prop="money" align="center" min-width="150px">
<template slot-scope="scope">
<p>{{ getMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.hsje')" prop="includeTaxMoney" align="center" min-width="150px">
<template slot-scope="scope">
<p>{{ getTaxMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.se')" prop="tax" align="center" min-width="150px">
<template slot-scope="scope">
<p>{{ getTaxMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.ydbh')" prop="sourceNumber" align="center" min-width="150px"/>
<el-editable-column :label="$t('updates.dddh')" prop="orderNumber" align="center" min-width="150px"/>
</el-editable>

View file

@ -9,8 +9,9 @@
<el-row>
<el-col :span="6">
<el-form-item :label="$t('StockInvoice.sourceType')" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-select v-model="personalForm.sourceType" style="width: 200px">
<el-select v-model="personalForm.sourceType" style="width: 200px" @change="handleChange">
<el-option value="1" label="采购入库单" />
<el-option value="2" label="委外入库单" />
</el-select>
</el-form-item>
</el-col>
@ -39,13 +40,19 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col v-if="personalForm.sourceType === '1'" :span="6">
<el-form-item :label="$t('StockInvoice.supplierId')" prop="supplierId" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input v-model="supplierId" style="width: 200px" clearable @focus="handlechoose" @clear="clearinfo"/>
<my-supplier :control.sync="empcontrol" @supplierName="supplierName"/>
<my-emp :control.sync="stockControl" @stockName="stockName"/>
</el-form-item>
</el-col>
<el-col v-if="personalForm.sourceType === '2'" :span="6">
<el-form-item :label="$t('OutSourcing.outFactoryId')" prop="outFactoryId" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input v-model="outFactoryId" style="width: 200px" clearable @focus="chooseFactory"/>
</el-form-item>
<my-factory :factorycontrol.sync="factorycontrol" @factoryName="factoryName"/>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('StockInvoice.settleMode')" prop="settleMode" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-select v-model="personalForm.settleMode" placeholder="请选择结算方式" style="width: 200px" @change="change()">
@ -153,6 +160,8 @@
<div class="buttons" style="margin-top: 35px;margin-bottom: 10px;">
<el-button style="width: 130px" @click="handleAddSouce">{{ $t('updates.cydzxz') }}</el-button>
<my-enter :entercontrol.sync="entercontrol" :supp.sync="supp" :checklist.sync="checklist" @enter="enter" @enterinfo="enterinfo"/>
<my-outsource :outsourcecontrol.sync="outsourcecontrol" :factoryname.sync="outFactoryId" @outSource="outSource"/>
<!-- <el-button :disabled="addpro" @click="handleAddproduct">{{ $t('Hmodule.tjsp') }}</el-button>-->
<my-detail :control.sync="control" @product="productdetail"/>
<el-button type="danger" @click="$refs.editable.removeSelecteds()">{{ $t('Hmodule.delete') }}</el-button>
@ -164,6 +173,7 @@
<el-editable
ref="editable"
:data.sync="list2"
:key="tableKey"
:edit-config="{ showIcon: true, showStatus: true}"
:edit-rules="validRules"
:summary-method="getSummaries"
@ -225,6 +235,24 @@
@input="gettaxRate(scope.row, scope)"/>
</template> -->
</el-editable-column>
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.zk')" prop="discountRate" align="center" min-width="170px">
<template slot="edit" slot-scope="scope">
<el-input-number
v-show="jundgeprice()"
:precision="6"
v-model="scope.row.discountRate"
@input="getdiscountRate(scope.row, scope)"/>
</template>
</el-editable-column>
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.cke')" prop="discountMoney" align="center" min-width="170px">
<template slot="edit" slot-scope="scope">
<el-input-number
v-show="jundgeprice()"
:precision="6"
v-model="scope.row.discountMoney"
@change="getdiscountMoney(scope.row)"/>
</template>
</el-editable-column>
<el-editable-column :label="$t('Hmodule.je')" prop="money" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getMoney(scope.row) }}</p>
@ -240,24 +268,18 @@
<p v-show="jundgeprice()">{{ getTaxMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.zk')" prop="discountRate" align="center" min-width="170px">
<template slot="edit" slot-scope="scope">
<el-input-number
v-show="jundgeprice()"
:precision="2"
v-model="scope.row.discountRate"
@input="getdiscountRate(scope.row, scope)"/>
<el-editable-column :label="$t('update4.zhehoujine')" prop="discountreduceMoney" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getdiscountreduceMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.cke')" prop="discountMoney" align="center" min-width="170px">
<template slot="edit" slot-scope="scope">
<el-input-number
v-show="jundgeprice()"
:precision="2"
v-model="scope.row.discountMoney"
@change="getdiscountMoney(scope.row)"/>
<el-editable-column :label="$t('update4.zhehouhanshuijine')" prop="discountreduceMoney2" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getdiscountreduceMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.ydbh')" prop="sourceNumber" align="center" min-width="150px"/>
<el-editable-column :label="$t('updates.dddh')" prop="orderNumber" align="center" min-width="150px"/>
</el-editable>
@ -298,6 +320,13 @@
<el-input v-model="allMoneyMoveDiscount" style="width: 200px" disabled/>
</el-form-item>
</el-col>
<el-col v-if="jundgeprice()" :span="6">
<el-form-item :label="$t('update4.zhehoujineheji')" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input v-model="alldiscountmoney2" style="width: 200px" disabled/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
@ -370,6 +399,7 @@
</template>
<script>
import { searchoutsourcing } from '@/api/OutSourcing'
import '@/directive/noMoreClick/index.js'
import { itemList } from '@/api/SubjectFinance'
import { countlist } from '@/api/public'
@ -388,10 +418,13 @@ import MyOrder from './components/MyOrder'
import MyArrival from './components/MyArrival'
import MyEnter from './components/MyEnter'
import MyRepository from './components/MyRepository'
import MyFactory from './components/MyFactory'
import MyOutsource from './components/MyOutsource'
var _that
export default {
name: 'AddStockInvoice',
components: { MyRepository, MyArrival, MyOrder, MyLnquiry, MyDelivery, MyPlan, MyApply, MySupplier, MyDetail, MyEmp, MyEnter },
components: { MyRepository, MyArrival, MyOrder, MyLnquiry, MyDelivery, MyPlan, MyApply, MySupplier, MyDetail, MyEmp, MyEnter, MyFactory, MyOutsource },
data() {
const validatePass = (rule, value, callback) => {
console.log(this.handlePersonId)
@ -427,12 +460,25 @@ export default {
callback()
}
}
const validatePass6 = (rule, value, callback) => {
console.log(value)
if (this.outFactoryId === undefined || this.outFactoryId === null || this.outFactoryId === '') {
callback(new Error('请选择外包工厂'))
} else {
callback()
}
}
return {
pickerOptions1: {
disabledDate: (time) => {
return time.getTime() < new Date().getTime() - 8.64e7
}
},
alldiscountmoney2: '',
tableKey: 1,
outsourcecontrol: false,
factorycontrol: false,
outFactoryId: '',
downloadLoading: false,
checklist: [],
//
@ -504,6 +550,9 @@ export default {
},
//
personalrules: {
outFactoryId: [
{ required: true, validator: validatePass6, trigger: 'change' }
],
supplierId: [
{ required: true, validator: validatePass2, trigger: 'change' }
],
@ -557,6 +606,118 @@ export default {
_that = this
},
methods: {
async outSource(val) {
console.log('val', val)
const outSourceParms = {
number: val.sourceNumber,
pageNum: 1,
pageSize: 10
}
const outSourceData = await new Promise((resovle, reject) => {
searchoutsourcing(outSourceParms).then((res) => {
resovle(res.data.data.content.list)
})
})
console.log('outSourceData', outSourceData)
const outsourcingDetailVos = outSourceData[0].outsourcingDetailVos
const outsourcingEnterDetailVos = outSourceData[0].outsourcingEnterDetailVos
// eslint-disable-next-line prefer-const
let newarr = []
for (const i in outsourcingEnterDetailVos) {
for (const j in outsourcingDetailVos) {
if (outsourcingDetailVos[j].idx === outsourcingEnterDetailVos[i].idx) {
// eslint-disable-next-line prefer-const
let obj = {}
obj.productCode = outsourcingEnterDetailVos[j].productCode
obj.price = outsourcingDetailVos[j].price
obj.money = outsourcingDetailVos[j].totalMoney
obj.includeTaxPrice = outsourcingDetailVos[j].includeTaxPrice
obj.includeTaxMoney = outsourcingDetailVos[j].includeTaxMoney
obj.taxRate = outsourcingDetailVos[j].taxRate
newarr.push(obj)
}
}
}
console.log('newarr', newarr)
for (const x in newarr) {
for (const y in val.outsourceEnterDetailVos) {
if (newarr[x].productCode === val.outsourceEnterDetailVos[y].productCode) {
newarr[x].productName = val.outsourceEnterDetailVos[y].productName
newarr[x].productType = val.outsourceEnterDetailVos[y].productType
newarr[x].typeName = val.outsourceEnterDetailVos[y].productType
newarr[x].typeId = val.outsourceEnterDetailVos[y].typeId
newarr[x].unit = val.outsourceEnterDetailVos[y].unit
newarr[x].color = val.outsourceEnterDetailVos[y].color
newarr[x].arrivalQuantity = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].retreatQuantity = 0
newarr[x].retreatReason = val.outsourceEnterDetailVos[y].retreatReason
newarr[x].sourceNumber = val.enterNumber
newarr[x].sourceSerialNumber = val.outsourceEnterDetailVos[y].id
newarr[x].remark = val.outsourceEnterDetailVos[y].remark
newarr[x].quantity = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].quantity2 = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].discountMoney = 0
newarr[x].discountRate = 0
newarr[x].actualEnterQuantity = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].invoiceQuantity = 0
}
}
}
this.list2 = newarr
this.tableKey = Math.random()
// const detailData = val.outsourceEnterDetailVos.map((item) => {
// return {
// productCode: item.productCode,
// productName: item.productName,
// productType: item.productType,
// typeName: item.productType,
// typeId: item.typeId,
// unit: item.unit,
// color: item.color,
// arrivalQuantity: item.actualEnterQuantity,
// retreatQuantity: 0,
// retreatReason: '',
// sourceNumber: item.sourceNumber,
// sourceSerialNumber: item.id,
// remark: item.remark,
// quantity: item.actualEnterQuantity,
// quantity2: item.actualEnterQuantity,
// price: item.enterPrice,
// includeTaxPrice: item.enterPrice,
// taxRate: 0,
// money: item.enterMoney,
// includeTaxMoney: 0,
// taxMoney: 0,
// discountMoney: 0.0,
// discountRate: 0.0,
// actualEnterQuantity: item.actualEnterQuantity,
// invoiceQuantity: item.invoiceQuantity,
// unJudgeQuantity: item.unJudgeQuantity
// }
// })
// this.list2 = detailData
// this.tableKey = Math.random()
},
handleChange() {
this.outFactoryId = ''
this.personalForm.outFactoryId = ''
this.supplierId = ''
this.supp = ''
this.personalForm.supplierId = ''
this.list2 = []
this.tableKey = Math.random()
},
// focus
chooseFactory() {
this.factorycontrol = true
},
//
factoryName(val) {
this.outFactoryId = val.factoryName
this.personalForm.outFactoryId = val.id
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => {
return v[j]
@ -566,17 +727,17 @@ export default {
const list = this.$refs.editable.getRecords()
console.log('list', list)
this.downloadLoading = true
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['物料编码', '产品名称', '规格型号', '颜色', '数量', '单价', '含税价', '税率', '金额', '含税金额', '税额', '折扣', '折扣额', '源单编号', '订单单号']
const filterVal = ['productCode', 'productName', 'productType', 'color', 'quantity', 'price', 'includeTaxPrice', 'taxRate', 'money', 'includeTaxMoney', 'tax', 'discountRate', 'discountMoney', 'sourceNumber', 'orderNumber']
const data = this.formatJson(filterVal, list)
excel.export_json_to_excel({
header: tHeader,
data,
filename: '采购发票明细'
})
this.downloadLoading = false
})
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['物料编码', '产品名称', '规格型号', '颜色', '数量', '单价', '含税价', '税率', '金额', '含税金额', '税额', '折扣', '折扣额', '源单编号', '订单单号']
const filterVal = ['productCode', 'productName', 'productType', 'color', 'quantity', 'price', 'includeTaxPrice', 'taxRate', 'money', 'includeTaxMoney', 'tax', 'discountRate', 'discountMoney', 'sourceNumber', 'orderNumber']
const data = this.formatJson(filterVal, list)
excel.export_json_to_excel({
header: tHeader,
data,
filename: '采购发票明细'
})
this.downloadLoading = false
})
},
jundgeprice() {
const value = ['1-22-24-115']
@ -699,15 +860,15 @@ export default {
sums[5] = ''
sums[6] = ''
sums[10] = ''
sums[14] = ''
sums[18] = ''
sums[19] = ''
this.allNumber = sums[7]
this.allMoney = sums[11]
this.allTaxMoney = sums[13]
this.allIncludeTaxMoney = sums[12]
this.allDiscountMoney = sums[15]
this.allMoneyMoveDiscount = (sums[12] - sums[15])
this.allMoney = sums[13]
this.allTaxMoney = sums[15]
this.allIncludeTaxMoney = sums[14]
this.allDiscountMoney = sums[12]
this.allMoneyMoveDiscount = sums[17]
this.alldiscountmoney2 = sums[16]
return sums
},
//
@ -777,6 +938,14 @@ export default {
row.includeTaxPrice = (row.price * (1 + row.taxRate / 100)).toFixed(2)
}
},
getdiscountreduceMoney(row) {
row.discountreduceMoney = (Number(row.money) - Number(row.discountMoney)).toFixed(2)
return row.discountreduceMoney
},
getdiscountreduceMoney2(row) {
row.discountreduceMoney2 = (Number(row.includeTaxMoney) - Number(row.discountMoney)).toFixed(2)
return row.discountreduceMoney2
},
//
getincludeTaxPrice(row) {
if (row.price !== 0) {
@ -849,21 +1018,33 @@ export default {
},
//
handleAddSouce() {
if (this.supplierId === null || this.supplierId === undefined || this.supplierId === '') {
this.$notify.error({
title: 'wrong',
message: '请先选择供应商',
duration: 0
})
return false
}
this.entercontrol = true
if (this.list2.length > 0) {
console.log('this.list2========>', this.list2)
this.checklist = this.list2
console.log('this.checklist', this.checklist)
} else {
this.checklist = []
if (this.personalForm.sourceType === '1') {
if (this.supplierId === null || this.supplierId === undefined || this.supplierId === '') {
this.$notify.error({
title: 'wrong',
message: '请先选择供应商',
duration: 0
})
return false
}
this.entercontrol = true
if (this.list2.length > 0) {
console.log('this.list2========>', this.list2)
this.checklist = this.list2
console.log('this.checklist', this.checklist)
} else {
this.checklist = []
}
} else if (this.personalForm.sourceType === '2') {
if (this.outFactoryId === null || this.outFactoryId === undefined || this.outFactoryId === '') {
this.$notify.error({
title: 'wrong',
message: '请先选择外包工厂',
duration: 0
})
return false
}
this.outsourcecontrol = true
}
},
enter(val) {

View file

@ -92,6 +92,11 @@
<span>{{ scope.row.isRed | isRedFilter }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('updates.wbgc')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('StockInvoice.createDate')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.createDate }}</span>

View file

@ -115,6 +115,18 @@
<el-editable-column v-if="jundgeprice()" :label="$t('Hmodule.dj')" prop="price" align="center" min-width="170px"/>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.hsj')" prop="includeTaxPrice" align="center" min-width="170px"/>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.sl')" prop="taxRate2" align="center" min-width="170px"/>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.zk')" prop="discountRate" align="center" min-width="170px"/>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.cke')" prop="discountMoney" align="center" min-width="170px"/>
<el-editable-column :label="$t('update4.zhehoujine')" prop="discountreduceMoney" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getdiscountreduceMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('update4.zhehouhanshuijine')" prop="discountreduceMoney2" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getdiscountreduceMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column v-if="jundgeprice()" :label="$t('Hmodule.je')" prop="money" align="center" min-width="150px"/>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.hsje')" prop="includeTaxMoney" align="center" min-width="150px"/>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.se')" prop="tax" align="center" min-width="150px">
@ -122,8 +134,7 @@
<p>{{ getTaxMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.zk')" prop="discountRate" align="center" min-width="170px"/>
<el-editable-column v-if="jundgeprice()" :label="$t('updates.cke')" prop="discountMoney" align="center" min-width="170px"/>
<el-editable-column :label="$t('updates.ydbh')" prop="sourceNumber" align="center" min-width="150px"/>
<el-editable-column :label="$t('updates.dddh')" prop="orderNumber" align="center" min-width="150px"/>
</el-editable>
@ -267,7 +278,7 @@ export default {
sourceTypeFilter(status) {
const statusMap = {
1: '采购入库',
2: '采购发票'
2: '委外入库单'
}
return statusMap[status]
},
@ -341,6 +352,14 @@ export default {
_that = this
},
methods: {
getdiscountreduceMoney(row) {
row.discountreduceMoney = (Number(row.money) - Number(row.discountMoney)).toFixed(2)
return row.discountreduceMoney
},
getdiscountreduceMoney2(row) {
row.discountreduceMoney2 = (Number(row.includeTaxMoney) - Number(row.discountMoney)).toFixed(2)
return row.discountreduceMoney2
},
jundgeprice() {
const value = ['1-22-24-115']
const roles = this.$store.getters && this.$store.getters.roles

View file

@ -11,7 +11,8 @@
<el-form-item :label="$t('StockInvoice.sourceType')" style="width: 100%;">
<el-select v-model="personalForm.sourceType" disabled style="margin-left: 18px;width: 200px">
<el-option value="1" label="采购入库单" />
<el-option value="2" label="采购发票" />
<el-option value="2" label="委外入库单" />
</el-select>
</el-form-item>
</el-col>
@ -39,12 +40,19 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col v-if="personalForm.sourceType === '1'" :span="12">
<el-form-item :label="$t('StockInvoice.supplierId')" prop="supplierId" style="width: 100%;">
<el-input v-model="supplierId" style="margin-left: 18px;width:200px" clearable @focus="handlechoose"/>
<el-input v-model="supplierId" style="margin-left: 18px;width: 200px" clearable @focus="handlechoose" @clear="clearinfo"/>
<my-supplier :control.sync="empcontrol" @supplierName="supplierName"/>
<my-emp :control.sync="stockControl" @stockName="stockName"/>
</el-form-item>
</el-col>
<el-col v-if="personalForm.sourceType === '2'" :span="12">
<el-form-item :label="$t('OutSourcing.outFactoryId')" prop="outFactoryId" style="width: 100%;">
<el-input v-model="outFactoryId" style="margin-left: 18px;width: 200px" clearable @focus="chooseFactory"/>
</el-form-item>
<my-factory :factorycontrol.sync="factorycontrol" @factoryName="factoryName"/>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('StockInvoice.settleMode')" prop="settleMode" style="width: 100%;">
<el-select v-model="personalForm.settleMode" placeholder="请选择结算方式" style="margin-left: 18px;width: 200px" @change="change()">
@ -153,6 +161,8 @@
<div class="buttons" style="margin-top: 35px;margin-bottom: 10px;">
<el-button style="width: 130px" @click="handleAddSouce">{{ $t('updates.cydzxz') }}</el-button>
<my-enter :entercontrol.sync="entercontrol" :supp.sync="supp" @enter="enter" @enterinfo="enterinfo"/>
<my-outsource :outsourcecontrol.sync="outsourcecontrol" :factoryname.sync="outFactoryId" @outSource="outSource"/>
<!-- <el-button :disabled="addpro" @click="handleAddproduct">{{ $t('Hmodule.tjsp') }}</el-button>-->
<my-detail :control.sync="control" @product="productdetail"/>
<el-button type="danger" @click="$refs.editable.removeSelecteds()">{{ $t('Hmodule.delete') }}</el-button>
@ -162,6 +172,7 @@
<el-editable
ref="editable"
:data.sync="list2"
:key="tableKey"
:edit-config="{ showIcon: true, showStatus: true}"
:edit-rules="validRules"
:summary-method="getSummaries"
@ -216,21 +227,6 @@
@input="gettaxRate(scope.row, scope)"/>
</template> -->
</el-editable-column>
<el-editable-column :label="$t('Hmodule.je')" prop="money" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.hsje')" prop="includeTaxMoney" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getTaxMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.se')" prop="tax" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getTaxMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :edit-render="{name: 'ElInputNumber', attrs: {min: 0}, type: 'visible'}" :label="$t('updates.zk')" prop="discountRate" align="center" min-width="170px">
<template slot="edit" slot-scope="scope">
<el-input-number
@ -249,6 +245,31 @@
@change="getdiscountMoney(scope.row)"/>
</template>
</el-editable-column>
<el-editable-column :label="$t('Hmodule.je')" prop="money" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.hsje')" prop="includeTaxMoney" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getTaxMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.se')" prop="tax" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getTaxMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('update4.zhehoujine')" prop="discountreduceMoney" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getdiscountreduceMoney(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('update4.zhehouhanshuijine')" prop="discountreduceMoney2" align="center" min-width="150px">
<template slot-scope="scope">
<p v-show="jundgeprice()">{{ getdiscountreduceMoney2(scope.row) }}</p>
</template>
</el-editable-column>
<el-editable-column :label="$t('updates.ydbh')" prop="sourceNumber" align="center" min-width="150px"/>
<el-editable-column :label="$t('updates.dddh')" prop="orderNumber" align="center" min-width="150px"/>
</el-editable>
@ -288,6 +309,11 @@
<el-input v-model="allMoneyMoveDiscount" style="margin-left: 18px;width:200px" disabled/>
</el-form-item>
</el-col>
<el-col v-if="jundgeprice()" :span="6">
<el-form-item :label="$t('update4.zhehoujineheji')" style="margin-left: 18px;width: 100%;margin-bottom: 0">
<el-input v-model="alldiscountmoney2" style="width: 200px" disabled/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
@ -302,6 +328,7 @@
</template>
<script>
import { searchoutsourcing } from '@/api/OutSourcing'
import { itemList } from '@/api/SubjectFinance'
import { updatestockinvoice } from '@/api/StockInvoice'
import { getdeptlist } from '@/api/BasicSettings'
@ -317,10 +344,12 @@ import MyDelivery from './MyDelivery'
import MyLnquiry from './MyLnquiry'
import MyOrder from './MyOrder'
import MyArrival from './MyArrival'
import MyFactory from './MyFactory'
import MyOutsource from './MyOutsource'
// eslint-disable-next-line no-unused-vars
var _that
export default {
components: { MyArrival, MyOrder, MyLnquiry, MyDelivery, MyPlan, MyApply, MySupplier, MyDetail, MyEmp },
components: { MyArrival, MyOrder, MyLnquiry, MyDelivery, MyPlan, MyApply, MySupplier, MyDetail, MyEmp, MyFactory, MyOutsource },
props: {
editcontrol: {
type: Boolean,
@ -365,12 +394,25 @@ export default {
callback()
}
}
const validatePass6 = (rule, value, callback) => {
console.log(value)
if (this.outFactoryId === undefined || this.outFactoryId === null || this.outFactoryId === '') {
callback(new Error('请选择外包工厂'))
} else {
callback()
}
}
return {
pickerOptions1: {
disabledDate: (time) => {
return time.getTime() < new Date().getTime() - 8.64e7
}
},
alldiscountmoney2: '',
tableKey: 1,
outsourcecontrol: false,
factorycontrol: false,
outFactoryId: '',
//
retreatRepositoryId: '',
//
@ -440,6 +482,9 @@ export default {
},
//
personalrules: {
outFactoryId: [
{ required: true, validator: validatePass6, trigger: 'change' }
],
supplierId: [
{ required: true, validator: validatePass2, trigger: 'change' }
],
@ -504,6 +549,118 @@ export default {
_that = this
},
methods: {
async outSource(val) {
console.log('val', val)
const outSourceParms = {
number: val.sourceNumber,
pageNum: 1,
pageSize: 10
}
const outSourceData = await new Promise((resovle, reject) => {
searchoutsourcing(outSourceParms).then((res) => {
resovle(res.data.data.content.list)
})
})
console.log('outSourceData', outSourceData)
const outsourcingDetailVos = outSourceData[0].outsourcingDetailVos
const outsourcingEnterDetailVos = outSourceData[0].outsourcingEnterDetailVos
// eslint-disable-next-line prefer-const
let newarr = []
for (const i in outsourcingEnterDetailVos) {
for (const j in outsourcingDetailVos) {
if (outsourcingDetailVos[j].idx === outsourcingEnterDetailVos[i].idx) {
// eslint-disable-next-line prefer-const
let obj = {}
obj.productCode = outsourcingEnterDetailVos[j].productCode
obj.price = outsourcingDetailVos[j].price
obj.money = outsourcingDetailVos[j].totalMoney
obj.includeTaxPrice = outsourcingDetailVos[j].includeTaxPrice
obj.includeTaxMoney = outsourcingDetailVos[j].includeTaxMoney
obj.taxRate = outsourcingDetailVos[j].taxRate
newarr.push(obj)
}
}
}
console.log('newarr', newarr)
for (const x in newarr) {
for (const y in val.outsourceEnterDetailVos) {
if (newarr[x].productCode === val.outsourceEnterDetailVos[y].productCode) {
newarr[x].productName = val.outsourceEnterDetailVos[y].productName
newarr[x].productType = val.outsourceEnterDetailVos[y].productType
newarr[x].typeName = val.outsourceEnterDetailVos[y].productType
newarr[x].typeId = val.outsourceEnterDetailVos[y].typeId
newarr[x].unit = val.outsourceEnterDetailVos[y].unit
newarr[x].color = val.outsourceEnterDetailVos[y].color
newarr[x].arrivalQuantity = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].retreatQuantity = 0
newarr[x].retreatReason = val.outsourceEnterDetailVos[y].retreatReason
newarr[x].sourceNumber = val.enterNumber
newarr[x].sourceSerialNumber = val.outsourceEnterDetailVos[y].id
newarr[x].remark = val.outsourceEnterDetailVos[y].remark
newarr[x].quantity = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].quantity2 = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].discountMoney = 0
newarr[x].discountRate = 0
newarr[x].actualEnterQuantity = val.outsourceEnterDetailVos[y].actualEnterQuantity
newarr[x].invoiceQuantity = 0
}
}
}
this.list2 = newarr
this.tableKey = Math.random()
// const detailData = val.outsourceEnterDetailVos.map((item) => {
// return {
// productCode: item.productCode,
// productName: item.productName,
// productType: item.productType,
// typeName: item.productType,
// typeId: item.typeId,
// unit: item.unit,
// color: item.color,
// arrivalQuantity: item.actualEnterQuantity,
// retreatQuantity: 0,
// retreatReason: '',
// sourceNumber: item.sourceNumber,
// sourceSerialNumber: item.id,
// remark: item.remark,
// quantity: item.actualEnterQuantity,
// quantity2: item.actualEnterQuantity,
// price: item.enterPrice,
// includeTaxPrice: item.enterPrice,
// taxRate: 0,
// money: item.enterMoney,
// includeTaxMoney: 0,
// taxMoney: 0,
// discountMoney: 0.0,
// discountRate: 0.0,
// actualEnterQuantity: item.actualEnterQuantity,
// invoiceQuantity: item.invoiceQuantity,
// unJudgeQuantity: item.unJudgeQuantity
// }
// })
// this.list2 = detailData
// this.tableKey = Math.random()
},
handleChange() {
this.outFactoryId = ''
this.personalForm.outFactoryId = ''
this.supplierId = ''
this.supp = ''
this.personalForm.supplierId = ''
this.list2 = []
this.tableKey = Math.random()
},
// focus
chooseFactory() {
this.factorycontrol = true
},
//
factoryName(val) {
this.outFactoryId = val.factoryName
this.personalForm.outFactoryId = val.id
},
jundgeprice() {
const value = ['1-22-24-115']
const roles = this.$store.getters && this.$store.getters.roles
@ -659,15 +816,15 @@ export default {
sums[5] = ''
sums[6] = ''
sums[10] = ''
sums[14] = ''
sums[18] = ''
sums[19] = ''
this.allNumber = sums[7]
this.allMoney = sums[11]
this.allTaxMoney = sums[13]
this.allIncludeTaxMoney = sums[12]
this.allDiscountMoney = sums[15]
this.allMoneyMoveDiscount = sums[12] - sums[15]
this.allMoney = sums[13]
this.allTaxMoney = sums[15]
this.allIncludeTaxMoney = sums[14]
this.allDiscountMoney = sums[12]
this.allMoneyMoveDiscount = sums[17]
this.alldiscountmoney2 = sums[16]
return sums
},
//
@ -739,6 +896,14 @@ export default {
return row.tax
},
getdiscountreduceMoney(row) {
row.discountreduceMoney = (Number(row.money) - Number(row.discountMoney)).toFixed(2)
return row.discountreduceMoney
},
getdiscountreduceMoney2(row) {
row.discountreduceMoney2 = (Number(row.includeTaxMoney) - Number(row.discountMoney)).toFixed(2)
return row.discountreduceMoney2
},
//
getTaxMoney(row) {
row.includeTaxMoney = (row.quantity * row.includeTaxPrice).toFixed(2)
@ -795,15 +960,34 @@ export default {
},
//
handleAddSouce() {
if (this.personalForm.supplierId === null || this.personalForm.supplierId === undefined || this.personalForm.supplierId === '') {
this.$notify.error({
title: 'wrong',
message: '请先选择供应商',
duration: 0
})
return false
if (this.personalForm.sourceType === '1') {
if (this.supplierId === null || this.supplierId === undefined || this.supplierId === '') {
this.$notify.error({
title: 'wrong',
message: '请先选择供应商',
duration: 0
})
return false
}
this.entercontrol = true
if (this.list2.length > 0) {
console.log('this.list2========>', this.list2)
this.checklist = this.list2
console.log('this.checklist', this.checklist)
} else {
this.checklist = []
}
} else if (this.personalForm.sourceType === '2') {
if (this.outFactoryId === null || this.outFactoryId === undefined || this.outFactoryId === '') {
this.$notify.error({
title: 'wrong',
message: '请先选择外包工厂',
duration: 0
})
return false
}
this.outsourcecontrol = true
}
this.entercontrol = true
},
enter(val) {
this.$refs.editable.clear()

View file

@ -213,7 +213,7 @@ export default {
default: false
},
supp: {
type: Number,
type: [Number, String],
default: null
},
checklist: {
@ -528,6 +528,7 @@ export default {
actualEnterQuantity: item.actualEnterQuantity,
invoiceQuantity: item.invoiceQuantity,
unJudgeQuantity: item.unJudgeQuantity
}
})
for (let i = 0; i < enterDetail.length; i++) {

View file

@ -0,0 +1,222 @@
<template>
<el-dialog :visible.sync="employeeVisible" :factorycontrol="factorycontrol" :close-on-press-escape="false" width="60%" top="10px" title="选择外包工厂" append-to-body @close="$emit('update:factorycontrol', false)">
<el-card class="box-card" style="margin-top: 10px" shadow="never">
<el-input v-model="getemplist.code" :placeholder="$t('updates.gcbh')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<el-input v-model="getemplist.factoryName" :placeholder="$t('updates.gcmc')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<el-input v-model="getemplist.factoryContactName" :placeholder="$t('updates.gclxr')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<!-- 搜索按钮 -->
<el-button v-waves type="primary" size="small" class="filter-item" icon="el-icon-search" style="width: 86px" round @click="handleFilter">{{ $t('public.search') }}</el-button>
<el-button v-waves icon="el-icon-plus" size="small" class="filter-item" type="success" style="width: 86px" @click="handleAdd">{{ $t('public.add') }}</el-button>
</el-card>
<el-card class="box-card" style="margin-top: 10px" shadow="never">
<!-- 列表开始 -->
<el-table
v-loading="listLoading"
ref="table"
:key="tableKey"
:data="list"
:height="tableHeight"
size="small"
border
fit
highlight-current-row
style="width: 100%;"
@current-change="handleCurrentChange">
<el-table-column :label="$t('OutFactory.factoryNumber')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryNumber }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('OutFactory.factoryName')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('OutFactory.factoryContactPhone')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryContactPhone }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('OutFactory.factoryFax')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryFax }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('OutFactory.factoryContactName')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryContactName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('OutFactory.factoryContactPhone')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.factoryContactPhone }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('OutFactory.unitAddress')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.unitAddress }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('public.createDate')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('public.createPersonName')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.createName }}</span>
</template>
</el-table-column>
</el-table>
<!-- 列表结束 -->
<pagination v-show="total>0" :total="total" :page.sync="getemplist.pagenum" :limit.sync="getemplist.pagesize" @pagination="getlist" />
<!--修改开始=================================================-->
<el-button v-waves class="filter-item" type="success" style="width: 100px;float: left;margin-top: 10px" @click="handleConfirm">{{ $t('Hmodule.sure') }}</el-button>
<!--修改结束=================================================-->
</el-card>
</el-dialog>
</template>
<script>
import { searchoutFactory } from '@/api/OutFactory'
import waves from '@/directive/waves' // Waves directive
import Pagination from '@/components/Pagination'
var _that
export default {
directives: { waves },
components: { Pagination },
props: {
factorycontrol: {
type: Boolean,
default: false
}
},
data() {
return {
tableHeight: 200,
//
employeeVisible: this.factorycontrol,
//
choosedata: '',
//
downloadLoading: false,
//
list: [],
//
total: 0,
//
tableKey: 0,
//
listLoading: true,
//
getemplist: {
pageNum: 1,
pageSize: 10
},
//
personalForm: {},
//
editVisible: false,
//
date: []
}
},
watch: {
factorycontrol() {
this.employeeVisible = this.factorycontrol
this.getlist()
setTimeout(() => {
this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 180
}, 100)
}
},
created() {
this.getlist()
},
beforeCreate() {
_that = this
},
methods: {
getlist() {
//
this.listLoading = true
searchoutFactory(this.getemplist).then(res => {
if (res.data.ret === 200) {
this.list = res.data.data.content.list
this.total = res.data.data.content.totalCount
}
setTimeout(() => {
this.listLoading = false
}, 0.5 * 100)
})
},
//
restFilter() {
},
//
handleFilter() {
this.getemplist.pageNum = 1
searchoutFactory(this.getemplist).then(res => {
if (res.data.ret === 200) {
this.list = res.data.data.content.list
this.total = res.data.data.content.totalCount
// this.restFilter()
} else {
// this.restFilter()
}
})
},
//
handleAdd() {
this.employeeVisible = false
this.$router.push('/OutFactory/AddOutFactory')
},
//
restemplist() {
this.getemplist = {
pageNum: 1,
pageSize: 10
}
},
//
handleCurrentChange(val) {
this.choosedata = val
},
//
handleConfirm() {
this.employeeVisible = false
this.$emit('factoryName', this.choosedata)
}
}
}
</script>
<style scoped>
.ERP-container {
margin-left:10px;
}
.filter-container{
padding: 20px;
padding-left: 0px;
}
.filter-item{
width: 180px;
margin-left: 10px;
padding: 10px 0;
}
.form-name{
font-size: 18px;
color: #373e4f;
margin-bottom: -20px;
margin-top: 30px;
}
.container{
margin-top: 2%;
border: 1px solid #eceff6;
}
</style>

View file

@ -0,0 +1,359 @@
<template>
<el-dialog :visible.sync="employeeVisible" :outsourcecontrol="outsourcecontrol" :close-on-press-escape="false" width="60%" top="10px" title="选择委外入库单" append-to-body @close="$emit('update:outsourcecontrol', false)">
<el-card class="box-card" style="margin-top: 10px" shadow="never">
<el-input v-model="getemplist.title" :placeholder="$t('Stockenter.title')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<el-input v-model="getemplist.enterNumber" :placeholder="$t('Stockenter.enterNumber')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/>
<el-select v-model="getemplist.enterDeptId" :placeholder="$t('updates.rkbm')" size="small" class="filter-item" clearable >
<el-option
v-for="(item, index) in depts"
:key="index"
:value="item.id"
:label="item.deptName"/>
</el-select>
<!-- <el-input v-model="getemplist.outFactoryName" :placeholder="$t('OutSource.outFactoryName')" size="small" class="filter-item" clearable @keyup.enter.native="handleFilter"/> -->
<!-- 更多搜索条件下拉栏 -->
<el-popover
v-model="visible2"
placement="bottom"
width="500"
size="small"
trigger="click">
<el-input v-model="enterPersonId" :placeholder="$t('Stockenter.enterPersonId')" size="small" class="filter-item" clearable style="width: 40%;float: left;margin-left: 20px" @keyup.enter.native="handleFilter" @focus="handlechooseAccept" @clear="restFilter2"/>
<my-accept :accetpcontrol.sync="accetpcontrol" @acceptName="acceptName"/>
<el-input v-model="enterRepositoryId" :placeholder="$t('Stockenter.enterRepositoryId')" size="small" class="filter-item" clearable style="width: 40%;float: right;margin-right: 20px" @keyup.enter.native="handleFilter" @focus="handlechooseRep" @clear="restFilter4"/>
<my-repository :repositorycontrol.sync="repositorycontrol" @repositoryname="repositoryname"/>
<!-- <el-input v-model="acceptPersonId" :placeholder="$t('Stockenter.acceptPersonId')" class="filter-item" clearable style="width: 40%;float: left;margin-left: 20px;margin-top: 20px" @keyup.enter.native="handleFilter" @focus="handlechoose" @clear="restFilter3"/>-->
<my-create :createcontrol.sync="createcontrol" @createname="createname"/>
<!-- <el-input v-model="deliveryPersonId" :placeholder="$t('Stockenter.deliveryPersonId')" class="filter-item" clearable style="width: 40%;float: right;margin-right: 20px;margin-top: 20px" @keyup.enter.native="handleFilter" @focus="handlechooseDelivery" @clear="restFilter"/>-->
<my-delivery :deliverycontrol.sync="deliverycontrol" @deliveryName="deliveryName"/>
<el-date-picker
v-model="date"
type="daterange"
range-separator="-"
unlink-panels
size="small"
start-placeholder="Start"
end-placeholder="End"
value-format="yyyy-MM-dd"
style="margin-top: 20px;margin-left: 20px;width: 434px"/>
<div class="seachbutton" style="width: 100%;float: right;margin-top: 20px">
<el-button v-waves class="filter-item" size="small" type="primary" style="float: right" @click="handleFilter">{{ $t('public.search') }}</el-button>
</div>
<el-button v-waves slot="reference" size="small" type="primary" class="filter-item" style="width: 140px" @click="visible2 = !visible2"><svg-icon icon-class="shaixuan" style="margin-right: 6px"/>{{ $t('public.filter') }}</el-button>
</el-popover>
<el-button v-waves class="filter-item" size="small" type="primary" icon="el-icon-search" style="width: 86px;margin-top:10px" @click="handleFilter">{{ $t('public.search') }}</el-button>
<el-button v-waves icon="el-icon-plus" size="small" class="filter-item" type="success" style="width: 86px" @click="handleAdd">{{ $t('public.add') }}</el-button>
</el-card>
<el-card class="box-card" style="margin-top: 10px" shadow="never">
<!-- 列表开始 -->
<el-table
v-loading="listLoading"
ref="table"
:key="tableKey"
:data="list"
:height="tableHeight"
size="small"
border
fit
highlight-current-row
style="width: 100%;"
@current-change="handleCurrentChange">
<el-table-column :label="$t('Stockenter.id')" :resizable="false" fixed="left" align="center" min-width="80">
<template slot-scope="scope">
<span class="link-type" @click="handleDetail(scope.row)">{{ scope.row.enterNumber }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Stockenter.title')" :resizable="false" fixed="left" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.title }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('OutSource.outFactoryName')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.outFactoryName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Stockenter.deliveryPersonId')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.deliveryPersonName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Stockenter.acceptPersonId')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.acceptPersonName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Stockenter.enterDeptId')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.enterDeptName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Stockenter.endPersonName')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.enterPersonName }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Stockenter.endDate')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.endDate }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('Stockenter.summary')" :resizable="false" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.summary }}</span>
</template>
</el-table-column>
</el-table>
<!-- 列表结束 -->
<pagination v-show="total>0" :total="total" :page.sync="getemplist.pagenum" :limit.sync="getemplist.pagesize" @pagination="getlist" />
<!--修改开始=================================================-->
<el-button v-waves class="filter-item" type="success" style="width: 100px;float: left;margin-top: 10px" @click="handleConfirm">{{ $t('Hmodule.sure') }}</el-button>
<!--修改结束=================================================-->
</el-card>
</el-dialog>
</template>
<script>
import { outsourceEnterlist } from '@/api/OutsourceEnter'
import MyOther from '../../OutSourceEnter/components/MyOther'
import MyRepository from '../../OutSourceEnter/components/MyRepository'
import MyAccept from '../../OutSourceEnter/components/MyAccept'
import MyCreate from '../../OutSourceEnter/components/MyCreate'
import MyDelivery from '../../OutSourceEnter/components/MyDelivery'
import waves from '@/directive/waves' // Waves directive
import Pagination from '@/components/Pagination'
var _that
export default {
directives: { waves },
components: { Pagination, MyOther, MyRepository, MyAccept, MyCreate, MyDelivery },
props: {
outsourcecontrol: {
type: Boolean,
default: false
},
factoryname: {
type: String,
default: null
}
},
data() {
return {
tableHeight: 200,
//
employeeVisible: this.factorycontrol,
//
detailvisible: false,
// ----------------------
//
visible2: false,
//
depts: [],
//
deliveryPersonId: '',
//
acceptPersonId: '',
//
enterRepositoryId: '',
//
enterPersonId: '',
//
accetpcontrol: false,
//
repositorycontrol: false,
//
deliverycontrol: false,
//
createcontrol: false,
//
date: [],
//
getemplist: {
pageNum: 1,
pageSize: 10,
countryId: this.$store.getters.countryId,
repositoryId: this.$store.getters.repositoryId,
regionIds: this.$store.getters.regionIds,
outFactoryName: this.factoryname
},
// ----------------------
// -------------------------
//
moreaction: '',
//
downloadLoading: false,
//
list: [],
//
total: 0,
//
tableKey: 0,
//
listLoading: true,
//
personalForm: {},
//
editVisible: false
}
},
watch: {
outsourcecontrol() {
this.employeeVisible = this.outsourcecontrol
this.getlist()
setTimeout(() => {
this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 180
}, 100)
},
factoryname() {
console.log('this.factoryname', this.factoryname)
this.getemplist.outFactoryName = this.factoryname
this.getlist()
}
},
created() {
this.getlist()
},
beforeCreate() {
_that = this
},
methods: {
getlist() {
//
this.listLoading = true
outsourceEnterlist(this.getemplist).then(res => {
if (res.data.ret === 200) {
this.list = res.data.data.content.list
this.total = res.data.data.content.totalCount
this.listLoading = false
}
setTimeout(() => {
this.listLoading = false
}, 0.5 * 100)
})
},
//
restFilter() {
this.deliveryPersonId = ''
this.getemplist.deliveryPersonId = ''
},
restFilter2() {
this.enterPersonId = ''
this.getemplist.enterPersonId = ''
},
restFilter3() {
this.acceptPersonId = ''
this.getemplist.acceptPersonId = ''
},
restFilter4() {
this.enterRepositoryId = ''
this.getemplist.enterRepositoryId = ''
},
// foucs
handlechooseDelivery() {
this.deliverycontrol = true
},
deliveryName(val) {
this.deliveryPersonId = val.personName
this.getemplist.deliveryPersonId = val.id
},
// focus
handlechoose() {
this.createcontrol = true
},
//
createname(val) {
console.log(val)
this.acceptPersonId = val.personName
this.getemplist.acceptPersonId = val.id
},
// focus
handlechooseAccept() {
this.accetpcontrol = true
},
//
acceptName(val) {
this.enterPersonId = val.personName
this.getemplist.enterPersonId = val.id
},
// focus
handlechooseRep() {
this.repositorycontrol = true
},
repositoryname(val) {
console.log(val)
this.enterRepositoryId = val.repositoryName
this.getemplist.enterRepositoryId = val.id
},
//
handleFilter() {
this.getemplist.pageNum = 1
if (this.date === null || this.date === '') {
this.getemplist.beginTime = null
this.getemplist.endTime = null
} else {
this.getemplist.beginTime = this.date[0]
this.getemplist.endTime = this.date[1]
}
outsourceEnterlist(this.getemplist).then(res => {
if (res.data.ret === 200) {
this.list = res.data.data.content.list
this.total = res.data.data.content.totalCount
// this.restFilter()
} else {
// this.restFilter()
}
})
},
//
handleAdd() {
this.employeeVisible = false
this.$router.push('/OutFactory/AddOutFactory')
},
//
restemplist() {
this.getemplist = {
pageNum: 1,
pageSize: 10
}
},
//
handleCurrentChange(val) {
this.choosedata = val
},
//
handleConfirm() {
this.employeeVisible = false
this.$emit('outSource', this.choosedata)
}
}
}
</script>
<style scoped>
.ERP-container {
margin-left:10px;
}
.filter-container{
padding: 20px;
padding-left: 0px;
}
.filter-item{
width: 180px;
margin-left: 10px;
padding: 10px 0;
}
.form-name{
font-size: 18px;
color: #373e4f;
margin-bottom: -20px;
margin-top: 30px;
}
.container{
margin-top: 2%;
border: 1px solid #eceff6;
}
</style>

View file

@ -423,11 +423,24 @@ export default {
}
},
activated() {
console.log('$route.query', this.$route.query)
try {
if (this.$route.query) {
this.getemplist.supplierId = this.$route.query.arry.id
this.supplierId = this.$route.query.arry.name
this.getlist()
}
} catch (err) {
this.getlist()
}
this.getinformation()
this.countquery = this.$store.getters.empcontract
if (this.countquery) {
console.log('this.countquery====', this.countquery)
this.getemplist.supplierId = this.countquery.id
this.supplierId = this.$route.query.arry.name
this.supplierId = this.countquery.name
if (this.countquery.beginTime !== '') {
this.getemplist.beginTime = this.countquery.beginTime
@ -445,6 +458,12 @@ export default {
}, 100)
},
mounted() {
console.log('$route.query', this.$route.query)
if (this.$route.query) {
this.getemplist.supplierId = this.$route.query.arry.id
this.supplierId = this.$route.query.arry.name
this.getlist()
}
this.countquery = this.$store.getters.empcontract
if (this.countquery) {
console.log('this.countquery====', this.countquery)

View file

@ -268,6 +268,7 @@
<el-editable
ref="editable3"
:data.sync="list4"
:key="tableKey"
:edit-config="{ showIcon: true, showStatus: true}"
:edit-rules="validRules"
class="click-table1"
@ -513,6 +514,7 @@ export default {
},
data() {
return {
tableKey: 1,
//
deliverGoodsdata: [],
deliverGoodsListdata: {
@ -587,6 +589,7 @@ export default {
this.editVisible = this.detailcontrol
},
detaildata() {
console.log('12222')
this.personalForm = this.detaildata
this.moveOutRepository = this.personalForm.moveOutRepositoryName
this.moveInRepository = this.personalForm.moveInRepositoryName
@ -594,15 +597,16 @@ export default {
this.list2 = this.personalForm.storageMoveDetailApplyVos
this.list3 = this.personalForm.storageMoveDetailVos
this.list4 = this.personalForm.storageMoveDetailConfirmVos
this.tableKey = Math.random()
this.personalForm.allIncludeTaxMoney = 0
for (const i in this.list2) {
this.personalForm.allIncludeTaxMoney = this.personalForm.allIncludeTaxMoney + this.list2[i].moveMoney
}
for (const i in this.list4) {
if (this.list4[i].stat === 1) {
this.list4[i].actualQuantity = 0
}
}
// for (const i in this.list4) {
// if (this.list4[i].stat === 1) {
// this.list4[i].actualQuantity = 0
// }
// }
this.reviewList = []
const review = this.personalForm.approvalUseVos
for (const i in review) {

View file

@ -359,9 +359,9 @@ export default {
this.list2 = this.personalForm.storageMoveDetailApplyVos
this.list3 = this.personalForm.storageMoveDetailVos
console.log('原始数据===================================>', this.personalForm.storageMoveDetailConfirmVos)
for (const i in this.personalForm.storageMoveDetailConfirmVos) {
this.personalForm.storageMoveDetailConfirmVos[i].actualQuantity = this.personalForm.storageMoveDetailConfirmVos[i].moveQuantity
}
// for (const i in this.personalForm.storageMoveDetailConfirmVos) {
// this.personalForm.storageMoveDetailConfirmVos[i].actualQuantity = this.personalForm.storageMoveDetailConfirmVos[i].moveQuantity
// }
// for (const i of this.personalForm.storageMoveDetailConfirmVos) {
// this.personalForm.storageMoveDetailConfirmVos[i].actualQuantity = this.personalForm.storageMoveDetailConfirmVos[i].moveQuantity
// }
@ -549,6 +549,12 @@ export default {
if (res.data.ret === 200) {
this.$emit('rest', true)
this.editVisible = false
} else {
this.$notify.error({
title: 'wrong',
message: res.data.msg,
offset: 100
})
}
})
}