调拨管理1/2

This commit is contained in:
xiao-fajia 2024-09-12 10:33:40 +08:00
parent cdec671a9b
commit 631f4aa18a
8 changed files with 539 additions and 0 deletions

View File

@ -0,0 +1,108 @@
<template>
<div>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="出库时间" prop="searchTimeArray">
<el-date-picker
v-model="queryParams.searchTimeArray"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item :label="stByType ? '单据号' : '关键字'" prop="soNo">
<el-input v-model="queryParams.soNo" style="width: 18rem" placeholder="请输入单号、备注"/>
</el-form-item>
<el-form-item label="调出门店" prop="corpId">
<CorpChoose />
</el-form-item>
<el-form-item label="调入门店" prop="corpId">
<CorpChoose />
</el-form-item>
<el-form-item label="审核状态">
<el-select v-model="queryParams.is">
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search">搜索</el-button>
<el-button icon="el-icon-refresh">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="序号" align="center">
<template scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="单号" align="center" prop="soNo" width="180" />
<el-table-column label="调出门店" align="center" prop="corpName" width="180" />
<el-table-column label="调入门店" align="center" prop="corpName" width="180" />
<el-table-column label="调拨数量" align="center" prop="itemCount" width="150" />
<el-table-column v-if="stByType" label="调拨成本" align="center" prop="itemCount" width="150" />
<el-table-column label="调拨总额" align="center" prop="itemCount" width="150" />
<el-table-column v-if="stByType" label="差额" align="center" prop="itemCount" width="150" />
<el-table-column v-if="stByType" label="本次优惠" align="center" prop="itemCount" width="150" />
<el-table-column v-if="stByType" label="本次收款" align="center" prop="itemCount" width="150" />
<el-table-column v-if="stByType" label="本次欠款" align="center" prop="itemCount" width="150" />
<el-table-column label="调拨日期" align="center" prop="itemCount" width="150" />
<el-table-column label="调拨人" align="center" prop="itemCount" width="150" />
<el-table-column v-if="!stByType" label="审核日期" align="center" prop="itemCount" width="150" />
<el-table-column label="状态" align="center" prop="itemCount" width="150" />
<el-table-column label="备注" align="center" prop="itemCount" width="180" />
<el-table-column v-if="!stByType" label="退回备注" align="center" prop="itemCount" width="180" />
<el-table-column label="操作" fixed="right" width="180" align="center">
<template v-if="stByType" v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-edit"
>修改
</el-button>
<el-button size="mini" type="text" icon="el-icon-close"
>作废
</el-button>
</template>
<template v-else v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-edit"
>审核
</el-button>
<el-button size="mini" type="text" icon="el-icon-close"
>退回
</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
/>
</div>
</template>
<script>
import CorpChoose from "@/views/repair/Components/CorpChoose.vue";
export default {
name: "StIndex",
components: {CorpChoose},
props:{
stByType:{
type: Boolean,
defaultValue: true,
required: true
}
},
data() {
return {
queryParams:{},
showSearch: true,
loading: false,
list: [],
total: 0
}
},
methods: {}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,100 @@
<template>
<div>
<el-form :model="formData" size="small" :inline="true" label-width="80px">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="调出门店">
<CorpChoose/>
</el-form-item>
<el-form-item label="调入门店">
<CorpChoose/>
</el-form-item>
<el-form-item label="日期">
<el-date-picker
v-model="formData"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="单据编号" prop="stNo">
<el-input disabled v-model="formData.stNo" style="width: 20rem"/>
</el-form-item>
<el-form-item label="调拨人">
<StaffChoose @selected="getStaff"/>
</el-form-item>
<el-form-item label="选择商品">
<PartChoose/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<StTable/>
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 1rem">
<el-col :span="24">
<el-form-item label="应收金额">
<el-input v-model="formData"/>
</el-form-item>
<el-form-item label="优惠金额">
<el-input v-model="formData"/>
</el-form-item>
<el-form-item label="本次收款">
<el-input v-model="formData"/>
</el-form-item>
<el-form-item label="本次欠款">
<el-input v-model="formData"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="2">
<el-col :span="12">
<el-form-item label="备注">
<el-input style="width: 45rem"/>
</el-form-item>
</el-col>
<el-col :span="12" style="text-align: right">
<el-button type="danger">结算</el-button>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import CorpChoose from "@/views/repair/Components/CorpChoose.vue";
import StaffChoose from "@/views/repair/Components/StaffChoose.vue";
import PartChoose from "@/views/repair/Components/PartChoose.vue";
import StTable from "@/views/repair/stockTransfer/Components/StTable.vue";
import {createUniqueCodeByHead} from "@/utils/createUniqueCode";
export default {
name: "StInfo",
components: {
StTable,
PartChoose,
StaffChoose,
CorpChoose
},
data() {
return {
formData: {
stNo: null,
},
}
},
mounted() {
this.formData.stNo = createUniqueCodeByHead("DB")
},
methods: {
getStaff(data) {
}
}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,43 @@
<template>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="序号" align="center">
<template scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="商品名称" align="center" width="200"/>
<el-table-column label="规格" align="center" width="180"/>
<el-table-column label="单位" align="center" width="150"/>
<el-table-column label="原库位" align="center" width="150"/>
<el-table-column label="账上数量" align="center" width="150"/>
<el-table-column label="调拨数量" align="center" width="150"/>
<el-table-column label="参考成本" align="center" width="150"/>
<el-table-column label="结算单价" align="center" width="150"/>
<el-table-column label="结算金额" align="center" width="150"/>
<el-table-column label="备注" align="center" width="180"/>
<el-table-column label="操作" fixed="right" align="center" width="150">
<template v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-delete"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
name: "StTable",
data() {
return {
loading: false,
list: [],
}
},
methods: {}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,74 @@
<template>
<div>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="作废时间" prop="searchTimeArray">
<el-date-picker
v-model="queryParams.searchTimeArray"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="单据号" prop="soNo">
<el-input v-model="queryParams.soNo" style="width: 18rem" placeholder="请输入单号、备注"/>
</el-form-item>
<el-form-item label="调出门店" prop="corpId">
<CorpChoose />
</el-form-item>
<el-form-item label="调入门店" prop="corpId">
<CorpChoose />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search">搜索</el-button>
<el-button icon="el-icon-refresh">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="序号" align="center">
<template scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="单号" align="center" prop="soNo" width="180" />
<el-table-column label="调出门店" align="center" prop="soNo" width="180" />
<el-table-column label="调入门店" align="center" prop="soNo" width="180" />
<el-table-column label="总数量" align="center" prop="soNo" width="180" />
<el-table-column label="总金额" align="center" prop="soNo" width="180" />
<el-table-column label="调拨日期" align="center" prop="soNo" width="180" />
<el-table-column label="调拨人" align="center" prop="soNo" width="180" />
<el-table-column label="状态" align="center" prop="soNo" width="180" />
<el-table-column label="作废备注" align="center" prop="soNo" width="180" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
/>
</div>
</template>
<script>
import CorpChoose from "@/views/repair/Components/CorpChoose.vue";
export default {
name: "StVoid",
components: {CorpChoose},
data() {
return {
queryParams:{
searchTimeArray: [],
},
showSearch:true,
loading: false,
list: [],
total: 0
}
},
methods: {}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,92 @@
<template>
<div>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="调拨时间" prop="searchTimeArray">
<el-date-picker
v-model="queryParams.searchTimeArray"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="关键字" prop="soNo">
<el-input v-model="queryParams.soNo" style="width: 18rem" placeholder="请输入单号、商品名称或编码"/>
</el-form-item>
<el-form-item label="调出门店" prop="corpId">
<CorpChoose />
</el-form-item>
<el-form-item label="调入门店" prop="corpId">
<CorpChoose />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search">搜索</el-button>
<el-button icon="el-icon-refresh">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-download" size="mini"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="序号" align="center">
<template scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="单号" align="center" prop="soNo" width="180" />
<el-table-column label="商品名称" align="center" prop="soNo" width="180" />
<el-table-column label="规格" align="center" prop="soNo" width="180" />
<el-table-column label="商品编码" align="center" prop="soNo" width="180" />
<el-table-column v-if="!stByType" label="条形码" align="center" prop="soNo" width="180" />
<el-table-column label="数量" align="center" prop="itemCount" width="150" />
<el-table-column label="成本" align="center" prop="itemCount" width="150" />
<el-table-column label="合计成本" align="center" prop="itemCount" width="150" />
<el-table-column v-if="stByType" label="出库金额" align="center" prop="itemCount" width="150" />
<el-table-column label="合计金额" align="center" prop="itemCount" width="150" />
<el-table-column label="负责人" align="center" prop="itemCount" width="150" />
<el-table-column label="调出门店" align="center" prop="itemCount" width="180" />
<el-table-column label="调出仓库" align="center" prop="itemCount" width="180" />
<el-table-column label="调入门店" align="center" prop="itemCount" width="180" />
<el-table-column label="调入仓库" align="center" prop="itemCount" width="180" />
<el-table-column label="调拨时间" align="center" prop="itemCount" width="180" />
<el-table-column label="备注" align="center" prop="itemCount" width="180" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
/>
</div>
</template>
<script>
import CorpChoose from "@/views/repair/Components/CorpChoose.vue";
export default {
name: "StiTable",
components: {CorpChoose},
props:{
stByType:{
type: Boolean,
defaultValue: true,
required: true
}
},
data() {
return {
queryParams: {},
showSearch: true,
loading: false,
list: [],
total: 0,
}
},
methods: {}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,42 @@
<template>
<div class="app-container">
<el-tabs v-model="activeTab">
<el-tab-pane label="入库单据" name="in">
<StIndex :st-by-type="stByType" />
</el-tab-pane>
<el-tab-pane label="入库明细" name="detailIn">
<StiTable :st-by-type="stByType"/>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import StIndex from "@/views/repair/stockTransfer/Components/StIndex.vue";
import StiTable from "@/views/repair/stockTransfer/Components/StiTable.vue";
export default {
name: "InStock",
components: {StiTable, StIndex},
data() {
return {
stByType: true,
activeTab: "in"
}
},
created() {
this.isType()
},
methods: {
//
async isType() {
const url = this.$route.path
this.stByType = url.includes("sti")
},
}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,44 @@
<template>
<div class="app-container">
<el-tabs v-model="activeTab">
<el-tab-pane label="出库单据" name="out">
<StIndex :st-by-type="stByType" />
</el-tab-pane>
<el-tab-pane label="出库明细" name="detailOut">
<StiTable :st-by-type="stByType" />
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import StIndex from "@/views/repair/stockTransfer/Components/StIndex.vue";
import StiTable from "@/views/repair/stockTransfer/Components/StiTable.vue";
export default {
name: "OutStock",
components:{
StiTable,
StIndex
},
data() {
return {
stByType: true,
activeTab: "out"
}
},
created() {
this.isType()
},
methods: {
//
async isType() {
const url = this.$route.path
this.stByType = url.includes("sto")
},
}
}
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,36 @@
<template>
<div class="app-container">
<el-tabs v-model="activeTab">
<el-tab-pane label="调拨单" name="transfer">
<StInfo />
</el-tab-pane>
<el-tab-pane label="作废单据" name="voidTransfer">
<StVoid />
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import StInfo from "@/views/repair/stockTransfer/Components/StInfo.vue";
import StVoid from "@/views/repair/stockTransfer/Components/StVoid.vue";
export default {
name: "StockTransfer",
components:{
StVoid,
StInfo
},
data() {
return {
activeTab: "transfer"
}
},
methods: {}
}
</script>
<style scoped lang="scss">
</style>