瀏覽代碼

Merge branch 'feature/Feature-finance' of https://gogs.zfire.top/zfire-front/supply-front into feature/Feature-finance

chen 3 年之前
父節點
當前提交
5f0cf2b4bc

+ 7 - 0
src/api/basic_data/material.js

@@ -7,6 +7,13 @@ export function getList(params) {
     params
   })
 }
+export function getCategoryList(params) {
+  return request({
+    url: '/k3/category/list',
+    method: 'get',
+    params
+  })
+}
 
 
 export function getMaterialList(params) {

+ 28 - 1
src/api/stock.js

@@ -3,7 +3,34 @@ import request from '@/utils/request'
 // 获取库存列表
 export function getStockList(params) {
   return request({
-    url: '/admin/user/mch/list',
+    url: '/stock/manager/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取仓库列表
+export function getWarehouseList(params) {
+  return request({
+    url: '/stock/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取销售类型列表
+export function getSalesTypeList(params) {
+  return request({
+    url: '/sale/type/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取预留库存列表
+export function getReservedList(params) {
+  return request({
+    url: '/stock/manager/listCustomer',
     method: 'get',
     params
   })

+ 27 - 0
src/api/supply/purchase.js

@@ -34,4 +34,31 @@ export function getEnterDetail(params) {
     method: 'get',
     params
   })
+}
+
+// 获取采购计划单列表
+export function getPlanList(params) {
+  return request({
+    url: '/plan/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取经销商采购计划单汇总列表
+export function getSumList(params) {
+  return request({
+    url: '/plan/listCustomer',
+    method: 'get',
+    params
+  })
+}
+
+// 提交经销商采购计划单
+export function submitPlan(params) {
+  return request({
+    url: '/plan/submitPlan',
+    method: 'post',
+    data: params
+  })
 }

+ 1 - 3
src/main.js

@@ -32,9 +32,7 @@ Vue.component('ExportButton', ExportButton);
 import ImportButton from '@/components/Common/import-button.vue'
 Vue.component('ImportButton', ImportButton);
 
-
-Vue.prototype.$fileUrl = process.env.VUE_APP_BASE_API + 'common/file/get?key=';
-Vue.prototype.$imageUrl = process.env.VUE_APP_BASE_API + 'common/img/get?key=';
+Vue.prototype.$imageUrl = process.env.VUE_APP_BASE_API + 'img/get?key=';
 
 /**
  * If you don't want to use mock-server

+ 11 - 0
src/views/basic_data/dealer/dealer_deposit.vue

@@ -353,6 +353,17 @@ export default {
     },
     //取消
     async cancelFn() {
+      this.dialogForm = {
+        amount: "",
+        customerId: "",
+        customerName: "",
+        customerNumber: "",
+        endTime: "",
+
+        rate: "",
+        remark: "",
+        startTime: "",
+      };
       await this.$refs.dialogForm.resetFields();
       this.showDialog = false;
     },

+ 31 - 53
src/views/basic_data/material/category_list.vue

@@ -35,46 +35,28 @@
             highlight-current-row
             stripe
           >
-            <!-- <el-table-column
-              type="selection"
-              align="center"
-              min-width="100"
-            ></el-table-column> -->
             <el-table-column
               align="center"
               label="编码"
-              prop="dictCode"
+              prop="number"
               min-width="100"
             ></el-table-column>
             <el-table-column
               align="center"
-              label="类型"
+              label="创建组织"
               prop="dictType"
               min-width="100"
             ></el-table-column>
             <el-table-column
               align="center"
               label="名称"
-              prop="dictValue"
+              prop="name"
               min-width="100"
             ></el-table-column>
-
             <el-table-column
               align="center"
-              label="备注"
-              prop="remark"
-              min-width="100"
-            ></el-table-column>
-             <el-table-column
-              align="center"
-              label="更新时间"
-              prop="createTime"
-              min-width="100"
-            ></el-table-column>
-            <!-- <el-table-column
-              align="center"
               label="使用组织"
-              prop="useOrganize"
+              prop="useOrgId"
               min-width="100"
             ></el-table-column>
             <el-table-column
@@ -88,29 +70,39 @@
               label="禁用状态"
               prop="disableState"
               min-width="100"
-            ></el-table-column>
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  type="success"
+                  size="small"
+                  v-if="scope.row.forbidStatus == 'A'"
+                  >正常</el-tag
+                >
+                <el-tag type="danger" size="small" v-else>禁用</el-tag>
+              </template>
+            </el-table-column>
             <el-table-column
               align="center"
               label="创建人"
-              prop="create"
+              prop="createBy"
               min-width="100"
             ></el-table-column>
             <el-table-column
               align="center"
               label="创建日期"
-              prop="createDate"
+              prop="createTime"
               min-width="100"
             ></el-table-column>
             <el-table-column
               align="center"
               label="修改人"
-              prop="modify"
+              prop="updateBy"
               min-width="100"
-            ></el-table-column> -->
-            <!-- <el-table-column
+            ></el-table-column>
+            <el-table-column
               align="center"
               label="修改日期"
-              prop="modifyDate"
+              prop="updateTime"
               min-width="100"
             ></el-table-column>
             <el-table-column
@@ -137,17 +129,6 @@
               prop="disableDate"
               min-width="100"
             ></el-table-column>
-            <el-table-column
-              align="center"
-              label="操作"
-              min-width="160"
-              show-overflow-tooltip
-            >
-              <el-button type="text" class="textColor" @click="editFn"
-                >编辑</el-button
-              >
-              <el-button type="text" class="textColor">删除</el-button>
-            </el-table-column> -->
           </el-table>
         </div>
         <!-- 分页 -->
@@ -163,18 +144,16 @@
         </div>
       </div>
     </div>
-    <CategoryListDetail v-else />
+    <!-- <CategoryListDetail v-else /> -->
   </div>
 </template>
 
 <script>
 import CategoryListDetail from "./components/category_list-detail.vue";
-import {
- getDictList
-} from "@/api/common";
+import { getCategoryList } from "@/api/basic_data/material";
 import Mixin from "@/mixin/index";
 export default {
-   mixins: [Mixin],
+  mixins: [Mixin],
   data() {
     return {
       isShow: true,
@@ -256,23 +235,22 @@ export default {
     editFn() {
       this.isShow = false;
     },
-      // 初始化数据
+    // 初始化数据
     getList() {
       this.listLoading = true;
       let params = {
-       sysDictEnum:'PRODUCT_TYPE'
-
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        keyword: "",
       };
-      getDictList(params).then((res) => {
-        this.dataList = res.data;
+      getCategoryList(params).then((res) => {
+        this.dataList = res.data.records;
         this.listTotal = res.data.total;
         this.listLoading = false;
-        // console.log(this.dataList, 1233);
       });
     },
   },
 };
 </script>
 
-<style>
-</style>
+<style></style>

+ 132 - 107
src/views/basic_data/material/components/modify_list-apply.vue

@@ -8,7 +8,7 @@
       <el-form label-width="100px" size="small" label-position="left">
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="单据编号" >
+            <el-form-item label="单据编号">
               <el-input
                 placeholder="请输入"
                 disabled
@@ -17,7 +17,7 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="调价日期" >
+            <el-form-item label="调价日期">
               <el-date-picker
                 v-model="base.startDate"
                 type="datetime"
@@ -29,17 +29,17 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="调价部门" >
+            <el-form-item label="调价部门">
               <el-input placeholder="请输入" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="调价业务员" >
+            <el-form-item label="调价业务员">
               <el-input placeholder="请输入" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="制单日期" >
+            <el-form-item label="制单日期">
               <el-date-picker
                 v-model="startDate"
                 disabled
@@ -51,15 +51,18 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="销售类型" >
+            <el-form-item label="销售类型">
               <el-select placeholder="请选择销售类型" v-model="saleTypeId">
-                <el-option  v-for="item in typeList" :label="item.name" :value="item.name"></el-option>
-
+                <el-option
+                  v-for="item in typeList"
+                  :label="item.name"
+                  :value="item.name"
+                ></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="文件编码" >
+            <el-form-item label="文件编码">
               <el-input placeholder="请输入" v-model="base.remark"></el-input>
             </el-form-item>
           </el-col>
@@ -80,7 +83,7 @@
         <el-button
           type="primary"
           size="small"
-          @click="centerDialogVisible = true ,getMaterialList()"
+          @click="(centerDialogVisible = true), getMaterialList()"
           >添加</el-button
         >
       </div>
@@ -88,7 +91,12 @@
     <div class="mymain-container">
       <!-- 列表 -->
       <div class="table">
-        <el-form :model="items" v-if="!detail.length"  size="small" label-position="left">
+        <el-form
+          :model="items"
+          v-if="!detail.length"
+          size="small"
+          label-position="left"
+        >
           <el-table
             v-loading="listLoading"
             :data="items"
@@ -106,25 +114,34 @@
               show-overflow-tooltip
             >
               <!-- <el-button type="text" class="textColor">修改</el-button> -->
-            <template slot-scope="scope">
-                <el-button type="text" class="textColor" @click="hanleDeleInd(scope.$index)">删除</el-button>
-            </template>
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  class="textColor"
+                  @click="hanleDeleInd(scope.$index)"
+                  >删除</el-button
+                >
+              </template>
             </el-table-column>
             <el-table-column
               align="center"
               label="销售类型"
               prop="saleTypeId"
-
               min-width="160"
               show-overflow-tooltip
             >
               <template slot-scope="scope">
                 <el-form-item>
-                   <el-select placeholder="请选择销售类型" v-model="scope.row.saleTypeId">
-                <el-option  v-for="item in typeList" :label="item.name" :value="item.id"></el-option>
-
-              </el-select>
-
+                  <el-select
+                    placeholder="请选择销售类型"
+                    v-model="scope.row.saleTypeId"
+                  >
+                    <el-option
+                      v-for="item in typeList"
+                      :label="item.name"
+                      :value="item.id"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </template>
             </el-table-column>
@@ -357,25 +374,34 @@
               show-overflow-tooltip
             >
               <!-- <el-button type="text" class="textColor">修改</el-button> -->
-            <template slot-scope="scope">
-                <el-button type="text" class="textColor" @click="hanleDeleInd(scope.$index)">删除</el-button>
-            </template>
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  class="textColor"
+                  @click="hanleDeleInd(scope.$index)"
+                  >删除</el-button
+                >
+              </template>
             </el-table-column>
             <el-table-column
               align="center"
               label="销售类型"
               prop="saleTypeId"
-
               min-width="160"
               show-overflow-tooltip
             >
               <template slot-scope="scope">
                 <el-form-item>
-                   <el-select placeholder="请选择销售类型" v-model="scope.row.saleTypeId">
-                <el-option  v-for="item in typeList" :label="item.name" :value="item.id"></el-option>
-
-              </el-select>
-
+                  <el-select
+                    placeholder="请选择销售类型"
+                    v-model="scope.row.saleTypeId"
+                  >
+                    <el-option
+                      v-for="item in typeList"
+                      :label="item.name"
+                      :value="item.id"
+                    ></el-option>
+                  </el-select>
                 </el-form-item>
               </template>
             </el-table-column>
@@ -597,21 +623,26 @@
           center
           class="dia"
         >
-        <el-form :model="form" ref="form" :rules="rules" label-width="80px" :inline="false" size="normal">
-          <el-form-item label="产品类型">
-             <el-select v-model="materialId" placeholder="请选择" width="100%">
-            <el-option
-              v-for="item in materialLis"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id"
-            >
-            </el-option>
-          </el-select>
-          </el-form-item>
-
-        </el-form>
-
+          <el-form
+            :model="form"
+            ref="form"
+            :rules="rules"
+            label-width="80px"
+            :inline="false"
+            size="normal"
+          >
+            <el-form-item label="产品类型">
+              <el-select v-model="materialId" placeholder="请选择" width="100%">
+                <el-option
+                  v-for="item in materialLis"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-form>
 
           <span slot="footer" class="dialog-footer">
             <el-button @click="centerDialogVisible = false">取 消</el-button>
@@ -635,49 +666,47 @@ import {
   getTypeList,
   // getTree,
   getMaterialList,
-  getRebate
+  getRebate,
 } from "@/api/basic_data/material";
 import { thisTypeAnnotation } from "@babel/types";
 export default {
   data() {
     return {
       base: {
-        adminCompanyId: "3",
-        adminWebsitId: "3",
-        billId: "5",
-        examineNote: "5",
+        adminCompanyId: "",
+        adminWebsitId: "",
+        billId: "",
+        examineNote: "",
         examineResult: true,
         examineStatus: "",
         id: null,
         operatorId: "",
         operatorName: "",
         remark: "",
-        saleTypeId: "33",
+        saleTypeId: "",
       },
-      items: [
-
-      ],
+      items: [],
       centerDialogVisible: false,
-      materialLis:[],
-      materialId:'',
-      rebateList:[],
-      typeList:[],
-      saleTypeId:'',
-      remark:'',
-      detail:[]
+      materialLis: [],
+      materialId: "",
+      rebateList: [],
+      typeList: [],
+      saleTypeId: "",
+      remark: "",
+      detail: [],
     };
   },
   mounted() {
-       let params={
-        pageNum:1,
-       pageSize:10,
-       saleCode:'',
-       saleName:'',
-       status:1
-      }
-    getTypeList(params).then(res=>{
-      this.typeList = res.data.records
-    })
+    let params = {
+      pageNum: 1,
+      pageSize: 10,
+      saleCode: "",
+      saleName: "",
+      status: 1,
+    };
+    getTypeList(params).then((res) => {
+      this.typeList = res.data.records;
+    });
   },
   methods: {
     hanleChange(e) {
@@ -686,36 +715,32 @@ export default {
     goBack() {
       this.$parent.show = 1;
     },
-     indexMethod(index) {
+    indexMethod(index) {
       console.log(index);
-
-      },
-    hanleDeleInd(index){
-
-        this.items.splice(index,1)
     },
-    getMaterialList(){
-      let rebateParams={
-        pageNum:1,
-       pageSize:10,
-       mainName:'',
-       saleTypeCode:'',
-       saleTypeName:'',
-       status:1
-      }
-      getRebate(rebateParams).then(res=>{
-          this.rebateList = res.data.records
-      })
-       let params = {
-        pageNum:1,
+    hanleDeleInd(index) {
+      this.items.splice(index, 1);
+    },
+    getMaterialList() {
+      let rebateParams = {
+        pageNum: 1,
+        pageSize: 10,
+        mainName: "",
+        saleTypeCode: "",
+        saleTypeName: "",
+        status: 1,
+      };
+      getRebate(rebateParams).then((res) => {
+        this.rebateList = res.data.records;
+      });
+      let params = {
+        pageNum: 1,
         pageSize: 10,
-        keyword: '',
+        keyword: "",
       };
       getMaterialList(params).then((res) => {
         this.materialLis = res.data.records;
-
       });
-
     },
     hanleAdd() {
       this.centerDialogVisible = false;
@@ -739,14 +764,14 @@ export default {
         startDate: "",
         wallets: [
           {
-                 billId:'44',
-                 id:'',
-                mainId:'',
-              parentId:'',
-               parentItemId:''
-          }
+            billId: "44",
+            id: "",
+            mainId: "",
+            parentId: "",
+            parentItemId: "",
+          },
         ],
-        rebateList:this.rebateList,
+        rebateList: this.rebateList,
         isPublishArr: [
           {
             value: "是",
@@ -829,13 +854,13 @@ export default {
           saleTypeId: "2332",
         };
 
-        getProductRriceDetail({id:res.data}).then(res=>{
-          this.base={
-              ...res.data
-          }
+        getProductRriceDetail({ id: res.data }).then((res) => {
+          this.base = {
+            ...res.data,
+          };
 
-          this.detail = res.data.items
-        })
+          this.detail = res.data.items;
+        });
       });
     },
   },
@@ -846,7 +871,7 @@ export default {
 ::v-deep .el-date-editor--date {
   width: 100%;
 }
-.dia .el-select--normal{
+.dia .el-select--normal {
   width: 100%;
 }
 </style>

+ 30 - 82
src/views/basic_data/material/machine_list.vue

@@ -112,74 +112,40 @@
           <el-table-column type="selection" align="center"></el-table-column>
           <el-table-column
             align="center"
-            label="内机名称"
-            prop="innerMachineName"
+            label="类型"
+            prop="type"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
-            label="内机型号"
-            prop="innerMachineType"
+            label="名称"
+            prop="name"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
-            label="编码"
-            prop="innerMachineNumber"
-            min-width="160"
-            show-overflow-tooltip
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            label="内机体积"
-            prop="innerMachineVolume"
-            min-width="160"
-            show-overflow-tooltip
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            label="外机名称"
-            prop="outsideMachineName"
-            min-width="160"
-            show-overflow-tooltip
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            label="外机型号"
-            prop="outsideMachineType"
-            min-width="160"
-            show-overflow-tooltip
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            label="外机编码"
-            prop="outsideMachineNumber"
-            min-width="160"
-            show-overflow-tooltip
-          ></el-table-column>
-          <el-table-column
-            align="center"
-            label="外机体积"
-            prop="outsideMachineVolume"
+            label="型号"
+            prop="model"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
-            label="配件1"
-            prop="parts1"
+            label="编码"
+            prop="number"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
-            label="配件2"
-            prop="parts2"
+            label="体积"
+            prop="volume"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
+
           <el-table-column
             align="center"
             label="创建人"
@@ -271,16 +237,12 @@
         label-position="left"
       >
         <el-form-item label="类型">
-          <el-select
-            v-model="diaLogForm.type"
-
-            placeholder="请选择"
-          >
+          <el-select v-model="diaLogForm.type" placeholder="请选择">
             <el-option
               v-for="item in distList"
-              :key="item.sysDictId"
+              :key="item.dictCode"
               :label="item.dictValue"
-              :value="item.sysDictId"
+              :value="item.dictCode"
             >
             </el-option>
           </el-select>
@@ -316,7 +278,9 @@ import {
   getMachineAdd,
   getMachineDel,
   getMachineEdit,
-  getDistList
+  getDistList,
+  getMaterialList,
+
 } from "@/api/basic_data/material";
 export default {
   mixins: [Mixin],
@@ -353,18 +317,8 @@ export default {
         number: "",
         model: "",
         volume: "",
-        type:''
-        // parts1:'',
-        // parts2:"",
-        // innerMachineName: "",
-        // innerMachineNumber: "",
-        // innerMachineType: "",
-        // innerMachineVolume: 2,
-        // orgNumber: "",
-        // outsideMachineName: "",
-        // outsideMachineNumber: "",
-        // outsideMachineType: "",
-        // outsideMachineVolume: 2,
+        type: "",
+
       },
       showDialogForm: false,
       dataList: [
@@ -467,18 +421,8 @@ export default {
         number: row.number,
         model: row.model,
         volume: row.volume,
-        type:row.type
-        // parts1:row.parts1,
-        // parts2:row.parts2,
-        // innerMachineName: row.innerMachineName,
-        // innerMachineNumber: row.innerMachineNumber,
-        // innerMachineType: row.innerMachineType,
-        // innerMachineVolume: row.innerMachineVolume,
-        // orgNumber: row.orgNumber,
-        // outsideMachineName: row.outsideMachineName,
-        // outsideMachineNumber: row.outsideMachineNumber,
-        // outsideMachineType: row.outsideMachineType,
-        // outsideMachineVolume: row.outsideMachineVolume,
+        type: row.type,
+
       };
       this.showDialogForm = true;
     },
@@ -518,10 +462,10 @@ export default {
         this.listLoading = false;
         console.log(this.dataList, 1233);
       });
-      getDistList({sysDictEnum:'MACHINE_CONFIGURE'}).then(res=>{
-          this.distList = res.data
-        console.log(res,123);
-      })
+      getDistList({ sysDictEnum: "MACHINE_CONFIGURE" }).then((res) => {
+        this.distList = res.data;
+        console.log(res, 123);
+      });
     },
     // 导入
     async handleImport(param) {
@@ -560,7 +504,6 @@ export default {
         });
       });
     },
-
     resetInfo() {
       this.diaLogForm = {
         id: null,
@@ -575,6 +518,7 @@ export default {
         outsideMachineVolume: 2,
       };
     },
+
   },
 };
 </script>
@@ -583,4 +527,8 @@ export default {
 ::v-deep .el-select {
   width: 100%;
 }
+.import-btn {
+  display: inline-block;
+  margin-right: 10px;
+}
 </style>

+ 194 - 103
src/views/basic_data/material/relation_list.vue

@@ -294,77 +294,94 @@
     <el-dialog
       title="产品信息"
       :visible.sync="showDialogForm"
-      width="30%"
+      width="70%"
       :show-close="false"
       :close-on-click-modal="false"
     >
-      <el-form ref="form" :model="diaLogForm" label-width="100px">
-        <el-form-item label="产品名称">
-         <el-select placeholder="请选择产品品类" v-model="diaLogForm.materialId">
+      <el-form ref="form" :model="diaLogForm" label-width="80px">
+        <el-row :gutter="20">
+          <el-col :span="12" :offset="0">
+            <el-form-item label="产品名称">
+              <el-select
+                placeholder="选择名称"
+                @change="hanleName"
+                v-model="diaLogForm.materialId"
+              >
                 <el-option
                   v-for="item in materialLis"
                   :label="item.name"
                   :value="item.id"
                 ></el-option>
               </el-select>
+            </el-form-item>
+            <el-form-item label="产品型号">
+              <el-input v-model="diaLogForm.productModel"></el-input>
+            </el-form-item>
+            <el-form-item label="套机编码">
+              <el-input v-model="diaLogForm.productNumber"></el-input>
+            </el-form-item>
+            <el-form-item label="产品体积">
+              <el-input v-model="diaLogForm.productVolume"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" :offset="0">
+            <el-row>
+              <el-col :span="22" type="flex">
+                <el-form-item label="类型">
+                  <el-select
+                    v-model="diaLogForm.type"
+                    @change="hanleType"
+                    placeholder="请选择类型"
+                  >
+                    <el-option
+                      v-for="item in DistType"
+                      :key="item.dictCode"
+                      :label="item.dictValue"
+                      :value="item.dictCode"
+                    >
+                    </el-option>
+                  </el-select> </el-form-item
+              ></el-col>
+              <el-col :span="2">
+                <el-button type="primary" @click="hanleAddData"
+                  >+</el-button
+                ></el-col
+              >
+            </el-row>
 
-        </el-form-item>
-        <el-form-item label="产品型号">
-          <el-input v-model="diaLogForm.productModel"></el-input>
-        </el-form-item>
-        <el-form-item label="套机编码">
-          <el-input v-model="diaLogForm.composeNumber"></el-input>
-        </el-form-item>
-        <el-form-item label="产品体积">
-          <el-input v-model="diaLogForm.productVolume"></el-input>
-        </el-form-item>
-        <el-form-item label="内机编码">
-          <el-select v-model="diaLogForm.items" multiple placeholder="请选择">
-            <el-option
-              v-for="item in machineList"
-              :key="item.id"
-              :label="item.innerMachineNumber"
-              :value="item.id"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="外机编码">
-          <el-select v-model="diaLogForm.items" multiple placeholder="请选择">
-            <el-option
-              v-for="item in machineList"
-              :key="item.id"
-              :label="item.outsideMachineNumber"
-              :value="item.id"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="配件1">
-          <el-select v-model="diaLogForm.items" multiple placeholder="请选择">
-            <el-option
-              v-for="item in machineList"
-              :key="item.id"
-              :label="item.parts1"
-              :value="item.id"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="配件2">
-          <el-select v-model="diaLogForm.items" multiple placeholder="请选择">
-            <el-option
-              v-for="item in machineList"
-              :key="item.id"
-              :label="item.parts2"
-              :value="item.id"
-            >
-            </el-option>
-          </el-select>
-        </el-form-item>
+            <template v-for="(item, index) in diaLogForm.items">
+              <el-form-item label="编码">
+                <el-select
+                  v-model="item.number"
+                  placeholder="请选择编码"
+                  @change="hanleCode($event, index)"
+                >
+                  <el-option
+                    v-for="item in machineList"
+                    :key="item.id"
+                    :label="item.number"
+                    :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="名称">
+                <el-input v-model="item.name" placeholder=""></el-input>
+              </el-form-item>
+              <el-form-item label="型号">
+                <el-input v-model="item.model" placeholder=""></el-input>
+              </el-form-item>
+              <el-form-item label="体积">
+                <el-input v-model="item.volume" placeholder=""></el-input>
+              </el-form-item>
+            </template>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="showDialogForm = false">取 消</el-button>
+        <el-button @click="(showDialogForm = false), resetInfo()"
+          >取 消</el-button
+        >
         <el-button type="primary" @click="hanleInfo">确 定</el-button>
       </div>
     </el-dialog>
@@ -374,15 +391,14 @@
 <script>
 import Mixin from "@/mixin/index";
 import { downloadFiles, handleImport } from "@/utils/util";
-// import { getDictList } from "@/api/common";
 import {
   getProductList,
   getProductEdit,
-  getProductDetail,
   getProductDel,
   getProductAdd,
   getMachineLlist,
-getMaterialList
+  getMaterialList,
+  getDistList,
 } from "@/api/basic_data/material";
 export default {
   mixins: [Mixin],
@@ -415,12 +431,25 @@ export default {
       ],
       diaLogForm: {
         adminCompanyId: null,
-        composeNumber: "",
+        productNumber: "",
         id: null,
-        items: [],
+        items: [
+          {
+            id: "",
+            innerOutsideMachineId: "",
+            machineConfigureId: "",
+            parentId: "",
+            model: "",
+            name: "",
+            number: "",
+            type: "",
+            volume: "",
+          },
+        ],
         materialId: null,
         productModel: "",
         productVolume: 0,
+        type: "",
       },
       showDialogForm: false,
       dataList: [
@@ -504,20 +533,91 @@ export default {
         volume: "",
       },
       materialLis: {},
+      typeList: [],
+      DistType: [],
+      machineConfigureId: "",
     };
   },
   mounted() {
-      let params = {
-        pageNum:1,
+    this.getMaterMacList();
+  },
+  methods: {
+    hanleAddData() {
+      this.diaLogForm.items.push({
+        id: "",
+        innerOutsideMachineId: "",
+        machineConfigureId: "",
+        parentId: "",
+        model: "",
+        name: "",
+        number: "",
+        type: "",
+        volume: "",
+      });
+    },
+    getMaterMacList() {
+      const params = {
+        pageNum: 1,
         pageSize: 10,
-        keyword: '',
+        keyword: "",
       };
+
       getMaterialList(params).then((res) => {
         this.materialLis = res.data.records;
-          console.log(this.materialLis,44444);
       });
-  },
-  methods: {
+      const params2 = {
+        pageNum: this.currentPage,
+        pageSize: this.pageSize,
+        keyword: "",
+      };
+      getMachineLlist(params2).then((res) => {
+        this.typeList = res.data.records;
+      });
+    },
+    hanleType(e) {
+      let params2 = {
+        pageNum: this.machinePei.currentPage,
+        pageSize: this.machinePei.pageSize,
+        model: this.machinePei.model,
+        name: this.machinePei.name,
+        number: this.machinePei.number,
+        type: e,
+        volume: this.machinePei.volume,
+      };
+      getMachineLlist(params2).then((res) => {
+        this.machineList = res.data.records;
+        console.log(1111);
+      });
+    },
+    hanleCode(e, i) {
+      this.machineList.find((l) => {
+        if (l.id == e) {
+          this.$set(this.diaLogForm.items, i, {
+            id: "",
+            machineConfigureId: l.id,
+            parentId: "",
+            innerOutsideMachineId: l.id,
+            model: l.model,
+            name: l.name,
+            number: l.number,
+            type: l.type,
+            volume: l.volume,
+          });
+          return;
+        }
+      });
+    },
+    hanleName(e) {
+      this.materialLis.find((k) => {
+        if (k.id == e) {
+          console.log(k.number, 4546);
+          this.diaLogForm.productModel = k.specification;
+          this.diaLogForm.productNumber = k.number;
+          this.diaLogForm.volume = k.volume;
+          return;
+        }
+      });
+    },
     getList() {
       this.listLoading = true;
       let params = {
@@ -549,7 +649,6 @@ export default {
         adminCompanyId: row.adminCompanyId,
         materialId: row.materialId,
       };
-
       this.showDialogForm = true;
     },
     hanleInfo() {
@@ -557,17 +656,17 @@ export default {
         this.diaLogForm.id = null;
         this.diaLogForm.adminCompanyId = null;
 
-        const items = this.hanleForItem(this.diaLogForm.items);
-        getProductAdd({ ...this.diaLogForm, items }).then((res) => {
+        getProductAdd({ ...this.diaLogForm }).then((res) => {
           this.$successMsg("保存成功");
           this.getList();
+          this.resetInfo();
         });
       } else if (this.type === 2) {
-        const items = this.hanleForItem(this.diaLogForm.items);
-        const params = { ...this.diaLogForm, items };
+        const params = { ...this.diaLogForm };
         getProductEdit(params).then((res) => {
           this.$successMsg("编辑成功");
           this.getList();
+          this.resetInfo();
         });
       }
 
@@ -594,7 +693,19 @@ export default {
         id: null,
         composeNumber: "",
         id: "",
-        items: [],
+        items: [
+          {
+            id: "",
+            innerOutsideMachineId: "",
+            machineConfigureId: "",
+            parentId: "",
+            model: "",
+            name: "",
+            number: "",
+            type: "",
+            volume: "",
+          },
+        ],
         materialId: "",
         orgNumber: 0,
         productModel: "",
@@ -602,38 +713,18 @@ export default {
       };
     },
     hanleMachine() {
-      let params2 = {
-        pageNum: this.machinePei.currentPage,
-        pageSize: this.machinePei.pageSize,
-        name: this.machinePei.name,
-        number: this.machinePei.number,
-        type: this.machinePei.type,
-        volume: this.machinePei.volume,
-      };
-      getMachineLlist(params2).then((res) => {
-        this.machineList = res.data.records;
-        console.log(this.machineList, 1233);
-      });
-          let params = {
-        pageNum:1,
-        pageSize: 410,
-        keyword: '',
+      let params = {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: "",
       };
       getMaterialList(params).then((res) => {
         this.materialLis = res.data.records;
-          console.log(this.materialLis,44444);
       });
-    },
-    hanleForItem(item) {
-      const items = [];
-      item.map((k) => {
-        return items.push({
-          id: "",
-          innerOutsideMachineId: k,
-          parentId: "",
-        });
+      getDistList({ sysDictEnum: "MACHINE_CONFIGURE" }).then((res) => {
+        console.log(res, "type");
+        this.DistType = res.data;
       });
-      return items;
     },
   },
 };

+ 15 - 11
src/views/basic_data/taker/taker_car.vue

@@ -283,6 +283,7 @@ export default {
   },
   async created() {
     this.getDataList({ pageNum: 1, pageSize: 10 });
+    this.getDealerDataList({ pageNum: 1, pageSize: 10 });
   },
   methods: {
     // 筛选部分数据或者单个
@@ -304,20 +305,23 @@ export default {
     },
     //取消
     async cancelFn() {
-      this.addForm = {
-        customerId: "",
-        mobile: "",
-        carType: "",
-        volume: "",
-        carBrand: "",
-      };
-      await this.$refs.addForm.resetFields();
+      if (this.addForm.id) {
+        this.addForm = {
+          customerId: "",
+          mobile: "",
+          carType: "",
+          volume: "",
+          carBrand: "",
+        };
+      } else {
+        await this.$refs.addForm.resetFields();
+      }
       this.dialogForm = false;
     },
     //编辑
     editFn(data) {
-      this.dialogForm = true;
       this.addForm = data;
+      this.dialogForm = true;
     },
     //重置
     clearFn() {
@@ -348,7 +352,7 @@ export default {
       this.dealerList = res.data.records;
     },
     //新增
-    addDataList() {
+    async addDataList() {
       this.addForm = {
         customerId: "",
         mobile: "",
@@ -356,8 +360,8 @@ export default {
         volume: "",
         carBrand: "",
       };
+
       this.dialogForm = true;
-      this.getDealerDataList({ pageNum: 1, pageSize: 10 });
     },
     async addDataListFn() {
       await this.$refs.addForm.validate();

+ 14 - 10
src/views/basic_data/taker/taker_list.vue

@@ -415,17 +415,21 @@ export default {
 
     //取消
     cancelFn() {
-      this.addForm = {
-        customerId: "",
-        takerName: "",
-        identity: "",
-        phone: "",
+      if (this.addForm.id) {
+        this.addForm = {
+          customerId: "",
+          takerName: "",
+          identity: "",
+          phone: "",
+
+          sparePhone: "",
+          expireTime: "",
+          code: "",
+        };
+      } else {
+        this.$refs.addForm.resetFields();
+      }
 
-        sparePhone: "",
-        expireTime: "",
-        code: "",
-      };
-      this.$refs.addForm.resetFields();
       this.dialogForm = false;
     },
     //上传

+ 1 - 1
src/views/basic_data/warehouse/warehouse_cost.vue

@@ -423,7 +423,7 @@ export default {
       };
       getCustomerList(params).then((res) => {
         if (res.data.records.length) {
-            this.customerList = [...this.customerList, ...res.data.records];
+          this.customerList = [...this.customerList, ...res.data.records];
         }
         // this.listTotal = res.data.total;
       });

+ 43 - 55
src/views/stock/reserved_stock.vue

@@ -2,24 +2,13 @@
   <div class="app-container">
     <!-- 筛选条件 -->
     <div class="screen-container">
-      <div class="top clearfix">
-        <div class="title fl">条件筛选</div>
-      </div>
       <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="品类" prop="category">
-              <el-select v-model="screenForm.category" placeholder="全部">
-                <el-option label="全部" value=""></el-option>
-                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="销售类型" prop="saleType">
-              <el-select v-model="screenForm.saleType" placeholder="全部">
+            <el-form-item label="品类" prop="type">
+              <el-select v-model="screenForm.type" placeholder="全部">
                 <el-option label="全部" value=""></el-option>
-                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+                <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -39,7 +28,7 @@
             </el-form-item>
           </el-col>
           
-          <el-col :xs="24" :sm="12" :lg="18" class="tr">
+          <el-col :xs="24" :sm="24" :lg="24" class="tr">
             <el-form-item label="">
               <el-button size="small" @click="resetScreenForm">清空</el-button>
               <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
@@ -52,23 +41,20 @@
     <div class="mymain-container">
       <div class="btn-group clearfix">
         <div class="fr">
-          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+          <ExportButton :exUrl="'admin/user/mch/export'" :exParams="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="center" label="经销商编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="经销商名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品品类" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="计量单位" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单价" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="经销商预留库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="经销商暂扣库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商编码" prop="customerNumber" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商名称" prop="customerName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品品类" prop="categoryName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品编码" prop="materialNumber" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="计量单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商预留库存" prop="reservedNum" min-width="140" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商暂扣库存" prop="temporaryNum" min-width="140" show-overflow-tooltip></el-table-column>
         </el-table>
       </div>
     </div>
@@ -90,9 +76,8 @@
 </template>
 
 <script>
-import { COMMON_SELECT } from '@/utils/select_data'
-import { getStockList } from "@/api/stock";
-import { downloadFiles } from '@/utils/util'
+import { getReservedList } from "@/api/stock";
+import { getDictList } from '@/api/common'
 
 export default {
   data() {
@@ -103,20 +88,29 @@ export default {
       dataList: null, // 列表数据
       listLoading: false, // 列表加载loading
       screenForm: { // 筛选表单数据
-        warehouse: '',
+        type: '',
         name: '',
         code: '',
         model: '',
-        category: '',
-        saleType: '',
       },
-      select_status: [ // 筛选字段 - 状态
-        { label: '正常', value: true },
-        { label: '冻结', value: false }
-      ],
+      typeList: [],
     }
   },
+
+  computed: {
+    exParams() {
+      return {
+        name: this.screenForm.warehouse,
+        materialName: this.screenForm.name,
+        materialNumber: this.screenForm.code,
+        specification: this.screenForm.model,
+        categoryName: this.screenForm.type,
+      }
+    },
+  },
+
   created() {
+    this.getDictList();
     this.getList();
   },
 
@@ -130,6 +124,12 @@ export default {
       return true
     },
 
+    getDictList() {
+      getDictList({sysDictEnum: 'PRODUCT_TYPE'}).then(res => {
+        this.typeList = res.data;
+      })
+    },
+
     // 查询列表
     getList() {
       this.listLoading = true;
@@ -137,13 +137,12 @@ export default {
       let params = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
+        materialName: this.screenForm.name,
+        materialNumber: this.screenForm.code,
+        specification: this.screenForm.model,
+        categoryName: this.screenForm.type,
       };
-      getStockList(params).then((res) => {
+      getReservedList(params).then((res) => {
         this.dataList = res.data.records;
         this.listTotal = res.data.total;
         this.listLoading = false;
@@ -176,17 +175,6 @@ export default {
       this.getList();
     },
 
-    // 导出
-    handleExport() {
-      let screenData = {
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
-      };
-      downloadFiles('admin/user/mch/export', screenData);
-    },
   }
 }
 </script>

+ 56 - 56
src/views/stock/stock_list.vue

@@ -2,16 +2,13 @@
   <div class="app-container">
     <!-- 筛选条件 -->
     <div class="screen-container">
-      <div class="top clearfix">
-        <div class="title fl">条件筛选</div>
-      </div>
       <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="仓库" prop="warehouse">
-              <el-select v-model="screenForm.warehouse" placeholder="全部">
+              <el-select v-model="screenForm.warehouse" placeholder="请选择仓库">
                 <el-option label="全部" value=""></el-option>
-                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+                <el-option :label="item.name" :value="item.name" v-for="(item, index) in warehouseList" :key="index"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -31,23 +28,15 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="品类" prop="category">
-              <el-select v-model="screenForm.category" placeholder="全部">
+            <el-form-item label="品类" prop="type">
+              <el-select v-model="screenForm.type" placeholder="全部">
                 <el-option label="全部" value=""></el-option>
-                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="销售类型" prop="saleType">
-              <el-select v-model="screenForm.saleType" placeholder="全部">
-                <el-option label="全部" value=""></el-option>
-                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+                <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           
-          <el-col :xs="24" :sm="24" :lg="12" class="tr">
+          <el-col :xs="24" :sm="12" :lg="18" class="tr">
             <el-form-item label="">
               <el-button size="small" @click="resetScreenForm">清空</el-button>
               <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
@@ -60,24 +49,19 @@
     <div class="mymain-container">
       <div class="btn-group clearfix">
         <div class="fr">
-          <el-button size="small" type="primary" icon="el-icon-download" @click="handleExport">导出数据</el-button>
+          <ExportButton :exUrl="'admin/user/mch/export'" :exParams="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="center" label="产品品类" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="计量单位" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="总库存数量" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单价" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="经销商预留库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="经销商暂扣库存" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="中转仓" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="退货仓" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="破损仓" prop="aaa" min-width="200" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品品类" prop="categoryName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品编码" prop="materialNumber" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="总库存数量" prop="stockQty" min-width="120" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商预留库存" prop="reservedNum" min-width="140" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商暂扣库存" prop="temporaryNum" min-width="140" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="仓库" prop="name" min-width="160" show-overflow-tooltip></el-table-column>
         </el-table>
       </div>
     </div>
@@ -99,9 +83,8 @@
 </template>
 
 <script>
-import { COMMON_SELECT } from '@/utils/select_data'
-import { getStockList } from "@/api/stock";
-import { downloadFiles } from '@/utils/util'
+import { getStockList, getWarehouseList } from "@/api/stock";
+import { getDictList } from '@/api/common'
 
 export default {
   data() {
@@ -116,16 +99,28 @@ export default {
         name: '',
         code: '',
         model: '',
-        category: '',
-        saleType: '',
+        type: '',
       },
-      select_status: [ // 筛选字段 - 状态
-        { label: '正常', value: true },
-        { label: '冻结', value: false }
-      ],
+      warehouseList: [],
+      typeList: [],
     }
   },
+
+  computed: {
+    exParams() {
+      return {
+        name: this.screenForm.warehouse,
+        materialName: this.screenForm.name,
+        materialNumber: this.screenForm.code,
+        specification: this.screenForm.model,
+        categoryName: this.screenForm.type,
+      }
+    },
+  },
+
   created() {
+    this.getWarehouseList();
+    this.getDictList();
     this.getList();
   },
 
@@ -139,6 +134,22 @@ export default {
       return true
     },
 
+    // 获取仓库列表
+    getWarehouseList() {
+      getWarehouseList({
+        pageNum: 1,
+        pageSize: -1
+      }).then((res) => {
+        this.warehouseList = res.data.records;
+      })
+    },
+
+    getDictList() {
+      getDictList({sysDictEnum: 'PRODUCT_TYPE'}).then(res => {
+        this.typeList = res.data;
+      })
+    },
+
     // 查询列表
     getList() {
       this.listLoading = true;
@@ -146,11 +157,11 @@ export default {
       let params = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
+        name: this.screenForm.warehouse,
+        materialName: this.screenForm.name,
+        materialNumber: this.screenForm.code,
+        specification: this.screenForm.model,
+        categoryName: this.screenForm.type,
       };
       getStockList(params).then((res) => {
         this.dataList = res.data.records;
@@ -185,17 +196,6 @@ export default {
       this.getList();
     },
 
-    // 导出
-    handleExport() {
-      let screenData = {
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
-      };
-      downloadFiles('admin/user/mch/export', screenData);
-    },
   }
 }
 </script>

+ 54 - 41
src/views/supply/purchase/plan_list.vue

@@ -15,20 +15,20 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="产品编码" prop="chName">
-              <el-input v-model="screenForm.chName" placeholder="请输入产品编码"></el-input>
+            <el-form-item label="产品编码" prop="chNum">
+              <el-input v-model="screenForm.chNum" placeholder="请输入产品编码"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="规格型号" prop="chName">
-              <el-input v-model="screenForm.chName" placeholder="请输入规格型号"></el-input>
+            <el-form-item label="规格型号" prop="model">
+              <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="品类" prop="status">
-              <el-select v-model="screenForm.status" placeholder="全部">
+            <el-form-item label="品类" prop="type">
+              <el-select v-model="screenForm.type" placeholder="全部">
                 <el-option label="全部" value=""></el-option>
-                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+                <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -51,16 +51,20 @@
       </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="center" label="单据号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="计量单位" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="数量" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单价" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="金额" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="状态" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="单据号" prop="billNo" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="销售类型" prop="saleName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品编码" prop="materialNumber" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="计量单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="数量" prop="number" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="金额" prop="amount" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="状态" prop="status" min-width="100" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{scope.row.status | statusFilter}}
+            </template>
+          </el-table-column>
         </el-table>
       </div>
     </div>
@@ -82,10 +86,19 @@
 </template>
 
 <script>
-import { COMMON_SELECT } from '@/utils/select_data'
-import { getList } from "@/api/supply/purchase";
+import { getPlanList } from "@/api/supply/purchase";
+import { getDictList } from '@/api/common'
 
 export default {
+  filters: {
+    statusFilter(val) {
+      const MAP = {
+        0: '待采购',
+        1: '已采购',
+      }
+      return MAP[val]
+    }
+  },
   data() {
     return {
       currentPage: 1, // 当前页码
@@ -95,36 +108,30 @@ export default {
       listLoading: false, // 列表加载loading
       screenForm: { // 筛选表单数据
         orderNum: '',
-        jxsName: '',
         chName: '',
+        chNum: '',
         model: '',
-        date: '',
-        jxsNum: '',
-        status: '',
+        type: '',
       },
-      select_status: [ // 筛选字段 - 状态
-        { label: '正常', value: true },
-        { label: '冻结', value: false }
-      ],
-
-      jumpType: '',
-      queryItem: {},
+      
+      typeList: [],
     }
   },
 
   computed: {
     exParams() {
       return {
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
+        billNo: this.screenForm.orderNum,
+        materialName: this.screenForm.chName,
+        materialNumber: this.screenForm.chNum,
+        specification: this.screenForm.model,
+        materialType: this.screenForm.type,
       }
     },
   },
 
   created() {
+    this.getDictList();
     this.getList();
   },
 
@@ -138,6 +145,12 @@ export default {
       return true
     },
 
+    getDictList() {
+      getDictList({sysDictEnum: 'PRODUCT_TYPE'}).then(res => {
+        this.typeList = res.data;
+      })
+    },
+
     // 查询列表
     getList() {
       this.listLoading = true;
@@ -145,13 +158,13 @@ export default {
       let params = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
+        billNo: this.screenForm.orderNum,
+        materialName: this.screenForm.chName,
+        materialNumber: this.screenForm.chNum,
+        specification: this.screenForm.model,
+        materialType: this.screenForm.type,
       };
-      getList(params).then((res) => {
+      getPlanList(params).then((res) => {
         this.dataList = res.data.records;
         this.listTotal = res.data.total;
         this.listLoading = false;

+ 93 - 49
src/views/supply/purchase/sum_list.vue

@@ -10,8 +10,8 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="销售类型" prop="chName">
-              <el-input v-model="screenForm.chName" placeholder="请输入销售类型"></el-input>
+            <el-form-item label="销售类型" prop="salesType">
+              <el-input v-model="screenForm.salesType" placeholder="请输入销售类型"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
@@ -20,31 +20,31 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="产品编码" prop="chName">
-              <el-input v-model="screenForm.chName" placeholder="请输入产品编码"></el-input>
+            <el-form-item label="产品编码" prop="chNum">
+              <el-input v-model="screenForm.chNum" placeholder="请输入产品编码"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="规格型号" prop="chName">
-              <el-input v-model="screenForm.chName" placeholder="请输入规格型号"></el-input>
+            <el-form-item label="规格型号" prop="model">
+              <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="品类" prop="status">
-              <el-select v-model="screenForm.status" placeholder="全部">
+            <el-form-item label="品类" prop="type">
+              <el-select v-model="screenForm.type" placeholder="全部">
                 <el-option label="全部" value=""></el-option>
-                <el-option :label="item.label" :value="item.value" v-for="(item, index) in select_status" :key="index"></el-option>
+                <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="经销商名称" prop="chName">
-              <el-input v-model="screenForm.chName" placeholder="请输入经销商名称"></el-input>
+            <el-form-item label="经销商名称" prop="jxsName">
+              <el-input v-model="screenForm.jxsName" placeholder="请输入经销商名称"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item label="经销商编码" prop="chName">
-              <el-input v-model="screenForm.chName" placeholder="请输入经销商编码"></el-input>
+            <el-form-item label="经销商编码" prop="jxsNum">
+              <el-input v-model="screenForm.jxsNum" placeholder="请输入经销商编码"></el-input>
             </el-form-item>
           </el-col>
           
@@ -65,19 +65,24 @@
         </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="center" label="单据号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="订单类型" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="计量单位" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="数量" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单价" prop="aaa" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="金额" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="经销商编码" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="经销商名称" prop="aaa" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe @selection-change="handleSelectionChange">
+          <el-table-column align="center" type="selection" width="55"></el-table-column>
+          <el-table-column align="center" label="单据号" prop="billNo" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="订单类型" prop="orderType" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{scope.row.orderType | orderTypeFilter}}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="销售类型" prop="saleName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品编码" prop="materialNumber" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="计量单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="数量" prop="number" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="金额" prop="amount" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商编码" prop="customerNumber" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="经销商名称" prop="customerName" min-width="160" show-overflow-tooltip></el-table-column>
         </el-table>
       </div>
     </div>
@@ -97,7 +102,7 @@
 
     <div class="">
       <div>
-        <el-button size="small" type="primary">提 交</el-button>
+        <el-button size="small" type="primary" @click="clickSubmit()">提 交</el-button>
       </div>
       <div style="margin-top: 10px; font-size: 14px; color: #666;">注:提交成功后,系统将自动生成采购计划订单</div>
     </div>
@@ -106,10 +111,19 @@
 </template>
 
 <script>
-import { COMMON_SELECT } from '@/utils/select_data'
-import { getList } from "@/api/supply/purchase";
+import { getSumList, submitPlan } from "@/api/supply/purchase";
+import { getDictList } from '@/api/common'
 
 export default {
+  filters: {
+    orderTypeFilter(val) {
+      const MAP = {
+        1: '工程计划单',
+        2: '零售计划单',
+      }
+      return MAP[val]
+    }
+  },
   data() {
     return {
       currentPage: 1, // 当前页码
@@ -119,36 +133,37 @@ export default {
       listLoading: false, // 列表加载loading
       screenForm: { // 筛选表单数据
         orderNum: '',
-        jxsName: '',
+        salesType: '',
         chName: '',
+        chNum: '',
         model: '',
-        date: '',
+        type: '',
+        jxsName: '',
         jxsNum: '',
-        status: '',
       },
-      select_status: [ // 筛选字段 - 状态
-        { label: '正常', value: true },
-        { label: '冻结', value: false }
-      ],
+      typeList: [],
 
-      jumpType: '',
-      queryItem: {},
+      multipleSelection: [],
     }
   },
 
   computed: {
     exParams() {
       return {
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
+        billNo: this.screenForm.orderNum,
+        saleName: this.screenForm.salesType,
+        materialName: this.screenForm.chName,
+        materialNumber: this.screenForm.chNum,
+        specification: this.screenForm.model,
+        materialType: this.screenForm.type,
+        customerName: this.screenForm.jxsName,
+        customerNumber: this.screenForm.jxsNum,
       }
     },
   },
 
   created() {
+    this.getDictList();
     this.getList();
   },
 
@@ -162,6 +177,12 @@ export default {
       return true
     },
 
+    getDictList() {
+      getDictList({sysDictEnum: 'PRODUCT_TYPE'}).then(res => {
+        this.typeList = res.data;
+      })
+    },
+
     // 查询列表
     getList() {
       this.listLoading = true;
@@ -169,13 +190,16 @@ export default {
       let params = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
-        userName: this.screenForm.account,
-        nickName: this.screenForm.nickName,
-        linkPhone: this.screenForm.phone,
-        email: this.screenForm.email,
-        status: this.screenForm.status,
+        billNo: this.screenForm.orderNum,
+        saleName: this.screenForm.salesType,
+        materialName: this.screenForm.chName,
+        materialNumber: this.screenForm.chNum,
+        specification: this.screenForm.model,
+        materialType: this.screenForm.type,
+        customerName: this.screenForm.jxsName,
+        customerNumber: this.screenForm.jxsNum,
       };
-      getList(params).then((res) => {
+      getSumList(params).then((res) => {
         this.dataList = res.data.records;
         this.listTotal = res.data.total;
         this.listLoading = false;
@@ -207,6 +231,26 @@ export default {
       this.currentPage = val;
       this.getList();
     },
+
+    // 表格选择
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    
+    // 提交
+    clickSubmit() {
+      if(this.multipleSelection.length < 1) {
+        return this.$errorMsg('请选择单据');
+      }
+      let ids = [];
+      this.multipleSelection.forEach(item => {
+        ids.push(item.id);
+      });
+      submitPlan(ids).then(res => {
+        this.$successMsg();
+        this.getList();
+      })
+    },
   }
 }
 </script>