From 5e10fe06e80c7d146cbb5eb8f7b3e1e447a80b88 Mon Sep 17 00:00:00 2001
From: haoyahui <2032914783@qq.com>
Date: 星期五, 17 十一月 2023 17:07:53 +0800
Subject: [PATCH] 部门物品:物品分发,物品报废静态。调拨管理联调,price由元改为分,仓库管理库管员

---
 admin-web/src/views/departmentitem/itemdis/distribution/edit.vue |  180 ++++++++++++++++++++++++++++++++----------------------------
 1 files changed, 96 insertions(+), 84 deletions(-)

diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
index f9c6b1c..2c19940 100644
--- a/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
+++ b/admin-web/src/views/departmentitem/itemdis/distribution/edit.vue
@@ -1,13 +1,25 @@
 <template>
-  <win-md class="stock-edit" :title="`${setting.title}閲囪喘鍏ュ簱`" @close="close" :width="'800px'">
+  <win-md class="stock-edit" title="鐗╁搧鍒嗗彂" @close="close" :width="'800px'">
     <el-form class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px">
       <div class="main-w">
         <el-row :gutter="24" class="headerHeight">
           <el-col :span="12">
-            <el-form-item label="鍏ュ簱浠撳簱" prop="warehouseId">
+            <el-form-item label="閮ㄩ棬" prop="warehouseId">
               <el-select v-model="formData.warehouseId" placeholder="璇烽�夋嫨" style="width: 100%">
-                <el-option v-for="item in warehouses" :key="item.id" :label="item.warehouseName" :value="item.id" />
+                <el-option v-for="item in departmentOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="棰嗗彇浜�" prop="warehouseId">
+              <el-input v-model="formData.warehouseId" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="24" class="headerHeight">
+          <el-col :span="12">
+            <el-form-item label="鑱旂郴鐢佃瘽" prop="buyType">
+              <el-input v-model.number="formData.buyType" placeholder="璇疯緭鍏�"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -25,17 +37,8 @@
           </el-col>
         </el-row>
         <el-row :gutter="24" class="headerHeight">
-          <el-col :span="12">
-            <el-form-item label="閲囪喘绫诲瀷" prop="buyType">
-              <el-select v-model="formData.buyType" placeholder="璇烽�夋嫨" style="width: 100%">
-                <el-option v-for="item in buyTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24" class="headerHeight">
           <el-col :span="24">
-            <el-form-item label="閲囪喘鍏ュ簱鎵嬬画" prop="procureDoc">
+            <el-form-item label="鍒嗗彂瀹℃壒鎵嬬画" prop="procureDoc">
               <upload ref="uploadRef" :values="fileList" :settings="uploadSettings" @on-change="uploadChange"></upload>
             </el-form-item>
           </el-col>
@@ -114,52 +117,59 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
-              <el-form-item label="渚涜揣鍟�" prop="supplier">
-                <el-input v-model="goodsItem.supplier" clearable maxlength="20" show-word-limit />
-              </el-form-item>
-            </el-col>
           </el-row>
-          <el-table :data="goodsItem.models" :stripe="true">
-            <el-table-column prop="baseGoodsModelsId" label="瑙勬牸鍨嬪彿" align="center">
-              <template slot-scope="scope">
-                {{ getGoodsModelsName(scope.row.baseGoodsModelsId) }}
-              </template>
-            </el-table-column>
-            <el-table-column label="鍗曚綅" align="center">
-              <template slot-scope="scope">
-                {{ scope.row.unit }}
-              </template>
-            </el-table-column>
-            <el-table-column prop="priceYuan" label="鍗曚环锛堝厓锛�" align="center">
-              <template slot-scope="scope">
-                <el-form-item
-                  label-width="0"
-                  style="margin-bottom: 0"
-                  :prop="`procureGoods[${goodsIndex}].models[${scope.$index}].priceYuan`"
-                  :rules="rules.priceYuan"
-                >
-                  <el-input
-                    type="number"
-                    v-model.number="scope.row.priceYuan"
-                    @change="priceChange($event, goodsIndex, scope.$index)"
-                  ></el-input>
+          <el-row class="card3" v-for="(mItem, mIndex) in goodsItem.models" :key="mIndex">
+            <el-row :gutter="24" type="flex" align="middle" style="height: 50px">
+              <el-col :span="8">
+                <el-form-item label="瑙勬牸鍨嬪彿:" prop="baseGoodsModelsId" style="margin-bottom: 0">
+                  {{ getGoodsModelsName(mItem.baseGoodsModelsId) }}
                 </el-form-item>
