From 332c012e7336f2996c4fe5c8c110d00713c1bde2 Mon Sep 17 00:00:00 2001
From: haoyahui <2032914783@qq.com>
Date: 星期六, 11 十一月 2023 18:51:33 +0800
Subject: [PATCH] 采购单,采购明细,库存管理,出入库,调拨管理,库存盘点

---
 admin-web/src/views/stock/scrap/itemScrapping/index.vue |  585 +++++++++++++++++++++------------------------------------
 1 files changed, 219 insertions(+), 366 deletions(-)

diff --git a/admin-web/src/views/stock/scrap/itemScrapping/index.vue b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
index ea1d5b0..0c7be3d 100644
--- a/admin-web/src/views/stock/scrap/itemScrapping/index.vue
+++ b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
@@ -1,118 +1,79 @@
 <template>
-  <div class="app-container">
+  <div class="app-container stock-container">
     <el-container>
-      <el-container>
-        <el-card class="box-card" style="width: 100%" shadow="never">
-          <!--鎼滅储鏉′欢-->
-          <div class="filter-container">
-            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
-          </div>
-          <el-row style="margin-top: 15px">
-            <el-col>
-              <!--鍒楄〃-->
-              <my-button name="鏂板" @click="addtable" site="form" />
-              <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}">
-                    <el-row class="card"
-                            :gutter="5">
-                        <el-col v-for="(item, index) in proData" :key="index" class="cm-item">
-                          <el-card class="card-data">
-                            <div class="card-container">
-                              <div class="hed-one">鍑哄簱鍗曞彿锛歿{ item.order_no }}</div>
-                              <div class="one-hed">
-                                <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.customer_name }}</div>
-                                <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.customer_name }}</div>
-                                <div class="box"><span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.customer_name }}</div>
-                              </div>
-                              <div class="card-end">
-                                <div v-for="(just, index) in item.data" class="two-end">
-                                  <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div>
-                                </div>
-                              </div>
+      <el-card class="box-card" style="width: 100%" shadow="never">
+        <!--鎼滅储鏉′欢-->
+        <div class="filter-container">
+          <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+        </div>
+        <el-row style="margin-top: 15px">
+          <el-col>
+            <!--鍒楄〃-->
+            <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading">
+              <el-row class="card" :gutter="5">
+                <el-col v-for="(item, index) in list" :key="index" class="cm-item">
+                  <el-card class="card-data">
+                    <div class="card-container">
+                      <div class="card-header">
+                        <div class="card-header-left">
+                          <span>璋冩嫧鍗曞彿锛�</span>
+                          <span class="value">{{ item.businessFormCode }}</span>
+                          <div class="states" :class="item.states == 1 ? '' : 'states-success'">
+                            {{ item.states == 1 ? '寰呰皟鎷�' : '宸茶皟鎷�' }}
+                          </div>
+                        </div>
+                        <div class="card-header-right">
+                          <el-button site="form" type="success" size="mini" @click="handleExport(item)"
+                            >瀵煎嚭璋冩嫧鍑哄簱鍗�</el-button
+                          >
+                          <el-button name="鏌ョ湅璇︽儏" site="form" type="info" size="mini" @click="handleDetail(item)"
+                            >鏌ョ湅璇︽儏</el-button
+                          >
+                        </div>
+                      </div>
+                      <div class="one-hed">
+                        <div class="box"><span class="span-two">鎺ユ敹鏈烘瀯锛�</span>{{ item.agencyId }}</div>
+                        <div class="box"><span class="span-two">鐢宠浜猴細</span>{{ item.buyerName }}</div>
+                        <div class="box"><span class="span-two">鐢宠璋冩嫧鏃堕棿锛�</span>{{ item.procureTime }}</div>
+                        <div class="box"><span class="span-two">鎺ユ敹鏃堕棿锛�</span>{{ item.procureTime }}</div>
+                        <div class="box"><span class="span-two">璋冩嫧鏈烘瀯锛�</span>{{ item.procureTime }}</div>
+                        <div class="box"><span class="span-two">璋冩嫧浜猴細</span>{{ item.procureTime }}</div>
+                        <div class="box"><span class="span-two">璋冩嫧鏃堕棿锛�</span>{{ item.procureTime }}</div>
+                      </div>
+                      <div class="card-end">
+                        <div v-for="(just, index) in item.models" :key="index" class="item">
+                          <div class="name">{{ just.baseGoodsModelsId }}</div>
+                          <div class="value-box">
+                            <div class="value-box-item">
+                              <span class="label">鏁伴噺锛�</span>
+                              <span class="value">{{ just.counts }}</span>
+                              <span class="unit">{{ just.unit }}</span>
                             </div>
