Browse Source

Finish Hotfix-zh-285

howie 2 years ago
parent
commit
a584bff9c9
2 changed files with 352 additions and 0 deletions
  1. 8 0
      src/api/stock.js
  2. 344 0
      src/views/basic_data/stock/customer_product_list.vue

+ 8 - 0
src/api/stock.js

@@ -27,6 +27,14 @@ export function getSalesTypeList(params) {
   })
 }
 
+// 获取经销商仓库现存列表
+export function getListStockToDayCustomer(params) {
+  return request({
+    url: '/stock/manager/listStockToDayCustomer',
+    method: 'get',
+    params
+  })
+}
 // 获取预留库存列表
 export function getReservedList(params) {
   return request({

+ 344 - 0
src/views/basic_data/stock/customer_product_list.vue

@@ -0,0 +1,344 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <el-form
+        ref="screenForm"
+        :model="screenForm"
+        label-width="90px"
+        size="mini"
+        label-position="left"
+      >
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="物料代码" prop="materialNumber">
+              <el-input
+                v-model="screenForm.materialNumber"
+                placeholder="请输入物料代码"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品编码" prop="materialOldNumber">
+              <el-input
+                v-model="screenForm.materialOldNumber"
+                placeholder="请输入产品编码"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="产品名称" prop="materialName">
+              <el-input
+                v-model="screenForm.materialName"
+                placeholder="请输入产品名称"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="规格型号" prop="specification">
+              <el-input
+                v-model="screenForm.specification"
+                placeholder="请输入产品名称"
+              />
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="仓库" prop="correspondId">
+              <el-select
+                v-model="screenForm.correspondId"
+                multiple
+                style="width: 100%"
+                placeholder="请选择仓库"
+                size="mini"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(item, index) in warehouseList"
+                  :key="index"
+                  :label="item.name"
+                  :value="item.id"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="存货类别">
+              <el-select
+                v-model="screenForm.categoryId"
+                style="width: 100%"
+                placeholder="选择存货类别"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="item in categoryList"
+                  :key="item.name"
+                  :label="item.name"
+                  :value="item.id"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="12" class="tr">
+            <el-form-item>
+              <el-button @click="resetScreenForm">清空</el-button>
+              <el-button type="primary" @click="submitScreenForm"
+                >搜索</el-button
+              >
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div>
+          <ExportButton
+            :ex-url="'/stock/manager/exportStockToDayCustomer'"
+            :ex-params="exParams"
+          />
+        </div>
+      </div>
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="left"
+            label="仓库"
+            prop="correspondName"
+            min-width="100"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="存货类别"
+            prop="categoryName"
+            min-width="100"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="物料代码"
+            prop="materialNumber"
+            min-width="150"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.materialNumber" />
+              <span>{{ scope.row.materialNumber }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="产品编码"
+            prop="materialOldNumber"
+            min-width="150"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.materialOldNumber" />
+              <span>{{ scope.row.materialOldNumber }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="产品名称"
+            prop="materialName"
+            min-width="200"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.materialName" />
+              <span>{{ scope.row.materialName }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="规格型号"
+            prop="specification"
+            min-width="300"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copy-text="scope.row.specification" />
+              <span>{{ scope.row.specification }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="right"
+            label="可用单数量"
+            prop="openNumber"
+            min-width="100"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              {{ filterNumber(scope.row.openNumber) }}
+            </template>
+          </el-table-column>
+
+          <!-- <el-table-column
+            align="right"
+            label="开单未提数量"
+            prop="num"
+            min-width="100"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="结存数量"
+            prop="balanceNumber"
+            min-width="100"
+            show-overflow-tooltip
+          /> -->
+        </el-table>
+      </div>
+    </div>
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+        />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getListStockToDayCustomer } from "@/api/stock";
+import { getCategoryList } from "@/api/common";
+import { getWarehouseList } from "@/api/supply/apply";
+import ret from "bluebird/js/release/util";
+
+export default {
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      screenForm: {
+        categoryId: "",
+        correspondId: [],
+        materialName: "",
+        materialNumber: "",
+        materialOldNumber: "",
+        specification: "",
+      },
+      typeList: [],
+      warehouseList: [],
+      categoryList: [],
+    };
+  },
+
+  computed: {
+    exParams() {
+      return {
+        categoryId: this.screenForm.categoryId,
+        correspondId: this.screenForm.correspondId.join(","),
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        materialOldNumber: this.screenForm.materialOldNumber,
+        specification: this.screenForm.specification,
+      };
+    },
+    filterNumber() {
+      return (num) => {
+        num = Number(num);
+        if (num === 0) {
+          return "无货";
+        } else if (num >= 1 && num <= 50) {
+          return num;
+        } else {
+          return "有货";
+        }
+      };
+    },
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    getList() {
+      const params = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        categoryId: this.screenForm.categoryId,
+        correspondId: this.screenForm.correspondId.join(","),
+        materialName: this.screenForm.materialName,
+        materialNumber: this.screenForm.materialNumber,
+        materialOldNumber: this.screenForm.materialOldNumber,
+        specification: this.screenForm.specification,
+      };
+      this.listLoading = true;
+      getListStockToDayCustomer(params).then((res) => {
+        this.dataList = res.data.records;
+        this.listTotal = res.data.total;
+        this.listLoading = false;
+      });
+      this.getWarehouseList();
+      this.getCategoryList();
+    },
+    // 获取仓库列表
+    getWarehouseList() {
+      getWarehouseList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then((res) => {
+        this.warehouseList = res.data.records;
+      });
+    },
+
+    // 获取存货类别列表
+    getCategoryList() {
+      getCategoryList({
+        pageNum: 1,
+        pageSize: -1,
+      }).then((res) => {
+        this.categoryList = res.data.records;
+      });
+    },
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields();
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getList();
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+  },
+};
+</script>