From 1ae0722c4a8022961c48c34588823fdd23698e44 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 20 九月 2023 19:17:26 +0800
Subject: [PATCH] 仓库管理 仓库+业务类型  接口列表 添加编辑 删除 联调 业务类型缺少字段

---
 src/views/warehouseManage/bussinessType/AddBussinessType.vue |  185 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 139 insertions(+), 46 deletions(-)

diff --git a/src/views/warehouseManage/bussinessType/AddBussinessType.vue b/src/views/warehouseManage/bussinessType/AddBussinessType.vue
index 102d20b..4d907a1 100644
--- a/src/views/warehouseManage/bussinessType/AddBussinessType.vue
+++ b/src/views/warehouseManage/bussinessType/AddBussinessType.vue
@@ -49,17 +49,18 @@
             </el-row>
             <div class="purchase-view">
               <div class="left" style="margin-left: 20px">
-                <el-form-item label="浣滀笟绫诲瀷" prop="operate_type" :label-width="labelWidth">
+                <el-form-item label="浣滀笟绫诲瀷" prop="baseOperationType" :label-width="labelWidth">
                   <el-select
-                    v-model="editConfig.infomation.operate_type"
+                    v-model="editConfig.infomation.baseOperationType"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 85%"
                     :disabled="!showFooter"
                   >
-                    <el-option v-for="item in operateTypeOptions" :key="item" :label="item" :value="item"> </el-option>
+                    <el-option v-for="item in baseOperationTypeList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
+                
                 <el-form-item label="搴忓彿鍓嶇紑" prop="client_name" :label-width="labelWidth">
                   <el-input
                     v-model="editConfig.infomation.client_name"
@@ -68,37 +69,41 @@
                     style="width: 85%"
                   ></el-input>
                 </el-form-item>
-                <el-form-item label="浠撳簱" prop="client_name" :label-width="labelWidth">
+                <el-form-item label="浠撳簱" prop="warehouseId" :label-width="labelWidth">
                   <el-select
-                    v-model="editConfig.infomation.memberId"
-                    multiple
+                    v-model="editConfig.infomation.warehouseId"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 85%"
                     :disabled="!showFooter"
                   >
-                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+                    <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
                 <el-form-item
-                  v-if="editConfig.infomation.operate_type !== '鏀惰揣'"
+                  v-if="editConfig.infomation.baseOperationType !== 1"
                   label="淇濈暀鏂瑰紡"
-                  prop="resource"
+                  prop="reservationMethod"
                   :label-width="labelWidth"
                 >
                   <el-radio-group
-                    v-model="editConfig.infomation.resource"
+                    v-model="editConfig.infomation.reservationMethod"
                     @input="reserveMethodClick"
                     :disabled="!showFooter"
                   >
-                    <div style="margin-top: 8px"><el-radio label="纭鏃�"></el-radio></div>
-                    <div style="margin-top: 10px"><el-radio label="鎵嬪伐"></el-radio></div>
-                    <div style="margin-top: 10px"><el-radio label="鍦ㄩ瀹氭棩鏈熶箣鍓�"></el-radio></div>
+                    <div style="margin-top: 8px">
+                      <el-radio v-for="item in reservationMethodList"
+                      :key="item.id"
+                      :value="item.id"
+                      :label="item.name"
+                       >
+                      </el-radio>
+                      </div>
                   </el-radio-group>
                 </el-form-item>
-                <el-form-item
-                  v-if="editConfig.infomation.operate_type !== '鏀惰揣'"
+                <!-- <el-form-item
+                  v-if="editConfig.infomation.resource == '鍦ㄩ瀹氭棩鏈熶箣鍓�'"
                   label="鍦ㄩ瀹氭棩鏈熷墠棰勫畾"
                   prop="client_name"
                   :label-width="labelWidth"
@@ -109,44 +114,44 @@
                     :disabled="!showFooter"
                     style="width: 85%"
                   ></el-input>
