zhouhao 2 år sedan
förälder
incheckning
62a961ef5a

+ 0 - 0
src/api/sales.js


+ 28 - 8
src/api/stock.js

@@ -63,7 +63,7 @@ export function getListStockToDay(params) {
   })
 }
 
-//库存到货访问通知-列表
+// 库存到货访问通知-列表
 export function getNoticeList(params) {
   return request({
     url: '/stock/visit/list',
@@ -72,7 +72,7 @@ export function getNoticeList(params) {
   })
 }
 
-//库存到货访问通知-数量
+// 库存到货访问通知-数量
 export function getNoticeNum(params) {
   return request({
     url: '/stock/visit/count',
@@ -81,7 +81,7 @@ export function getNoticeNum(params) {
   })
 }
 
-//经销商仓库库存列表(前置)
+// 经销商仓库库存列表(前置)
 export function getcustomerFrontList(params) {
   return request({
     url: '/customer/front/list',
@@ -90,7 +90,7 @@ export function getcustomerFrontList(params) {
   })
 }
 
-//经销商仓库库存导出(前置)
+// 经销商仓库库存导出(前置)
 export function partsNewInExport(data, name) {
   return postBlob({
     url: '/customer/front/list/export',
@@ -98,7 +98,8 @@ export function partsNewInExport(data, name) {
     name
   })
 }
-//经销商仓库库存列表(商家)
+
+// 经销商仓库库存列表(商家)
 export function getFrontListCustomer(params) {
   return request({
     url: '/customer/front/listCustomer',
@@ -106,7 +107,8 @@ export function getFrontListCustomer(params) {
     data: params
   })
 }
-//经销商仓库库存导出(商家)
+
+// 经销商仓库库存导出(商家)
 
 export function exportCustomer(data, name) {
   return postBlob({
@@ -116,7 +118,7 @@ export function exportCustomer(data, name) {
   })
 }
 
-//库存调整管理
+// 库存调整管理
 export function getFrontListCustomerAcc(params) {
   return request({
     url: '/customer/front/listCustomerAcc',
@@ -125,7 +127,7 @@ export function getFrontListCustomerAcc(params) {
   })
 }
 
-//经销商仓库库存导出(商家)
+// 经销商仓库库存导出(商家)
 export function exportCustomerStockOrderBean(data, name) {
   return postBlob({
     url: '/customer/front/list/exportCustomerStockOrderBean',
@@ -133,3 +135,21 @@ export function exportCustomerStockOrderBean(data, name) {
     name
   })
 }
+
+// 库存调整管理三级帐
+export function getFrontListStockAcc(params) {
+  return request({
+    url: '/customer/front/listStockAcc',
+    method: 'post',
+    data: params
+  })
+}
+
+// 经销商三级帐
+export function exportListStockAcc(data, name) {
+  return postBlob({
+    url: '/customer/front/listStockAcc/exportListStockAcc',
+    data,
+    name
+  })
+}

+ 3 - 4
src/components/SalesTable/SalesTable.vue

@@ -105,10 +105,9 @@
       <div>
 <!--        <el-button type="primary" size="mini">保存</el-button>-->
 <!--        <el-button size="mini">重置</el-button>-->
-        <el-button type="primary" size="mini">提交</el-button>
-        <el-button size="mini">重置</el-button>
-        <el-button size="mini">通知退货</el-button>
-
+<!--        <el-button type="primary" size="mini">提交</el-button>-->
+<!--        <el-button size="mini">重置</el-button>-->
+<!--        <el-button size="mini">通知退货</el-button>-->
       </div>
     </slot>
   </div>

+ 146 - 0
src/components/WarehousingHeader/WarehousingHeader.vue

@@ -0,0 +1,146 @@
+<template>
+  <div class="warehousing">
+    <el-form
+      v-if="pageType==='add'"
+      :rules="rules"
+      label-position="left"
+      label-width="120px"
+      :model="screenForm"
+      size="mini"
+    >
+      <el-row gutter="20">
+        <el-col :xs="24" :ms="8" :lg="8">
+          <el-form-item label="商家编号" prop="customerNumber">
+            <el-input v-model="screenForm.customerNumber" placeholder="商家编号" size="mini" />
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :ms="8" :lg="8">
+          <el-form-item label="商家名称" prop="customerName">
+            <el-input v-model="screenForm.customerName" placeholder="商家名称" size="mini" />
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :ms="8" :lg="8">
+          <el-form-item label="调整日期" prop="changeTime">
+            <el-date-picker
+              v-model="screenForm.changeTime"
+              type="datetime"
+              size="mini"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              placeholder="选择日期" />
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :ms="8" :lg="8">
+          <el-form-item label="制单人" prop="createBy">
+            <el-input v-model="screenForm.createBy" placeholder="制单人" size="mini" />
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :ms="8" :lg="8">
+          <el-form-item label="制单时间" prop="createTime">
+            <el-date-picker
+              v-model="screenForm.createTime"
+              type="datetime"
+              size="mini"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              placeholder="选择日期" />
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :ms="24" :lg="24">
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="screenForm.remark" placeholder="备注" size="mini" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <div v-else>
+      <h5>单据信息</h5>
+      <div class="diy-table-1">
+        <el-row>
+          <el-col :span="6" class="item">
+            <div class="label">调整单号</div>
+            <div class="value">{{ details.id }}</div>
+          </el-col>
+          <el-col :span="6" class="item">
+            <div class="label">商家编号</div>
+            <div class="value">{{ details.customerNumber }}</div>
+          </el-col>
+          <el-col :span="6" class="item">
+            <div class="label">商家名称</div>
+            <div class="value">{{ details.customerName }}</div>
+          </el-col>
+          <el-col :span="6" class="item">
+            <div class="label">调整日期</div>
+            <div class="value">{{ details.changeTime }}</div>
+          </el-col>
+          <el-col :span="6" class="item">
+            <div class="label">制单人</div>
+            <div class="value">{{ details.createBy }}</div>
+          </el-col>
+          <el-col :span="18" class="item">
+            <div class="label">制单时间</div>
+            <div class="value">{{ details.createTime }}</div>
+          </el-col>
+          <el-col :span="24" class="item">
+            <div class="label">备注</div>
+            <div class="value">{{ details.remark }}</div>
+          </el-col>
+
+        </el-row>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'WarehousingHeader',
+  props: {
+    pageType: {
+      type: String,
+      default: 'add'
+    },
+    details: {
+      type: Object,
+      default: () => {
+        return {}
+      }
+    }
+  },
+  data() {
+    return {
+      screenForm: {
+        changeTime: '',
+        createBy: '',
+        createTime: '',
+        customerName: '',
+        customerNumber: '',
+        remark: ''
+      },
+      rules: {
+        customerNumber: [
+          { required: true, message: '请输入商家编号', trigger: 'blur' }
+        ],
+        customerName: [
+          { required: true, message: '请输入商家名称', trigger: 'blur' }
+        ],
+        changeTime: [
+          { required: true, message: '请选择调整日期', trigger: 'blur' }
+        ],
+        createBy: [
+          { required: true, message: '请选择制单人', trigger: 'blur' }
+        ],
+        createTime: [
+          { required: true, message: '请选择制单时间', trigger: 'blur' }
+        ]
+      }
+    }
+  }
+}
+</script>
+
+<style scoped lang="scss">
+.warehousing {
+  margin: 20px;
+  padding: 20px;
+  box-shadow: 0 0 8px 0 rgb(0 0 0 / 20%);
+}
+</style>

+ 79 - 4
src/views/basic_data/stock/adjust_warehouse.vue

@@ -1,14 +1,20 @@
 <template>
   <div>
     <template-page
+      v-show="!pageType"
       style="width: 100%;
       height: 100%;"
       ref="pageRef"
       :getList="getList"
       :exportList="exportList"
+      :operation="operation()"
       :columnParsing="columnParsing"
+      :optionsEvensGroup="optionsEvensGroup"
     >
     </template-page>
+    <warehouse-form v-show="pageType===1" />
+    <warehouse-examine v-show="pageType===2" />
+    <warehouse-details v-show="pageType===3" />
   </div>
 </template>
 
@@ -17,19 +23,39 @@ import TemplatePage from '@/components/template/template-page-1.vue'
 import import_mixin from '@/components/template/import_mixin.js'
 
 import { getFrontListCustomerAcc, exportCustomerStockOrderBean } from '@/api/stock'
+import WarehouseForm from '@/views/basic_data/stock/components/WarehouseForm'
+import WarehouseExamine from '@/views/basic_data/stock/components/WarehouseExamine'
+import WarehouseDetails from '@/views/basic_data/stock/components/WarehouseDetails'
+
 export default {
-  components: { TemplatePage },
+  components: { TemplatePage, WarehouseForm, WarehouseExamine, WarehouseDetails },
   mixins: [import_mixin],
   data() {
     return {
+      pageType: 0,
       // 事件组合
       optionsEvensGroup: [
         [
+          // [
+          //   {
+          //     name: '批量删除',
+          //     click: this.dels,
+          //     // isRole: this.$checkBtnRole('del', this.$route.meta.roles)
+          //   }
+          // ],
+          [
+            {
+              name: '审核',
+              click: this.examineWarehouse
+            }
+          ]
+        ],
+        [
           [
             {
-              name: '批量删除',
-              click: this.dels,
-              isRole: this.$checkBtnRole('del', this.$route.meta.roles)
+              name: '库存调整',
+              click: this.addWarehouse
+              // isRole: this.$checkBtnRole('add', this.$route.meta.roles)
             }
           ]
         ]
@@ -61,6 +87,55 @@ export default {
     // 监听勾选变化
     selectionChange(data) {
       this.recordSelected = data
+    },
+    addWarehouse() {
+      this.pageType = 1
+    },
+    examineWarehouse() {
+      this.pageType = 2
+    },
+    detailsWarehouse() {
+      this.pageType = 3
+    },
+    operation() {
+      return (h, { row, index, column }) => {
+        return (
+          <div class="operation-btns">
+            (
+            <el-button
+              size="mini"
+              type="primary"
+              onClick={() => {
+              }}
+            >
+              查看
+            </el-button>
+            ) }
+            (
+            <el-button
+              size="mini"
+              type="primary"
+              onClick={() => {
+              }}
+            >
+              审批
+            </el-button>
+            ) }
+            {(
+              <el-popconfirm
+                title="是否确定操作?"
+                onConfirm={() => {
+                }}
+              >
+                <el-button size="mini" type="primary" slot="reference">
+                  确认返还
+                </el-button>
+              </el-popconfirm>
+            )}
+          </div>
+        )
+      }
+
     }
     // 批量删除
     // dels() {

+ 21 - 0
src/views/basic_data/stock/components/WarehouseDetails.vue

@@ -0,0 +1,21 @@
+<template>
+  <div>
+    <el-page-header @back="$parent.pageType=0" content="详情" style=" padding: 20px 20px 0 20px;"></el-page-header>
+    <warehousing-header pageTyep="details" />
+  </div>
+</template>
+
+<script>
+import WarehousingHeader from '@/components/WarehousingHeader/WarehousingHeader'
+
+export default {
+  name: 'WarehouseDetails',
+  components: {
+    WarehousingHeader
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 20 - 0
src/views/basic_data/stock/components/WarehouseExamine.vue

@@ -0,0 +1,20 @@
+<template>
+  <div>
+    <el-page-header @back="$parent.pageType=0" content="审核" style=" padding: 20px 20px 0 20px;"></el-page-header>
+    <warehousing-header pageTyep="examine" />
+  </div>
+</template>
+
+<script>
+import WarehousingHeader from '@/components/WarehousingHeader/WarehousingHeader'
+export default {
+  name: 'WarehouseExamine',
+  components: {
+    WarehousingHeader
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 31 - 0
src/views/basic_data/stock/components/WarehouseForm.vue

@@ -0,0 +1,31 @@
+<template>
+  <div>
+    <el-page-header @back="$parent.pageType=0" content="新增" style=" padding: 20px 20px 0 20px;"></el-page-header>
+    <warehousing-header />
+    <sales-table >
+      <template #events>
+        <div>
+          <el-button type="primary" size="mini">提交</el-button>
+          <el-button size="mini">重置</el-button>
+        </div>
+      </template>
+    </sales-table>
+  </div>
+</template>
+
+<script>
+import WarehousingHeader from '@/components/WarehousingHeader/WarehousingHeader'
+import SalesTable from '@/components/SalesTable/SalesTable'
+
+export default {
+  name: 'WarehouseForm',
+  components: {
+    WarehousingHeader,
+    SalesTable
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 112 - 0
src/views/basic_data/stock/stock_three_level.vue

@@ -0,0 +1,112 @@
+<template>
+  <div>
+    <template-page
+      style="width: 100%;
+      height: 100%;"
+      ref="pageRef"
+      :getList="getList"
+      :exportList="exportList"
+      :columnParsing="columnParsing"
+    >
+    </template-page>
+  </div>
+</template>
+
+<script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+
+import { getFrontListStockAcc, exportListStockAcc } from '@/api/stock'
+export default {
+  components: { TemplatePage },
+  mixins: [import_mixin],
+  data() {
+    return {
+      // 事件组合
+      optionsEvensGroup: [
+        [
+          [
+            {
+              name: '批量删除',
+              click: this.dels,
+              isRole: this.$checkBtnRole('del', this.$route.meta.roles)
+            }
+          ]
+        ]
+      ],
+      // 表格属性
+      tableAttributes: {
+        // 启用勾选列
+        selectColumn: true
+      },
+      // 表格事件
+      tableEvents: {
+        'selection-change': this.selectionChange
+      },
+      recordSelected: []
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList(...p) {
+      this.recordSelected = []
+      return getFrontListStockAcc(...p)
+    },
+    // 列表导出函数
+    exportList: exportListStockAcc,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    // 监听勾选变化
+    selectionChange(data) {
+      this.recordSelected = data
+    }
+    // 批量删除
+    // dels() {
+    //   if (this.recordSelected.length) {
+    //     this.$confirm('此操作将删除数据, 是否继续?', '提示', {
+    //       confirmButtonText: '确定',
+    //       cancelButtonText: '取消',
+    //       type: 'warning'
+    //     })
+    //       .then(() => {
+    //         partsOldOutDel({
+    //           ids: this.recordSelected.map(item => item.id).join(',')
+    //         })
+    //           .then(res => {
+    //             this.$refs.pageRef.refreshList()
+    //             this.$message({
+    //               type: 'success',
+    //               message: '删除成功!'
+    //             })
+    //           })
+    //           .catch(() => {
+    //             this.$message({
+    //               type: 'error',
+    //               message: '删除失败'
+    //             })
+    //           })
+    //       })
+    //       .catch(() => {
+    //         this.$message({
+    //           type: 'info',
+    //           message: '已取消删除'
+    //         })
+    //       })
+    //   } else {
+    //     this.$message({
+    //       type: 'info',
+    //       message: '请先勾选需要删除的数据!'
+    //     })
+    //   }
+    // }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-table__body-wrapper {
+  height: 100% !important;
+}
+</style>