From b5acca92bd0794c24310d15c6fba8433d08119c9 Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期三, 11 十月 2023 15:27:09 +0800
Subject: [PATCH] feat: 销售机会报价单销售总单销售子单 编辑弹窗调整表单编号位置, 更换适配新的编码组件

---
 src/views/service/serviceContract/AddServiceContractDialog.vue |  114 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 75 insertions(+), 39 deletions(-)

diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue
index 52743f7..2719d49 100644
--- a/src/views/service/serviceContract/AddServiceContractDialog.vue
+++ b/src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -13,7 +13,7 @@
         :model="editConfig.infomation"
         :rules="rules"
         label-position="right"
-        label-width="308px"
+        label-width="168px"
         size="mini"
         style="height: 60vh; overflow-x: hidden"
       >
@@ -35,19 +35,24 @@
                       "
                       value-key="name"
                       @select="handleSelectClient('client', $event)"
+                      style="width: 100%"
                     ></el-autocomplete>
                     <div class="common-select-btn" @click="selClientClick('client')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
-                    <div class="common-select-btn" @click="clearupClient('client')">
-                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    <div
+                      v-if="editConfig.infomation.client_name && editConfig.infomation.client_name.length > 0"
+                      class="common-select-btn"
+                      @click="clearupClient('client')"
+                    >
+                      <i class="el-icon-remove-outline" title="娓呴櫎"></i>
                     </div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
                 <el-form-item label="鏈嶅姟鍚堝悓缂栧彿" prop="number">
-                  <el-input v-model="editConfig.infomation.number"></el-input>
+                  <el-input v-model="editConfig.infomation.number" style="width: 100%"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -56,7 +61,7 @@
                     v-model="editConfig.infomation.memberId"
                     placeholder="璇烽�夋嫨"
                     size="mini"
-                    style="width: 63%"
+                    style="width: 100%"
                   >
                     <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id">
                     </el-option>
@@ -64,7 +69,7 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鑱旂郴浜哄鍚�" prop="contactId">
+                <el-form-item label="鑱旂郴浜哄鍚�" prop="contact_name">
                   <div class="custom-name">
                     <el-autocomplete
                       v-model="editConfig.infomation.contact_name"
@@ -75,18 +80,23 @@
                       "
                       value-key="name"
                       @select="handleSelectClient('contact', $event)"
+                      style="width: 100%"
                     ></el-autocomplete>
                     <div class="common-select-btn" @click="selClientClick('contact')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
-                    <div class="common-select-btn" @click="clearupClient('contact')">
-                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    <div
+                      v-if="editConfig.infomation.contact_name && editConfig.infomation.contact_name.length > 0"
+                      class="common-select-btn"
+                      @click="clearupClient('contact')"
+                    >
+                      <i class="el-icon-remove-outline" title="娓呴櫎"></i>
                     </div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞満浼�" prop="saleChanceId">
+                <el-form-item label="閿�鍞満浼�" prop="sale_chance_name">
                   <div class="custom-name">
                     <el-autocomplete
                       v-model="editConfig.infomation.sale_chance_name"
@@ -97,18 +107,23 @@
                       "
                       value-key="name"
                       @select="handleSelectClient('chance', $event)"
+                      style="width: 100%"
                     ></el-autocomplete>
                     <div class="common-select-btn" @click="selClientClick('chance')">
                       <i class="el-icon-circle-plus-outline"></i>
                     </div>
-                    <div class="common-select-btn" @click="clearupClient('chance')">
-                      <i class="el-icon-edit-outline"></i>
+                    <div
+                      v-if="editConfig.infomation.sale_chance_name && editConfig.infomation.sale_chance_name.length > 0"
+                      class="common-select-btn"
+                      @click="clearupClient('chance')"
+                    >
+                      <i class="el-icon-remove-outline"></i>
                     </div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍚堝悓璁㈠崟" prop="contractId">
+                <el-form-item label="鍚堝悓璁㈠崟" prop="contract_number">
                   <div class="custom-name">
                     <el-autocomplete
                       v-model="editConfig.infomation.contract_number"
@@ -119,18 +134,23 @@
                       "
                       value-key="number"
                       @select="handleSelectClient('contract', $event)"
+                      style="width: 100%"
                     ></el-autocomplete>
                     <div class="common-select-btn" @click="selClientClick('contract')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
-                    <div class="common-select-btn" @click="clearupClient('contract')">
-                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    <div
+                      v-if="editConfig.infomation.contract_number && editConfig.infomation.contract_number.length > 0"
+                      class="common-select-btn"
+                      @click="clearupClient('contract')"
+                    >
+                      <i class="el-icon-remove-outline" title="娓呴櫎"></i>
                     </div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鎶ヤ环鍗�" prop="quotationId">
+                <el-form-item label="鎶ヤ环鍗�" prop="quotation_number">
                   <div class="custom-name">
                     <el-autocomplete
                       v-model="editConfig.infomation.quotation_number"
