瀏覽代碼

产品维护规格问题、出入库相关模块

cz 2 年之前
父節點
當前提交
065e583305
共有 25 個文件被更改,包括 1128 次插入1851 次删除
  1. 10 0
      src/api/inbound-outbound/arrivalInspection.js
  2. 10 0
      src/api/inbound-outbound/flow.js
  3. 23 0
      src/api/inbound-outbound/outbound/JDoutbound.js
  4. 0 0
      src/api/inbound-outbound/outbound/manualOutbound.js
  5. 0 0
      src/api/inbound-outbound/outbound/salesOutbound.js
  6. 30 0
      src/api/inventory-management/bill.js
  7. 2 2
      src/components/inbound-outbound/addOutbound.vue
  8. 20 18
      src/router/page/index.js
  9. 0 266
      src/views/inbound-outbound/JDoutbound/index.vue
  10. 20 15
      src/views/inbound-outbound/arrivalInspection/index.vue
  11. 247 0
      src/views/inbound-outbound/flow/index.vue
  12. 0 338
      src/views/inbound-outbound/inbound/addInbound.vue
  13. 0 323
      src/views/inbound-outbound/inbound/index.vue
  14. 272 0
      src/views/inbound-outbound/outbound/JDoutbound/index.vue
  15. 0 272
      src/views/inbound-outbound/outbound/addOutbound.vue
  16. 0 295
      src/views/inbound-outbound/outbound/index.vue
  17. 1 1
      src/views/inbound-outbound/outbound/manualOutbound/index.vue
  18. 0 272
      src/views/inbound-outbound/outbound/salesOutbound/addOutbound.vue
  19. 2 8
      src/views/inbound-outbound/outbound/salesOutbound/index.vue
  20. 445 0
      src/views/inventory-management/bill/index.vue
  21. 1 1
      src/views/product-material/customer/addCustomer.vue
  22. 12 32
      src/views/product-material/material/addMaterial.vue
  23. 1 6
      src/views/product-material/material/index.vue
  24. 1 1
      src/views/product-material/product/addProduct.vue
  25. 31 1
      src/views/product-material/product/index.vue

+ 10 - 0
src/api/inbound-outbound/arrivalInspection.js

@@ -0,0 +1,10 @@
+import request from '@/router/axios'
+
+// 到货质检列表 
+export function qualityTestingList(data = {}) {
+  return request({
+    url: '/api/victoriatourist/quality/arrival/page',
+    method: 'post',
+    data: data,
+  })
+}

+ 10 - 0
src/api/inbound-outbound/flow.js

@@ -0,0 +1,10 @@
+import request from '@/router/axios'
+
+// 出入库流水列表 
+export function flowList(data = {}) {
+  return request({
+    url: '/api/victoriatourist/stockJournal/page',
+    method: 'post',
+    data: data,
+  })
+}

+ 23 - 0
src/api/inbound-outbound/outbound/JDoutbound.js

@@ -0,0 +1,23 @@
+import request from '@/router/axios'
+
+// 京东出库列表 
+export function JDorderList(data = {}) {
+  return request({
+    url: '/api/victoriatourist/orderJd/issuePage',
+    method: 'post',
+    data: data,
+  })
+}
+
+
+// 京东出库 
+export function JDorderOutbound(data = {}) {
+  return request({
+    url: '/api/victoriatourist/orderJd/issue',
+    method: 'post',
+    data: data,
+  })
+}
+
+
+

+ 0 - 0
src/api/inbound-outbound/manualOutbound.js → src/api/inbound-outbound/outbound/manualOutbound.js


+ 0 - 0
src/api/inbound-outbound/salesOutbound.js → src/api/inbound-outbound/outbound/salesOutbound.js


+ 30 - 0
src/api/inventory-management/bill.js

@@ -0,0 +1,30 @@
+import request from '@/router/axios'
+
+// 报损、报溢单列表 
+export function formOverFlowLossList(data = {}) {
+  return request({
+    url: '/api/victoriatourist/formOverflowLoss/page',
+    method: 'post',
+    data: data,
+  })
+}
+
+
+
+// 出入库单列表
+export function stockJournalList(data = {}) {
+  return request({
+    url: '/api/victoriatourist/stockJournal/inOutDocument',
+    method: 'post',
+    data: data,
+  })
+}
+
+
+
+
+
+
+
+
+

+ 2 - 2
src/components/inbound-outbound/addOutbound.vue

@@ -115,7 +115,7 @@
             </el-table-column>
             <el-table-column label="产品名称" prop="productName">
             </el-table-column>
-            <el-table-column label="规格" prop="name"> </el-table-column>
+            <el-table-column label="规格" prop="specs"> </el-table-column>
             <el-table-column label="待出库" prop="notIssuedQuantity">
             </el-table-column>
             <el-table-column label="本次出库" prop="changeQuantity">
@@ -138,7 +138,7 @@
             </el-table-column>
           </el-table>
         </el-form-item>
-        <div style="margin-bottom: 20px">
+        <div style="margin: 20px 0px">
           <labelTitle content="物流信息"></labelTitle>
         </div>
         <el-row :gutter="10">

+ 20 - 18
src/router/page/index.js

@@ -398,18 +398,19 @@ export default [
     ],
   },
   {
-    path: '/inbound-outbound/inbound',
+    path: '/inventory-management/bill',
     component: Layout,
-    redirect: '/inbound-outbound/inbound/index',
+    redirect: '/inventory-management/bill/index',
     children: [
       {
         path: 'index',
-        name: '入库管理',
-        component: () => import(/* webpackChunkName: "page" */ '@/views/inbound-outbound/inbound/index'),
+        name: '单据查看',
+        component: () => import(/* webpackChunkName: "page" */ '@/views/inventory-management/bill/index'),
         props: true,
       },
     ],
   },
+
   {
     path: '/inbound-outbound/inbound/cgInbound',
     component: Layout,
@@ -476,19 +477,7 @@ export default [
       },
     ],
   },
-  {
-    path: '/inbound-outbound/outbound',
-    component: Layout,
-    redirect: '/inbound-outbound/outbound/index',
-    children: [
-      {
-        path: 'index',
-        name: '出库管理',
-        component: () => import(/* webpackChunkName: "page" */ '@/views/inbound-outbound/outbound/index'),
-        props: true,
-      },
-    ],
-  },
+
   {
     path: '/inbound-outbound/outbound/salesOutbound',
     component: Layout,
@@ -510,7 +499,7 @@ export default [
       {
         path: 'index',
         name: '京东订单出库',
-        component: () => import(/* webpackChunkName: "page" */ '@/views/inbound-outbound/JDoutbound/index'),
+        component: () => import(/* webpackChunkName: "page" */ '@/views/inbound-outbound/outbound/JDoutbound/index'),
         props: true,
       },
     ],
@@ -542,6 +531,19 @@ export default [
     ],
   },
   {
+    path: '/inbound-outbound/flow',
+    component: Layout,
+    redirect: '/inbound-outbound/flow/index',
+    children: [
+      {
+        path: 'index',
+        name: '出入库流水',
+        component: () => import(/* webpackChunkName: "page" */ '@/views/inbound-outbound/flow/index'),
+        props: true,
+      },
+    ],
+  },
+  {
     path: '/process/backlog',
     component: Layout,
     redirect: '/process/backlog/index',

+ 0 - 266
src/views/inbound-outbound/JDoutbound/index.vue

@@ -1,266 +0,0 @@
-
-
-<script>
-import test from "@/components/form-test/index.vue";
-import query from "@/components/query/index.vue";
-
-import byTable from "@/components/by-table/index.js";
-// import addOutbound from "./addOutbound.vue";
-
-// import * as API from "@/api/inbound-outbound/outbound/index.js";
-
-export default {
-  components: {
-    test,
-    byTable,
-    query,
-  },
-  data() {
-    return {
-      productTypeList: [],
-      btnForm: {
-        otherButton: {
-          list: [
-            {
-              name: "合并出库",
-              methodsText: "add",
-              type: "primary",
-              add: () => {
-                this.handleAdd();
-              },
-            },
-          ],
-        },
-      },
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        keyword: "",
-        warehouseId: "",
-        status: "",
-        code: "",
-        goodsCode: "",
-        goodsName: "",
-        applyUserId: "",
-        startTime: "",
-        endTime: "",
-      },
-      selectConfig: [
-        {
-          label: "配送中心",
-          prop: "type",
-          data: [],
-        },
-      ],
-      tableList: [],
-      loading: false,
-      titleText: "京东订单出库",
-      open: false,
-      form: {
-        id: "",
-        receiptWarehouseId: "",
-        planArrivalTime: "",
-        cause: "",
-        goodsId: [{}],
-      },
-    };
-  },
-  created() {
-    const businessDictData = JSON.parse(
-      window.localStorage.getItem("businessDict")
-    );
-    const list = businessDictData.find(
-      (item) => item.code === "productType"
-    ).children;
-    this.selectConfig[0].data = list.map((item) => ({
-      label: item.dictValue,
-      value: item.dictKey,
-    }));
-    this.productTypeList = list;
-    // this.getList();
-  },
-  methods: {
-    getList() {
-      this.loading = true;
-      API.outboundList(this.queryParams).then(
-        (res) => {
-          console.log(res, "qq");
-          this.tableList = res.data.data.records;
-          this.total = res.data.data.total;
-          this.loading = false;
-        },
-        (err) => {
-          console.log("outboundList: " + err);
-          this.loading = false;
-        }
-      );
-    },
-    handleQuery() {
-      this.getList();
-    },
-    handleAdd() {
-      this.form = {
-        id: "",
-        receiptWarehouseId: "",
-        planArrivalTime: "",
-        cause: "",
-        goodsId: [],
-      };
-      this.titleText = "add";
-      this.open = true;
-    },
-    handleCancel() {
-      this.form = {
-        id: "",
-        receiptWarehouseId: "",
-        planArrivalTime: "",
-        cause: "",
-        goodsId: [],
-      };
-      this.open = false;
-    },
-    handleEdit(row) {
-      this.titleText = "edit";
-      this.form = row;
-      this.open = true;
-      if (this.form.fileInfoList === "") {
-        this.form.fileInfoList = [];
-      }
-      this.$nextTick(() => {
-        this.$refs.addCustomer.loading = true;
-        this.$refs.addCustomer.countryChange(this.form.countryId);
-        this.$refs.addCustomer.provinceChange(this.form.provinceId);
-        this.$refs.addCustomer.loading = false;
-      });
-    },
-    handleSubmit() {
-      if (!this.form.id) {
-        API.outboundAdd(this.form).then(
-          () => {
-            this.msgSuccess("添加成功");
-            this.$refs.addCustomer.loading = false;
-            this.open = false;
-            this.getList();
-          },
-          (err) => {
-            console.log("outboundAdd: " + err);
-            this.$refs.addCustomer.loading = false;
-          }
-        );
-      } else {
-        API.outboundEdit(this.form).then(
-          () => {
-            this.msgSuccess(this.$t("editSuccess"));
-            this.open = false;
-            this.$refs.addCustomer.loading = false;
-            this.getList();
-          },
-          (err) => {
-            console.log("outboundEdit: " + err);
-            this.$refs.addCustomer.loading = false;
-          }
-        );
-      }
-    },
-
-    handleDelete(row) {
-      this.$confirm(this.$t("askDeleteData"), {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        API.outboundDel({ id: row.id }).then(() => {
-          this.msgSuccess("删除成功");
-          this.getList();
-        });
-      });
-    },
-    showAddress(row) {
-      return (
-        <div>
-          {row.countryName} , {row.provinceName} , {row.cityName}
-        </div>
-      );
-    },
-  },
-};
-</script>
-
-
-<template>
-  <div class="box-card">
-    <el-card class="header">
-      <test :form-config="btnForm"></test>
-    </el-card>
-    <el-card class="body-main">
-      <query
-        :selectConfig="selectConfig"
-        :req="queryParams"
-        :isShowMore="true"
-        @handleQuery="handleQuery"
-        @handleMore="
-          () => {
-            queryDialog = true;
-          }
-        "
-      ></query>
-      <el-table :data="tableList" v-loading="loading">
-        <el-table-column type="selection" width="50" align="left">
-        </el-table-column>
-        <el-table-column label="订单编号" align="left" prop="code" />
-        <el-table-column label="配送中心" align="left" prop="name" />
-        <el-table-column
-          label="京东仓库"
-          align="left"
-          :formatter="showAddress"
-        />
-        <el-table-column label="收货人" align="left" prop="contacts" />
-        <el-table-column label="详细地址" align="left" prop="phone" />
-
-        <el-table-column label="操作" align="left" width="120">
-          <template slot-scope="scope">
-            <el-button type="text" @click="handleEdit(scope.row)"
-              >{{ $t("edit") }}
-            </el-button>
-            <el-button type="text" @click="handleDelete(scope.row)"
-              >{{ $t("delete") }}
-            </el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-card>
-
-    <el-dialog
-      :title="titleText"
-      :visible.sync="open"
-      v-if="open"
-      width="80%"
-      top="60px"
-    >
-      <!-- <add-outbound
-        :form="form"
-        @submit="handleSubmit"
-        @cancel="handleCancel"
-        ref="addOutbound"
-      ></add-outbound> -->
-    </el-dialog>
-  </div>
-</template>
-
-
-<style lang="scss" scoped>
-.box-card {
-  height: calc(100vh - 110px);
-  overflow-y: auto;
-  display: flex;
-  flex-direction: column;
-  .header {
-    // height: 100px;
-    margin-bottom: 10px;
-    box-sizing: border-box;
-  }
-  .body-main {
-    flex: 1;
-  }
-}
-</style>

