Browse Source

采购订单

master
常熟吴彦祖 6 days ago
parent
commit
fb4ab62b0e
  1. 16
      src/api/order/poBuyer.js
  2. 16
      src/api/order/poCustomer.js
  3. 6
      src/api/order/poOrder.js
  4. 379
      src/views/modules/order/poBuyer.vue
  5. 379
      src/views/modules/order/poCustomer.vue
  6. 93
      src/views/modules/order/poOrder.vue

16
src/api/order/poBuyer.js

@ -0,0 +1,16 @@
import { createAPI } from '@/utils/httpRequest.js'
// 分页查询
export const searchPoBuyerPage = data => createAPI('/poBuyer/page', 'POST', data)
// 列表查询(导出使用)
export const searchPoBuyerList = data => createAPI('/poBuyer/list', 'POST', data)
// 新增
export const createPoBuyer = data => createAPI('/poBuyer/save', 'POST', data)
// 更新
export const updatePoBuyer = data => createAPI('/poBuyer/update', 'POST', data)
// 删除
export const deletePoBuyer = data => createAPI('/poBuyer/delete', 'POST', data)

16
src/api/order/poCustomer.js

@ -0,0 +1,16 @@
import { createAPI } from '@/utils/httpRequest.js'
// 分页查询
export const searchPoCustomerPage = data => createAPI('/poCustomer/page', 'POST', data)
// 列表查询(导出使用)
export const searchPoCustomerList = data => createAPI('/poCustomer/list', 'POST', data)
// 新增
export const createPoCustomer = data => createAPI('/poCustomer/save', 'POST', data)
// 更新
export const updatePoCustomer = data => createAPI('/poCustomer/update', 'POST', data)
// 删除
export const deletePoCustomer = data => createAPI('/poCustomer/delete', 'POST', data)

6
src/api/order/poOrder.js