-                </el-form-item>
+                </el-form-item> -->
               </div>
               <div class="right">
-                <el-form-item label="閫�璐х被鍨�" prop="client_name">
+                
+                <el-form-item label="閫�璐х被鍨�" prop="returnOperationTypeID">
                   <el-select
-                    v-model="editConfig.infomation.memberId"
-                    multiple
+                    v-model="editConfig.infomation.returnOperationTypeID"
+                    v-if="editConfig.infomation.baseOperationType"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 85%"
                     :disabled="!showFooter"
                   >
-                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+                    <el-option v-for="item in returnOperationTypeList" :key="item.id" :label="item.username" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="鍒涘缓娆犲崟" prop="client_name">
+                <el-form-item label="鍒涘缓娆犲崟" prop="createBackorder">
                   <el-select
-                    v-model="editConfig.infomation.memberId"
-                    multiple
+                    v-model="editConfig.infomation.createBackorder"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 85%"
                     :disabled="!showFooter"
                   >
-                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+                    <el-option v-for="item in createBackorderList" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="鏄剧ず浣滀笟璇︽儏" prop="showDetail">
-                  <el-checkbox v-model="editConfig.infomation.showDetail"></el-checkbox>
+                <el-form-item label="鏄剧ず浣滀笟璇︽儏" prop="showOperations">
+                  <el-checkbox v-model="editConfig.infomation.showOperations"></el-checkbox>
                 </el-form-item>
                 <el-form-item
-                  v-if="editConfig.infomation.operate_type === '鏀惰揣'"
+                  v-if="editConfig.infomation.baseOperationType === 1"
                   label="棰勫~鍐欎綔涓氳鎯�"
-                  prop="showDetail"
+                  prop="showOperations"
                 >
-                  <el-checkbox v-model="editConfig.infomation.showDetail"></el-checkbox>
+                  <el-checkbox v-model="editConfig.infomation.showOperations"></el-checkbox>
                 </el-form-item>
               </div>
             </div>
@@ -158,29 +163,27 @@
             <div class="purchase-view">
               <div class="left">
                 <div class="second-label">浣嶇疆</div>
-                <el-form-item label="榛樿婧愪綅缃�" prop="client_name" style="margin-left: 20px">
+                <el-form-item label="榛樿婧愪綅缃�" prop="defaultLocationSrcId" style="margin-left: 20px">
                   <el-select
-                    v-model="editConfig.infomation.memberId"
-                    multiple
+                    v-model="editConfig.infomation.defaultLocationSrcId"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 85%"
                     :disabled="!showFooter"
                   >
-                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+                    <el-option v-for="item in locationList" :key="item.id" :label="item.username" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="榛樿鐩殑浣嶇疆" prop="client_name" style="margin-left: 20px">
+                <el-form-item label="榛樿鐩殑浣嶇疆" prop="defaultLocationDestId" style="margin-left: 20px">
                   <el-select
-                    v-model="editConfig.infomation.memberId"
-                    multiple
+                    v-model="editConfig.infomation.defaultLocationDestId"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 85%"
                     :disabled="!showFooter"
                   >
-                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
+                    <el-option v-for="item in locationList" :key="item.id" :label="item.username" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
@@ -201,6 +204,8 @@
 </template>
 
 <script>
+import { addOperationType,updateOperationType,getWarehouseList,deleteOperationType} from "@/api/warehouseManage/warehouse"
+import { getDataByType } from "@/api/data";
 export default {
   name: "AddBussinessType",
   props: {
@@ -222,25 +227,50 @@
       dialogWidth: "50%",
       editConfig: this.editCommonConfig,
       rules: {
-        client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }],
-        number: [{ required: true, message: "璇疯緭鍏ラ��娆惧崟缂栧彿", trigger: "blur" }],
-        refundDate: [{ required: true, message: "璇烽�夋嫨閫�娆炬棩鏈�", trigger: "change" }],
-        memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }],
-        sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }]
+        // 鍏ュ簱绫诲瀷
+        client_name: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+        // 鍓嶇紑
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+        baseOperationType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
       },