-              </template>
-            </el-table-column>
-            <el-table-column prop="counts" label="閲囪喘鏁伴噺" align="center">
-              <template slot-scope="scope">
-                <el-form-item
-                  label-width="0"
-                  style="margin-bottom: 0"
-                  :prop="`procureGoods[${goodsIndex}].models[${scope.$index}].counts`"
-                  :rules="rules.counts"
-                >
-                  <el-input v-model.number="scope.row.counts"></el-input>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="鍓╀綑鏁伴噺:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80">
+                  50
                 </el-form-item>
-              </template>
-            </el-table-column>
-          </el-table>
+              </el-col>
+              <el-col :span="10" v-if="true">
+                <el-form-item label="鍒嗗彂鏁伴噺:" prop="baseGoodsModelsId" style="margin-bottom: 0" label-width="80">
+                  <el-input v-model.number="mItem.count" style="width: 160px;"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-table :data="mItem.clist" :stripe="true" v-if="false">
+              <el-table-column prop="count" label="鍒嗗彂鏁伴噺" align="center">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.count"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="count" label="浣跨敤浜�" align="center">
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.user" maxlength="20"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="count" label="鑱旂郴鐢佃瘽" align="center">
+                <template slot-scope="scope">
+                  <el-input v-model.number="scope.row.phone" maxlength="11"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column align="left" width="60">
+                <template slot-scope="scope">
+                  <i
+                    v-if="mItem.clist.length > 1"
+                    class="el-icon-remove-outline"
+                    style="color: #f56c6c; font-size: 16px; cursor: pointer"
+                    @click="handleDel(goodsIndex, mIndex, scope.$index)"
+                  ></i>
+                  <i
+                    v-if="mItem.clist.length - 1 == scope.$index"
+                    class="el-icon-circle-plus-outline"
+                    style="color: #0d997c; font-size: 16px; cursor: pointer"
+                    @click="handleAdd(goodsIndex, mIndex, scope.$index)"
+                  ></i>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-row>
           <div class="btn-group">
             <el-button
               v-if="formData.procureGoods.length > 1"
@@ -198,6 +208,7 @@
   goodsModel,
   procureDetail,
 } from '@/api/stock/procure/purchaseOrder';
+import { departmentListAll } from '@/api/system/deptment';
 import { getTree } from '@/api/foudation/classification';
 import MyButton from '@/components/myButton/myButton';
 import winMd from '@/components/win/win-md';
@@ -205,6 +216,7 @@
 import { getUploadUrl, getDownUrl } from '@/utils/base';
 import { findParentIds } from '@/utils/index';
 import { mapGetters } from 'vuex';
+import * as DateFormatter from '@/utils/DateFormatter';
 
 export default {
   components: { MyButton, winMd, upload },
@@ -224,18 +236,6 @@
       let temp = this.formData.procureGoods.filter((v) => v.baseGoodsTemplateId == value);
       if (!temp || temp.length != 1) {
         return callback(new Error('宸查�夎繃姝ょ墿鍝�'));
-      }
-      callback();
-    };
-    // 閲戦鏍¢獙
-    var checkPrice = (rule, value, callback) => {
-      console.log(value);
-      if (!value) {
-        return callback(new Error('璇疯緭鍏�'));
-      }
-      if (value == 0) {
-        this.$message.warning('鏁板瓧鍊间笉鑳戒负0');
-        return callback(new Error('鏁板瓧鍊间笉鑳戒负0'));
       }
       callback();
     };
@@ -268,14 +268,13 @@
         },
       ],
       fileList: [],