@@ -141,24 +161,30 @@
                       "
                       value-key="number"
                       @select="handleSelectClient('quotation', $event)"
+                      style="width: 100%"
                     ></el-autocomplete>
                     <div class="common-select-btn" @click="selClientClick('quotation')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
-                    <div class="common-select-btn" @click="clearupClient('quotation')">
-                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    <div
+                      v-if="editConfig.infomation.quotation_number && editConfig.infomation.quotation_number.length > 0"
+                      class="common-select-btn"
+                      @click="clearupClient('quotation')"
+                    >
+                      <i class="el-icon-remove-outline" title="娓呴櫎"></i>
                     </div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍚堝悓绫诲瀷" prop="typeId">
+                <el-form-item label="鍚堝悓绫诲瀷" prop="serviceContractTypeId">
                   <div class="common-select">
                     <el-select
-                      v-model="editConfig.infomation.typeId"
+                      v-model="editConfig.infomation.serviceContractTypeId"
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      style="width: 100%"
                     >
                       <el-option v-for="item in contractTypeOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
@@ -174,6 +200,7 @@
                     value-format="yyyy-MM-dd"
                     type="date"
                     placeholder="閫夋嫨鏃ユ湡"
+                    style="width: 100%"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -185,6 +212,7 @@
                     value-format="yyyy-MM-dd"
                     type="date"
                     placeholder="閫夋嫨鏃ユ湡"
+                    style="width: 100%"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -196,6 +224,7 @@
                     value-format="yyyy-MM-dd"
                     type="date"
                     placeholder="閫夋嫨鏃ユ湡"
+                    style="width: 100%"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -207,13 +236,14 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="鍚堝悓鐘舵��" prop="statusId">
+                <el-form-item label="鍚堝悓鐘舵��" prop="serviceContractStatusId">
                   <div class="common-select">
                     <el-select
-                      v-model="editConfig.infomation.statusId"
+                      v-model="editConfig.infomation.serviceContractStatusId"
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      style="width: 100%"
                     >
                       <el-option
                         v-for="item in contractStatusOptions"
@@ -229,7 +259,14 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="搴旀湇鍔℃鏁�" prop="serviceTimes">
-                  <el-input v-model="editConfig.infomation.serviceTimes"></el-input>
+                  <el-input-number
+                    v-model="editConfig.infomation.serviceTimes"
+                    placeholder="璇疯緭鍏�"
+                    :min="0"
+                    :precision="2"
+                    :controls="false"
+                    style="width: 100%"
+                  ></el-input-number>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -436,7 +473,7 @@
   },
   data() {
     return {
-      dialogWidth: "80%",
+      dialogWidth: "50%",
       editConfig: this.editCommonConfig,
       rules: {
         number: [{ required: true, message: "璇疯緭鍏ユ湇鍔″悎鍚岀紪鍙�", trigger: "blur" }],
@@ -453,7 +490,7 @@
         show: true,
         total: true,
         sumProp: ["Amount", "Unit", "total"],
-        mergeNumber: 3
+        mergeNumber: 2
       },
       editSelectClientConfig: {
         editVisible: false,
@@ -562,17 +599,7 @@
         endTime: data.endTime || "",
         memberId: data.memberId || 0,
         number: data.number || "",
-        products: [
-          {
-            amount: 0,
-            desc: "",
-            id: 0,
-            name: "",
-            number: "",
-            price: 0,
-            total: 0
-          }
-        ],
+        products: this.tableData,
         quotationId: this.quotationId || 0,
         remark: data.remark || "",
         saleChanceId: this.saleChanceId || 0,
@@ -580,9 +607,11 @@
         serviceTimes: data.serviceTimes || 0,
         signTime: data.signTime || "",
         startTime: data.startTime || "",
-        statusId: data.statusId || 0,
+        statusId: 0,
         terms: data.terms || "",
-        typeId: data.typeId || 0
+        typeId: 0,
+        serviceContractTypeId: data.serviceContractTypeId || 0,
+        serviceContractStatusId: data.serviceContractStatusId || 0
       }
       return params
     },
@@ -687,7 +716,7 @@
     // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
     setFormatClick() {},
     setTableForm() {
-      if (this.editConfig.title === "鏂板缓") {
+      if (this.editConfig.title === "鏂板缓" || this.editConfig.infomation.products.length === 0) {
         this.tableData = [
           {
             productId: this.productId,
@@ -760,7 +789,11 @@
       this.productTableList.tableData = this.tableData
     },
     // 浜у搧閲嶇畻
-    recalculateProductClick() {}
+    recalculateProductClick() {},
+    clearupProduct(data) {
+      this.tableData = data
+      this.productTableList.tableData = this.tableData
+    }
   }
 }
 </script>
@@ -815,6 +848,9 @@
       height: 55px;
       line-height: 55px;
     }
+    .el-input__inner {
+      text-align: left;
+    }
   }
 }
 </style>

--
Gitblit v1.8.0