From 78d03fa48defaf77c2b533dc4616a210088ab49c Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 17 一月 2025 11:02:51 +0800
Subject: [PATCH] Merge branch '2.0.1' of http://139.186.142.91:10010/r/productDev/funingyunwei into 2.0.1

---
 admin/src/views/stock/components/OutEdit.vue |  112 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 76 insertions(+), 36 deletions(-)

diff --git a/admin/src/views/stock/components/OutEdit.vue b/admin/src/views/stock/components/OutEdit.vue
index 3bc1a30..dd12706 100644
--- a/admin/src/views/stock/components/OutEdit.vue
+++ b/admin/src/views/stock/components/OutEdit.vue
@@ -3,25 +3,25 @@
     @confirm="confirm">
     <el-form :model="param" ref="form" :rules="rules">
       <div class="df_ac">
-        <el-form-item class="w3" label="鍑哄簱浠撳簱" prop="parentId">
-          <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
-            <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
+        <el-form-item class="w3" label="鍑哄簱浠撳簱" prop="warehouseId">
+          <el-select :disabled="param.id" v-model="param.warehouseId" placeholder="璇烽�夋嫨">
+            <el-option v-for="op in storeList" :key="op.id" :label="op.name" :value="op.id"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item class="w3" label="鍑哄簱鏃ユ湡">
-          <el-date-picker type="date" v-model="param.getDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
+        <el-form-item class="w3" label="鍑哄簱鏃ユ湡" prop="doneDate">
+          <el-date-picker type="date" v-model="param.doneDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
             placeholder="璇烽�夋嫨鍑哄簱鏃ユ湡"></el-date-picker>
         </el-form-item>
-        <el-form-item class="w3" label="鍑哄簱绫诲瀷" prop="parentId">
-          <el-select :disabled="param.id" v-model="param.parentId" placeholder="涓嶅~涓哄垯涓�绾у垎绫�">
-            <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
+        <el-form-item class="w3" label="鍑哄簱绫诲瀷" prop="type">
+          <el-select :disabled="param.id" v-model="param.type" placeholder="璇烽�夋嫨鍑哄簱绫诲瀷">
+            <el-option v-for="op in StoreTypeOps" :key="op.id" :label="op.name" :value="op.id"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item class="w3" label="澶勭悊浜�" prop="name">
-          <el-input v-model="param.name" v-trim />
+          <el-input v-model="param.createUserName" :disabled="true" v-trim />
         </el-form-item>
-        <el-form-item class="w6" label="澶囨敞" prop="name">
-          <el-input v-model="param.name" placeholder="璇疯緭鍏�" v-trim />
+        <el-form-item class="w6" label="澶囨敞" prop="remark">
+          <el-input v-model="param.remark" placeholder="璇疯緭鍏�" v-trim />
         </el-form-item>
       </div>
     </el-form>
@@ -32,18 +32,19 @@
     <el-button type="primary" @click="handleOpenMaterial">閫夋嫨鐗╂枡</el-button>
     <el-table :data="list" stripe>
       <el-table-column align="center" label="搴忓彿" type="index" width="50" />
-      <el-table-column prop="creatorName" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column>
-      <el-table-column prop="categoryName" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="90px"></el-table-column>
-      <el-table-column prop="createDate" label="鏉″舰鐮�" show-overflow-tooltip min-width="70px"></el-table-column>
-      <el-table-column prop="dealUserName" label="鍝佺墝" show-overflow-tooltip min-width="70px"></el-table-column>
-      <el-table-column prop="dealUserName" label="鍗曚綅" show-overflow-tooltip min-width="70px"></el-table-column>
+      <el-table-column prop="name" label="鐗╂枡鍚嶇О" show-overflow-tooltip min-width="80px"></el-table-column>
+      <el-table-column prop="code" label="鐗╂枡缂栫爜" show-overflow-tooltip min-width="90px"></el-table-column>
+      <el-table-column prop="qrcode" label="鏉″舰鐮�" show-overflow-tooltip min-width="70px"></el-table-column>
+      <el-table-column prop="brand" label="鍝佺墝" show-overflow-tooltip min-width="70px"></el-table-column>
+      <el-table-column prop="unitName" label="鍗曚綅" show-overflow-tooltip min-width="70px"></el-table-column>
       <el-table-column prop="dealUserName" label="鍑哄簱鏁伴噺" min-width="90px">