+ 20 - 15
src/views/inbound-outbound/arrivalInspection/index.vue

@@ -4,7 +4,7 @@
 import test from "@/components/form-test/index.vue";
 import query from "@/components/query/index.vue";
 
-import * as API from "@/api/inbound-outbound/transfer.js";
+import * as API from "@/api/inbound-outbound/arrivalInspection.js";
 
 import { warehouseSelectList } from "@/api/product-material/warehouse/index.js";
 import addInspection from "./addInspection.vue";
@@ -44,7 +44,7 @@ export default {
       selectConfig: [
         {
           label: "质检状态",
-          prop: "outWarehouseId",
+          prop: "qualityStatus",
           data: [],
         },
       ],
@@ -68,30 +68,35 @@ export default {
     this.warehouseTypeList = businessDictData.find(
       (item) => item.code === "warehouseType"
     ).children;
-    warehouseSelectList().then((res) => {
-      this.warehouseSelectList = res.data.data;
-      this.selectConfig[0].data = this.warehouseSelectList.map((item) => ({
-        label: item.name,
-        value: item.id,
-      }));
-      this.selectConfig[1].data = this.warehouseSelectList.map((item) => ({
-        label: item.name,
-        value: item.id,
-      }));
-    });
+    this.selectConfig[0].data = [
+      { label: "未质检", value: "10" },
+      { label: "部分质检", value: "20" },
+      { label: "已质检", value: "30" },
+    ];
+    // warehouseSelectList().then((res) => {
+    //   this.warehouseSelectList = res.data.data;
+    //   this.selectConfig[0].data = this.warehouseSelectList.map((item) => ({
+    //     label: item.name,
+    //     value: item.id,
+    //   }));
+    //   this.selectConfig[1].data = this.warehouseSelectList.map((item) => ({
+    //     label: item.name,
+    //     value: item.id,
+    //   }));
+    // });
     this.getList();
   },
   methods: {
     getList() {
       this.loading = true;
-      API.transferList(this.queryParams).then(
+      API.qualityTestingList(this.queryParams).then(
         (res) => {
           this.tableList = res.data.data.records;
           this.total = res.data.data.total;
           this.loading = false;
         },
         (err) => {
-          console.log("transferList: " + err);
+          console.log("qualityTestingList: " + err);
           this.loading = false;
         }
       );

+ 247 - 0
src/views/inbound-outbound/flow/index.vue

@@ -0,0 +1,247 @@
+
+
+<script>
+import test from "@/components/form-test/index.vue";
+import query from "@/components/query/index.vue";
+
+import * as API from "@/api/inbound-outbound/flow.js";
+
+// import sendTransfer from "./sendTransfer.vue";
+
+export default {
+  components: {
+    test,
+    query,
+  },
+  data() {
+    return {
+      btnForm: {
+        otherButton: {
+          list: [
+            {
+              name: "发起调仓",
+              methodsText: "send",
+              type: "primary",
+              send: () => {
+                this.handleSend();
+              },
+            },
+          ],
+        },
+      },
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: "",
+        type: "",
+        warehouseId: "",
+        logisticsInfoCode: "",
+        startTime: "",
+        endTime: "",
+      },
+      selectConfig: [
+        {
+          label: "出入库类型",
+          prop: "type",
+          data: [],
+        },
+      ],
+      tableList: [],
+      total: 0,
+      loading: false,
+      titleText: "发起调仓",
+      open: false,
+      form: {
+        outWarehouseId: "",
+        inWarehouseId: "",
+        remark: "",
+        changeProductList: [],
+      },
+    };
+  },
+  created() {
+    const businessDictData = JSON.parse(
+      window.localStorage.getItem("businessDict")
+    );
+    // this.warehouseTypeList = businessDictData.find(
+    //   (item) => item.code === "warehouseType"
+    // ).children;
+    this.selectConfig[0].data = [
+      { label: "出库", value: "0" },
+      { label: "入库", value: "1" },
+    ];
+    this.getList();
+  },
+  methods: {
+    getList() {
+      this.loading = true;
+      API.flowList(this.queryParams).then(
+        (res) => {
+          this.tableList = res.data.data.records;
+          this.total = res.data.data.total;
+          this.loading = false;
+        },
+        (err) => {
+          console.log("flowList: " + err);
+          this.loading = false;
+        }
+      );
+    },
+    handleQuery() {
+      this.getList();
+    },
+    handleSend() {
+      this.form = {
+        outWarehouseId: "",
+        inWarehouseId: "",
+        remark: "",
+        changeProductList: [],
+      };
+      this.open = true;
+    },
+    handleCancel() {
+      this.form = {
+        outWarehouseId: "",
+        inWarehouseId: "",
+        remark: "",
+        changeProductList: [],
+      };
+      this.open = false;
+    },
+
+    handleSubmit() {
+      API.sendTransfer(this.form).then(
+        () => {
+          this.msgSuccess("添加成功");
+          this.$refs.sendTransfer.loading = false;
+          this.open = false;
+          this.getList();
+        },
+        (err) => {
+          console.log("sendTransfer: " + err);
+          this.$refs.sendTransfer.loading = false;
+        }
+      );
+    },
+    handleReceive(row) {
+      this.$confirm("是否确认接收 ?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        API.receive({ id: row.id, inQuantity: row.outQuantity }).then(() => {
+          this.msgSuccess("接收成功");
+          this.getList();
+        });
+      });
+    },
+
+    showAddress(row) {
+      return (
+        <div>
+          {row.countryName} , {row.provinceName} , {row.cityName}
+        </div>
+      );
+    },
+  },
+};
+</script>
+
+
+<template>
+  <div class="box-card">
+    <el-card class="body-main">
+      <query
+        :selectConfig="selectConfig"
+        :req="queryParams"
+        :isShowMore="true"
+        @handleQuery="handleQuery"
+        @handleMore="
+          () => {
+            queryDialog = true;
+          }
+        "
+      ></query>
+      <el-table :data="tableList" v-loading="loading">
+        <el-table-column
+          label="出入库类型"
+          align="left"
+          prop="code"
+          width="150"
+        />
+        <el-table-column
+          label="出入库编号"
+          align="left"
+          prop="name"
+          width="150"
+        />
+        <el-table-column
+          label="创建时间"
+          align="left"
+          prop="specs"
+          width="160"
+        />
+        <el-table-column
+          label="操作人"
+          align="left"
+          prop="outWarehouseName"
+          width="120"
+        />
+        <el-table-column label="备注" align="left" prop="outQuantity" />
+
+        <!-- <el-table-column label="操作" align="center" width="120">
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              v-if="scope.row.inStatus === 0"
+              @click="handleReceive(scope.row)"
+              >接收
+            </el-button>
+          </template>
+        </el-table-column> -->
+      </el-table>
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-card>
+
+    <el-dialog
+      :title="titleText"
+      :visible.sync="open"
+      v-if="open"
+      width="80%"
+      top="60px"
+    >
+      <send-transfer
+        :form="form"
+        :warehouseSelectList="warehouseSelectList"
+        :warehouseTypeList="warehouseTypeList"
+        @submit="handleSubmit"
+        @cancel="handleCancel"
+        ref="sendTransfer"
+      ></send-transfer>
+    </el-dialog>
+  </div>
+</template>
+
+
+<style lang="scss" scoped>
+.box-card {
+  height: calc(100vh - 110px);
+  overflow-y: auto;
+  display: flex;
+  flex-direction: column;
+  .header {
+    // height: 100px;
+    margin-bottom: 10px;
+    box-sizing: border-box;
+  }
+  .body-main {
+    flex: 1;
+  }
+}
+</style>