-                            <div class="card-but">
-                              <my-button name="鏌ョ湅璇︽儏"   site="form" />
-                              <my-button name="瀵煎嚭鍑哄簱鍗�" site="form" />
-                            </div>
-                          </el-card>
-                        </el-col>
-                    </el-row>
-              </div>
-              <el-pagination
-                :small="false"
-                :current-page="1"
-                :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]"
-                :page-size="10"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="0"
-                @size-change="handleSizeChange"
-                @current-change="handleCurrentChange"
-              />
-            </el-col>
-          </el-row>
-          <!--娣诲姞/缂栬緫寮圭獥-->
-          <el-dialog title="鏂板鍑哄簱"  :close-on-click-modal="false" :visible.sync="adddialog" width="60%" >
-            <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px">
-              <el-row :gutter="24" class="headerHeight">
-                  <el-col :span="12">
-                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
-                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :span="12">
-                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
-                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-                <el-row :gutter="24" class="headerHeight">
-                  <el-col :span="24">
-                    <el-form-item label="鍑哄簱鎵嬬画" prop="name">                      
-                      浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-                <div style="position: relative;">
-                  <div style="background-color: #F9F9F9;width: 90%;">
-                  <el-row :gutter="24" class="">
-                    <el-col :span="12">
-                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
-                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
-                      </el-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
-                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
-                      </el-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-row :gutter="24" class="">
-                    <el-col :span="12">
-                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
-                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
-                      </el-form-item>
-                    </el-col>
-                  </el-row>
-                  <el-table :data="formData.tableData" height="100%"  :stripe="true">
-                    <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column>
-                    <el-table-column prop="time1" label="鍗曚綅"  align="center"> </el-table-column>
-                    <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column>
-                    <el-table-column prop="time2" label="鍑哄簱鏁伴噺"  align="center"> </el-table-column>
-                  </el-table>
-                  </div>
-                  <div style="position: absolute;right: 0;top: 152px;">
-                    <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/>
-                    <my-button name="鏂板鐗╁搧" site="form"/>
-                  </div>
-                </div>
-            </el-form>
-            <div slot="footer" align="center" class="dialog-footer">
-              <my-button name="纭畾" site="form" />
-              <my-button name="鍙栨秷" site="form" @click="adddialog = false"/>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </el-card>
+                </el-col>
+              </el-row>
             </div>
-          </el-dialog>
-        </el-card>
-      </el-container>
+            <el-pagination
+              :small="false"
+              :current-page="pageNum"
+              :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]"
+              :page-size="pageSize"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="total"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+            />
+          </el-col>
+        </el-row>
+      </el-card>
     </el-container>
+    <!--娣诲姞/缂栬緫寮圭獥-->
+    <edit ref="editRef"></edit>
+    <detail ref="detailRef"></detail>
     <my-import
       :import-setting="importSetting"
       :dialog-show="importSetting.dialogShow"
@@ -122,196 +83,86 @@
 </template>
 
 <script>
-import MyButton from "@/components/myButton/myButton";
+import { procureList, procureDel, procureIncome } from '@/api/stock/procure/purchaseOrder';
+import MyButton from '@/components/myButton/myButton';
 import SettingIplatform from '@/utils/settingIplatform';