-      warehouses: [], // 鍏ュ簱浠撳簱鍒楄〃
+      departmentOptions: [], // 閮ㄩ棬鍒楄〃
       categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃
       modelList: [], //鍨嬪彿鍒楄〃
       formData: {
         procureDoc: '',
         warehouseId: '', // 鍏ュ簱浠撳簱id
-        procureTime: '', // 閲囪喘鏃堕棿
-        buyType: '2', // 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
+        procureTime: DateFormatter.formatDate(new Date()), // 閲囪喘鏃堕棿
         procureGoods: [],
       },
       goodsItem: {
@@ -292,10 +291,12 @@
       },
       modelsItem: {
         baseGoodsModelsId: '', // 瑙勬牸鍨嬪彿缂栧彿
-        priceYuan: null, // 鍗曚环(鍏�)
-        price: null, // 鍗曚环(鍒� 閲囪喘闇�瑕侊紝璋冩嫧涓嶉渶瑕�)
-        counts: null, // 鎿嶄綔鏁伴噺
-        unit: null, //鍗曚綅
+        syCount: '',
+      },
+      clistItem: {
+        count: null,
+        user: null,
+        phone: null,
       },
       rules: {
         warehouseId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
@@ -306,7 +307,6 @@
         baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
         baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }],
         modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
-        priceYuan: [{ validator: checkPrice, trigger: 'blur' }],
         counts: [{ validator: checkCounts, trigger: 'blur' }],
       },
 
@@ -331,7 +331,7 @@
   },
   methods: {
     async init() {
-      this.getWarehouseList();
+      this.getdeptmentList();
       this.getgoodsTemplate();
       this.getgoodsModel();
       // 鑾峰彇鐗╁搧鍒嗙被鍒楄〃
@@ -364,16 +364,16 @@
     },
 
     // 鑾峰彇鍏ュ簱浠撳簱鍒楄〃
-    getWarehouseList() {
-      selectTenantWarehouse({ agencyId: this.userInfo.tenantId })
+    getdeptmentList() {
+      departmentListAll({ agencyId: this.userInfo.tenantId })
         .then((res) => {
-          this.warehouses = res;
+          this.departmentOptions = res;
           if (!this.setting.id && res.length) {
             this.formData.procureGoods.push(JSON.parse(JSON.stringify(this.goodsItem)));
           }
-          if (this.warehouses.length && !this.formData.warehouseId) {
+          if (this.departmentOptions.length && !this.formData.warehouseId) {
             // 榛樿閫変腑绗竴涓粨搴�
-            this.formData.warehouseId = this.warehouses[0].id;
+            this.formData.warehouseId = this.departmentOptions[0].id;
           }
         })
         .catch((err) => {
@@ -463,8 +463,8 @@
       let str = JSON.stringify(arr);
       e.forEach((item) => {
         if (str.indexOf(item) == -1) {
-          let temp = this.goodsModelAll.find((v) => v.id == item);
-          arr.push({ ...this.modelsItem, baseGoodsModelsId: item, unit: temp.unit });
+          let clist = [JSON.parse(JSON.stringify(this.clistItem))];
+          arr.push({ ...this.modelsItem, baseGoodsModelsId: item, clist });
         }
       });
       this.formData.procureGoods[index].models = arr;
@@ -475,6 +475,14 @@
       let arr = this.formData.procureGoods[index].models;
       let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e);
       this.formData.procureGoods[index].models.splice(delIndex, 1);
+    },
+
+    //鍨嬪彿鍒嗗彂鏂板
+    handleAdd(goodsIndex, mIndex, cIndex) {
+      this.formData.procureGoods[goodsIndex].models[mIndex].clist.push(JSON.parse(JSON.stringify(this.clistItem)));
+    },
+    handleDel(goodsIndex, mIndex, cIndex) {
+      this.formData.procureGoods[goodsIndex].models[mIndex].clist.splice(cIndex, 1);
     },
 
     // 浠锋牸input鐩戝惉 杞负鍒�
@@ -546,4 +554,8 @@
 </script>
 <style scoped lang="scss">
 @import url(../../../../styles/store.scss);
+.card3 {
+  border-radius: 2px;
+  background: #ffffff;
+}
 </style>

--
Gitblit v1.9.1