@ -24,3 +24,9 @@ export const openPoDetail = (data) => createAPI(`/pODetail/openPoDetail`, 'post'
// 根据PO订单查询验货申请明细 // 根据PO订单查询验货申请明细
export const getInspectionByPODetail = (data) => createAPI(`/pODetail/getInspectionByPODetail`, 'post', data) export const getInspectionByPODetail = (data) => createAPI(`/pODetail/getInspectionByPODetail`, 'post', data)
// Customer 下拉
export const getPoCustomerOptions = (data) => createAPI(`/pODetail/customerOptions`, 'post', data)
// Buyer 下拉
export const getPoBuyerOptions = (data) => createAPI(`/pODetail/buyerOptions`, 'post', data)

379
src/views/modules/order/poBuyer.vue

@ -0,0 +1,379 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" :model="searchData">
<el-form-item label="Buyer编码">
<el-input v-model="searchData.buyerCode" clearable style="width: 160px" placeholder="请输入编码" />
</el-form-item>
<el-form-item label="Buyer名称">
<el-input v-model="searchData.buyerName" clearable style="width: 220px" placeholder="请输入名称" />
</el-form-item>
<el-form-item label="启用">
<el-select v-model="searchData.active" clearable style="width: 120px">
<el-option label="Y" value="Y" />
<el-option label="N" value="N" />
</el-select>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="getDataList()">查询</el-button>
<el-button type="primary" @click="addModal()">新增</el-button>
<el-button type="primary" @click="exportExcel()">导出</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList"
:key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed === '' ? false : item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel" />
<el-table-column
fixed="right"
header-align="center"
align="center"
width="120"
label="操作">
<template slot-scope="scope">
<el-link style="cursor: pointer" @click="updateModal(scope.row)">编辑 |</el-link>
<el-link style="cursor: pointer" @click="deleteHandle(scope.row)">删除</el-link>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper" />
<el-dialog title="Buyer维护" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="580px">
<el-form
ref="modalForm"
label-position="top"
:model="modalData"
:rules="rules"
style="margin-left: 7px; margin-right: 7px;">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="编码" prop="buyerCode">
<el-input v-model.trim="modalData.buyerCode" :disabled="modalDisableFlag" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y" />
<el-option label="N" value="N" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="名称" prop="buyerName">
<el-input v-model.trim="modalData.buyerName" maxlength="300" show-word-limit />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model.trim="modalData.remark" type="textarea" maxlength="255" show-word-limit :rows="3" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:25px;margin-top: 60px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<script>
import {
searchPoBuyerPage,
createPoBuyer,
updatePoBuyer,
deletePoBuyer
} from '@/api/order/poBuyer.js'
import excel from '@/utils/excel-util.js'
export default {
name: 'poBuyer',
data () {
return {
exportName: 'Buyer维护_' + this.dayjs().format('YYYYMMDDHHmmss'),
height: 200,
dataList: [],
dataListLoading: false,
pageIndex: 1,
pageSize: 20,
totalPage: 0,
searchData: {
site: this.$store.state.user.site,
buyerCode: '',
buyerName: '',
active: '',
page: 1,
limit: 10
},
modalFlag: false,
modalDisableFlag: false,
modalData: {
site: this.$store.state.user.site,
buyerCode: '',
buyerName: '',
active: 'Y',
remark: '',
flag: '1'
},
columnList: [
// {
// columnProp: 'site',
// headerAlign: 'center',
// align: 'center',
// columnLabel: 'Site',
// columnHidden: false,
// columnSortable: false,
// fixed: '',
// columnWidth: 100,
// showOverflowTooltip: true
// },
{
columnProp: 'buyerCode',
headerAlign: 'center',
align: 'center',
columnLabel: '编码',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 160,
showOverflowTooltip: true
},
{
columnProp: 'buyerName',
headerAlign: 'center',
align: 'left',
columnLabel: '名称',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 260,
showOverflowTooltip: true
},
{
columnProp: 'active',
headerAlign: 'center',
align: 'center',
columnLabel: '启用',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 90,
showOverflowTooltip: true
},
{
columnProp: 'remark',
headerAlign: 'center',
align: 'left',
columnLabel: '备注',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 260,
showOverflowTooltip: true
}
],
rules: {
buyerCode: [
{ required: true, message: '请输入编码', trigger: 'blur' },
{ max: 50, message: '编码长度不能超过50', trigger: 'blur' }
],
buyerName: [
{ required: true, message: '请输入名称', trigger: 'blur' },
{ max: 300, message: '名称长度不能超过300', trigger: 'blur' }
],
active: [
{ required: true, message: '请选择启用状态', trigger: 'change' }
],
remark: [
{ max: 255, message: '备注长度不能超过255', trigger: 'blur' }
]
}
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 180
})
},
created () {
this.getDataList()
},
methods: {
getDataList () {
this.dataListLoading = true
const params = {
...this.searchData,
site: this.$store.state.user.site,
page: this.pageIndex,
limit: this.pageSize
}
searchPoBuyerPage(params).then(({ data }) => {
if (data && data.code === 0) {
const pageData = data.page
this.dataList = pageData && pageData.list ? pageData.list : []
this.pageIndex = pageData && pageData.currPage ? pageData.currPage : 1
this.pageSize = pageData && pageData.pageSize ? pageData.pageSize : this.pageSize
this.totalPage = pageData && pageData.totalCount ? pageData.totalCount : 0
} else {
this.$message.error((data && data.msg) || '获取数据失败')
}
}).catch(err => {
this.$message.error((err && err.message) || '获取数据失败')
}).finally(() => {
this.dataListLoading = false
})
},
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
addModal () {
this.modalDisableFlag = false
this.modalData = {
site: this.$store.state.user.site,
buyerCode: '',
buyerName: '',
active: 'Y',
remark: '',
flag: '1'
}
this.modalFlag = true
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
},
updateModal (row) {
this.modalDisableFlag = true
this.modalData = {
site: row.site,
buyerCode: row.buyerCode,
buyerName: row.buyerName,
active: row.active,
remark: row.remark || '',
flag: '2'
}
this.modalFlag = true
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
},
saveData () {
this.$refs.modalForm.validate(valid => {
if (!valid) return
const payload = {
...this.modalData,
site: this.$store.state.user.site
}
const api = payload.flag === '1' ? createPoBuyer : updatePoBuyer
api(payload).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('操作成功')
this.modalFlag = false
this.getDataList()
} else {
this.$message.error((data && data.msg) || '操作失败')
}
}).catch(err => {
this.$message.error((err && err.message) || '操作失败')
})
})
},
deleteHandle (row) {
this.$confirm(`确定删除Buyer【${row.buyerCode}】吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deletePoBuyer({
site: row.site || this.$store.state.user.site,
buyerCode: row.buyerCode
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('删除成功')
this.getDataList()
} else {
this.$message.error((data && data.msg) || '删除失败')
}
}).catch(err => {
this.$message.error((err && err.message) || '删除失败')
})
}).catch(() => {})
},
exportExcel () {
const params = {
...this.searchData,
site: this.$store.state.user.site
}
excel.exportTable({
url: '/poBuyer/list',
columnMapping: this.columnList,
mergeSetting: [],
params,
fileName: this.exportName + '.xlsx',
rowFetcher: res => {
if (res && res.data && res.data.code === 0) {
return { rows: res.data.rows || [] }
}
return { rows: [] }
},
columnFormatter: [],
dropColumns: []
})
}
}
}
</script>
<style scoped>
.mod-config {
padding: 0;
}
.el-table /deep/ .cell {
height: auto;
line-height: 1.5;
}
</style>

379
src/views/modules/order/poCustomer.vue

@ -0,0 +1,379 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" :model="searchData">
<el-form-item label="Customer编码">
<el-input v-model="searchData.customerCode" clearable style="width: 160px" placeholder="请输入编码" />
</el-form-item>
<el-form-item label="Customer名称">
<el-input v-model="searchData.customerName" clearable style="width: 220px" placeholder="请输入名称" />
</el-form-item>
<el-form-item label="启用">
<el-select v-model="searchData.active" clearable style="width: 120px">
<el-option label="Y" value="Y" />
<el-option label="N" value="N" />
</el-select>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="getDataList()">查询</el-button>
<el-button type="primary" @click="addModal()">新增</el-button>
<el-button type="primary" @click="exportExcel()">导出</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList"
:key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed === '' ? false : item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel" />
<el-table-column
fixed="right"
header-align="center"
align="center"
width="120"
label="操作">
<template slot-scope="scope">
<el-link style="cursor: pointer" @click="updateModal(scope.row)">编辑 |</el-link>
<el-link style="cursor: pointer" @click="deleteHandle(scope.row)">删除</el-link>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper" />
<el-dialog title="Customer维护" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="580px">
<el-form
ref="modalForm"
label-position="top"
:model="modalData"
:rules="rules"
style="margin-left: 7px; margin-right: 7px;">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="编码" prop="customerCode">
<el-input v-model.trim="modalData.customerCode" :disabled="modalDisableFlag" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="启用" prop="active">
<el-select v-model="modalData.active" style="width: 100%">
<el-option label="Y" value="Y" />
<el-option label="N" value="N" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="名称" prop="customerName">
<el-input v-model.trim="modalData.customerName" maxlength="300" show-word-limit />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model.trim="modalData.remark" type="textarea" maxlength="255" show-word-limit :rows="3" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:25px;margin-top: 60px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<script>
import {
searchPoCustomerPage,
createPoCustomer,
updatePoCustomer,
deletePoCustomer
} from '@/api/order/poCustomer.js'
import excel from '@/utils/excel-util.js'
export default {
name: 'poCustomer',
data () {
return {
exportName: 'Customer维护_' + this.dayjs().format('YYYYMMDDHHmmss'),
height: 200,
dataList: [],
dataListLoading: false,
pageIndex: 1,
pageSize: 20,
totalPage: 0,
searchData: {
site: this.$store.state.user.site,
customerCode: '',
customerName: '',
active: '',
page: 1,
limit: 10
},
modalFlag: false,
modalDisableFlag: false,
modalData: {
site: this.$store.state.user.site,
customerCode: '',
customerName: '',
active: 'Y',
remark: '',
flag: '1'
},
columnList: [
// {
// columnProp: 'site',
// headerAlign: 'center',
// align: 'center',
// columnLabel: 'Site',
// columnHidden: false,
// columnSortable: false,
// fixed: '',
// columnWidth: 100,
// showOverflowTooltip: true
// },
{
columnProp: 'customerCode',
headerAlign: 'center',
align: 'center',
columnLabel: '编码',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 160,
showOverflowTooltip: true
},
{
columnProp: 'customerName',
headerAlign: 'center',
align: 'left',
columnLabel: '名称',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 260,
showOverflowTooltip: true
},
{
columnProp: 'active',
headerAlign: 'center',
align: 'center',
columnLabel: '启用',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 90,
showOverflowTooltip: true
},
{
columnProp: 'remark',
headerAlign: 'center',
align: 'left',
columnLabel: '备注',
columnHidden: false,
columnSortable: false,
fixed: '',
columnWidth: 260,
showOverflowTooltip: true
}
],
rules: {
customerCode: [
{ required: true, message: '请输入编码', trigger: 'blur' },
{ max: 50, message: '编码长度不能超过50', trigger: 'blur' }
],
customerName: [
{ required: true, message: '请输入名称', trigger: 'blur' },
{ max: 300, message: '名称长度不能超过300', trigger: 'blur' }
],
active: [
{ required: true, message: '请选择启用状态', trigger: 'change' }
],
remark: [
{ max: 255, message: '备注长度不能超过255', trigger: 'blur' }
]
}
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 180
})
},
created () {
this.getDataList()
},
methods: {
getDataList () {
this.dataListLoading = true
const params = {
...this.searchData,
site: this.$store.state.user.site,
page: this.pageIndex,
limit: this.pageSize
}
searchPoCustomerPage(params).then(({ data }) => {
if (data && data.code === 0) {
const pageData = data.page
this.dataList = pageData && pageData.list ? pageData.list : []
this.pageIndex = pageData && pageData.currPage ? pageData.currPage : 1
this.pageSize = pageData && pageData.pageSize ? pageData.pageSize : this.pageSize
this.totalPage = pageData && pageData.totalCount ? pageData.totalCount : 0
} else {
this.$message.error((data && data.msg) || '获取数据失败')
}
}).catch(err => {
this.$message.error((err && err.message) || '获取数据失败')
}).finally(() => {
this.dataListLoading = false
})
},
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
addModal () {
this.modalDisableFlag = false
this.modalData = {
site: this.$store.state.user.site,
customerCode: '',
customerName: '',
active: 'Y',
remark: '',
flag: '1'
}
this.modalFlag = true
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
},
updateModal (row) {
this.modalDisableFlag = true
this.modalData = {
site: row.site,
customerCode: row.customerCode,
customerName: row.customerName,
active: row.active,
remark: row.remark || '',
flag: '2'
}
this.modalFlag = true
this.$nextTick(() => {
if (this.$refs.modalForm) {
this.$refs.modalForm.clearValidate()
}
})
},
saveData () {
this.$refs.modalForm.validate(valid => {
if (!valid) return
const payload = {
...this.modalData,
site: this.$store.state.user.site
}
const api = payload.flag === '1' ? createPoCustomer : updatePoCustomer
api(payload).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('操作成功')
this.modalFlag = false
this.getDataList()
} else {
this.$message.error((data && data.msg) || '操作失败')
}
}).catch(err => {
this.$message.error((err && err.message) || '操作失败')
})
})
},
deleteHandle (row) {
this.$confirm(`确定删除Customer【${row.customerCode}】吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deletePoCustomer({
site: row.site || this.$store.state.user.site,
customerCode: row.customerCode
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('删除成功')
this.getDataList()
} else {
this.$message.error((data && data.msg) || '删除失败')
}
}).catch(err => {
this.$message.error((err && err.message) || '删除失败')
})
}).catch(() => {})
},
exportExcel () {
const params = {
...this.searchData,
site: this.$store.state.user.site
}
excel.exportTable({
url: '/poCustomer/list',
columnMapping: this.columnList,
mergeSetting: [],
params,
fileName: this.exportName + '.xlsx',
rowFetcher: res => {
if (res && res.data && res.data.code === 0) {
return { rows: res.data.rows || [] }
}
return { rows: [] }
},
columnFormatter: [],
dropColumns: []
})
}
}
}
</script>
<style scoped>
.mod-config {
padding: 0;
}
.el-table /deep/ .cell {
height: auto;
line-height: 1.5;
}
</style>