-        <template v-slot="{row}">
-          <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.aa" class="w100"></el-input>
+        <template v-slot="{ row }">
+          <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.stock"
+            class="w100"></el-input>
         </template>
       </el-table-column>
-      <el-table-column prop="dealUserName" label="搴撳瓨鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column>
-      <el-table-column prop="dealUserName" label="鎿嶄綔" min-width="60px">
+      <el-table-column prop="maxStock" label="搴撳瓨鏁伴噺" show-overflow-tooltip min-width="80px"></el-table-column>
+      <el-table-column label="鎿嶄綔" min-width="60px">
         <template v-slot="scope">
           <span @click="handleDel(scope)" class="red pointer">鍒犻櫎</span>
         </template>
@@ -57,52 +58,91 @@
 <script>
 import GlobalWindow from '@/components/common/GlobalWindow'
 import AssetSel from './AssetSel'
-import { create, fetchCateList, getInfoById } from '@/api/business/category.js'
+import { fetchList as getStoreList } from '@/api/ywWarehouse'
+import { ywOutinboundCreate } from '@/api/store/index'
+import { StoreTypeOps, rules } from './config'
+import { Message } from 'element-ui'
 export default {
   name: 'OperaCategoryWindow',
   components: { GlobalWindow, AssetSel },
   data() {
     return {
       // 琛ㄥ崟鏁版嵁
-      param: {},
+      param: {
+        createUserName: this.$store.state.userInfo.username,
+        creator: this.$store.state.userInfo.id,
+        inOut: 1
+      },
       activeName: 'first',
       isShowModal: false,
       isShowSel: false,
       isLoading: false,
       // 楠岃瘉瑙勫垯
-      rules: {
-        name: [{ required: true, message: '璇疯緭鍏ヤ簩绾у垎绫诲悕绉�', trigger: 'blur' }],
-      },
-      list: [{}],
+      rules,
+      storeList: [],
+      list: [],
+      StoreTypeOps: StoreTypeOps.filter(i => i.type == 1),
 
       dataList: [],
     }
   },
   created() {
-
+    this.initData()
   },
   methods: {
     confirm() {
-
-    },
-    getList() {
-      fetchCateList({ type: 5 }).then(res => {
-        this.dataList = res || []
-
+      this.$refs['form'].validate((valid) => {
+        if (valid) {
+          const { param, list } = this
+          if(list.length == 0) return Message.warning('璇峰厛閫夋嫨鐗╂枡淇℃伅')
+          let count = 0 // 鍑哄簱鏁伴噺蹇呭~
+          list.forEach(item => {
+            if(!item.stock) count ++
+          })
+          if(count > 0) return Message.warning('璇疯緭鍏ユ纭殑鍑哄簱鏁伴噺')
+          this.isLoading = true
+          ywOutinboundCreate({
+            ...param,
+            recordList: list
+          }).then(res => {
+            this.isLoading = false
+            Message.success('鎻愪氦鎴愬姛')
+            this.$emit('success')
+            this.close()
+          }, () => {
+            this.isLoading = false
+          })
+        }
       })
     },
-    changeSel() {
-
+    initData() {
+      getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => {
+        this.storeList = res.records || []
+      })
+    },
+    changeSel(val) {
+      const list = val
+      list.forEach(item => {
+        if(this.list.indexOf(item.id) === -1){
+          item.materialId = item.id
+          item.stock = null
+          this.list.push(item)
+        }
+      })
     },
     handleDel(val) {
       const index = val.$index
       this.list.splice(index, 1)
-      
+
     },
     handleOpenMaterial() {
       this.isShowSel = true
       this.$nextTick(() => {
         this.$refs.AssetSelRef.isShowModal = true
+        this.$refs.AssetSelRef.isOut = true
+        this.$refs.AssetSelRef.getList()
+        console.log('-----');
+        
       })
     },
     close() {

--
Gitblit v1.9.3