-import myImport from '@/views/components/myImport'
-import {getBaseUrl} from '@/utils/base';
+import myImport from '@/views/components/myImport';
+import edit from './edit';
+import detail from './detail';
+import { getBaseUrl } from '@/utils/base';
 
 export default {
-  name: "index",
-  components: {MyButton, myImport},
+  name: 'index',
+  components: { MyButton, myImport, edit, detail },
   data() {
     return {
-      
+      loading: false,
       adddialog: false,
-      formData:{
-        tableData:[
-          {
-            projectName:'555'
-          },
-          {
-            projectName:'444'
-          }
-        ],
-      },
+      list: [],
       // 鎼滅储妗�
       items: [
         {
           type: 'text',
-          dataIndex: 'name',
-          label: '鍑哄簱鍗曞彿',
+          dataIndex: 'businessFormCode',
+          label: '璋冩嫧鍗曞彿',
           placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          defaultValue: '',
         },
         {
           type: 'text',
-          dataIndex: 'name',
+          dataIndex: 'goodsTemplateName',
           label: '鐗╁搧鍚嶇О',
           placeholder: '鍙ā绯婃悳绱�',
-          defaultValue: ''
+          defaultValue: '',
+        },
+        {
+          type: 'select',
+          dataIndex: 'name',
+          label: '鏈烘瀯',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '',
+          options: [],
         },
         {
           type: 'text',
-          dataIndex: 'name',
+          dataIndex: 'buyerName',
           label: '鍒涘缓浜�',
           placeholder: '璇疯緭鍏�',
-          defaultValue: ''
+          defaultValue: '',
+        },
+        {
+          type: 'select',
+          dataIndex: 'states',
+          label: '鐘舵��',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '',
+          options: [
+            {
+              label: '鍏ㄩ儴',
+              value: '',
+            },
+            {
+              label: '寰呰皟鎷�',
+              value: '1',
+            },
+            {
+              label: '宸茶皟鎷�',
+              value: '2',
+            },
+          ],
         },
         {
           type: 'date-picker',
           dataIndex: 'val1',
-          label: '鍑哄簱鏃堕棿',
-          defaultValue: ''
+          label: '璋冩嫧鏃堕棿',
+          defaultValue: '',
         },
         {
           type: 'date-picker',
           dataIndex: 'val2',
           label: '鑷�',
-          defaultValue: ''
+          defaultValue: '',
         },
-        // {
-        //   type: 'select',
-        //   dataIndex: 'status',
-        //   label: '鐘舵��',
-        //   placeholder: '璇烽�夋嫨',
-        //   defaultValue: '1',
-        //   options: [
-        //     {
-        //       label: '鍚敤',
-        //       value: '1'
-        //     },
-        //     {
-        //       label: '绂佺敤',
-        //       value: '0'
-        //     }
-        //   ]
-        // }
-      ],
-      proData: [
-        {
-          order_no:'55555',
-          customer_name:'666',
-          data:[
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'20浠�'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-          ]
-        },
-        {
-          order_no:'55555',
-          customer_name:'666',
-          data:[
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-          ]
-        },
-        {
-          order_no:'55555',
-          customer_name:'666',
-          data:[
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'20浠�'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-          ]
-        },
-        {
-          order_no:'55555',
-          customer_name:'666',
-          data:[
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'20浠�'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-          ]
-          
-        },
-        {
-          order_no:'55555',
-          customer_name:'666',
-          data:[
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'20浠�'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-          ]
-          
-        },
-        {
-          order_no:'55555',
-          customer_name:'666',
-          data:[
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'20浠�'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-          ]
-          
-        },
-        {
-          order_no:'55555',
-          customer_name:'666',
-          data:[
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'20浠�'
-            },
-            {
-              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
-              customer_name:'666'
-            },
-          ]
-          
-        }
       ],
       // 鏍戞暟鎹�
       treeDataList: [],
@@ -320,25 +171,25 @@
         tenantId: null,
         userName: null,
         userPhone: null,
-        status: 1
+        states: null,
       },
       // 瀵煎叆
       importSetting: {
-          dialogTitle: '瀵煎叆',
-          dialogShow: false,
-          fileSettings: {
-              data: {},
-              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
-              accept: '.xls', // 鏍煎紡
-              type: 'text', // 鍥炴樉褰㈠紡
-              loading: false // 瀵煎叆鏁堟灉
-          },
-          /* 妯℃澘涓嬭浇 */
-          templateSettings: {
-              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
-              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
-          },
-          onSuccess: null
+        dialogTitle: '瀵煎叆',
+        dialogShow: false,
+        fileSettings: {
+          data: {},
+          uploadUrl: getBaseUrl() + '/pc/fin/sys/tenant/import', // 涓婁紶鍦板潃
+          accept: '.xls', // 鏍煎紡
+          type: 'text', // 鍥炴樉褰㈠紡
+          loading: false, // 瀵煎叆鏁堟灉
+        },
+        /* 妯℃澘涓嬭浇 */
+        templateSettings: {
+          templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+          templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate', // 涓嬭浇鍦板潃
+        },
+        onSuccess: null,
       },
       editSetting: {
         title: '',
@@ -346,104 +197,106 @@
         orgId: '',
         show: false,
       },
-    }
+      pageNum: 1,
+      pageSize: 10,
+      total: 0,
+    };
   },
   computed: {
-    clientHeight () {
-      return document.documentElement.clientHeight
+    clientHeight() {
+      return document.documentElement.clientHeight;
     },
   },
   created() {
+    this.fetchData();
   },
   methods: {
-    handleSizeChange(){},
-    handleCurrentChange(){},
+    fetchData() {
+      this.loading = true;
+      procureList({
+        pageNum: this.pageNum,
+        pageSize: this.pageSize,
+        ...this.filterFrom,
+      }).then((res) => {
+        this.list = res.datas;
+        this.total = res.totalRows;
+        this.loading = false;
+        console.log(this.list);
+      });
+    },
     //瀵煎叆
     importOrg() {
-        this.importSetting.dialogShow = true
-        this.importSetting.onSuccess = (response, callBack) => {
-            if (response.code===1){
-              this.$message.success(response.msg)
-              this.search(1)
-            }else{
-              this.$message.warning(response.msg)
-            }
-            callBack()
+      this.importSetting.dialogShow = true;
+      this.importSetting.onSuccess = (response, callBack) => {
+        if (response.code === 1) {
+          this.$message.success(response.msg);
+          this.search(1);
+        } else {
+          this.$message.warning(response.msg);
         }
+        callBack();
+      };
     },
-   
+    // 瀵煎嚭
+    handleExport() {},
+    // 鏂板
     addtable() {
-      this.adddialog = true
+      this.$refs.editRef.open();
+    },
+    // 缂栬緫
+    handleEdit(row) {
+      this.$refs.editRef.open(row.id);
+    },
+    // 璇︽儏
+    handleDetail(row) {
+      this.$refs.detailRef.open(row.id);
+    },
+    // 璋冩嫧
+    handleIncome(row) {
+      this.$confirm(`鎮ㄧ‘瀹� 鍗曞彿锛�${row.businessFormCode}  璋冩嫧鍚�?`, '閲囪喘璋冩嫧')
+        .then(function () {
+          procureIncome({ id: row.id }).then((res) => {
+            this.$message.success('璋冩嫧鎴愬姛锛�');
+          });
+        })
+        .then((res) => {
+          this.search();
+        })
+        .catch(() => {});
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎璋冩嫧鍗曞彿涓�"' + row.businessFormCode + '"鐨勬暟鎹悧锛�')
+        .then(function () {
+          procureDel({ id: row.id }).then((res) => {});
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search();
+        })
+        .catch(() => {});
+    },
+    // 鍒嗛〉
+    handleSizeChange(pageSize) {
+      this.pageSize = pageSize;
+      this.search({ pageNum: 1 });
+    },
+    handleCurrentChange(pageNum) {
+      this.myTable.paging.page.pageNum = pageNum;
+      this.search({ pageNum: pageNum });
     },
     // 鏌ヨtable鍒楄〃
     search(pageNum) {
-      if (pageNum != undefined) {
-        // this.$refs.myTable.search(pageNum)
-      } else {
-        // this.$refs.myTable.search()
-      }
+      this.fetchData();
     },
     fifterForm(params) {
-      console.log(params,'555');
-      this.filterFrom = Object.assign(this.filterFrom, params)
-      this.search(1)
-    }
-  }
-}
+      this.filterFrom = Object.assign(this.filterFrom, params);
+      this.search(1);
+    },
+  },
+};
 </script>
 
-<style scoped>
-.card {
-    display: flex;
-    flex-wrap: wrap;
-    margin: 0px !important;
-    .cm-item {
-        width: 100%;
-    }
-    .cm-item /deep/ .el-card__body {
-        padding: 10px;
-    }
-}
-.card-data{
-  margin-top: 8px;
-  .card-container{
-    display: inline-block; 
-    width: 70%;
-    .hed-one{
-      color: #2298EE;
-      font-size: 18px;
-    }
-    .one-hed{
-      margin-top: 15px;
-      .box{
-        display: inline-block;  
-        margin-right: 20px;  
-      }
-    }
-    .span-two{
-      color: #83919e;
-      font-size: 14px;
-    }
-    .card-end{
-      font-size: 14px;
-      color: #3d3d3d;
-      margin-top: 15px;
-      display: flex;  
-      flex-wrap: wrap; 
-      .two-end{
-        width: calc(33.33% - 20px); 
-        margin-bottom: 15px; 
-      }
-    }
-    
-  }
-  .card-but{
-    display: inline-block; 
-  }
-  .end{
-    display: inline-block;  
-  }
-  
-}
-
+<style scoped lang="scss">
+@import url(../../index.scss);
 </style>

--
Gitblit v1.9.1