+ 0 - 338
src/views/inbound-outbound/inbound/addInbound.vue

@@ -1,338 +0,0 @@
-<template>
-  <div v-loading="loading">
-    <div class="form-box">
-      <el-form
-        label-position="top"
-        :model="form"
-        ref="form"
-        :rules="inboundType === 10 ? formRules : formRules1"
-        label-width="100px"
-      >
-        <el-form-item label-width="0px" v-if="inboundType === 20">
-          <el-button type="primary" @click="handleAddProduct">
-            添加物品</el-button
-          >
-        </el-form-item>
-        <el-row>
-          <el-col :span="6">
-            <el-form-item label="物流单号" prop="id" v-if="inboundType === 10">
-              <el-select
-                v-model="form.id"
-                placeholder="请选择"
-                style="width: 100%"
-                @change="handleChange"
-              >
-                <el-option
-                  v-for="item in selectList"
-                  :key="item.id"
-                  :label="item.code"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="收获仓库" prop="id" v-if="inboundType === 20">
-              <el-select
-                v-model="form.id"
-                placeholder="请选择"
-                style="width: 100%"
-                @change="handleChangeWarehouse"
-              >
-                <el-option
-                  v-for="item in warehouseSelectList"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                >
-                  <span style="float: left">{{
-                    `${item.name}(${dictDataEcho(
-                      item.type,
-                      warehouseTypeList
-                    )})`
-                  }}</span>
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-form-item v-if="inboundType === 10">
-          <el-table :data="form.changeDetailsList">
-            <el-table-column label="申购单号" prop="applyPurchaseCode">
-            </el-table-column>
-            <el-table-column label="物品编码" prop="productCode">
-            </el-table-column>
-            <el-table-column label="物品名称" prop="productName">
-            </el-table-column>
-            <el-table-column label="物品类型" prop="productType">
-            </el-table-column>
-            <el-table-column label="收货仓库" prop="warehouseName">
-            </el-table-column>
-            <el-table-column label="申购数量" prop="applyPurchaseQuantity">
-            </el-table-column>
-            <el-table-column label="发货数量" prop="shipmentQuantity">
-            </el-table-column>
-            <el-table-column label="到货数量" prop="changeQuantity">
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="
-                    'changeDetailsList.' + scope.$index + '.changeQuantity'
-                  "
-                  :rules="formRules.changeQuantity"
-                  :inline-message="true"
-                  label-width="0"
-                >
-                  <el-input
-                    v-model="scope.row.changeQuantity"
-                    placeholder="请输入"
-                    size="mini"
-                  >
-                  </el-input>
-                </el-form-item>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-        <el-form-item v-if="inboundType === 20">
-          <el-table :data="form.changeDetailsList">
-            <el-table-column label="物品编码" prop="productCode">
-            </el-table-column>
-            <el-table-column label="物品名称" prop="productName">
-            </el-table-column>
-            <el-table-column label="物品类型" prop="productType">
-            </el-table-column>
-            <el-table-column label="收货仓库" prop="warehouseName">
-            </el-table-column>
-            <el-table-column label="仓库现有库存" prop="applyPurchaseQuantity">
-            </el-table-column>
-
-            <el-table-column label="入库数量" prop="changeQuantity">
-              <template slot-scope="scope">
-                <el-form-item
-                  :prop="
-                    'changeDetailsList.' + scope.$index + '.changeQuantity'
-                  "
-                  :rules="formRules1.changeQuantity"
-                  :inline-message="true"
-                  label-width="0"
-                >
-                  <el-input
-                    v-model="scope.row.changeQuantity"
-                    placeholder="请输入"
-                    size="mini"
-                  >
-                  </el-input>
-                </el-form-item>
-              </template>
-            </el-table-column>
-            <el-table-column label="操作" width="100" align="left">
-              <template slot-scope="scope">
-                <el-button type="text" @click="deleteRow(scope.$index)"
-                  >删除</el-button
-                >
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-      </el-form>
-    </div>
-    <div style="text-align: center; margin-top: 15px">
-      <el-button size="small" @click="handleCancel">取消 </el-button>
-      <el-button type="primary" size="small" @click="handleSubmit">
-        确定</el-button
-      >
-    </div>
-
-    <el-dialog
-      title="物品选择"
-      v-if="selectDialog"
-      :visible.sync="selectDialog"
-      width="80%"
-      top="60px"
-    >
-      <selectProduct @select="handleSelect"></selectProduct>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import labelTitle from "@/components/label-title/index.vue";
-import selectProduct from "@/components/select-product/index.vue";
-
-import * as API from "@/api/inbound-outbound/inbound/index.js";
-
-export default {
-  name: "addInbound",
-  components: { labelTitle, selectProduct },
-  props: {
-    // 入库类型  10 采购入库  20 手动入库
-    inboundType: {
-      type: Number,
-      default: () => 10,
-    },
-    form: {
-      type: Object,
-      default: () => {},
-    },
-    warehouseSelectList: {
-      type: Array,
-      default: () => [],
-    },
-    warehouseTypeList: {
-      type: Array,
-      default: () => [],
-    },
-  },
-  data() {
-    return {
-      selectLit: [],
-      loading: false,
-      formRules: {
-        id: [
-          {
-            required: true,
-            message: "请选择物流单号",
-            trigger: "change",
-          },
-        ],
-        changeQuantity: [
-          {
-            required: true,
-            message: "请输入到货数量",
-            trigger: "blur",
-          },
-        ],
-      },
-      formRules1: {
-        id: [
-          {
-            required: true,
-            message: "请选择收货仓库",
-            trigger: "change",
-          },
-        ],
-        changeQuantity: [
-          {
-            required: true,
-            message: "请输入入库数量",
-            trigger: "blur",
-          },
-        ],
-      },
-      selectDialog: false,
-      warehouseName: "",
-    };
-  },
-  created() {
-    this.getSelectList();
-  },
-  methods: {
-    getSelectList() {
-      this.loading = true;
-      API.saleOrdersList().then(
-        (res) => {
-          this.selectLit = res.data.data.records;
-          this.loading = false;
-        },
-        (err) => {
-          console.log("saleOrdersList: " + err);
-          this.loading = false;
-        }
-      );
-    },
-    handleSubmit() {
-      this.$refs.form.validate((valid) => {
-        if (valid) {
-          this.loading = true;
-          if (this.inboundType === 10) {
-            this.form.changeDetailsList = this.form.changeDetailsList.map(
-              (x) => ({
-                businessId: this.form.id,
-                goodsId: x.id,
-                warehouseId: x.warehouseId,
-                changeQuantity: x.changeQuantity,
-              })
-            );
-          } else if (this.inboundType === 20) {
-            this.form.changeDetailsList = this.form.changeDetailsList.map(
-              (x) => ({
-                goodsId: x.goodsId,
-                warehouseId: this.form.id,
-                changeQuantity: x.changeQuantity,
-              })
-            );
-          }
-          delete this.form.id;
-          this.$emit("submit");
-        }
-      });
-    },
-    handleCancel() {
-      this.$emit("cancel");
-    },
-    handleChange(id) {
-      this.loading = true;
-      API.inboundDetails({ id }).then(
-        (res) => {
-          this.form.changeDetailsList = res.data.data.map((x) => ({
-            ...x,
-            changeQuantity: "",
-          }));
-          this.loading = false;
-        },
-        (err) => {
-          console.log("inboundDetails: " + err);
-          this.loading = false;
-        }
-      );
-    },
-    handleChangeWarehouse(id) {
-      const current = this.warehouseSelectList.find((x) => x.id === id);
-      if (current) {
-        this.warehouseName = current.name;
-      }
-      this.form.changeDetailsList = [];
-    },
-    handleAddProduct() {
-      if (!this.form.id) return this.msgInfo("请先选择收获仓库");
-      this.selectDialog = true;
-    },
-    handleSelect(row) {
-      const flag = this.form.changeDetailsList.some(
-        (x) => x.goodsId === row.id
-      );
-      if (flag) return this.msgInfo("该物品已经选择");
-      const product = {
-        productCode: row.code,
-        productName: row.name,
-        productType: row.type,
-        warehouseName: this.warehouseName,
-        goodsId: row.id,
-        changeQuantity: "",
-      };
-      this.form.changeDetailsList.push(product);
-    },
-    deleteRow(index) {
-      this.form.changeDetailsList.splice(index, 1);
-      this.msgSuccess("删除成功");
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.form-box {
-  height: calc(100vh - 280px);
-  overflow: auto;
-  box-sizing: border-box;
-  padding: 10px;
-}
-::v-deep {
-  .el-form-item {
-    margin-bottom: 3px;
-  }
-  .el-form--label-top .el-form-item__label {
-    padding: 8px 0 0 0;
-  }
-}
-</style>

+ 0 - 323
src/views/inbound-outbound/inbound/index.vue

@@ -1,323 +0,0 @@
-
-
-<script>
-import test from "@/components/form-test/index.vue";
-import query from "@/components/query/index.vue";
-
-import byTable from "@/components/by-table/index.js";
-import addInbound from "./addInbound.vue";
-
-import * as API from "@/api/inbound-outbound/inbound/index.js";
-import { warehouseSelectList } from "@/api/product-material/warehouse/index.js";
-
-export default {
-  components: {
-    test,
-    byTable,
-    query,
-    addInbound,
-  },
-  data() {
-    return {
-      warehouseTypeList: [],
-      warehouseSelectList: [],
-      btnForm: {
-        otherButton: {
-          list: [
-            {
-              name: "采购入库",
-              methodsText: "add",
-              type: "primary",
-              add: () => {
-                this.handleAdd(10);
-              },
-            },
-            {
-              name: "手动入库",
-              methodsText: "add",
-              type: "defualt",
-              add: () => {
-                this.handleAdd(20);
-              },
-            },
-            {
-              name: "入库质检",
-              methodsText: "add",
-              type: "defualt",
-              add: () => {
-                this.handleAdd();
-              },
-            },
-          ],
-        },
-      },
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        keyword: "",
-        warehouseId: "",
-        status: "",
-        code: "",
-        goodsCode: "",
-        goodsName: "",
-        applyUserId: "",
-        startTime: "",
-        endTime: "",
-      },
-      selectConfig: [
-        {
-          label: "收获仓库",
-          prop: "type",
-          data: [],
-        },
-        {
-          label: "入库状态",
-          prop: "type",
-          data: [],
-        },
-      ],
-      tableList: [],
-      loading: false,
-      inboundType: null, // 入库类型  10 采购入库  20 手动入库
-      titleText: "",
-      open: false,
-      form: {
-        id: "",
-        changeDetailsList: [],
-      },
-    };
-  },
-  created() {
-    const businessDictData = JSON.parse(
-      window.localStorage.getItem("businessDict")
-    );
-    this.warehouseTypeList = businessDictData.find(
-      (item) => item.code === "warehouseType"
-    ).children;
-    this.selectConfig[0].data = this.warehouseTypeList.map((item) => ({
-      label: item.dictValue,
-      value: item.dictKey,
-    }));
-    warehouseSelectList().then((res) => {
-      this.warehouseSelectList = res.data.data;
-    });
-    // this.getList();
-  },
-  methods: {
-    getList() {
-      this.loading = true;
-      API.outboundList(this.queryParams).then(
-        (res) => {
-          console.log(res, "qq");
-          this.tableList = res.data.data.records;
-          this.total = res.data.data.total;
-          this.loading = false;
-        },
-        (err) => {
-          console.log("outboundList: " + err);
-          this.loading = false;
-        }
-      );
-    },
-    handleQuery() {
-      this.getList();
-    },
-    handleAdd(type) {
-      this.form = {
-        id: "",
-        changeDetailsList: [],
-      };
-      if (type === 10) {
-        this.titleText = "add";
-      } else {
-        this.titleText = "manual";
-      }
-      this.inboundType = type;
-      this.open = true;
-    },
-    handleCancel() {
-      this.form = {
-        id: "",
-
-        changeDetailsList: [],
-      };
-      this.open = false;
-    },
-    handleEdit(row) {
-      this.titleText = "edit";
-      this.form = row;
-      this.open = true;
-      if (this.form.fileInfoList === "") {
-        this.form.fileInfoList = [];
-      }
-      this.$nextTick(() => {
-        this.$refs.addInbound.loading = true;
-        this.$refs.addInbound.countryChange(this.form.countryId);
-        this.$refs.addInbound.provinceChange(this.form.provinceId);
-        this.$refs.addInbound.loading = false;
-      });
-    },
-    handleSubmit() {
-      if (this.inboundType === 10) {
-        API.purchaseAdd(this.form).then(
-          () => {
-            this.msgSuccess("添加成功");
-            this.$refs.addInbound.loading = false;
-            this.open = false;
-            this.getList();
-          },
-          (err) => {
-            console.log("purchaseAdd: " + err);
-            this.$refs.addInbound.loading = false;
-          }
-        );
-      } else {
-        API.manualAdd(this.form).then(
-          () => {
-            this.msgSuccess("添加成功");
-            this.open = false;
-            this.$refs.addInbound.loading = false;
-            this.getList();
-          },
-          (err) => {
-            console.log("manualAdd: " + err);
-            this.$refs.addInbound.loading = false;
-          }
-        );
-      }
-    },
-
-    handleDelete(row) {
-      this.$confirm(this.$t("askDeleteData"), {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        API.outboundDel({ id: row.id }).then(() => {
-          this.msgSuccess("删除成功");
-          this.getList();
-        });
-      });
-    },
-    showAddress(row) {
-      return (
-        <div>
-          {row.countryName} , {row.provinceName} , {row.cityName}
-        </div>
-      );
-    },
-  },
-};
-</script>
-
-
-<template>
-  <div class="box-card">
-    <el-card class="header">
-      <test :form-config="btnForm"></test>
-    </el-card>
-    <el-card class="body-main">
-      <query
-        :selectConfig="selectConfig"
-        :req="queryParams"
-        :isShowMore="true"
-        @handleQuery="handleQuery"
-        @handleMore="
-          () => {
-            queryDialog = true;
-          }
-        "
-      ></query>
-      <el-table :data="tableList" v-loading="loading">
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.outboundOddNumbers')"
-          align="left"
-          prop="code"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.salesOddNumbers')"
-          align="left"
-          prop="name"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.customerType')"
-          align="left"
-          :formatter="showAddress"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.customerCode')"
-          align="left"
-          prop="contacts"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.customerNmae')"
-          align="left"
-          prop="phone"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.outboundQuantity')"
-          align="left"
-          prop="phone"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.createTime')"
-          align="left"
-          prop="phone"
-        />
-
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.remarks')"
-          align="left"
-          prop="phone"
-        />
-
-        <el-table-column label="操作" align="left" width="120">
-          <template slot-scope="scope">
-            <el-button type="text" @click="handleEdit(scope.row)"
-              >{{ $t("edit") }}
-            </el-button>
-            <el-button type="text" @click="handleDelete(scope.row)"
-              >{{ $t("delete") }}
-            </el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-card>
-
-    <el-dialog
-      :title="titleText === 'manual' ? '手动入库' : '采购入库'"
-      :visible.sync="open"
-      v-if="open"
-      width="80%"
-      top="60px"
-    >
-      <add-inbound
-        :form="form"
-        :warehouseSelectList="warehouseSelectList"
-        :warehouseTypeList="warehouseTypeList"
-        :inboundType="inboundType"
-        @submit="handleSubmit"
-        @cancel="handleCancel"
-        ref="addInbound"
-      ></add-inbound>
-    </el-dialog>
-  </div>
-</template>
-
-
-<style lang="scss" scoped>
-.box-card {
-  height: calc(100vh - 110px);
-  overflow-y: auto;
-  display: flex;
-  flex-direction: column;
-  .header {
-    // height: 100px;
-    margin-bottom: 10px;
-    box-sizing: border-box;
-  }
-  .body-main {
-    flex: 1;
-  }
-}
-</style>

+ 272 - 0
src/views/inbound-outbound/outbound/JDoutbound/index.vue

@@ -0,0 +1,272 @@
+
+
+<script>
+import test from "@/components/form-test/index.vue";
+import query from "@/components/query/index.vue";
+
+import byTable from "@/components/by-table/index.js";
+import addOutbound from "@/components/inbound-outbound/addOutbound.vue";
+
+import * as API from "@/api/inbound-outbound/outbound/JDoutbound.js";
+import { getOrderDetails } from "@/api/inbound-outbound/outbound/salesOutbound.js";
+import { warehouseSelectList } from "@/api/product-material/warehouse/index.js";
+
+export default {
+  components: {
+    test,
+    byTable,
+    query,
+    addOutbound,
+  },
+  data() {
+    return {
+      outboundTypeList: [],
+      warehouseTypeList: [],
+      warehouseSelectList: [],
+      btnForm: {
+        otherButton: {
+          list: [
+            {
+              name: "合并出库",
+              methodsText: "add",
+              type: "primary",
+              add: () => {
+                this.handleAdd();
+              },
+            },
+          ],
+        },
+      },
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: "",
+        code: "",
+        type: "",
+        status: "",
+        customerName: "",
+        minAmountMoney: "",
+        maxAmountMoney: "",
+        countryId: "",
+        provinceId: "",
+        cityId: "",
+      },
+      selectConfig: [
+        {
+          label: "配送中心",
+          prop: "type",
+          data: [],
+        },
+      ],
+      tableList: [],
+      loading: false,
+      titleText: "京东订单出库",
+      open: false,
+      form: {
+        customerName: "京东",
+        orderType: "京东",
+        orderId: "",
+        warehouseId: "",
+        logisticsCode: "",
+        logisticsCompanyCode: "",
+        orderDetailsList: [],
+      },
+    };
+  },
+  created() {
+    const businessDictData = JSON.parse(
+      window.localStorage.getItem("businessDict")
+    );
+    this.outboundTypeList = businessDictData.find(
+      (item) => item.code === "outboundType"
+    ).children;
+    this.warehouseTypeList = businessDictData.find(
+      (item) => item.code === "warehouseType"
+    ).children;
+    warehouseSelectList().then((res) => {
+      this.warehouseSelectList = res.data.data;
+    });
+    this.getList();
+  },
+  methods: {
+    getList() {
+      this.loading = true;
+      API.JDorderList(this.queryParams).then(
+        (res) => {
+          this.tableList = res.data.data.records;
+          this.total = res.data.data.total;
+          this.loading = false;
+        },
+        (err) => {
+          console.log("JDorderList: " + err);
+          this.loading = false;
+        }
+      );
+    },
+    handleQuery() {
+      this.getList();
+    },
+    handleOutbound(row) {
+      this.open = true;
+      this.$nextTick(() => {
+        this.$refs.addOutbound.loading = true;
+        getOrderDetails({ id: row.id }).then(
+          (res) => {
+            const productDetailsList = res.data.data.map((x) => ({
+              productCode: x.productCode,
+              productName: x.productName,
+              notIssuedQuantity: x.notIssuedQuantity,
+              specs: x.productSpecs,
+              changeQuantity: "",
+              productId: x.productId,
+              orderDetailsId: x.id,
+            }));
+            this.form = {
+              customerName: "京东",
+              orderType: "京东",
+              orderId: row.id,
+              warehouseId: "",
+              logisticsCode: "",
+              logisticsCompanyCode: "",
+              orderDetailsList: productDetailsList,
+            };
+            this.$refs.addOutbound.loading = false;
+          },
+          (err) => {
+            console.log("getOrderDetails: " + err);
+            this.$refs.addOutbound.loading = false;
+          }
+        );
+      });
+    },
+    handleCancel() {
+      this.open = false;
+    },
+    handleSubmit() {
+      API.JDorderOutbound(this.form).then(
+        () => {
+          this.msgSuccess("出库成功");
+          this.$refs.addOutbound.loading = false;
+          this.open = false;
+          this.getList();
+        },
+        (err) => {
+          console.log("JDorderOutbound: " + err);
+          this.$refs.addOutbound.loading = false;
+        }
+      );
+    },
+
+    showAddress(row) {
+      return (
+        <div>
+          {row.countryName} , {row.provinceName} , {row.cityName} ,
+          {row.detailedAddress}
+        </div>
+      );
+    },
+    showContacts(row) {
+      return (
+        <div>
+          {row.contacts} , {row.phone}
+        </div>
+      );
+    },
+  },
+};
+</script>
+
+
+<template>
+  <div class="box-card">
+    <el-card class="header">
+      <test :form-config="btnForm"></test>
+    </el-card>
+    <el-card class="body-main">
+      <query
+        :selectConfig="selectConfig"
+        :req="queryParams"
+        :isShowMore="true"
+        @handleQuery="handleQuery"
+        @handleMore="
+          () => {
+            queryDialog = true;
+          }
+        "
+      ></query>
+      <el-table :data="tableList" v-loading="loading">
+        <el-table-column type="selection" width="50" align="left">
+        </el-table-column>
+        <el-table-column
+          label="订单编号"
+          align="left"
+          prop="code"
+          width="150"
+        />
+        <el-table-column
+          label="配送中心"
+          align="left"
+          prop="cityName"
+          width="120"
+        />
+        <el-table-column label="京东仓库" align="left" width="150" />
+        <el-table-column
+          label="收货人"
+          align="left"
+          prop="contacts"
+          width="180"
+          :formatter="showContacts"
+        />
+        <el-table-column
+          label="详细地址"
+          align="left"
+          :formatter="showAddress"
+        />
+
+        <el-table-column label="操作" align="left" width="120">
+          <template slot-scope="scope">
+            <el-button type="text" @click="handleOutbound(scope.row)"
+              >出库
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-card>
+
+    <el-dialog
+      :title="titleText"
+      :visible.sync="open"
+      v-if="open"
+      width="80%"
+      top="60px"
+    >
+      <add-outbound
+        :form="form"
+        :outboundTypeList="outboundTypeList"
+        :warehouseSelectList="warehouseSelectList"
+        :warehouseTypeList="warehouseTypeList"
+        @submit="handleSubmit"
+        @cancel="handleCancel"
+        ref="addOutbound"
+      ></add-outbound>
+    </el-dialog>
+  </div>
+</template>
+
+
+<style lang="scss" scoped>
+.box-card {
+  height: calc(100vh - 110px);
+  overflow-y: auto;
+  display: flex;
+  flex-direction: column;
+  .header {
+    // height: 100px;
+    margin-bottom: 10px;
+    box-sizing: border-box;
+  }
+  .body-main {
+    flex: 1;
+  }
+}
+</style>

+ 0 - 272
src/views/inbound-outbound/outbound/addOutbound.vue

@@ -1,272 +0,0 @@
-<template>
-  <div v-loading="loading">
-    <div class="form-box">
-      <el-form
-        label-position="top"
-        :model="form"
-        ref="form"
-        :rules="formRules"
-        label-width="100px"
-      >
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="销售订单" prop="receiptWarehouseId">
-              <el-select
-                v-model="form.receiptWarehouseId"
-                placeholder="请选择"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in subscribeTypeList"
-                  :key="item.id"
-                  :label="item.dictValue"
-                  :value="item.dictKey"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row>
-          <el-col :span="8">
-            <el-form-item
-              :label="$t('purchase_management.subscribe.askArrivalTime')"
-              prop="planArrivalTime"
-            >
-              <el-date-picker
-                v-model="form.planArrivalTime"
-                type="datetime"
-                placeholder="请选择"
-                value-format="yyyy-MM-dd HH:mm:ss"
-                style="width: 100%"
-              >
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row>
-          <el-col :span="12">
-            <el-form-item
-              :label="$t('purchase_management.subscribe.subscribeDescription')"
-              prop="cause"
-            >
-              <el-input
-                v-model="form.cause"
-                placeholder="请输入"
-                type="textarea"
-                rows="4"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <div style="margin-bottom: 20px">
-          <labelTitle
-            :content="$t('purchase_management.subscribe.subscribeDetails')"
-          ></labelTitle>
-        </div>
-        <el-form-item label-width="0px">
-          <el-button @click="selectDialog = true">
-            {{ $t("select") }}</el-button
-          >
-        </el-form-item>
-        <el-form-item>
-          <el-table :data="form.goodsId">
-            <el-table-column
-              :label="$t('purchase_management.subscribe.goodCode')"
-              prop="code"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.goodName')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.goodType')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.unit')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.stock')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.subscribeQuantity')"
-              prop="name"
-            >
-              <template slot-scope="scope">
-                <el-form-item label-width="0px" prop="aa">
-                  <el-input> </el-input>
-                </el-form-item>
-              </template>
-            </el-table-column>
-
-            <el-table-column label="操作" width="100" align="left">
-              <template slot-scope="scope">
-                <el-button type="text" @click="deleteRow(scope.$index)"
-                  >删除</el-button
-                >
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-      </el-form>
-    </div>
-    <div style="text-align: center; margin-top: 15px">
-      <el-button size="small" @click="handleCancel">取消 </el-button>
-      <el-button type="primary" size="small" @click="handleSubmit">
-        确定</el-button
-      >
-    </div>
-  </div>
-</template>
-
-<script>
-import labelTitle from "@/components/label-title/index.vue";
-
-import { getToken } from "@/util/auth";
-
-export default {
-  name: "addCustomer",
-  components: { labelTitle },
-  props: {
-    form: {
-      type: Object,
-      default: () => {},
-    },
-  },
-  data() {
-    return {
-      uploadHeader: {
-        Authorization: "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
-        "Blade-Auth": "bearer " + getToken(),
-      },
-
-      loading: false,
-      formRules: {
-        receiptWarehouseId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.harvestWarehouse"),
-            trigger: "change",
-          },
-        ],
-        planArrivalTime: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.askArrivalTime"),
-            trigger: "change",
-          },
-        ],
-        countryId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.country"),
-            trigger: "change",
-          },
-        ],
-        provinceId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.province"),
-            trigger: "change",
-          },
-        ],
-        cityId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.city"),
-            trigger: "change",
-          },
-        ],
-        type: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.subscribeType"),
-            trigger: "change",
-          },
-        ],
-        name: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseInput") +
-              this.$t("purchase_management.subscribe.subscribeName"),
-            trigger: "blur",
-          },
-        ],
-        contacts: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseInput") +
-              this.$t("purchase_management.subscribe.contacts"),
-            trigger: "blur",
-          },
-        ],
-        phone: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseInput") +
-              this.$t("purchase_management.subscribe.contactNumber"),
-            trigger: "blur",
-          },
-        ],
-      },
-    };
-  },
-  created() {},
-  methods: {
-    handleSubmit() {
-      this.$refs.form.validate((valid) => {
-        if (valid) {
-          this.loading = true;
-          this.$emit("submit");
-        }
-      });
-    },
-    handleCancel() {
-      this.$emit("cancel");
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.form-box {
-  height: calc(100vh - 280px);
-  overflow: auto;
-  box-sizing: border-box;
-  padding: 10px;
-}
-::v-deep {
-  .el-form-item {
-    margin-bottom: 3px;
-  }
-  .el-form--label-top .el-form-item__label {
-    padding: 8px 0 0 0;
-  }
-}
-</style>

+ 0 - 295
src/views/inbound-outbound/outbound/index.vue

@@ -1,295 +0,0 @@
-
-
-<script>
-import test from "@/components/form-test/index.vue";
-import query from "@/components/query/index.vue";
-
-import byTable from "@/components/by-table/index.js";
-import addOutbound from "./addOutbound.vue";
-
-// import * as API from "@/api/inbound-outbound/outbound/index.js";
-
-export default {
-  components: {
-    test,
-    byTable,
-    query,
-    addOutbound,
-  },
-  data() {
-    return {
-      productTypeList: [],
-      btnForm: {
-        otherButton: {
-          list: [
-            {
-              name: this.$t("inbound_outbound.outbound.outboundAdd"),
-              methodsText: "add",
-              type: "primary",
-              add: () => {
-                this.handleAdd();
-              },
-            },
-          ],
-        },
-      },
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        keyword: "",
-        warehouseId: "",
-        status: "",
-        code: "",
-        goodsCode: "",
-        goodsName: "",
-        applyUserId: "",
-        startTime: "",
-        endTime: "",
-      },
-      selectConfig: [],
-      tableList: [],
-      loading: false,
-      titleText: "",
-      open: false,
-      form: {
-        id: "",
-        receiptWarehouseId: "",
-        planArrivalTime: "",
-        cause: "",
-        goodsId: [{}],
-      },
-    };
-  },
-  created() {
-    const businessDictData = JSON.parse(
-      window.localStorage.getItem("businessDict")
-    );
-    const list = businessDictData.find(
-      (item) => item.code === "productType"
-    ).children;
-    this.selectConfig[0].data = list.map((item) => ({
-      label: item.dictValue,
-      value: item.dictKey,
-    }));
-    this.productTypeList = list;
-    // this.getList();
-  },
-  methods: {
-    getList() {
-      this.loading = true;
-      API.outboundList(this.queryParams).then(
-        (res) => {
-          console.log(res, "qq");
-          this.tableList = res.data.data.records;
-          this.total = res.data.data.total;
-          this.loading = false;
-        },
-        (err) => {
-          console.log("outboundList: " + err);
-          this.loading = false;
-        }
-      );
-    },
-    handleQuery() {
-      this.getList();
-    },
-    handleAdd() {
-      this.form = {
-        id: "",
-        receiptWarehouseId: "",
-        planArrivalTime: "",
-        cause: "",
-        goodsId: [],
-      };
-      this.titleText = "add";
-      this.open = true;
-    },
-    handleCancel() {
-      this.form = {
-        id: "",
-        receiptWarehouseId: "",
-        planArrivalTime: "",
-        cause: "",
-        goodsId: [],
-      };
-      this.open = false;
-    },
-    handleEdit(row) {
-      this.titleText = "edit";
-      this.form = row;
-      this.open = true;
-      if (this.form.fileInfoList === "") {
-        this.form.fileInfoList = [];
-      }
-      this.$nextTick(() => {
-        this.$refs.addCustomer.loading = true;
-        this.$refs.addCustomer.countryChange(this.form.countryId);
-        this.$refs.addCustomer.provinceChange(this.form.provinceId);
-        this.$refs.addCustomer.loading = false;
-      });
-    },
-    handleSubmit() {
-      if (!this.form.id) {
-        API.outboundAdd(this.form).then(
-          () => {
-            this.msgSuccess("添加成功");
-            this.$refs.addCustomer.loading = false;
-            this.open = false;
-            this.getList();
-          },
-          (err) => {
-            console.log("outboundAdd: " + err);
-            this.$refs.addCustomer.loading = false;
-          }
-        );
-      } else {
-        API.outboundEdit(this.form).then(
-          () => {
-            this.msgSuccess(this.$t("editSuccess"));
-            this.open = false;
-            this.$refs.addCustomer.loading = false;
-            this.getList();
-          },
-          (err) => {
-            console.log("outboundEdit: " + err);
-            this.$refs.addCustomer.loading = false;
-          }
-        );
-      }
-    },
-
-    handleDelete(row) {
-      this.$confirm(this.$t("askDeleteData"), {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        API.outboundDel({ id: row.id }).then(() => {
-          this.msgSuccess("删除成功");
-          this.getList();
-        });
-      });
-    },
-    showAddress(row) {
-      return (
-        <div>
-          {row.countryName} , {row.provinceName} , {row.cityName}
-        </div>
-      );
-    },
-  },
-};
-</script>
-
-
-<template>
-  <div class="box-card">
-    <el-card class="header">
-      <test :form-config="btnForm"></test>
-    </el-card>
-    <el-card class="body-main">
-      <query
-        :selectConfig="selectConfig"
-        :req="queryParams"
-        :isShowMore="true"
-        @handleQuery="handleQuery"
-        @handleMore="
-          () => {
-            queryDialog = true;
-          }
-        "
-      ></query>
-      <el-table :data="tableList" v-loading="loading">
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.outboundOddNumbers')"
-          align="left"
-          prop="code"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.salesOddNumbers')"
-          align="left"
-          prop="name"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.customerType')"
-          align="left"
-          :formatter="showAddress"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.customerCode')"
-          align="left"
-          prop="contacts"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.customerNmae')"
-          align="left"
-          prop="phone"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.outboundQuantity')"
-          align="left"
-          prop="phone"
-        />
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.createTime')"
-          align="left"
-          prop="phone"
-        />
-
-        <el-table-column
-          :label="$t('inbound_outbound.outbound.remarks')"
-          align="left"
-          prop="phone"
-        />
-
-        <el-table-column label="操作" align="left" width="120">
-          <template slot-scope="scope">
-            <el-button type="text" @click="handleEdit(scope.row)"
-              >{{ $t("edit") }}
-            </el-button>
-            <el-button type="text" @click="handleDelete(scope.row)"
-              >{{ $t("delete") }}
-            </el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-card>
-
-    <el-dialog
-      :title="
-        titleText === 'add'
-          ? $t('inbound_outbound.outbound.outboundAdd')
-          : $t('inbound_outbound.outbound.outboundEdit')
-      "
-      :visible.sync="open"
-      v-if="open"
-      width="80%"
-      top="60px"
-    >
-      <add-outbound
-        :form="form"
-        @submit="handleSubmit"
-        @cancel="handleCancel"
-        ref="addOutbound"
-      ></add-outbound>
-    </el-dialog>
-  </div>
-</template>
-
-
-<style lang="scss" scoped>
-.box-card {
-  height: calc(100vh - 110px);
-  overflow-y: auto;
-  display: flex;
-  flex-direction: column;
-  .header {
-    // height: 100px;
-    margin-bottom: 10px;
-    box-sizing: border-box;
-  }
-  .body-main {
-    flex: 1;
-  }
-}
-</style>

+ 1 - 1
src/views/inbound-outbound/outbound/manualOutbound/index.vue

@@ -4,7 +4,7 @@
 import test from "@/components/form-test/index.vue";
 import query from "@/components/query/index.vue";
 
-import * as API from "@/api/inbound-outbound/manualOutbound.js";
+import * as API from "@/api/inbound-outbound/outbound/manualOutbound.js";
 
 import { warehouseSelectList } from "@/api/product-material/warehouse/index.js";
 import addManualOutbound from "./addManualOutbound.vue";

+ 0 - 272
src/views/inbound-outbound/outbound/salesOutbound/addOutbound.vue

@@ -1,272 +0,0 @@
-<template>
-  <div v-loading="loading">
-    <div class="form-box">
-      <el-form
-        label-position="top"
-        :model="form"
-        ref="form"
-        :rules="formRules"
-        label-width="100px"
-      >
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="销售订单" prop="receiptWarehouseId">
-              <el-select
-                v-model="form.receiptWarehouseId"
-                placeholder="请选择"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in subscribeTypeList"
-                  :key="item.id"
-                  :label="item.dictValue"
-                  :value="item.dictKey"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row>
-          <el-col :span="8">
-            <el-form-item
-              :label="$t('purchase_management.subscribe.askArrivalTime')"
-              prop="planArrivalTime"
-            >
-              <el-date-picker
-                v-model="form.planArrivalTime"
-                type="datetime"
-                placeholder="请选择"
-                value-format="yyyy-MM-dd HH:mm:ss"
-                style="width: 100%"
-              >
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row>
-          <el-col :span="12">
-            <el-form-item
-              :label="$t('purchase_management.subscribe.subscribeDescription')"
-              prop="cause"
-            >
-              <el-input
-                v-model="form.cause"
-                placeholder="请输入"
-                type="textarea"
-                rows="4"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <div style="margin-bottom: 20px">
-          <labelTitle
-            :content="$t('purchase_management.subscribe.subscribeDetails')"
-          ></labelTitle>
-        </div>
-        <el-form-item label-width="0px">
-          <el-button @click="selectDialog = true">
-            {{ $t("select") }}</el-button
-          >
-        </el-form-item>
-        <el-form-item>
-          <el-table :data="form.goodsId">
-            <el-table-column
-              :label="$t('purchase_management.subscribe.goodCode')"
-              prop="code"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.goodName')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.goodType')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.unit')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.stock')"
-              prop="name"
-            >
-            </el-table-column>
-            <el-table-column
-              :label="$t('purchase_management.subscribe.subscribeQuantity')"
-              prop="name"
-            >
-              <template slot-scope="scope">
-                <el-form-item label-width="0px" prop="aa">
-                  <el-input> </el-input>
-                </el-form-item>
-              </template>
-            </el-table-column>
-
-            <el-table-column label="操作" width="100" align="left">
-              <template slot-scope="scope">
-                <el-button type="text" @click="deleteRow(scope.$index)"
-                  >删除</el-button
-                >
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-form-item>
-      </el-form>
-    </div>
-    <div style="text-align: center; margin-top: 15px">
-      <el-button size="small" @click="handleCancel">取消 </el-button>
-      <el-button type="primary" size="small" @click="handleSubmit">
-        确定</el-button
-      >
-    </div>
-  </div>
-</template>
-
-<script>
-import labelTitle from "@/components/label-title/index.vue";
-
-import { getToken } from "@/util/auth";
-
-export default {
-  name: "addCustomer",
-  components: { labelTitle },
-  props: {
-    form: {
-      type: Object,
-      default: () => {},
-    },
-  },
-  data() {
-    return {
-      uploadHeader: {
-        Authorization: "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
-        "Blade-Auth": "bearer " + getToken(),
-      },
-
-      loading: false,
-      formRules: {
-        receiptWarehouseId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.harvestWarehouse"),
-            trigger: "change",
-          },
-        ],
-        planArrivalTime: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.askArrivalTime"),
-            trigger: "change",
-          },
-        ],
-        countryId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.country"),
-            trigger: "change",
-          },
-        ],
-        provinceId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.province"),
-            trigger: "change",
-          },
-        ],
-        cityId: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.city"),
-            trigger: "change",
-          },
-        ],
-        type: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseSelect") +
-              this.$t("purchase_management.subscribe.subscribeType"),
-            trigger: "change",
-          },
-        ],
-        name: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseInput") +
-              this.$t("purchase_management.subscribe.subscribeName"),
-            trigger: "blur",
-          },
-        ],
-        contacts: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseInput") +
-              this.$t("purchase_management.subscribe.contacts"),
-            trigger: "blur",
-          },
-        ],
-        phone: [
-          {
-            required: true,
-            message:
-              this.$t("pleaseInput") +
-              this.$t("purchase_management.subscribe.contactNumber"),
-            trigger: "blur",
-          },
-        ],
-      },
-    };
-  },
-  created() {},
-  methods: {
-    handleSubmit() {
-      this.$refs.form.validate((valid) => {
-        if (valid) {
-          this.loading = true;
-          this.$emit("submit");
-        }
-      });
-    },
-    handleCancel() {
-      this.$emit("cancel");
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.form-box {
-  height: calc(100vh - 280px);
-  overflow: auto;
-  box-sizing: border-box;
-  padding: 10px;
-}
-::v-deep {
-  .el-form-item {
-    margin-bottom: 3px;
-  }
-  .el-form--label-top .el-form-item__label {
-    padding: 8px 0 0 0;
-  }
-}
-</style>

+ 2 - 8
src/views/inbound-outbound/outbound/salesOutbound/index.vue

@@ -6,7 +6,7 @@ import query from "@/components/query/index.vue";
 
 import addOutbound from "@/components/inbound-outbound/addOutbound.vue";
 
-import * as API from "@/api/inbound-outbound/salesOutbound.js";
+import * as API from "@/api/inbound-outbound/outbound/salesOutbound.js";
 import { warehouseSelectList } from "@/api/product-material/warehouse/index.js";
 
 export default {
@@ -110,6 +110,7 @@ export default {
               productCode: x.productCode,
               productName: x.productName,
               notIssuedQuantity: x.notIssuedQuantity,
+              specs: x.productSpecs,
               changeQuantity: "",
               productId: x.productId,
               orderDetailsId: x.id,
@@ -135,13 +136,6 @@ export default {
       });
     },
     handleCancel() {
-      this.form = {
-        orderId: "",
-        warehouseId: "",
-        logisticsCode: "",
-        logisticsCompanyCode: "",
-        orderDetailsList: [],
-      };
       this.open = false;
     },
     handleSubmit() {

+ 445 - 0
src/views/inventory-management/bill/index.vue

@@ -0,0 +1,445 @@
+
+
+<script>
+import query from "@/components/query/index.vue";
+import * as API from "@/api/inventory-management/bill.js";
+
+export default {
+  components: {
+    query,
+  },
+  data() {
+    return {
+      activeName: "first",
+      warehouseTypeList: [],
+      productTypeList: [],
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: "",
+        warehouseId: "",
+        type: "2", //1 : 报溢 2 :报损  同时代表 0:出库  1:入库
+        code: "",
+        createUser: "",
+        beginTime: "",
+        endTime: "",
+      },
+      selectConfigOne: [],
+      selectConfigTwo: [],
+      tableList: [],
+      total: 0,
+      loading: false,
+    };
+  },
+  watch: {
+    activeName(val) {
+      if (val) {
+        switch (val) {
+          case "first":
+            this.queryParams.type = "2";
+            break;
+          case "second":
+            this.queryParams.type = "1";
+            break;
+          case "four":
+            this.queryParams.type = "1";
+            break;
+          case "five":
+            this.queryParams.type = "0";
+            break;
+          default:
+            break;
+        }
+        this.getList();
+      }
+    },
+  },
+  created() {
+    // const businessDictData = JSON.parse(
+    //   window.localStorage.getItem("businessDict")
+    // );
+    // this.productTypeList = businessDictData.find(
+    //   (item) => item.code === "productType"
+    // ).children;
+
+    // this.selectConfigOne[0].data = this.productTypeList.map((item) => ({
+    //   label: item.dictValue,
+    //   value: item.dictKey,
+    // }));
+    // this.warehouseTypeList = businessDictData.find(
+    //   (item) => item.code === "warehouseType"
+    // ).children;
+
+    // this.selectConfigTwo[0].data = this.warehouseTypeList.map((item) => ({
+    //   label: item.dictValue,
+    //   value: item.dictKey,
+    // }));
+
+    this.getList();
+  },
+  methods: {
+    getList() {
+      this.loading = true;
+      switch (this.activeName) {
+        case "first":
+        case "second":
+          API.formOverFlowLossList(this.queryParams).then(
+            (res) => {
+              this.tableList = res.data.data.records;
+              this.total = res.data.data.total;
+              this.loading = false;
+            },
+            (err) => {
+              console.log("formOverFlowLossList: " + err);
+              this.loading = false;
+            }
+          );
+          break;
+        case "four":
+        case "five":
+          API.stockJournalList(this.queryParams).then(
+            (res) => {
+              this.tableList = res.data.data.records;
+              this.total = res.data.data.total;
+              this.loading = false;
+            },
+            (err) => {
+              console.log("stockJournalList: " + err);
+              this.loading = false;
+            }
+          );
+          break;
+      }
+    },
+    handleQuery() {
+      this.getList();
+    },
+  },
+};
+</script>
+  <template>
+  <div>
+    <el-card class="box-card">
+      <el-tabs v-model="activeName" type="card">
+        <el-tab-pane label="报损单" name="first"> </el-tab-pane>
+        <el-tab-pane label="报溢单" name="second"> </el-tab-pane>
+        <el-tab-pane label="盘点单" name="third"> </el-tab-pane>
+        <el-tab-pane label="入库单" name="four"> </el-tab-pane>
+        <el-tab-pane label="出库单" name="five"> </el-tab-pane>
+        <el-tab-pane label="调仓单" name="six"> </el-tab-pane>
+      </el-tabs>
+      <div v-show="activeName === 'first'">
+        <query
+          :selectConfig="selectConfigOne"
+          :req="queryParams"
+          :isShowMore="true"
+          @handleQuery="handleQuery"
+          @handleMore="
+            () => {
+              queryDialog = true;
+            }
+          "
+        ></query>
+        <el-table :data="tableList" v-loading="loading">
+          <el-table-column
+            label="报损单号"
+            align="left"
+            width="150"
+            prop="code"
+          />
+          <el-table-column
+            label="报损仓库"
+            align="left"
+            width="140"
+            prop="warehouseName"
+          />
+          <el-table-column
+            label="报损金额"
+            align="left"
+            width="120"
+            prop="amount"
+          />
+          <el-table-column
+            label="报损时间"
+            align="left"
+            width="150"
+            prop="createTime"
+          />
+          <el-table-column
+            label="报损人员"
+            align="left"
+            width="110"
+            prop="createUserName"
+          />
+          <el-table-column label="报损原因" align="left" prop="remarks" />
+          <el-table-column label="操作" align="center" width="120">
+            <template>
+              <el-button type="text" @click="deleteRow(scope.$index)"
+                >查看</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <div v-show="activeName === 'second'">
+        <query
+          :selectConfig="selectConfigOne"
+          :req="queryParams"
+          :isShowMore="true"
+          @handleQuery="handleQuery"
+          @handleMore="
+            () => {
+              queryDialog = true;
+            }
+          "
+        ></query>
+        <el-table :data="tableList" v-loading="loading">
+          <el-table-column
+            label="报溢单号"
+            align="left"
+            width="150"
+            prop="code"
+          />
+          <el-table-column
+            label="报溢仓库"
+            align="left"
+            width="140"
+            prop="warehouseName"
+          />
+          <el-table-column
+            label="报溢金额"
+            align="left"
+            width="120"
+            prop="amount"
+          />
+          <el-table-column
+            label="报溢时间"
+            align="left"
+            width="150"
+            prop="createTime"
+          />
+          <el-table-column
+            label="报溢人员"
+            align="left"
+            width="110"
+            prop="createUserName"
+          />
+          <el-table-column label="报溢原因" align="left" prop="remarks" />
+          <el-table-column label="操作" align="center" width="120">
+            <template>
+              <el-button type="text" @click="deleteRow(scope.$index)"
+                >查看</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <div v-show="activeName === 'third'">
+        <query
+          :selectConfig="selectConfigOne"
+          :req="queryParams"
+          :isShowMore="true"
+          @handleQuery="handleQuery"
+          @handleMore="
+            () => {
+              queryDialog = true;
+            }
+          "
+        ></query>
+        <el-table :data="tableList" v-loading="loading">
+          <el-table-column
+            label="盘点单号"
+            align="left"
+            width="150"
+            prop="customerName"
+          />
+          <el-table-column
+            label="盘点仓库"
+            align="left"
+            width="140"
+            prop="amountMoney"
+          />
+          <el-table-column label="金额" align="left" width="120" />
+          <el-table-column
+            label="盘点时间"
+            align="left"
+            width="150"
+            prop="orderTime"
+          />
+          <el-table-column
+            label="盘点人员"
+            align="left"
+            width="110"
+            prop="orderTime"
+          />
+          <el-table-column label="盘点结论" align="left" />
+          <el-table-column label="操作" align="center" width="120">
+            <template>
+              <el-button type="text" @click="deleteRow(scope.$index)"
+                >查看</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <div v-show="activeName === 'four'">
+        <query
+          :selectConfig="selectConfigOne"
+          :req="queryParams"
+          :isShowMore="true"
+          @handleQuery="handleQuery"
+          @handleMore="
+            () => {
+              queryDialog = true;
+            }
+          "
+        ></query>
+        <el-table :data="tableList" v-loading="loading">
+          <el-table-column
+            label="入库单号"
+            align="left"
+            width="150"
+            prop="code"
+          />
+          <el-table-column label="入库仓库" align="left" prop="warehouseName" />
+          <el-table-column
+            label="入库金额"
+            align="left"
+            width="120"
+            prop="amount"
+          />
+          <el-table-column
+            label="入库时间"
+            align="left"
+            width="150"
+            prop="createTime"
+          />
+          <el-table-column
+            label="入库人员"
+            align="left"
+            width="110"
+            prop="createUserName"
+          />
+
+          <el-table-column label="操作" align="center" width="120">
+            <template>
+              <el-button type="text" @click="deleteRow(scope.$index)"
+                >查看</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <div v-show="activeName === 'five'">
+        <query
+          :selectConfig="selectConfigOne"
+          :req="queryParams"
+          :isShowMore="true"
+          @handleQuery="handleQuery"
+          @handleMore="
+            () => {
+              queryDialog = true;
+            }
+          "
+        ></query>
+        <el-table :data="tableList" v-loading="loading">
+          <el-table-column
+            label="出库单号"
+            align="left"
+            width="150"
+            prop="code"
+          />
+          <el-table-column label="出库仓库" align="left" prop="warehouseName" />
+          <el-table-column
+            label="出库金额"
+            align="left"
+            width="120"
+            prop="amount"
+          />
+          <el-table-column
+            label="出库时间"
+            align="left"
+            width="150"
+            prop="createTime"
+          />
+          <el-table-column
+            label="出库人员"
+            align="left"
+            width="110"
+            prop="createUserName"
+          />
+
+          <el-table-column label="操作" align="center" width="120">
+            <template>
+              <el-button type="text" @click="deleteRow(scope.$index)"
+                >查看</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <div v-show="activeName === 'six'">
+        <query
+          :selectConfig="selectConfigOne"
+          :req="queryParams"
+          :isShowMore="true"
+          @handleQuery="handleQuery"
+          @handleMore="
+            () => {
+              queryDialog = true;
+            }
+          "
+        ></query>
+        <el-table :data="tableList" v-loading="loading">
+          <el-table-column
+            label="调仓单号"
+            align="left"
+            width="150"
+            prop="customerName"
+          />
+          <el-table-column label="调仓仓库" align="left" prop="amountMoney" />
+          <el-table-column label="调仓金额" align="left" width="120" />
+          <el-table-column
+            label="调仓时间"
+            align="left"
+            width="150"
+            prop="orderTime"
+          />
+          <el-table-column
+            label="调仓人员"
+            align="left"
+            width="110"
+            prop="orderTime"
+          />
+
+          <el-table-column label="操作" align="center" width="120">
+            <template>
+              <el-button type="text" @click="deleteRow(scope.$index)"
+                >查看</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-card>
+  </div>
+</template>
+<style lang="scss" scoped>
+.box-card {
+  height: calc(100vh - 110px);
+  overflow-y: auto;
+}
+</style>

+ 1 - 1
src/views/product-material/customer/addCustomer.vue

@@ -71,7 +71,7 @@
                   v-model="form.cityId"
                   placeholder="城市"
                   style="width: 100%"
-                  :disabled="!provinceData.length > 0 && !cityData.length > 0"
+                  :disabled="form.provinceId"
                 >
                   <el-option
                     v-for="item in cityData"

+ 12 - 32
src/views/product-material/material/addMaterial.vue

@@ -8,25 +8,18 @@
         ref="form"
         label-width="100px"
       >
-        <el-form-item
-          :label="$t('product_material.material.materialClassify')"
-          prop="classifyId"
-        >
+        <el-form-item label="物料分类" prop="classifyId">
           <el-cascader
             :options="selectList"
             v-model="form.classifyId"
             :emitPath="false"
             :props="{ label: 'name', value: 'id' }"
             style="width: 100%"
-            size="small"
           ></el-cascader>
         </el-form-item>
         <el-row>
           <el-col :span="6">
-            <el-form-item
-              :label="$t('product_material.material.materialType')"
-              prop="type"
-            >
+            <el-form-item label="物料类型" prop="type">
               <el-select
                 v-model="form.type"
                 placeholder="请选择"
@@ -45,10 +38,7 @@
         </el-row>
         <el-row :gutter="10">
           <el-col :span="6">
-            <el-form-item
-              :label="$t('product_material.material.materialCode')"
-              prop="code"
-            >
+            <el-form-item label="物料编码" prop="code">
               <el-input v-model="form.code" placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
@@ -58,18 +48,12 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item
-          :label="$t('product_material.material.materialName')"
-          prop="name"
-        >
+        <el-form-item label="物料名称" prop="name">
           <el-input v-model="form.name" placeholder="请输入"></el-input>
         </el-form-item>
         <el-row>
           <el-col :span="6">
-            <el-form-item
-              :label="$t('product_material.material.materialUnit')"
-              prop="unit"
-            >
+            <el-form-item label="单位" prop="unit">
               <el-select
                 v-model="form.unit"
                 placeholder="请选择"
@@ -88,23 +72,19 @@
         </el-row>
         <el-row>
           <el-col :span="6">
-            <el-form-item
-              :label="$t('product_material.material.deptId')"
-              prop="deptId"
-            >
+            <el-form-item label="管理部门" prop="deptId">
               <el-cascader
                 :options="deptList"
                 v-model="form.deptId"
                 :emitPath="false"
                 :props="{ label: 'deptName', value: 'id' }"
                 style="width: 100%"
-                size="small"
                 :show-all-levels="false"
               ></el-cascader>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item :label="$t('product_material.material.description')">
+        <el-form-item label="说明">
           <el-input
             v-model="form.introduce"
             type="textarea"
@@ -187,35 +167,35 @@ export default {
         classifyId: [
           {
             required: true,
-            message: this.$t("product_material.material.materialClassifyRules"),
+            message: "请选择物料分类",
             trigger: "change",
           },
         ],
         type: [
           {
             required: true,
-            message: this.$t("product_material.material.materialTypeRules"),
+            message: "请选择物料类型",
             trigger: "change",
           },
         ],
         deptId: [
           {
             required: true,
-            message: this.$t("product_material.material.deptIdRules"),
+            message: "请选择管理部门",
             trigger: "change",
           },
         ],
         unit: [
           {
             required: true,
-            message: this.$t("product_material.material.materialUnitRules"),
+            message: "请选择单位",
             trigger: "change",
           },
         ],
         name: [
           {
             required: true,
-            message: this.$t("product_material.material.materialNameRules"),
+            message: "请输入物料名称",
             trigger: "blur",
           },
         ],

+ 1 - 6
src/views/product-material/material/index.vue

@@ -42,12 +42,7 @@
               prop="name"
               width="150"
             />
-            <el-table-column
-              label="物料单位"
-              align="left"
-              prop="unit"
-              width="80"
-            />
+            <el-table-column label="单位" align="left" prop="unit" width="80" />
             <el-table-column
               label="管理部门"
               align="left"

+ 1 - 1
src/views/product-material/product/addProduct.vue

@@ -15,7 +15,6 @@
             :emitPath="false"
             :props="{ label: 'name', value: 'id' }"
             style="width: 100%"
-            size="small"
           ></el-cascader>
         </el-form-item>
         <el-form-item label="产品类型" prop="type">
@@ -109,6 +108,7 @@
         </el-row>
         <el-form-item label="产品照片">
           <el-upload
+            class="upload-demo"
             action="/api/service-file/uploadFile"
             :headers="uploadHeader"
             list-type="picture-card"

+ 31 - 1
src/views/product-material/product/index.vue

@@ -43,6 +43,12 @@
               min-width="150"
               :formatter="showIsCombination"
             />
+            <el-table-column
+              label="规格"
+              align="left"
+              prop="specs"
+              width="130"
+            />
             <el-table-column label="单位" align="left" prop="unit" width="80" />
             <el-table-column
               label="部门"
@@ -55,12 +61,13 @@
               align="left"
               prop="lifeCycle"
               width="100"
+              :formatter="(row) => dictDataEcho(row.lifeCycle, lifeCycleList)"
             />
             <el-table-column
               label="当前周期销量"
               align="left"
-              prop="cycleSales"
               width="120"
+              :formatter="showCycleSales"
             />
             <el-table-column
               label="京东供价"
@@ -348,6 +355,7 @@ export default {
   data() {
     return {
       deptList: [],
+      lifeCycleList: [],
       defaultProps: {
         children: "children",
         label: "deptName",
@@ -434,11 +442,21 @@ export default {
     const list = businessDictData.find(
       (item) => item.code === "productType"
     ).children;
+
     this.selectConfig[0].data = list.map((item) => ({
       label: item.dictValue,
       value: item.dictKey,
     }));
     this.productTypeList = list;
+
+    this.lifeCycleList = businessDictData.find(
+      (item) => item.code === "lifeCycle"
+    ).children;
+
+    this.selectConfig[1].data = this.lifeCycleList.map((item) => ({
+      label: item.dictValue,
+      value: item.dictKey,
+    }));
     this.getList();
   },
   methods: {
@@ -625,6 +643,18 @@ export default {
         return current.dictValue;
       }
     },
+    showCycleSales(row) {
+      if (row.lifeCycle) {
+        switch (row.lifeCycle) {
+          case 1:
+            return row.newProductsExpectedSales;
+          case 2:
+            return row.growUpExpectedSales;
+          case 3:
+            return row.matureExpectedSales;
+        }
+      }
+    },
     showIsCombination(row) {
       if (row.combination === 1) {
         return (