mirror of
https://github.com/himool/HimoolERP.git
synced 2024-09-20 14:56:00 +08:00
fix: 调整
This commit is contained in:
parent
750f7a2f91
commit
3ae36420fa
|
@ -55,3 +55,8 @@ export function purchasePaymentRecord(params) {
|
||||||
export function purchaseReturnPaymentRecord(params) {
|
export function purchaseReturnPaymentRecord(params) {
|
||||||
return request({ url: `/purchase_return_collection_detials/`, method: 'get', params })
|
return request({ url: `/purchase_return_collection_detials/`, method: 'get', params })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 批次报表
|
||||||
|
export function batchsReportList(params) {
|
||||||
|
return request({ url: `/batchs/`, method: 'get', params })
|
||||||
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ export default [
|
||||||
{ key: '/report/purchase_report', name: '采购报表' },
|
{ key: '/report/purchase_report', name: '采购报表' },
|
||||||
{ key: '/report/stock_report', name: '库存报表' },
|
{ key: '/report/stock_report', name: '库存报表' },
|
||||||
{ key: '/report/income_expense_statistics', name: '收支统计' },
|
{ key: '/report/income_expense_statistics', name: '收支统计' },
|
||||||
|
{ key: '/report/batch_report', name: '批次报表' },
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,5 +24,10 @@ export default {
|
||||||
meta: { title: '收支统计', permission: 'income_expense_statistics' },
|
meta: { title: '收支统计', permission: 'income_expense_statistics' },
|
||||||
component: () => import('@/views/report/incomeExpenseStatistics/index'),
|
component: () => import('@/views/report/incomeExpenseStatistics/index'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'batch_report',
|
||||||
|
meta: { title: '批次报表', permission: 'batch_report' },
|
||||||
|
component: () => import('@/views/report/batchReport/index'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
|
@ -438,7 +438,7 @@ export default {
|
||||||
spec: item.goods_spec,
|
spec: item.goods_spec,
|
||||||
unit: item.unit_name,
|
unit: item.unit_name,
|
||||||
purchase_quantity: 1,
|
purchase_quantity: 1,
|
||||||
purchase_price: 0,
|
purchase_price: item.purchase_price,
|
||||||
total_quantity: item.total_quantity,
|
total_quantity: item.total_quantity,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="6" style="width: 320px;">
|
<a-col :span="6" style="width: 320px;">
|
||||||
<a-form-model-item prop="purchase_order" label="采购单据">
|
<a-form-model-item prop="purchase_order" label="采购单据">
|
||||||
<a-select v-model="form.purchase_order" style="width: 100%">
|
<a-select v-model="form.purchase_order" @change="changeRelatedOrder" style="width: 100%">
|
||||||
<a-select-option v-for="item in purchaseOrdersItems" :key="item.id" :value="item.id">
|
<a-select-option v-for="item in purchaseOrdersItems" :key="item.id" :value="item.id">
|
||||||
{{ item.number }}
|
{{ item.number }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
|
@ -396,6 +396,15 @@ export default {
|
||||||
this.accountsItems = data.results;
|
this.accountsItems = data.results;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
changeRelatedOrder(value, option) {
|
||||||
|
let selected = this.purchaseOrdersItems.filter(item => item.id == value)[0];
|
||||||
|
this.form.supplier = selected.supplier;
|
||||||
|
this.form.warehouse = selected.warehouse;
|
||||||
|
this.form.handler = selected.handler;
|
||||||
|
selected.purchase_goods_items.map(item => {
|
||||||
|
this.onSelectMaterial({...item, ...{ goods_spec: item.goods_spec || '', total_quantity: item.total_amount }})
|
||||||
|
})
|
||||||
|
},
|
||||||
handelAddAcount() {
|
handelAddAcount() {
|
||||||
this.purchase_return_account_items.push({
|
this.purchase_return_account_items.push({
|
||||||
id: this.purchase_return_account_items.length + 1,
|
id: this.purchase_return_account_items.length + 1,
|
||||||
|
@ -426,7 +435,7 @@ export default {
|
||||||
this.materialsSelectModalVisible = true;
|
this.materialsSelectModalVisible = true;
|
||||||
},
|
},
|
||||||
onSelectMaterial(item) {
|
onSelectMaterial(item) {
|
||||||
let index = this.materialItems.findIndex((_item) => _item.id == item.id);
|
let index = this.materialItems.findIndex((_item) => _item.goods == item.goods);
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
this.$message.warn("产品已存在");
|
this.$message.warn("产品已存在");
|
||||||
return;
|
return;
|
||||||
|
@ -439,7 +448,7 @@ export default {
|
||||||
spec: item.goods_spec,
|
spec: item.goods_spec,
|
||||||
unit: item.unit_name,
|
unit: item.unit_name,
|
||||||
return_quantity: 1,
|
return_quantity: 1,
|
||||||
return_price: 0,
|
return_price: item.purchase_price,
|
||||||
total_quantity: item.total_quantity,
|
total_quantity: item.total_quantity,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -491,11 +500,21 @@ export default {
|
||||||
// }),
|
// }),
|
||||||
purchase_return_account_items,
|
purchase_return_account_items,
|
||||||
purchase_return_goods_items: this.materialItems.map((item) => {
|
purchase_return_goods_items: this.materialItems.map((item) => {
|
||||||
|
if (this.form.purchase_order) {
|
||||||
|
return {
|
||||||
|
purchase_goods: item.id,
|
||||||
|
goods: item.goods,
|
||||||
|
return_quantity: item.return_quantity,
|
||||||
|
return_price: item.return_price,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
return {
|
return {
|
||||||
goods: item.goods,
|
goods: item.goods,
|
||||||
return_quantity: item.return_quantity,
|
return_quantity: item.return_quantity,
|
||||||
return_price: item.return_price,
|
return_price: item.return_price,
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
console.log(formData);
|
console.log(formData);
|
||||||
|
|
136
frontend/src/views/report/batchReport/index.vue
Normal file
136
frontend/src/views/report/batchReport/index.vue
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-card title="客户">
|
||||||
|
<a-row gutter="16">
|
||||||
|
<a-col :span="24" :md="6" :xl="4" style="max-width: 256px; margin-bottom: 12px;">
|
||||||
|
<a-input-search v-model="searchForm.search" placeholder="商品编号/名称" allowClear @search="search" />
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24" :md="8" :xl="6" style="max-width: 256px; margin-bottom: 12px;">
|
||||||
|
<a-select v-model="searchForm.warehouse" placeholder="仓库" allowClear style="width: 100%;" @change="search">
|
||||||
|
<a-select-option v-for="item in warehouseItems" :key="item.id" :value="item.id">{{item.name}}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24" :md="8" :xl="6" style="max-width: 256px; margin-bottom: 12px;">
|
||||||
|
<a-select v-model="searchForm.has_stock" placeholder="库存状态" allowClear style="width: 100%;" @change="search">
|
||||||
|
<a-select-option :value="true">有库存</a-select-option>
|
||||||
|
<a-select-option :value="false">无库存</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
<a-row style="margin-top: 12px;">
|
||||||
|
<a-table
|
||||||
|
size="small"
|
||||||
|
:columns="columns"
|
||||||
|
:dataSource="items"
|
||||||
|
rowKey="id"
|
||||||
|
:loading="loading"
|
||||||
|
:pagination="pagination"
|
||||||
|
@change="tableChange"
|
||||||
|
>
|
||||||
|
<div slot="is_active" slot-scope="value">
|
||||||
|
<a-tag :color="value ? 'green' : 'red'">{{ value ? "激活" : "冻结" }}</a-tag>
|
||||||
|
</div>
|
||||||
|
</a-table>
|
||||||
|
</a-row>
|
||||||
|
</a-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { warehousesOption } from '@/api/option'
|
||||||
|
import { batchsReportList, } from '@/api/report'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Warehouse",
|
||||||
|
components: {
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: "序号",
|
||||||
|
dataIndex: "index",
|
||||||
|
key: "index",
|
||||||
|
width: 60,
|
||||||
|
customRender: (value, item, index) => {
|
||||||
|
return index + 1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "编号",
|
||||||
|
dataIndex: "number",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "批次数量",
|
||||||
|
dataIndex: "total_quantity",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "批次剩余数量",
|
||||||
|
dataIndex: "remain_quantity",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "商品编号",
|
||||||
|
dataIndex: "goods_number",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "商品名称",
|
||||||
|
dataIndex: "goods_name",
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "仓库",
|
||||||
|
dataIndex: "warehouse_name",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "仓库编号",
|
||||||
|
dataIndex: "warehouse_number",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "库存状态",
|
||||||
|
dataIndex: "has_stock",
|
||||||
|
customRender: (value, item, index) => {
|
||||||
|
return item.has_stock ? '有' : '无'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
searchForm: { search: "", page: 1, page_size: 15 },
|
||||||
|
pagination: { current: 1, total: 0, pageSize: 15 },
|
||||||
|
loading: false,
|
||||||
|
items: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
methods: {
|
||||||
|
initialize() {
|
||||||
|
this.list();
|
||||||
|
},
|
||||||
|
list() {
|
||||||
|
this.loading = true;
|
||||||
|
batchsReportList(this.searchForm)
|
||||||
|
.then((data) => {
|
||||||
|
this.pagination.total = data.count;
|
||||||
|
this.items = data.results;
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
search() {
|
||||||
|
this.searchForm.page = 1;
|
||||||
|
this.pagination.current = 1;
|
||||||
|
this.list();
|
||||||
|
},
|
||||||
|
tableChange(pagination, filters, sorter) {
|
||||||
|
this.searchForm.page = pagination.current;
|
||||||
|
this.pagination.current = pagination.current;
|
||||||
|
this.searchForm.ordering = `${sorter.order == "descend" ? "-" : ""}${sorter.field}`;
|
||||||
|
this.list();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initialize();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
|
@ -23,7 +23,12 @@
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
||||||
<a-row style="margin-top: 12px;">
|
<a-row style="margin-top: 12px;">
|
||||||
<a-table size="small" :columns="columns" :dataSource="items" rowKey="id" :loading="loading" :pagination="pagination"
|
<a-table size="small"
|
||||||
|
rowKey="id"
|
||||||
|
:columns="columns"
|
||||||
|
:dataSource="items"
|
||||||
|
:loading="loading"
|
||||||
|
:pagination="pagination"
|
||||||
@change="tableChange">
|
@change="tableChange">
|
||||||
</a-table>
|
</a-table>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -122,6 +127,7 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
tableChange(pagination, filters, sorter) {
|
tableChange(pagination, filters, sorter) {
|
||||||
|
console.log(pagination)
|
||||||
this.searchForm.page = pagination.current;
|
this.searchForm.page = pagination.current;
|
||||||
this.pagination.current = pagination.current;
|
this.pagination.current = pagination.current;
|
||||||
this.searchForm.ordering = `${sorter.order == 'descend' ? '-' : ''}${sorter.field}`;
|
this.searchForm.ordering = `${sorter.order == 'descend' ? '-' : ''}${sorter.field}`;
|
||||||
|
|
|
@ -431,7 +431,7 @@ export default {
|
||||||
spec: item.goods_spec,
|
spec: item.goods_spec,
|
||||||
unit: item.unit_name,
|
unit: item.unit_name,
|
||||||
sales_quantity: 1,
|
sales_quantity: 1,
|
||||||
sales_price: 1,
|
sales_price: item.retail_price,
|
||||||
totalAmount: 1,
|
totalAmount: 1,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="6" style="width: 320px;">
|
<a-col :span="6" style="width: 320px;">
|
||||||
<a-form-model-item prop="sales_order" label="销售单据">
|
<a-form-model-item prop="sales_order" label="销售单据">
|
||||||
<a-select v-model="form.sales_order" style="width: 100%">
|
<a-select v-model="form.sales_order" @change="changeRelatedOrder" style="width: 100%">
|
||||||
<a-select-option v-for="item in saleOrdersItems" :key="item.id" :value="item.id">
|
<a-select-option v-for="item in saleOrdersItems" :key="item.id" :value="item.id">
|
||||||
{{ item.number }}
|
{{ item.number }}
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
|
@ -411,6 +411,15 @@
|
||||||
this.accountsItems = data.results;
|
this.accountsItems = data.results;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
changeRelatedOrder(value, option) {
|
||||||
|
let selected = this.saleOrdersItems.filter(item => item.id == value)[0];
|
||||||
|
this.form.client = selected.client;
|
||||||
|
this.form.warehouse = selected.warehouse;
|
||||||
|
this.form.handler = selected.handler;
|
||||||
|
selected.sales_goods_items.map(item => {
|
||||||
|
this.onSelectMaterial({...item, ...{ goods_spec: item.goods_spec || '', retail_price: item.sales_price }})
|
||||||
|
})
|
||||||
|
},
|
||||||
handelAddAcount() {
|
handelAddAcount() {
|
||||||
this.sales_return_account_items.push({
|
this.sales_return_account_items.push({
|
||||||
id: this.sales_return_account_items.length + 1,
|
id: this.sales_return_account_items.length + 1,
|
||||||
|
@ -438,7 +447,7 @@
|
||||||
this.materialsSelectModalVisible = true;
|
this.materialsSelectModalVisible = true;
|
||||||
},
|
},
|
||||||
onSelectMaterial(item) {
|
onSelectMaterial(item) {
|
||||||
let index = this.materialItems.findIndex(_item => _item.id == item.id);
|
let index = this.materialItems.findIndex(_item => _item.goods == item.goods);
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
this.$message.warn('产品已存在');
|
this.$message.warn('产品已存在');
|
||||||
return
|
return
|
||||||
|
@ -451,7 +460,7 @@
|
||||||
spec: item.goods_spec,
|
spec: item.goods_spec,
|
||||||
unit: item.unit_name,
|
unit: item.unit_name,
|
||||||
return_quantity: 1,
|
return_quantity: 1,
|
||||||
return_price: 1,
|
return_price: item.retail_price,
|
||||||
totalAmount: 1
|
totalAmount: 1
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -503,11 +512,20 @@
|
||||||
// }),
|
// }),
|
||||||
sales_return_account_items,
|
sales_return_account_items,
|
||||||
sales_return_goods_items: this.materialItems.map(item => {
|
sales_return_goods_items: this.materialItems.map(item => {
|
||||||
|
if (this.form.sales_order) {
|
||||||
|
return {
|
||||||
|
sales_goods: item.id,
|
||||||
|
goods: item.goods,
|
||||||
|
return_quantity: item.return_quantity,
|
||||||
|
return_price: item.return_price,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
return {
|
return {
|
||||||
goods: item.goods,
|
goods: item.goods,
|
||||||
return_quantity: item.return_quantity,
|
return_quantity: item.return_quantity,
|
||||||
return_price: item.return_price,
|
return_price: item.return_price,
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
saleReturnOrderCreate(formData).then(data => {
|
saleReturnOrderCreate(formData).then(data => {
|
||||||
|
|
|
@ -67,11 +67,6 @@
|
||||||
title: '处理日期',
|
title: '处理日期',
|
||||||
dataIndex: 'handle_time',
|
dataIndex: 'handle_time',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '处理日期',
|
|
||||||
dataIndex: 'create_time',
|
|
||||||
width: 170
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '备注',
|
title: '备注',
|
||||||
dataIndex: 'remark'
|
dataIndex: 'remark'
|
||||||
|
|
Loading…
Reference in a new issue