93
src/views/modules/order/poOrder.vue

@ -295,8 +295,20 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"><el-form-item label="Customer"><el-input v-model="addForm.customer" /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="Buyer"><el-input v-model="addForm.buyer" /></el-form-item></el-col>
<el-col :span="6">
<el-form-item label="Customer">
<el-select v-model="addForm.customer" filterable clearable style="width:100%" placeholder="请选择Customer">
<el-option v-for="opt in poCustomerOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="Buyer">
<el-select v-model="addForm.buyer" filterable clearable style="width:100%" placeholder="请选择Buyer">
<el-option v-for="opt in poBuyerOptions" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row :gutter="12"> <el-row :gutter="12">
<el-col :span="6"> <el-col :span="6">
@ -418,7 +430,16 @@
</template> </template>
<script> <script>
import { searchPoDetailPage, searchPoDetailAdvancedPage, batchUpdatePoDetail, closePoDetail, openPoDetail, createPoOrder } from '@/api/order/poOrder.js'
import {
searchPoDetailPage,
searchPoDetailAdvancedPage,
batchUpdatePoDetail,
closePoDetail,
openPoDetail,
createPoOrder,
getPoCustomerOptions,
getPoBuyerOptions
} from '@/api/order/poOrder.js'
import { import {
createAdvancedQueryData, createAdvancedQueryData,
buildPoOrderQueryParams buildPoOrderQueryParams
@ -473,6 +494,8 @@ export default {
supplierOptions: [], supplierOptions: [],
poDepartureOptions: [], poDepartureOptions: [],
poDestinationOptions: [], poDestinationOptions: [],
poCustomerOptions: [],
poBuyerOptions: [],
/** Chooselist 弹窗选择列(editAble 可为 false,如供应商/物料) */ /** Chooselist 弹窗选择列(editAble 可为 false,如供应商/物料) */
chooserEditColumnProps: ['supplierName', 'partNo', 'departure', 'destination', 'shipVia'], chooserEditColumnProps: ['supplierName', 'partNo', 'departure', 'destination', 'shipVia'],
/** 联表展示、不写入 PO 的列 */ /** 联表展示、不写入 PO 的列 */
@ -498,6 +521,8 @@ export default {
poStatusOptions: PO_ORDER_STATUS_OPTIONS, poStatusOptions: PO_ORDER_STATUS_OPTIONS,
poPartNoOptions: [], poPartNoOptions: [],
poDepartureOptions: [], poDepartureOptions: [],
poCustomerOptions: [],
poBuyerOptions: [],
transportOptions: [ transportOptions: [
{ label: '海运 SEA', value: 'SEA' }, { label: '海运 SEA', value: 'SEA' },
{ label: '空运 AIR', value: 'AIR' }, { label: '空运 AIR', value: 'AIR' },
@ -552,8 +577,8 @@ export default {
columnWidth: 180, columnWidth: 180,
showOverflowTooltip: true, showOverflowTooltip: true,
editAble: true, editAble: true,
editType: 'text',
selectOptionsKey: '',
editType: 'select',
selectOptionsKey: 'poCustomerOptions',
selectOptions: null selectOptions: null
}, },
{ {
@ -575,8 +600,8 @@ export default {
columnWidth: 90, columnWidth: 90,
showOverflowTooltip: true, showOverflowTooltip: true,
editAble: true, editAble: true,
editType: 'text',
selectOptionsKey: '',
editType: 'select',
selectOptionsKey: 'poBuyerOptions',
selectOptions: null selectOptions: null
}, },
{ {
@ -1492,6 +1517,8 @@ export default {
this.getDataList() this.getDataList()
this.getPartNoOptions() this.getPartNoOptions()
this.getSupplierOptions() this.getSupplierOptions()
this.getCustomerOptions()
this.getBuyerOptions()
}, },
mounted () { mounted () {
this.$nextTick(() => { this.$nextTick(() => {
@ -1879,6 +1906,52 @@ export default {
this.getDataList() this.getDataList()
}, },
formatCodeOptionLabel (code, name) {
if (!name) {
return code || ''
}
if (!code) {
return name
}
return `${code} - ${name}`
},
getCustomerOptions () {
return getPoCustomerOptions({
site: this.$store.state.user.site
}).then(({ data }) => {
if (data && data.code === 0) {
this.poCustomerOptions = (data.rows || []).map(item => ({
label: this.formatCodeOptionLabel(item.code, item.name),
value: item.code
}))
this.columnSelectOptions.poCustomerOptions = this.poCustomerOptions
} else {
this.$message.error(data.msg || '操作失败')
}
}).catch(error => {
this.$message.error('操作失败: ' + error.message)
})
},
getBuyerOptions () {
return getPoBuyerOptions({
site: this.$store.state.user.site
}).then(({ data }) => {
if (data && data.code === 0) {
this.poBuyerOptions = (data.rows || []).map(item => ({
label: this.formatCodeOptionLabel(item.code, item.name),
value: item.code
}))
this.columnSelectOptions.poBuyerOptions = this.poBuyerOptions
} else {
this.$message.error(data.msg || '操作失败')
}
}).catch(error => {
this.$message.error('操作失败: ' + error.message)
})
},
getPartNoOptions() { getPartNoOptions() {
console.log('获取分类选项') console.log('获取分类选项')
getPartList( getPartList(
@ -2200,6 +2273,12 @@ export default {
if (!this.poPartNoOptions.length) { if (!this.poPartNoOptions.length) {
this.getPartNoOptions() this.getPartNoOptions()
} }
if (!this.poCustomerOptions.length) {
this.getCustomerOptions()
}
if (!this.poBuyerOptions.length) {
this.getBuyerOptions()
}
}, },
createEmptyAddForm () { createEmptyAddForm () {

Loading…
Cancel
Save