-      memberOptions: [],
-      operateTypeOptions: ["鏀惰揣", "鍙戣揣", "鍐呴儴璋冩嫧"], // 鎿嶄綔绫诲瀷
+      // 浣嶇疆
+      locationList: [],
+      warehouseList:[],
+      // 閫�璐х被鍨�
+      returnOperationTypeList:[],
+      // 浣滀笟绫诲瀷
+      baseOperationTypeList:getDataByType('baseOperationType'),
+      // 鍒涘缓娆犲崟
+      createBackorderList:getDataByType('createBackorder'),
+      // 淇濈暀鏂瑰紡
+      reservationMethodList:getDataByType('reservationMethod'),
       showButton: true,
       showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳
       isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑�
       showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨
-      labelWidth: "80px"
+      labelWidth: "90px"
     }
   },
   created() {
+    this.getList()
     this.setBottonView()
   },
   methods: {
+    // 浠撳簱
+    async getWarehouse() {
+      await getWarehouseList({
+        keyword: '',
+        page: 0,
+        pageSize: 0
+      }).then((res) => {
+        if (res.data.code == 200) {
+          this.warehouseList = res.data.data?res.data.data:[]
+        }
+      })
+    },
+    getList(){
+      this.getWarehouse()
+    },
     // 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず
     setBottonView() {
       if (this.editConfig.title === "鏂板缓") {
@@ -256,14 +286,77 @@
     handleClose() {
       this.editConfig.visible = false
     },
+    // 鍒櫎
+    deleteClick() {
+      let data = JSON.parse(JSON.stringify(this.editConfig.infomation));
+      deleteOperationType({ id: data.id }).then((res) => {
+        if (res.code === 200) {
+          this.editConfig.visible = false;
+          this.$message.success("鍒櫎鎴愬姛");
+          this.$emit("refresh");
+        }
+      });
+    },
     // 缂栬緫
     editClick() {
       this.showEdit = false
       this.showButton = false
       this.showFooter = true
     },
+    saveParams() {
+      let data =JSON.parse(JSON.stringify(this.editConfig.infomation));
+      
+      let params = {
+        // 浣滀笟绫诲瀷
+        baseOperationType:data.baseOperationType,
+        // 閫�璐х被鍨�
+        returnOperationTypeID:data.returnOperationTypeID,
+        // 鍒涘缓娆犲崟
+        createBackorder:data.createBackorder,
+        // 浠撳簱
+        warehouseId:data.warehouseId,
+        // 鏄剧ず浣滀笟璇︽儏
+        showOperations:data.showOperations,
+        // 淇濈暀鏂瑰紡
+        reservationMethod:data.reservationMethod,
+        // 榛樿鍘熶綅缃�
+        defaultLocationSrcId:data.defaultLocationSrcId,
+        // 榛樿鐩爣浣嶇疆
+        defaultLocationDestId:data.defaultLocationDestId,
+      }
+      if(data.id){
+        params.id=data.id
+      }
+      return params;
+    },
     // 淇濆瓨
-    saveClick() {},
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          const params = this.saveParams();
+            if (this.editConfig.title === "鏂板缓") {
+              addOperationType(params).then((res) => {
+                if (res.code === 200) {
+                  this.editConfig.visible = false;
+                  this.$message.success("娣诲姞鎴愬姛");
+                  this.$emit('refresh')
+                }
+              });
+            } else {
+              updateOperationType(params).then((res) => {
+                if (res.code === 200) {
+                  this.editConfig.visible = false;
+                  this.$message.success("缂栬緫鎴愬姛");
+                  this.$emit('refresh')
+                }
+              });
+            }
+        }else {
+          console.log("error submit");
+          return false;
+        }
+      });
+    },
     // 鍒犻櫎
     delClick() {},
     // 浜у搧

--
Gitblit v1.8.0