From 23d80c1b64f23ede237ab8e89ebc2ee2aaf43f26 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期三, 19 七月 2023 19:32:10 +0800
Subject: [PATCH] 销售模块接口联调

---
 src/views/sales/generatePlan/AddGeneratePlanDialog.vue           |  143 ++
 src/views/service/serviceFollowup/AddServiceFollowupDialog.vue   |   83 +
 src/views/service/serviceFeeManage/index.vue                     |    8 
 src/views/client/followupRecords/AddFollowupRecordsDialog.vue    |   24 
 src/views/sales/masterOrder/index.vue                            |   34 
 src/views/sales/salesDetails/AddSalesDetailsDialog.vue           |  243 +++-
 src/components/makepager/TableCommonView.vue                     |   24 
 src/views/service/orderManage/AddOrderManageDialog.vue           |   98 +
 src/views/sales/salesReturn/index.vue                            |   32 
 src/views/client/followupRecords/index.vue                       |    6 
 src/views/service/serviceContract/index.vue                      |   16 
 src/views/service/serviceFollowup/index.vue                      |   10 
 src/views/sales/contractManage/index.vue                         |   44 
 src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue |  112 +
 src/views/sales/salesDetails/index.vue                           |   68 -
 src/views/service/serviceContract/AddServiceContractDialog.vue   |  119 +
 src/views/client/client/index.vue                                |    5 
 src/views/client/contacts/AddContactsDialog.vue                  |    9 
 src/views/sales/subOrder/index.vue                               |   10 
 src/components/makepager/CommonFormTableView.vue                 |   12 
 src/views/sales/masterOrder/AddMasterOrderDialog.vue             |  139 +
 src/views/sales/salesReturn/AddSalesReturnDialog.vue             |  213 ++-
 src/views/sales/refundForm/AddRefundFormDialog.vue               |  251 +++-
 src/views/sales/refundForm/index.vue                             |   46 
 src/views/client/client/AddClientManageDialog.vue                |   56 
 src/api/service/serviceFollowup.js                               |    0 
 src/views/client/contacts/index.vue                              |   61 
 src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue   |  528 ++++++---
 src/views/service/orderManage/index.vue                          |   10 
 src/views/sales/quotation/AddQuotationDialog.vue                 |  209 ++-
 src/views/sales/salesOpportunity/index.vue                       |   98 -
 src/views/sales/subOrder/AddSubOrderDialog.vue                   |  165 ++
 src/api/service/serviceContract.js                               |    0 
 src/api/service/serviceFeeManage.js                              |    0 
 src/views/sales/contractManage/AddContractManageDialog.vue       |  168 ++
 src/views/sales/generatePlan/index.vue                           |   32 
 src/api/service/orderManage.js                                   |    0 
 src/views/sales/quotation/index.vue                              |   44 
 38 files changed, 1,959 insertions(+), 1,161 deletions(-)

diff --git a/src/api/serviceManage/orderManage.js b/src/api/service/orderManage.js
similarity index 100%
rename from src/api/serviceManage/orderManage.js
rename to src/api/service/orderManage.js
diff --git a/src/api/serviceManage/serviceContract.js b/src/api/service/serviceContract.js
similarity index 100%
rename from src/api/serviceManage/serviceContract.js
rename to src/api/service/serviceContract.js
diff --git a/src/api/serviceManage/serviceFeeManage.js b/src/api/service/serviceFeeManage.js
similarity index 100%
rename from src/api/serviceManage/serviceFeeManage.js
rename to src/api/service/serviceFeeManage.js
diff --git a/src/api/serviceManage/serviceFollowup.js b/src/api/service/serviceFollowup.js
similarity index 100%
rename from src/api/serviceManage/serviceFollowup.js
rename to src/api/service/serviceFollowup.js
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index c8ce837..ad95fc2 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -30,7 +30,7 @@
               :prop="'tableData.' + scope.$index + '.' + item.prop"
               :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
             >
-              <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input>
+              <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini" disabled></el-input>
             </el-form-item>
             <el-form-item
               v-else-if="item.date"
@@ -39,7 +39,7 @@
               :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
             >
               <!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> -->
-              <el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px">
+              <el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px" disabled>
               </el-date-picker>
             </el-form-item>
             <span v-else>{{ scope.row[item.prop] }}</span>
@@ -48,10 +48,10 @@
       </el-table>
     </el-form>
     <div style="margin: 10px">
-      <el-button size="small" type="primary">鏂板</el-button>
-      <el-button size="small" type="primary">瀵煎叆鏄庣粏</el-button>
-      <el-button size="small" type="primary">娓呯┖</el-button>
-      <el-button size="small" type="primary">閲嶇畻</el-button>
+      <el-button size="small" type="primary" disabled>鏂板</el-button>
+      <el-button size="small" type="primary" disabled>瀵煎叆鏄庣粏</el-button>
+      <el-button size="small" type="primary" disabled>娓呯┖</el-button>
+      <el-button size="small" type="primary" disabled>閲嶇畻</el-button>
     </div>
     <div v-if="showSummary.total || showSummary.refundable" style="height: 42px; line-height: 42px">
       <el-row :gutter="10">
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index d002647..8946328 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -28,6 +28,7 @@
         <template slot-scope="scope">
           <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
           <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
+          <span v-else-if="item.isTime">{{ dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) }}</span>
           <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
         </template>
       </el-table-column>
@@ -123,7 +124,7 @@
             sums[index + 1]
           }
         })
-        console.log(sums)
+        // console.log(sums)
         return sums
       }
     },
@@ -154,6 +155,27 @@
         s[1] = s[1].substring(0, prec) //灏忔暟鐐逛綅鏁拌秴鍑洪暱搴︽椂鎴彇鍓嶉潰鐨勪綅鏁�
       }
       return s.join(dec)
+    },
+    // 鏃堕棿鏄剧ず
+    dateFormat(fmt, date) {
+      let ret = ""
+      date = new Date(date)
+      const opt = {
+        "Y+": date.getFullYear().toString(), // 骞�
+        "m+": (date.getMonth() + 1).toString(), // 鏈�
+        "d+": date.getDate().toString(), // 鏃�
+        "H+": date.getHours().toString(), // 鏃�
+        "M+": date.getMinutes().toString(), // 鍒�
+        "S+": date.getSeconds().toString() // 绉�
+        // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
+      }
+      for (let k in opt) {
+        ret = new RegExp("(" + k + ")").exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"))
+        }
+      }
+      return fmt
     }
   }
 }
diff --git a/src/views/client/client/AddClientManageDialog.vue b/src/views/client/client/AddClientManageDialog.vue
index 53bb234..fbc806d 100644
--- a/src/views/client/client/AddClientManageDialog.vue
+++ b/src/views/client/client/AddClientManageDialog.vue
@@ -126,7 +126,11 @@
               </el-col> -->
               <el-col :span="12">
                 <el-form-item label="涓嬫鍥炶鏃ユ湡" prop="next_visit_time">
-                  <el-date-picker v-model="editConfig.infomation.next_visit_time" type="date" placeholder="閫夋嫨鏃ユ湡">
+                  <el-date-picker
+                    v-model="editConfig.infomation.next_visit_time"
+                    type="datetime"
+                    placeholder="閫夋嫨鏃ユ湡"
+                  >
                   </el-date-picker>
                 </el-form-item>
               </el-col>
@@ -134,7 +138,7 @@
                 <el-form-item label="鏈�鏅氭湇鍔″埌鏈熸棩" prop="latest_service_time">
                   <el-date-picker
                     v-model="editConfig.infomation.latest_service_time"
-                    type="date"
+                    type="datetime"
                     placeholder="閫夋嫨鏃ユ湡"
                   >
                   </el-date-picker>
@@ -157,8 +161,8 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鑱旂郴浜鸿亴鍔�" prop="contact_duties">
-                  <el-input v-model="editConfig.infomation.contact_duties"></el-input>
+                <el-form-item label="鑱旂郴浜鸿亴鍔�" prop="position">
+                  <el-input v-model="editConfig.infomation.position"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -474,7 +478,6 @@
 
 <script>
 import { getAllData, getAddClient, getUpdateClient } from "@/api/client/client"
-import { dateFormat } from "@/common/config/index"
 export default {
   name: "AddClientManageDialog",
   props: {
@@ -484,36 +487,7 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            name: "",
-            number: "AC6521",
-            client_status_id: "",
-            member_id: "5",
-            client_type_id: "",
-            clientSource: "",
-            client_level_id: "",
-            service_member_id: "",
-            next_visit_time: "",
-            latest_service_time: "",
-            contact_name: "",
-            contact_phone: "",
-            contact_duties: "",
-            contact_wechat: "1",
-            contact_email: "",
-            industry_id: "",
-            representative: "",
-            registration_time: "",
-            registered_capital_id: "",
-            enterprise_nature_id: "",
-            enterprise_scale_id: "",
-            business_scope: "",
-            country_id: "",
-            province_id: "",
-            city_id: "",
-            region_id: "",
-            detail_address: "",
-            remark: ""
-          }
+          infomation: {}
         }
       }
     }
@@ -637,18 +611,18 @@
         client_status_id: data.client_status_id || 0,
         client_type_id: data.client_type_id || 0,
         contact: {
-          birthday: "1970-01-01 08:00:00",
+          birthday: "",
           city_id: 0,
           client_id: 0,
           country_id: 0,
-          desc: "string",
+          desc: "",
           email: data.contact_email || "",
-          is_first: true,
+          is_first: false,
           member_id: 0,
           name: data.contact_name || "",
-          number: "string",
+          number: "",
           phone: data.contact_phone || "",
-          position: data.contact_duties || "",
+          position: data.position || "",
           province_id: 0,
           region_id: 0,
           wechat: data.contact_wechat || ""
@@ -658,7 +632,7 @@
         enterprise_nature_id: data.enterprise_nature_id || 0,
         enterprise_scale_id: data.enterprise_scale_id || 0,
         industry_id: data.industry_id || 0,
-        latest_service_time: dateFormat("YYYY-mm-dd HH:MM:ss", data.latest_service_time) || "",
+        latest_service_time: data.latest_service_time || "",
         member_id: parseInt(data.member_id) || 0,
         name: data.name || "",
         next_visit_time: data.next_visit_time || "",
diff --git a/src/views/client/client/index.vue b/src/views/client/client/index.vue
index bb3fb91..dc643b4 100644
--- a/src/views/client/client/index.vue
+++ b/src/views/client/client/index.vue
@@ -48,7 +48,7 @@
 <script>
 import AddClientManageDialog from "@/views/client/client/AddClientManageDialog.vue"
 import { getClientList } from "@/api/client/client"
-import { dateFormat } from "@/common/config/index"
+
 export default {
   name: "CustomManage",
   props: {},
@@ -105,7 +105,7 @@
           { label: "瀹㈡埛鍚嶇О", prop: "name", min: 100 }, // 瀹㈡埛鍚嶇О
           { label: "閿�鍞礋璐d汉", prop: "member_id" }, // 閿�鍞礋璐d汉
           { label: "閲嶈绾у埆", prop: "client_level_id" }, // 閲嶈绾у埆
-          { label: "涓嬫鍥炶鏃ユ湡", prop: "next_visit_time", min: 90 }, // 涓嬫鍥炶鏃ユ湡
+          { label: "涓嬫鍥炶鏃ユ湡", prop: "next_visit_time", isTime: true, min: 90 }, // 涓嬫鍥炶鏃ユ湡
           { label: "璇︾粏鍦板潃", prop: "detail_address", min: 200 }, // 璇︾粏鍦板潃
           { label: "瀹㈡埛鐘舵��", prop: "client_status_id" }, // 瀹㈡埛鐘舵��
           { label: "鑱旂郴浜哄鍚�", prop: "contact_name" }, // 鑱旂郴浜哄鍚�
@@ -140,7 +140,6 @@
 
                 return {
                   ...item,
-                  next_visit_time: dateFormat("YYYY-mm-dd HH:MM:ss", item.next_visit_time),
                   contact_name: contact_name,
                   contact_phone: contact_phone
                 }
diff --git a/src/views/client/contacts/AddContactsDialog.vue b/src/views/client/contacts/AddContactsDialog.vue
index 031c837..8e1b95d 100644
--- a/src/views/client/contacts/AddContactsDialog.vue
+++ b/src/views/client/contacts/AddContactsDialog.vue
@@ -162,12 +162,12 @@
           <div v-if="isUnflod" class="basic-info-view">
             <el-row>
               <el-col :span="24">
-                <el-form-item label="澶囨敞" prop="notes">
+                <el-form-item label="澶囨敞" prop="desc">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2, maxRows: 4 }"
                     placeholder="璇疯緭鍏ュ唴瀹�"
-                    v-model="editConfig.infomation.notes"
+                    v-model="editConfig.infomation.desc"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -230,7 +230,7 @@
           title: "鏂板缓",
           infomation: {
             name: "",
-            number: "LEA50",
+            number: "",
             client_id: "",
             phone: "",
             position: "",
@@ -245,7 +245,7 @@
             city_id: "",
             region_id: "",
             postalCode: "",
-            notes: ""
+            desc: ""
           }
         }
       }
@@ -351,6 +351,7 @@
     saveParams() {
       let data = this.editConfig.infomation
       let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
         birthday: data.birthday || "",
         city_id: data.city_id || 0,
         client_id: 0,
diff --git a/src/views/client/contacts/index.vue b/src/views/client/contacts/index.vue
index 00d264c..bf3e1e8 100644
--- a/src/views/client/contacts/index.vue
+++ b/src/views/client/contacts/index.vue
@@ -118,21 +118,23 @@
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
       this.editConfig.infomation = {
-        customName: "",
-        contactNumber: "LEA50",
-        contactName: "",
-        contactDuties: "",
-        phoneNumber: "",
-        businessStatus: "鏂板缓",
-        businessSource: "1",
-        owner: "",
+        name: "",
+        number: "",
+        client_id: "",
+        phone: "",
         position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        address: ""
+        member_id: "",
+        is_first: false,
+        wechat: "",
+        birthday: "",
+        email: "",
+        nextFollowupDate: "",
+        country_id: "",
+        province_id: "",
+        city_id: "",
+        region_id: "",
+        postalCode: "",
+        desc: ""
       }
     },
     // 缂栬緫
@@ -141,21 +143,22 @@
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
       this.editConfig.infomation = {
-        customName: row.customName,
-        saleLeadNumber: row.saleLeadNumber,
-        contactName: row.contactName,
-        contactDuties: row.contactDuties,
-        phoneNumber: row.phoneNumber,
-        businessStatus: "鏂板缓",
-        businessSource: row.businessSource,
-        owner: row.owner,
-        position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        address: ""
+        id: row.id,
+        birthday: row.birthday,
+        city_id: row.city_id,
+        client_id: 0,
+        country_id: row.country_id,
+        desc: row.desc,
+        email: row.email,
+        is_first: row.is_first || false,
+        member_id: row.member_id,
+        name: row.name,
+        number: row.number,
+        phone: row.phone,
+        position: row.position,
+        province_id: row.province_id,
+        region_id: row.region_id,
+        wechat: row.wechat
       }
     }
   }
diff --git a/src/views/client/followupRecords/AddFollowupRecordsDialog.vue b/src/views/client/followupRecords/AddFollowupRecordsDialog.vue
index 5bcefd8..3828cfd 100644
--- a/src/views/client/followupRecords/AddFollowupRecordsDialog.vue
+++ b/src/views/client/followupRecords/AddFollowupRecordsDialog.vue
@@ -21,9 +21,9 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="client_id">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.client_id"></el-input>
+                    <el-input v-model="editConfig.infomation.client_name"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit-outline"></i></div>
                   </div>
@@ -198,7 +198,7 @@
           visible: false,
           title: "鏂板缓",
           infomation: {
-            client_id: "",
+            client_name: "",
             number: "",
             client_status_id: "",
             contact_id: "",
@@ -230,7 +230,8 @@
       rules: {
         number: [{ required: true, message: "璇疯緭鍏ヨ窡杩涜褰曠紪鍙�", trigger: "blur" }],
         member_id: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }],
-        record: [{ required: true, message: "璇疯緭鍏ヨ窡杩涜褰�", trigger: "blur" }]
+        record: [{ required: true, message: "璇疯緭鍏ヨ窡杩涜褰�", trigger: "blur" }],
+        content: [{ required: true, message: "璇疯緭鍏ュ唴瀹�", trigger: "blur" }]
       },
       clientStatusOptions: [], // 瀹㈡埛鐘舵��
       memberOptions: [],
@@ -304,12 +305,11 @@
     },
     saveParams() {
       let data = this.editConfig.infomation
-      let params = {
-        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+      let follow_record = {
         follow_record: {
           client_id: data.client_id || 0,
           client_status_id: data.client_status_id || 0,
-          contact_id: data.contact_id || 0,
+          contact_id: 0, // data.contact_id ||
           contact_information_id: data.contact_information_id || 0,
           content: data.content || "",
           follow_time: data.follow_time || "",
@@ -318,11 +318,17 @@
           number: data.number || "",
           purpose: data.purpose || "",
           record: data.record || "",
-          sale_chance_id: data.sale_chance_id || 0,
-          sales_leads_id: data.sales_leads_id || 0,
+          sale_chance_id: 0, //data.sale_chance_id ||
+          sales_leads_id: 0, // data.sales_leads_id ||
           topic: data.topic || ""
         }
       }
+      let params = {}
+      if (this.editConfig.title === "鏂板缓") {
+        params = { ...follow_record }
+      } else {
+        params = { ...follow_record, id: data.id || 0 }
+      }
       return params
     },
     // 娣诲姞闄勪欢
diff --git a/src/views/client/followupRecords/index.vue b/src/views/client/followupRecords/index.vue
index 264d9e0..6d2d7b0 100644
--- a/src/views/client/followupRecords/index.vue
+++ b/src/views/client/followupRecords/index.vue
@@ -22,7 +22,6 @@
 <script>
 import AddFollowupRecordsDialog from "@/views/client/followupRecords/AddFollowupRecordsDialog"
 import { getFollowRecordList } from "@/api/client/followupRecords.js"
-import { dateFormat } from "@/common/config/index"
 
 export default {
   name: "FollowupRecords",
@@ -105,9 +104,7 @@
                   client_name: item.client.name,
                   contact_name: item.contact.name,
                   client_status_id: item.client.client_status_id,
-                  phone: item.contact.phone,
-                  follow_time: dateFormat("YYYY-mm-dd HH:MM", item.follow_time),
-                  next_follow_time: dateFormat("YYYY-mm-dd HH:MM", item.next_follow_time)
+                  phone: item.contact.phone
                 }
               })
               this.tableList.tableInfomation = list || []
@@ -153,6 +150,7 @@
       this.editConfig.title = "缂栬緫"
       this.editConfig.infomation = {
         id: row.id,
+        client_name: row.client_name,
         client_id: row.client_id,
         number: row.number,
         client_status_id: row.client_status_id,
diff --git a/src/views/sales/contractManage/AddContractManageDialog.vue b/src/views/sales/contractManage/AddContractManageDialog.vue
index 0e6bdb0..a1e40fc 100644
--- a/src/views/sales/contractManage/AddContractManageDialog.vue
+++ b/src/views/sales/contractManage/AddContractManageDialog.vue
@@ -21,39 +21,52 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="client_id">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍗曟嵁缂栧彿" prop="documentNumber">
-                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
+                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="璐熻矗浜�" prop="owner">
-                  <el-select v-model="editConfig.infomation.owner" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
-                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
+                <el-form-item label="璐熻矗浜�" prop="member_id">
+                  <el-select
+                    v-model="editConfig.infomation.member_id"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍚堝悓鐘舵��" prop="contractStatus">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.contractStatus"
-                    :common-options="contractStatusOptions"
-                  />
+                <el-form-item label="鍚堝悓鐘舵��" prop="status_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.status_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞姤浠峰崟" prop="salesQuotation">
+                <el-form-item label="閿�鍞姤浠峰崟" prop="quotation_id">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.salesQuotation"></el-input>
+                    <el-input v-model="editConfig.infomation.quotation_id"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
@@ -95,7 +108,7 @@
             <div v-else><i class="el-icon-arrow-down"></i></div>
           </div>
           <!-- 閫夋嫨瀹℃壒娴佺▼ -->
-          <div class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
+          <!-- <div class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
           <div class="basic-info-view">
             <el-row>
               <el-col :span="20">
@@ -132,11 +145,11 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button>
+        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button> -->
         <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
         <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>
@@ -145,7 +158,8 @@
 </template>
 
 <script>
-import CommonSelectView from "@/components/makepager/CommonSelectView"
+import { getAllData } from "@/api/client/client"
+import { getAddContract, getUpdateContract } from "@/api/sales/contractManage"
 export default {
   name: "AddContractManageDialog",
   props: {
@@ -155,42 +169,23 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            documentNumber: "TKD20230521-12",
-            owner: "",
-            contractStatus: "",
-            salesQuotation: "",
-            approvalWorkflow: "",
-            approvalSteps: "",
-            approvalPerson: "",
-            approvalOpinion: ""
-          }
+          infomation: {}
         }
       }
     }
   },
-  components: { CommonSelectView },
+  components: {},
   computed: {},
   data() {
     return {
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        documentNumber: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        owner: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        member_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
       },
-      ownerOptions: [
-        // 璐熻矗浜�
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
-      contractStatusOptions: [
+      memberOptions: [],
+      statusOptions: [
         { value: "1", label: "寰呭鎵�" },
         { value: "2", label: "瀹℃壒涓�" },
         { value: "3", label: "宸插鎵�" },
@@ -201,8 +196,78 @@
       isUnflod: true
     }
   },
-  created() {},
+  created() {
+    this.getCommonData()
+  },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddContract(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateContract(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        client_id: data.client_id || 0,
+        file: data.file || "",
+        member_id: data.member_id || 0,
+        number: data.number || "",
+        quotation_id: data.quotation_id || 0,
+        status_id: data.status_id || 0
+      }
+      return params
+    },
     handleClose() {
       this.editConfig.visible = false
     },
@@ -247,10 +312,17 @@
           font-size: 18px;
         }
       }
-    }
-    .address-view {
-      margin-top: 10px;
-      padding-right: 40px;
+      .common-select {
+        display: flex;
+        .common-select-sel {
+          width: 270px;
+        }
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 16px;
+          cursor: pointer;
+        }
+      }
     }
     .annex-view {
       display: flex;
diff --git a/src/views/sales/contractManage/index.vue b/src/views/sales/contractManage/index.vue
index f6c722c..f3e7225 100644
--- a/src/views/sales/contractManage/index.vue
+++ b/src/views/sales/contractManage/index.vue
@@ -31,6 +31,7 @@
 
 <script>
 import AddContractManageDialog from "@/views/sales/contractManage/AddContractManageDialog"
+import { getContractList } from "@/api/sales/contractManage"
 
 export default {
   name: "ContractManage",
@@ -74,22 +75,15 @@
   },
   created() {
     this.setTable()
+    this.getData()
   },
   methods: {
     setTable() {
       this.tableList = {
-        tableInfomation: [
-          {
-            documentNumber: "ZDYB02-2",
-            owner: "绯荤粺绠$悊鍛�",
-            approvalStatus: "瀹℃壒涓�",
-            creator: "绯荤粺绠$悊鍛�",
-            createTime: "2023-0703 11:22:12"
-          }
-        ],
+        tableInfomation: [],
         tableColumn: [
-          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 },
-          { label: "璐熻矗浜�", prop: "owner", min: 90 },
+          { label: "鍗曟嵁缂栧彿", prop: "number", min: 120 },
+          { label: "璐熻矗浜�", prop: "memberId", min: 90 },
           { label: "瀹℃壒鐘舵��", prop: "approvalStatus" },
           { label: "鍒涘缓浜�", prop: "creator", min: 100 },
           { label: "鍒涘缓鏃堕棿", prop: "createTime" }
@@ -101,6 +95,34 @@
         this.searchOptions.push({ value: (i + 1).toString(), label: label })
       }
     },
+    // 璇锋眰鏁版嵁
+    async getData() {
+      this.loading = true
+      await getContractList()
+        .then((res) => {
+          console.log(res)
+          if (res.code === 200) {
+            if (res.data.list && res.data.list.length > 0) {
+              const list = res.data.list.map((item) => {
+                return {
+                  ...item
+                }
+              })
+              this.tableList.tableInfomation = list || []
+            } else {
+              this.tableList.tableInfomation = []
+            }
+          } else {
+            this.tableList.tableInfomation = []
+          }
+          this.loading = false
+        })
+        .catch((err) => {
+          console.log(err)
+          this.tableList.tableInfomation = []
+          this.loading = false
+        })
+    },
     // 鏂板缓
     addBtnClick() {
       this.editConfig.visible = true
diff --git a/src/views/sales/generatePlan/AddGeneratePlanDialog.vue b/src/views/sales/generatePlan/AddGeneratePlanDialog.vue
index 384ba59..341b67c 100644
--- a/src/views/sales/generatePlan/AddGeneratePlanDialog.vue
+++ b/src/views/sales/generatePlan/AddGeneratePlanDialog.vue
@@ -21,40 +21,45 @@
           <div class="basic-info-view">
             <el-row>
               <el-col v-if="isUnflod" :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="clientId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col v-if="isUnflod" :span="12">
-                <el-form-item label="鍗曟嵁缂栧彿" prop="documentNumber">
-                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
+                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col v-if="isUnflod" :span="12">
-                <el-form-item label="璐熻矗浜�" prop="owner">
-                  <el-select v-model="editConfig.infomation.owner" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
-                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
+                <el-form-item label="璐熻矗浜�" prop="memberId">
+                  <el-select
+                    v-model="editConfig.infomation.memberId"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞瓙鍗�" prop="subOrder">
+                <el-form-item label="閿�鍞瓙鍗�" prop="subOrderId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.subOrder"></el-input>
+                    <el-input v-model="editConfig.infomation.subOrderId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞槑缁嗗崟" prop="salesDetails">
+                <el-form-item label="閿�鍞槑缁嗗崟" prop="salesDetailsId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.salesDetails"></el-input>
+                    <el-input v-model="editConfig.infomation.salesDetailsId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
@@ -67,23 +72,23 @@
           <div class="address-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="璁″垝寮�濮嬫椂闂�" prop="planStartTime">
-                  <el-date-picker v-model="editConfig.infomation.planStartTime" type="datetime" default-time="12:00:00">
+                <el-form-item label="璁″垝寮�濮嬫椂闂�" prop="startTime">
+                  <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" default-time="12:00:00">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="璁″垝鎴鏃堕棿" prop="planDeadline">
-                  <el-date-picker v-model="editConfig.infomation.planDeadline" type="datetime" default-time="12:00:00">
+                <el-form-item label="璁″垝鎴鏃堕棿" prop="endTime">
+                  <el-date-picker v-model="editConfig.infomation.endTime" type="datetime" default-time="12:00:00">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="24">
-                <el-form-item label="璁″垝鍐呭" prop="refundReason">
+                <el-form-item label="璁″垝鍐呭" prop="content">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.refundReason"
+                    v-model="editConfig.infomation.content"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -133,6 +138,8 @@
 </template>
 
 <script>
+import { getAllData } from "@/api/client/client"
+import { getAddPlan, getUpdatePlan } from "@/api/sales/generatePlan"
 export default {
   name: "AddGeneratePlanDialog",
   props: {
@@ -142,15 +149,7 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            documentNumber: "",
-            owner: "",
-            subOrder: "",
-            salesDetails: "",
-            planStartTime: "",
-            planDeadline: ""
-          }
+          infomation: {}
         }
       }
     }
@@ -162,25 +161,91 @@
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        documentNumber: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        owner: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        memberId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
       },
-      ownerOptions: [
-        // 璐熻矗浜�
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
+      memberOptions: [],
       unflodCollapseStr: "鏀惰捣",
       isUnflod: true
     }
   },
-  created() {},
+  created() {
+    this.getCommonData()
+  },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddPlan(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdatePlan(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        plan: {
+          clientId: data.clientId || 0,
+          content: data.content || "",
+          endTime: data.endTime || "",
+          file: data.file || "",
+          memberId: data.memberId || 0,
+          number: data.number || "",
+          salesDetailsId: data.salesDetailsId || 0,
+          startTime: data.startTime || "",
+          subOrderId: data.subOrderId || 0
+        }
+      }
+      return params
+    },
     handleClose() {
       this.editConfig.visible = false
     },
diff --git a/src/views/sales/generatePlan/index.vue b/src/views/sales/generatePlan/index.vue
index 31df8fb..9a4d88c 100644
--- a/src/views/sales/generatePlan/index.vue
+++ b/src/views/sales/generatePlan/index.vue
@@ -72,8 +72,8 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 },
-          { label: "璐熻矗浜�", prop: "owner", min: 90 },
+          { label: "鍗曟嵁缂栧彿", prop: "number", min: 120 },
+          { label: "璐熻矗浜�", prop: "memberId", min: 90 },
           { label: "瀹℃壒鐘舵��", prop: "approvalStatus" },
           { label: "鍒涘缓浜�", prop: "creator", min: 100 },
           { label: "鍒涘缓鏃堕棿", prop: "createTime" }
@@ -117,38 +117,14 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {
-        customName: "",
-        documentNumber: "ZDYBD04-12",
-        owner: "",
-        subOrder: "",
-        salesDetails: "",
-        planStartTime: "",
-        planDeadline: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = {}
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = {
-        customName: "",
-        documentNumber: "",
-        owner: "",
-        subOrder: "",
-        salesDetails: "",
-        planStartTime: "",
-        planDeadline: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = { ...row }
     }
   }
 }
diff --git a/src/views/sales/masterOrder/AddMasterOrderDialog.vue b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
index b9a6702..cbb0e6a 100644
--- a/src/views/sales/masterOrder/AddMasterOrderDialog.vue
+++ b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
@@ -21,48 +21,53 @@
           <div class="basic-info-view">
             <el-row>
               <el-col v-if="isUnflod" :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="client_id">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col v-if="isUnflod" :span="12">
-                <el-form-item label="鍗曟嵁缂栧彿" prop="documentNumber">
-                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
+                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col v-if="isUnflod" :span="12">
-                <el-form-item label="璐熻矗浜�" prop="owner">
-                  <el-select v-model="editConfig.infomation.owner" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
-                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
+                <el-form-item label="璐熻矗浜�" prop="member_id">
+                  <el-select
+                    v-model="editConfig.infomation.member_id"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鏈嶅姟寮�濮嬫椂闂�" prop="serviceStartTime">
-                  <el-date-picker v-model="editConfig.infomation.serviceStartTime" type="date" placeholder="閫夋嫨鏃ユ湡">
+                <el-form-item label="鏈嶅姟寮�濮嬫椂闂�" prop="start_time">
+                  <el-date-picker v-model="editConfig.infomation.start_time" type="date" placeholder="閫夋嫨鏃ユ湡">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鏈嶅姟鎴鏃堕棿" prop="serviceDeadline">
-                  <el-date-picker v-model="editConfig.infomation.serviceDeadline" type="date" placeholder="閫夋嫨鏃ユ湡">
+                <el-form-item label="鏈嶅姟鎴鏃堕棿" prop="end_time">
+                  <el-date-picker v-model="editConfig.infomation.end_time" type="date" placeholder="閫夋嫨鏃ユ湡">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍚堝悓閲戦" prop="contractAmount">
-                  <el-input v-model="editConfig.infomation.contractAmount"></el-input>
+                <el-form-item label="鍚堝悓閲戦" prop="money">
+                  <el-input v-model="editConfig.infomation.money"></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
           </div>
           <!-- 闄勪欢淇℃伅 -->
-          <div v-if="isUnflod" class="basic-info-title">闄勪欢淇℃伅</div>
+          <!-- <div v-if="isUnflod" class="basic-info-title">闄勪欢淇℃伅</div>
           <div v-if="isUnflod" class="basic-info-view">
             <el-row>
               <el-col :span="12">
@@ -87,17 +92,17 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
         </div>
         <!-- 灞曞紑鏀惰捣 -->
-        <div v-if="editConfig.title === '鏂板缓'" class="unflod-collapse" @click="unflodCollapseClick">
+        <!-- <div v-if="editConfig.title === '鏂板缓'" class="unflod-collapse" @click="unflodCollapseClick">
           <div>{{ unflodCollapseStr }}</div>
           <div v-if="isUnflod"><i class="el-icon-arrow-up"></i></div>
           <div v-else><i class="el-icon-arrow-down"></i></div>
-        </div>
+        </div> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
+        <el-button type="primary" size="small" @click="saveClick('form')">淇濆瓨</el-button>
         <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>
     </el-dialog>
@@ -105,6 +110,8 @@
 </template>
 
 <script>
+import { getAllData } from "@/api/client/client"
+import { getAddMasterOrder, getUpdateMasterOrder } from "@/api/sales/masterOrder"
 export default {
   name: "QuotationDialog",
   props: {
@@ -114,14 +121,7 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            documentNumber: "AC6521",
-            owner: "",
-            serviceStartTime: "",
-            serviceDeadline: "",
-            contractAmount: ""
-          }
+          infomation: {}
         }
       }
     }
@@ -133,25 +133,86 @@
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        documentNumber: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        owner: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        member_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
       },
-      ownerOptions: [
-        // 璐熻矗浜�
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
+      memberOptions: [],
       unflodCollapseStr: "鏀惰捣",
       isUnflod: true
     }
   },
-  created() {},
+  created() {
+    this.getCommonData()
+  },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddMasterOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateMasterOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        client_id: data.client_id || 0,
+        end_time: data.end_time || "",
+        member_id: data.member_id || 0,
+        money: data.money || "",
+        number: data.number || "",
+        start_time: data.start_time || ""
+      }
+      return params
+    },
     handleClose() {
       this.editConfig.visible = false
     },
diff --git a/src/views/sales/masterOrder/index.vue b/src/views/sales/masterOrder/index.vue
index ec9bdd3..3a1e960 100644
--- a/src/views/sales/masterOrder/index.vue
+++ b/src/views/sales/masterOrder/index.vue
@@ -59,7 +59,7 @@
       },
       showSummary: {
         show: true,
-        sumProp: ["contractAmount"],
+        sumProp: ["money"],
         mergeNumber: 5
       }
     }
@@ -73,13 +73,13 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 }, // 鍗曟嵁缂栧彿
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫椂闂�", prop: "serviceStartTime", min: 90 }, // 鏈嶅姟寮�濮嬫椂闂�
-          { label: "鏈嶅姟鎴鏃堕棿", prop: "serviceDeadline" }, // 鏈嶅姟鎴鏃堕棿
-          { label: "鍚堝悓閲戦", prop: "contractAmount", min: 100 }, // 鍚堝悓閲戦
-          { label: "璐熻矗浜�", prop: "owner" }, // 璐熻矗浜�
-          { label: "瀹℃壒鐘舵��", prop: "approvalStatus" } // 瀹℃壒鐘舵��
+          { label: "鍗曟嵁缂栧彿", prop: "number", min: 100 }, // 鍗曟嵁缂栧彿
+          { label: "瀹㈡埛鍚嶇О", prop: "client_id", min: 120 }, // 瀹㈡埛鍚嶇О
+          { label: "鏈嶅姟寮�濮嬫椂闂�", prop: "start_time", min: 90 }, // 鏈嶅姟寮�濮嬫椂闂�
+          { label: "鏈嶅姟鎴鏃堕棿", prop: "end_time" }, // 鏈嶅姟鎴鏃堕棿
+          { label: "鍚堝悓閲戦", prop: "money" }, // 鍚堝悓閲戦
+          { label: "璐熻矗浜�", prop: "member_id" } // 璐熻矗浜�
+          // { label: "瀹℃壒鐘舵��", prop: "approvalStatus" } // 瀹℃壒鐘舵��
         ]
       }
       this.searchOptions = []
@@ -120,28 +120,14 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {
-        customName: "",
-        documentNumber: "AC6521",
-        owner: "",
-        serviceStartTime: "",
-        serviceDeadline: "",
-        contractAmount: ""
-      }
+      this.editConfig.infomation = {}
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = {
-        customName: "",
-        documentNumber: "AC6521",
-        owner: "",
-        serviceStartTime: "",
-        serviceDeadline: "",
-        contractAmount: ""
-      }
+      this.editConfig.infomation = { ...row }
     }
   }
 }
diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue
index 156e70b..2316083 100644
--- a/src/views/sales/quotation/AddQuotationDialog.vue
+++ b/src/views/sales/quotation/AddQuotationDialog.vue
@@ -22,64 +22,73 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="client_id">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鎶ヤ环缂栧彿" prop="quotationNo">
-                  <el-input v-model="editConfig.infomation.quotationNo"></el-input>
+                <el-form-item label="鎶ヤ环缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鎶ヤ环鍗曠姸鎬�" prop="quotationStatus">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.quotationStatus"
-                    :common-options="quotationStatusOptions"
-                  />
+                <el-form-item label="鎶ヤ环鍗曠姸鎬�" prop="quotation_status_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.quotation_status_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option
+                        v-for="item in quotationStatusOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id"
+                      >
+                      </el-option>
+                    </el-select>
+                    <!-- @click="editDropdownBox" -->
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鏈夋晥鏈熻嚦" prop="validTo">
-                  <el-date-picker v-model="editConfig.infomation.validTo" type="date" placeholder="閫夋嫨鏃ユ湡">
+                <el-form-item label="鏈夋晥鏈熻嚦" prop="validity_date">
+                  <el-date-picker v-model="editConfig.infomation.validity_date" type="date" placeholder="閫夋嫨鏃ユ湡">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鑱旂郴浜哄鍚�" prop="contactName">
+                <el-form-item label="鑱旂郴浜哄鍚�" prop="contact_id">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.contactName"></el-input>
+                    <el-input v-model="editConfig.infomation.contact_id"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞礋璐d汉" prop="salesHead">
+                <el-form-item label="閿�鍞礋璐d汉" prop="member_id">
                   <el-select
-                    v-model="editConfig.infomation.salesHead"
+                    v-model="editConfig.infomation.member_id"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 63%"
                   >
-                    <el-option
-                      v-for="item in salesHeadOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞満浼�" prop="salesOpportunity">
+                <el-form-item label="閿�鍞満浼�" prop="sale_chance_id">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.salesOpportunity"></el-input>
+                    <el-input v-model="editConfig.infomation.sale_chance_id"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
@@ -89,21 +98,21 @@
           </div>
           <!-- 鏉℃涓庢潯浠� -->
           <div class="basic-info-title">鏉℃涓庢潯浠�</div>
-          <div class="address-view">
+          <div class="basic-info-view">
             <el-row>
               <el-col :span="24">
-                <el-form-item label="鏉℃涓庢潯浠�" prop="termsTreaty">
+                <el-form-item label="鏉℃涓庢潯浠�" prop="conditions">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 4 }"
-                    v-model="editConfig.infomation.termsTreaty"
+                    v-model="editConfig.infomation.conditions"
                   ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
           </div>
           <!-- 闄勪欢淇℃伅 -->
-          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <!-- <div class="basic-info-title">闄勪欢淇℃伅</div>
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
@@ -128,9 +137,9 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
           <!-- 浜у搧绠$悊 -->
-          <div class="basic-info-title" style="display: flex">
+          <!-- <div class="basic-info-title" style="display: flex">
             浜у搧绠$悊
             <div style="margin-left: 400px">
               甯佺
@@ -142,9 +151,9 @@
           </div>
           <div class="product-view">
             <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" />
-          </div>
+          </div> -->
           <!-- 閫夋嫨瀹℃壒娴佺▼ -->
-          <div class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
+          <!-- <div class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
           <div class="basic-info-view">
             <el-row>
               <el-col :span="20">
@@ -181,13 +190,13 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
         </div>
       </el-form>
 
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button>
-        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
+        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button> -->
+        <el-button type="primary" size="small" @click="saveClick('form')">淇濆瓨</el-button>
         <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>
     </el-dialog>
@@ -195,8 +204,10 @@
 </template>
 
 <script>
-import CommonSelectView from "@/components/makepager/CommonSelectView"
-import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+// import CommonSelectView from "@/components/makepager/CommonSelectView"
+// import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import { getAllData } from "@/api/client/client"
+import { getAddQuotation, getUpdateQuotation } from "@/api/sales/quotation"
 export default {
   name: "QuotationDialog",
   props: {
@@ -206,25 +217,12 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            quotationNo: "AC6521",
-            quotationStatus: "",
-            validTo: "",
-            contactName: "",
-            salesHead: "",
-            salesOpportunity: "",
-            termsTreaty: "",
-            approvalWorkflow: "",
-            approvalSteps: "",
-            approvalPerson: "",
-            approvalOpinion: ""
-          }
+          infomation: {}
         }
       }
     }
   },
-  components: { CommonSelectView, CommonFormTableView },
+  // components: { CommonSelectView, CommonFormTableView },
   computed: {
     searchCommonHeight() {
       return this.$refs.searchCommonView.offsetHeight
@@ -235,22 +233,13 @@
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        customName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        quotationNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        quotationStatus: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        salesHead: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }]
+        client_id: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        quotation_status_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        member_id: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }]
       },
-      salesHeadOptions: [
-        // 閿�鍞礋璐d汉
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
-      quotationStatusOptions: [], // 鎶ヤ环鍗曠姸鎬�
+      memberOptions: [],
+      quotationStatusOptions: [{ id: 1, name: "涓嶇煡閬�" }], // 鎶ヤ环鍗曠姸鎬�
       currencyOptions: [
         { value: "1", label: "浜烘皯甯�(楼)" },
         { value: "2", label: "鑻遍晳(拢)" },
@@ -268,8 +257,81 @@
   },
   created() {
     this.setTableForm()
+    this.getCommonData()
   },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          // 缂� 甯佺 鎶ヤ环鍗曠姸鎬�
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddQuotation(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateQuotation(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        client_id: parseInt(data.client_id) || 0,
+        conditions: data.conditions || "",
+        contact_id: data.contact_id || 0,
+        file: data.file || "",
+        member_id: data.member_id || 0,
+        number: data.number || "",
+        quotation_status_id: data.quotation_status_id || 0,
+        sale_chance_id: data.sale_chance_id || 0,
+        validity_date: data.validity_date || ""
+      }
+      return params
+    },
     handleClose() {
       this.editConfig.visible = false
     },
@@ -336,10 +398,17 @@
           font-size: 18px;
         }
       }
-    }
-    .address-view {
-      margin-top: 10px;
-      padding-right: 40px;
+      .common-select {
+        display: flex;
+        .common-select-sel {
+          width: 270px;
+        }
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 16px;
+          cursor: pointer;
+        }
+      }
     }
     .annex-view {
       display: flex;
diff --git a/src/views/sales/quotation/index.vue b/src/views/sales/quotation/index.vue
index 7d144a3..eb67ab2 100644
--- a/src/views/sales/quotation/index.vue
+++ b/src/views/sales/quotation/index.vue
@@ -75,11 +75,11 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "鎶ヤ环鍗曞彿", prop: "quotationNo", min: 90 }, // 鎶ヤ环鍗曞彿
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "鑱旂郴浜哄鍚�", prop: "contactName", min: 90 }, // 鑱旂郴浜哄鍚�
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
+          { label: "鎶ヤ环鍗曞彿", prop: "number", min: 90 }, // 鎶ヤ环鍗曞彿
+          { label: "瀹㈡埛鍚嶇О", prop: "client_name", min: 120 }, // 瀹㈡埛鍚嶇О
+          { label: "鑱旂郴浜哄鍚�", prop: "contact_name", min: 90 }, // 鑱旂郴浜哄鍚�
+          { label: "閿�鍞礋璐d汉", prop: "member_id" }, // 閿�鍞礋璐d汉
+          { label: "鏈夋晥鏈�", prop: "validity_date", min: 100 }, // 淇敼鏃堕棿
           { label: "灏忚", prop: "subTotal" }, // 灏忚
           { label: "鍚堣", prop: "total" }, // 鍚堣
           { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
@@ -103,7 +103,9 @@
             if (res.data.list && res.data.list.length > 0) {
               const list = res.data.list.map((item) => {
                 return {
-                  ...item
+                  ...item,
+                  client_name: item.client.name,
+                  contact_name: item.contact.name
                 }
               })
               this.tableList.tableInfomation = list || []
@@ -125,40 +127,14 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {
-        customName: "",
-        quotationNo: "AC6521",
-        quotationStatus: "",
-        validTo: "",
-        contactName: "",
-        salesHead: "",
-        salesOpportunity: "",
-        termsTreaty: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = {}
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = {
-        customName: "",
-        quotationNo: "AC6521",
-        quotationStatus: "",
-        validTo: "",
-        contactName: "",
-        salesHead: "",
-        salesOpportunity: "",
-        termsTreaty: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = { ...row }
     }
   }
 }
diff --git a/src/views/sales/refundForm/AddRefundFormDialog.vue b/src/views/sales/refundForm/AddRefundFormDialog.vue
index adfcbc7..f600c21 100644
--- a/src/views/sales/refundForm/AddRefundFormDialog.vue
+++ b/src/views/sales/refundForm/AddRefundFormDialog.vue
@@ -22,17 +22,17 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="clientId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閫�娆惧崟缂栧彿" prop="refundOrderNo">
-                  <el-input v-model="editConfig.infomation.refundOrderNo"></el-input>
+                <el-form-item label="閫�娆惧崟缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -49,19 +49,14 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞礋璐d汉" prop="salesHead">
+                <el-form-item label="閿�鍞礋璐d汉" prop="memberId">
                   <el-select
-                    v-model="editConfig.infomation.salesHead"
+                    v-model="editConfig.infomation.memberId"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 63%"
                   >
-                    <el-option
-                      v-for="item in salesHeadOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                   </el-select>
                 </el-form-item>
@@ -73,38 +68,65 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="浠樻鏂瑰紡" prop="paymentMethod">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.paymentMethod"
-                    :common-options="paymentMethodOptions"
-                  />
+                <el-form-item label="浠樻鏂瑰紡" prop="refundMethod">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.refundMethod"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in refundMethodOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="璐︽埛" prop="account">
-                  <CommonSelectView :common-value="editConfig.infomation.account" :common-options="accountOptions" />
+                <el-form-item label="璐︽埛" prop="accountId">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.accountId"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in accountOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鏄惁寮�绁�" prop="whetherInvoicing">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.whetherInvoicing"
-                    :common-options="whetherInvoicingOptions"
-                  />
+                <el-form-item label="鏄惁寮�绁�" prop="isInvoice">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.isInvoice"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in isInvoiceOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
             </el-row>
           </div>
-          <!-- 澶囨敞淇℃伅 -->
-          <div class="basic-info-title">澶囨敞淇℃伅</div>
-          <div class="address-view">
+          <!-- 閫�娆惧師鍥� -->
+          <div class="basic-info-title">閫�娆惧師鍥�</div>
+          <div class="basic-info-view">
             <el-row>
               <el-col :span="24">
-                <el-form-item label="閫�娆惧師鍥�" prop="refundReason">
+                <el-form-item label="閫�娆惧師鍥�" prop="reason">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.refundReason"
+                    v-model="editConfig.infomation.reason"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -142,7 +164,13 @@
             浜у搧绠$悊
             <div style="margin-left: 400px">
               甯佺
-              <el-select v-model="editConfig.infomation.currency" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
+              <el-select
+                v-model="editConfig.infomation.currency"
+                placeholder="璇烽�夋嫨"
+                size="mini"
+                style="width: 63%"
+                disabled
+              >
                 <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -152,7 +180,7 @@
             <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" />
           </div>
           <!-- 閫夋嫨瀹℃壒娴佺▼ -->
-          <div v-if="editConfig.title === '鏂板缓'" class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
+          <!-- <div v-if="editConfig.title === '鏂板缓'" class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
           <div v-if="editConfig.title === '鏂板缓'" class="basic-info-view">
             <el-row>
               <el-col :span="20">
@@ -189,11 +217,11 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button>
+        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button> -->
         <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
         <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>
@@ -202,8 +230,9 @@
 </template>
 
 <script>
-import CommonSelectView from "@/components/makepager/CommonSelectView"
 import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import { getAllData } from "@/api/client/client"
+import { getAddSalesRefund, getUpdateSalesRefund } from "@/api/sales/refundForm"
 export default {
   name: "AddRefundFormDialog",
   props: {
@@ -213,50 +242,27 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            refundOrderNo: "TKD20230521-12",
-            selSourceOrder: "",
-            salesHead: "",
-            refundDate: "",
-            paymentMethod: "",
-            account: "",
-            whetherInvoicing: "",
-            refundReason: "",
-            approvalWorkflow: "",
-            approvalSteps: "",
-            approvalPerson: "",
-            approvalOpinion: ""
-          }
+          infomation: {}
         }
       }
     }
   },
-  components: { CommonSelectView, CommonFormTableView },
+  components: { CommonFormTableView },
   computed: {},
   data() {
     return {
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        customName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        refundOrderNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        clientId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
         refundDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        salesHead: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        memberId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
         account: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
       },
-      salesHeadOptions: [
-        // 閿�鍞礋璐d汉
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
+      memberOptions: [],
       selSourceOrderOptions: [{ value: "1", label: "閿�鍞��璐у崟" }], // 閫夋嫨婧愬崟
-      paymentMethodOptions: [
+      refundMethodOptions: [
         { value: "1", label: "鐜伴噾" },
         { value: "2", label: "鏀エ" },
         { value: "3", label: "鐢垫眹" },
@@ -265,7 +271,7 @@
         { value: "6", label: "鍏朵粬" }
       ], // 浠樻鏂瑰紡
       accountOptions: [{ value: "1", label: "浜烘皯甯佽处鎴�" }], // 璐︽埛
-      whetherInvoicingOptions: [
+      isInvoiceOptions: [
         { value: "1", label: "鏈紑" },
         { value: "2", label: "宸插紑" }
       ], // 鏄惁寮�绁�
@@ -286,8 +292,99 @@
   },
   created() {
     this.setTableForm()
+    this.getCommonData()
   },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSalesRefund(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSalesRefund(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        salesRefund: {
+          accountId: data.accountId || 0,
+          clientId: data.clientId || 0,
+          isInvoice: data.isInvoice || 0,
+          memberId: data.memberId || 0,
+          number: data.number || "",
+          products: [
+            {
+              amount: 0,
+              desc: "",
+              id: 0,
+              name: "",
+              number: "",
+              price: 0,
+              total: 0
+            }
+          ],
+          reason: data.reason || "",
+          refundDate: data.refundDate || "",
+          refundMethod: data.refundMethod || ""
+        }
+      }
+      return params
+    },
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {},
     setTableForm() {
       this.productTableList = {
         tableData: [
@@ -319,14 +416,7 @@
           { label: "鎻忚堪", prop: "other8" }
         ]
       }
-    },
-    handleClose() {
-      this.editConfig.visible = false
-    },
-    // 娣诲姞闄勪欢
-    addAnnexClick() {},
-    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
-    setFormatClick() {}
+    }
   }
 }
 </script>
@@ -354,10 +444,17 @@
           font-size: 18px;
         }
       }
-    }
-    .address-view {
-      margin-top: 10px;
-      padding-right: 40px;
+      .common-select {
+        display: flex;
+        .common-select-sel {
+          width: 270px;
+        }
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 16px;
+          cursor: pointer;
+        }
+      }
     }
     .annex-view {
       display: flex;
diff --git a/src/views/sales/refundForm/index.vue b/src/views/sales/refundForm/index.vue
index 21546c0..5cfefe7 100644
--- a/src/views/sales/refundForm/index.vue
+++ b/src/views/sales/refundForm/index.vue
@@ -70,14 +70,14 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "閫�娆惧崟缂栧彿", prop: "refundOrderNo" },
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 },
+          { label: "閫�娆惧崟缂栧彿", prop: "number" },
+          { label: "瀹㈡埛鍚嶇О", prop: "clientId", min: 120 },
           { label: "閫�娆炬棩鏈�", prop: "refundDate", min: 90 },
-          { label: "璐︽埛", prop: "account" },
-          { label: "鏄惁寮�绁�", prop: "whetherInvoicing", min: 100 },
-          { label: "浠樻鏂瑰紡", prop: "paymentMethod" },
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" },
-          { label: "淇敼鏃堕棿", prop: "modifyTime" },
+          { label: "璐︽埛", prop: "accountId" },
+          { label: "鏄惁寮�绁�", prop: "isInvoice", min: 100 },
+          { label: "浠樻鏂瑰紡", prop: "refundMethod" },
+          { label: "閿�鍞礋璐d汉", prop: "memberId" },
+          // { label: "淇敼鏃堕棿", prop: "modifyTime" },
           { label: "浠风◣鍚堣", prop: "priceTax" }
         ]
       }
@@ -119,42 +119,14 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {
-        customName: "",
-        refundOrderNo: "TKD20230521-12",
-        selSourceOrder: "1",
-        salesHead: "5",
-        refundDate: "",
-        paymentMethod: "1",
-        account: "1",
-        whetherInvoicing: "1",
-        refundReason: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = {}
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = {
-        customName: "",
-        refundOrderNo: "TKD20230521-12",
-        selSourceOrder: "",
-        salesHead: "",
-        refundDate: "",
-        paymentMethod: "",
-        account: "",
-        whetherInvoicing: "",
-        refundReason: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = { ...row }
     }
   }
 }
diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
index 906bc9e..0e780e3 100644
--- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
+++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -22,23 +22,23 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="clientId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="璁㈠崟缂栧彿" prop="orderNumber">
-                  <el-input v-model="editConfig.infomation.orderNumber"></el-input>
+                <el-form-item label="璁㈠崟缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞満浼�" prop="salesOpportunity">
+                <el-form-item label="閿�鍞満浼�" prop="saleChanceId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.salesOpportunity"></el-input>
+                    <el-input v-model="editConfig.infomation.saleChanceId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
@@ -58,25 +58,20 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="绛剧害鏃ユ湡" prop="signDate">
-                  <el-date-picker v-model="editConfig.infomation.signDate" type="date" placeholder="閫夋嫨鏃ユ湡">
+                <el-form-item label="绛剧害鏃ユ湡" prop="signTime">
+                  <el-date-picker v-model="editConfig.infomation.signTime" type="date" placeholder="閫夋嫨鏃ユ湡">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞礋璐d汉" prop="salesHead">
+                <el-form-item label="閿�鍞礋璐d汉" prop="memberId">
                   <el-select
-                    v-model="editConfig.infomation.salesHead"
+                    v-model="editConfig.infomation.memberId"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 63%"
                   >
-                    <el-option
-                      v-for="item in salesHeadOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                   </el-select>
                 </el-form-item>
@@ -89,10 +84,25 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="寰俊璁㈠崟鐘舵��" prop="wechatOrderStatus">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.wechatOrderStatus"
-                    :common-options="wechatOrderStatusOptions"
-                  />
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.wechatOrderStatus"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option
+                        v-for="item in wechatOrderStatusOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id"
+                      >
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn">
+                      <i class="el-icon-setting"></i>
+                    </div>
+                  </div>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -102,21 +112,21 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="鏀惰揣浜�" prop="consignee">
-                  <el-input v-model="editConfig.infomation.consignee"></el-input>
+                <el-form-item label="鏀惰揣浜�" prop="addressee">
+                  <el-input v-model="editConfig.infomation.addressee"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鏀惰揣浜鸿仈绯绘柟寮�" prop="consigneeContactInfo">
-                  <el-input v-model="editConfig.infomation.consigneeContactInfo"></el-input>
+                <el-form-item label="鏀惰揣浜鸿仈绯绘柟寮�" prop="phone">
+                  <el-input v-model="editConfig.infomation.phone"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="24">
-                <el-form-item label="鏀惰揣鍦板潃" prop="shippingAddress">
+                <el-form-item label="鏀惰揣鍦板潃" prop="address">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.shippingAddress"
+                    v-model="editConfig.infomation.address"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -180,7 +190,13 @@
             浜у搧绠$悊
             <div style="margin-left: 400px">
               甯佺
-              <el-select v-model="editConfig.infomation.currency" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
+              <el-select
+                v-model="editConfig.infomation.currency"
+                placeholder="璇烽�夋嫨"
+                size="mini"
+                style="width: 63%"
+                disabled
+              >
                 <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -190,7 +206,7 @@
             <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" />
           </div>
           <!-- 閫夋嫨瀹℃壒娴佺▼ -->
-          <div v-if="editConfig.title === '鏂板缓'" class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
+          <!-- <div v-if="editConfig.title === '鏂板缓'" class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
           <div v-if="editConfig.title === '鏂板缓'" class="basic-info-view">
             <el-row>
               <el-col :span="20">
@@ -232,12 +248,12 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
         </div>
       </el-form>
 
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button>
+        <!-- <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button> -->
         <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
         <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>
@@ -246,8 +262,9 @@
 </template>
 
 <script>
-import CommonSelectView from "@/components/makepager/CommonSelectView"
 import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import { getAllData } from "@/api/client/client"
+import { getAddSalesDetails, getUpdateSalesDetails } from "@/api/sales/salesDetails"
 export default {
   name: "AddSalesDetailsDialog",
   props: {
@@ -257,54 +274,26 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            orderNumber: "XSHT521",
-            salesOpportunity: "",
-            selSourceOrder: "",
-            signDate: "",
-            salesHead: "",
-            deliveryDate: "",
-            wechatOrderStatus: "",
-            consignee: "",
-            consigneeContactInfo: "",
-            shippingAddress: "",
-            termsTreaty: "",
-            notes: "",
-            approvalWorkflow: "",
-            approvalSteps: "",
-            approvalPerson: "",
-            approvalUrgent: "",
-            approvalOpinion: ""
-          }
+          infomation: {}
         }
       }
     }
   },
-  components: { CommonSelectView, CommonFormTableView },
+  components: { CommonFormTableView },
   computed: {},
   data() {
     return {
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        customName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        orderNumber: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        signDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        salesHead: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }],
-        approvalOpinion: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }]
+        clientId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        signTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        memberId: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }]
+        // approvalOpinion: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }]
       },
-      salesHeadOptions: [
-        // 閿�鍞礋璐d汉
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
-      selSourceOrderOptions: [{ value: "1", label: "閿�鍞瓙鍗�" }],
+      memberOptions: [],
+      selSourceOrderOptions: [],
       wechatOrderStatusOptions: [], // 寰俊璁㈠崟鐘舵��
       currencyOptions: [
         { value: "1", label: "浜烘皯甯�(楼)" },
@@ -323,21 +312,108 @@
   },
   created() {
     this.setTableForm()
+    this.getCommonData()
   },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSalesDetails(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSalesDetails(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        salesDetails: {
+          address: data.address || "",
+          addressee: data.addressee || "",
+          clientId: data.id || 0,
+          conditions: data.conditions || "",
+          deliveryDate: data.id || "",
+          memberId: data.id || 0,
+          number: data.deliveryDate || "",
+          phone: data.phone || "",
+          products: [
+            {
+              amount: 0,
+              desc: "",
+              id: 0,
+              name: "",
+              number: "",
+              price: 0,
+              total: 0
+            }
+          ],
+          remark: data.remark || "",
+          saleChanceId: data.id || 0,
+          saleType: data.id || 0,
+          signTime: data.signTime || "",
+          wechatOrderStatus: data.id || 0
+        }
+      }
+      return params
+    },
+
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {},
     setTableForm() {
       this.productTableList = {
-        tableData: [
-          {
-            id: "1",
-            productName: "涓婃捣鏈夐檺鍏徃",
-            other0: "ZDYBD03-1",
-            other1: "12",
-            other2: "",
-            other6: "3.00",
-            other7: "2.00"
-          }
-        ],
+        tableData: [],
         tableColumn: [
           { label: "#", prop: "id", width: 40 },
           { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true },
@@ -350,14 +426,7 @@
           { label: "婧愬崟", prop: "other3" }
         ]
       }
-    },
-    handleClose() {
-      this.editConfig.visible = false
-    },
-    // 娣诲姞闄勪欢
-    addAnnexClick() {},
-    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
-    setFormatClick() {}
+    }
   }
 }
 </script>
diff --git a/src/views/sales/salesDetails/index.vue b/src/views/sales/salesDetails/index.vue
index e80fe87..0a7f933 100644
--- a/src/views/sales/salesDetails/index.vue
+++ b/src/views/sales/salesDetails/index.vue
@@ -83,30 +83,12 @@
   methods: {
     setTable() {
       this.tableList = {
-        tableInfomation: [
-          {
-            orderNumber: "XSHT265",
-            customName: "55555",
-            signDate: "2023-06-25",
-            salesHead: "绯荤粺绠$悊鍛�",
-            outboundStatus: "鏈嚭搴�",
-            receiveTotalAmount: "8000.00",
-            total: "8000.00",
-            amountReceivable: "8000.00",
-            invoicedAmount: "8000.00",
-            uninvoicedAmount: "8000.00",
-            productName: "鑷姩鎵撳嵃鏈�",
-            number: "1.00",
-            taxUnitPrice: "8000.00",
-            unOutoundNo: "1.00",
-            priceTax: "8000.00"
-          }
-        ],
+        tableInfomation: [],
         tableColumn: [
-          { label: "璁㈠崟缂栧彿", prop: "orderNumber" },
-          { label: "瀹㈡埛鍚嶇О", prop: "customName" },
-          { label: "绛剧害鏃ユ湡", prop: "signDate" },
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" },
+          { label: "璁㈠崟缂栧彿", prop: "number" },
+          { label: "瀹㈡埛鍚嶇О", prop: "clientId" },
+          { label: "绛剧害鏃ユ湡", prop: "signTime" },
+          { label: "閿�鍞礋璐d汉", prop: "memberId" },
           { label: "鍑哄簱鐘舵��", prop: "outboundStatus" },
           { label: "宸叉敹鎬婚", prop: "receiveTotalAmount", price: true },
           { label: "鍚堣", prop: "total", price: true },
@@ -158,50 +140,14 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {
-        customName: "",
-        orderNumber: "XSHT521",
-        salesOpportunity: "",
-        selSourceOrder: "",
-        signDate: "",
-        salesHead: "",
-        deliveryDate: "",
-        wechatOrderStatus: "",
-        consignee: "",
-        consigneeContactInfo: "",
-        shippingAddress: "",
-        termsTreaty: "",
-        notes: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = {}
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = {
-        customName: "",
-        orderNumber: "XSHT521",
-        salesOpportunity: "",
-        selSourceOrder: "",
-        signDate: "",
-        salesHead: "",
-        deliveryDate: "",
-        wechatOrderStatus: "",
-        consignee: "",
-        consigneeContactInfo: "",
-        shippingAddress: "",
-        termsTreaty: "",
-        notes: "",
-        approvalWorkflow: "",
-        approvalSteps: "",
-        approvalPerson: "",
-        approvalOpinion: ""
-      }
+      this.editConfig.infomation = { ...row }
     }
   }
 }
diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
index ed9d181..91d50da 100644
--- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
+++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -22,86 +22,127 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="client_id">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.client_id"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞満浼氱紪鍙�" prop="salesOpportunityNo">
-                  <el-input v-model="editConfig.infomation.salesOpportunityNo"></el-input>
+                <el-form-item label="閿�鍞満浼氱紪鍙�" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鏈轰細鍚嶇О" prop="opportunityName">
+                <el-form-item label="鏈轰細鍚嶇О" prop="name">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.opportunityName"></el-input>
-                    <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
+                    <el-input v-model="editConfig.infomation.name"></el-input>
+                    <!-- <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div> -->
                     <!-- <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鑱旂郴浜哄鍚�" prop="contactName">
-                  <el-input v-model="editConfig.infomation.contactName"></el-input>
+                <el-form-item label="鑱旂郴浜哄鍚�" prop="contact_id">
+                  <el-input v-model="editConfig.infomation.contact_id"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍟嗘満鏉ユ簮" prop="businessSource">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.businessSource"
-                    :common-options="businessSourceOptions"
-                  />
+                <el-form-item label="鍟嗘満鏉ユ簮" prop="sales_sources_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.sales_sources_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option
+                        v-for="item in businessSourceOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id"
+                      >
+                      </el-option>
+                    </el-select>
+                    <!-- @click="editDropdownBox" -->
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍟嗘満绫诲瀷" prop="businessType">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.businessType"
-                    :common-options="businessTypeOptions"
-                  />
+                <el-form-item label="鍟嗘満绫诲瀷" prop="sale_type_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.sale_type_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in businessTypeOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <!-- @click="editDropdownBox" -->
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞樁娈�" prop="saleStage">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.saleStage"
-                    :common-options="saleStageOptions"
-                  />
+                <el-form-item label="閿�鍞樁娈�" prop="sale_stage_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.sale_stage_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in saleStageOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <!-- @click="editDropdownBox" -->
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞礋璐d汉" prop="salesHead">
+                <el-form-item label="閿�鍞礋璐d汉" prop="member_id">
                   <el-select
-                    v-model="editConfig.infomation.salesHead"
+                    v-model="editConfig.infomation.member_id"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 63%"
                   >
-                    <el-option
-                      v-for="item in salesHeadOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                    <el-option v-for="item in memberOptions" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鑰佸鎴疯惀閿�" prop="oldCustomerMarket">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.oldCustomerMarket"
-                    :common-options="oldCustomerMarketOptions"
-                  />
+                <el-form-item label="鑰佸鎴疯惀閿�" prop="regular_customers_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.regular_customers_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option
+                        v-for="item in oldCustomerMarketOptions"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item.id"
+                      >
+                      </el-option>
+                    </el-select>
+                    <!-- @click="editDropdownBox" -->
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="绔炰簤瀵规墜" prop="competitor">
-                  <el-input v-model="editConfig.infomation.competitor"></el-input>
+                <el-form-item label="绔炰簤瀵规墜" prop="competitors">
+                  <el-input v-model="editConfig.infomation.competitors"></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -111,8 +152,20 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="鍙兘鎬�(%)" prop="possible">
-                  <CommonSelectView :common-value="editConfig.infomation.possible" :common-options="possibleOptions" />
+                <el-form-item label="鍙兘鎬�(%)" prop="possibilities">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.possibilities"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in possibleOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <!-- @click="editDropdownBox" -->
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -123,106 +176,110 @@
                     size="mini"
                     style="width: 63%"
                   >
-                    <el-option
-                      v-for="item in currencyOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                    <el-option v-for="item in currencyOptions" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="棰勭畻缁濆鍊�" prop="budgetAbsoluteValue">
-                  <el-input v-model="editConfig.infomation.budgetAbsoluteValue"></el-input>
+                <el-form-item label="棰勭畻缁濆鍊�" prop="budget">
+                  <el-input v-model="editConfig.infomation.budget"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="棰勮鎴愪氦鏃ユ湡" prop="expectDealDate">
-                  <el-date-picker v-model="editConfig.infomation.expectDealDate" type="date" placeholder="閫夋嫨鏃ユ湡">
+                <el-form-item label="棰勮鎴愪氦鏃ユ湡" prop="expected_time">
+                  <el-date-picker v-model="editConfig.infomation.expected_time" type="date" placeholder="閫夋嫨鏃ユ湡">
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="棰勮鍚堝悓閲戦" prop="expectContractAmount">
-                  <el-input v-model="editConfig.infomation.expectContractAmount"></el-input>
+                <el-form-item label="棰勮鍚堝悓閲戦" prop="projected_amount">
+                  <el-input v-model="editConfig.infomation.projected_amount"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="褰撳墠鐘舵��" prop="currentState">
-                  <CommonSelectView
-                    :common-value="editConfig.infomation.currentState"
-                    :common-options="currentStateOptions"
-                  />
+                <el-form-item label="褰撳墠鐘舵��" prop="status_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.status_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in currentStateOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <!-- @click="editDropdownBox" -->
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
             </el-row>
           </div>
           <!-- 鍟嗘満涓冭绱� -->
           <div class="basic-info-title">鍟嗘満涓冭绱�(5W2P)</div>
-          <div class="address-view">
+          <div class="basic-info-view">
             <el-row>
               <el-col :span="20">
-                <el-form-item label="瀹㈡埛闇�姹傛垨鐥涚偣锛坵hy锛�" prop="demandPainPoint">
+                <el-form-item label="瀹㈡埛闇�姹傛垨鐥涚偣锛坵hy锛�" prop="pain_points">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.demandPainPoint"
+                    v-model="editConfig.infomation.pain_points"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="20">
-                <el-form-item label="鏄惁宸茬粡绔嬮」锛坧lan锛�" prop="projectApproval">
+                <el-form-item label="鏄惁宸茬粡绔嬮」锛坧lan锛�" prop="whether_established">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.projectApproval"
+                    v-model="editConfig.infomation.whether_established"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="20">
-                <el-form-item label="璧勯噾棰勭畻鏄灏戯紙plan锛�" prop="fundBudget">
+                <el-form-item label="璧勯噾棰勭畻鏄灏戯紙plan锛�" prop="capital_budget">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.fundBudget"
+                    v-model="editConfig.infomation.capital_budget"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="20">
-                <el-form-item label="鍏抽敭鍐崇瓥浜烘槸璋侊紙who锛�" prop="decisionMaker">
+                <el-form-item label="鍏抽敭鍐崇瓥浜烘槸璋侊紙who锛�" prop="key_maker">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.decisionMaker"
+                    v-model="editConfig.infomation.key_maker"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="20">
-                <el-form-item label="鍏抽敭鍐崇瓥鍥犵礌鏈夊摢浜涳紙what锛�" prop="decisionFactors">
+                <el-form-item label="鍏抽敭鍐崇瓥鍥犵礌鏈夊摢浜涳紙what锛�" prop="key_factors">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.decisionFactors"
+                    v-model="editConfig.infomation.key_factors"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="20">
-                <el-form-item label="鍐崇瓥娴佺▼鏄�庢牱鐨勶紙what锛�" prop="decisionFlow">
+                <el-form-item label="鍐崇瓥娴佺▼鏄�庢牱鐨勶紙what锛�" prop="process">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.decisionFlow"
+                    v-model="editConfig.infomation.process"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="20">
-                <el-form-item label="绔炰簤瀵规墜鎻愪緵鐨勬柟妗堬紙what锛�" prop="programme">
+                <el-form-item label="绔炰簤瀵规墜鎻愪緵鐨勬柟妗堬紙what锛�" prop="solutions">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.programme"
+                    v-model="editConfig.infomation.solutions"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -230,10 +287,10 @@
           </div>
           <!-- SWOT鍒嗘瀽 -->
           <div class="basic-info-title">SWOT鍒嗘瀽</div>
-          <div class="address-view">
+          <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="浼樺娍(S)" prop="advantage">
+                <el-form-item label="浼樺娍(S)" prop="advantages">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
@@ -242,29 +299,29 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍔e娍(W)" prop="disadvantage">
+                <el-form-item label="鍔e娍(W)" prop="disadvantages">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.disadvantage"
+                    v-model="editConfig.infomation.disadvantages"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鏈轰細(O)" prop="opportunity">
+                <el-form-item label="鏈轰細(O)" prop="opportunities">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.opportunity"
+                    v-model="editConfig.infomation.opportunities"
                   ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="濞佽儊(T)" prop="threaten">
+                <el-form-item label="濞佽儊(T)" prop="threats">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.threaten"
+                    v-model="editConfig.infomation.threats"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -272,9 +329,9 @@
           </div>
           <!-- 鍦板潃淇℃伅 -->
           <div class="basic-info-title">鍦板潃淇℃伅</div>
-          <div class="address-view">
+          <div class="basic-info-view">
             <el-row>
-              <el-col :span="20">
+              <!-- <el-col :span="20">
                 <el-form-item label="瀹氫綅" prop="position">
                   <el-input v-model="editConfig.infomation.position"></el-input>
                 </el-form-item>
@@ -283,34 +340,78 @@
                 <el-form-item label="鍦板浘" prop="map">
                   <div style="height: 100px"></div>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
               <el-col :span="12">
-                <el-form-item label="鍥藉" prop="country">
-                  <CommonSelectView :common-value="editConfig.infomation.country" :common-options="countryOptions" />
+                <el-form-item label="鍥藉" prop="country_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.country_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鐪佷唤" prop="province">
-                  <CommonSelectView :common-value="editConfig.infomation.province" :common-options="provinceOptions" />
+                <el-form-item label="鐪佷唤" prop="province_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.province_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍩庡競" prop="city">
-                  <CommonSelectView :common-value="editConfig.infomation.city" :common-options="cityOptions" />
+                <el-form-item label="鍩庡競" prop="city_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.city_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍖哄煙" prop="region">
-                  <CommonSelectView :common-value="editConfig.infomation.region" :common-options="regionOptions" />
+                <el-form-item label="鍖哄煙" prop="region_id">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.region_id"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in regionOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="20">
-                <el-form-item label="璇︾粏鍦板潃" prop="address">
+                <el-form-item label="璇︾粏鍦板潃" prop="detail_address">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2, maxRows: 4 }"
                     placeholder="璇疯緭鍏ュ唴瀹�"
-                    v-model="editConfig.infomation.address"
+                    v-model="editConfig.infomation.detail_address"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -321,19 +422,19 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="20">
-                <el-form-item label="澶囨敞" prop="notes">
+                <el-form-item label="澶囨敞" prop="remark">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2, maxRows: 4 }"
                     placeholder="璇疯緭鍏ュ唴瀹�"
-                    v-model="editConfig.infomation.notes"
+                    v-model="editConfig.infomation.remark"
                   ></el-input>
                 </el-form-item>
               </el-col>
             </el-row>
           </div>
           <!-- 闄勪欢淇℃伅 -->
-          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <!-- <div class="basic-info-title">闄勪欢淇℃伅</div>
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
@@ -358,12 +459,12 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
         </div>
       </el-form>
 
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
+        <el-button type="primary" size="small" @click="saveClick('form')">淇濆瓨</el-button>
         <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>
     </el-dialog>
@@ -371,7 +472,8 @@
 </template>
 
 <script>
-import CommonSelectView from "@/components/makepager/CommonSelectView"
+import { getAllData } from "@/api/client/client"
+import { getAddSaleChance, getUpdateSaleChance } from "@/api/sales/salesOpportunity"
 export default {
   name: "AddSalesOpportunityDialog",
   props: {
@@ -381,47 +483,12 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            salesOpportunityNo: "POT521",
-            opportunityName: "",
-            contactName: "",
-            businessSource: "",
-            businessType: "",
-            saleStage: "",
-            salesHead: "",
-            oldCustomerMarket: "",
-            competitor: "",
-            possible: "",
-            currency: "",
-            budgetAbsoluteValue: "",
-            expectDealDate: "",
-            expectContractAmount: "",
-            currentState: "",
-            demandPainPoint: "",
-            projectApproval: "",
-            fundBudget: "",
-            decisionMaker: "",
-            decisionFactors: "",
-            decisionFlow: "",
-            programme: "",
-            advantage: "",
-            disadvantage: "",
-            opportunity: "",
-            threaten: "",
-            position: "",
-            map: "",
-            country: "1",
-            province: "1",
-            city: "1",
-            region: "1",
-            notes: ""
-          }
+          infomation: {}
         }
       }
     }
   },
-  components: { CommonSelectView },
+  components: {},
   computed: {
     searchCommonHeight() {
       return this.$refs.searchCommonView.offsetHeight
@@ -432,64 +499,144 @@
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        salesOpportunityNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        opportunityName: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        salesHead: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        saleStage: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        name: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        member_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        sale_stage_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
         currency: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        expectDealDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        expectContractAmount: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
+        expected_time: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        projected_amount: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
       },
-      businessSourceOptions: [
-        { value: "1", label: "鍚庡彴娉ㄥ唽" },
-        { value: "2", label: "浠g悊鍟嗗鎴�" },
-        { value: "3", label: "鐢佃瘽闄岀敓鎷滆" },
-        { value: "4", label: "鐩存帴璁块棶" },
-        { value: "5", label: "椤圭洰鍚堜綔" },
-        { value: "6", label: "涓汉鑷壘" },
-        { value: "7", label: "浜屾閿�鍞�" },
-        { value: "8", label: "鍏徃鐢佃瘽" }
-      ],
-      salesHeadOptions: [
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
+      businessSourceOptions: [],
+      memberOptions: [],
       businessTypeOptions: [], // 鍟嗘満绫诲瀷
       saleStageOptions: [], // 閿�鍞樁娈�
       oldCustomerMarketOptions: [], // 鑰佸鎴疯惀閿�
       possibleOptions: [], // 鍙兘鎬�
-      currencyOptions: [], // 甯佺
+      currencyOptions: [
+        {
+          id: 1,
+          name: "浜烘皯甯�"
+        }
+      ], // 甯佺
       currentStateOptions: [], // 褰撳墠鐘舵��
-      countryOptions: [{ value: "1", label: "涓浗" }], // 鍥藉
-      provinceOptions: [
-        { value: "1", label: "鍖椾含甯�" },
-        { value: "2", label: "涓婃捣甯�" },
-        { value: "3", label: "鍚夋灄鐪�" },
-        { value: "4", label: "闄曡タ鐪�" }
-      ], // 鐪佷唤
-      cityOptions: [
-        { value: "1", label: "鍖椾含甯�" },
-        { value: "2", label: "涓婃捣甯�" },
-        { value: "3", label: "鍚夋灄甯�" },
-        { value: "4", label: "瑗垮畨甯�" }
-      ], // 鍩庡競
-      regionOptions: [
-        { value: "1", label: "鏈濋槼鍖�" },
-        { value: "2", label: "娴锋穩鍖�" },
-        { value: "3", label: "閫氬窞鍖�" },
-        { value: "4", label: "瑗垮煄鍖�" }
-      ] // 鍖哄煙
+      countryOptions: [], // 鍥藉
+      provinceOptions: [], // 鐪佷唤
+      cityOptions: [], // 鍩庡競
+      regionOptions: [] // 鍖哄煙
     }
   },
-  created() {},
+  created() {
+    this.getCommonData()
+  },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          // 缂� 鍙兘鎬� 甯佺 褰撳墠鐘舵��
+          this.memberOptions = res.data.member
+          this.businessSourceOptions = res.data.sales_source
+          this.businessTypeOptions = res.data.sale_type
+          this.oldCustomerMarketOptions = res.data.regular_customers
+          this.saleStageOptions = res.data.sale_stage
+          this.countryOptions = res.data.country
+          this.provinceOptions = res.data.province
+          this.cityOptions = res.data.city
+          this.regionOptions = res.data.region
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
     handleClose() {
       this.editConfig.visible = false
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSaleChance(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSaleChance(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        advantages: data.advantages || "",
+        budget: data.budget || 0,
+        capital_budget: data.capital_budget || "",
+        city_id: data.city_id || 0,
+        client_id: data.client_id || 0,
+        competitors: data.competitors || "",
+        contact_id: data.contact_id || 0,
+        country_id: data.country_id || 0,
+        currency: data.currency || 0,
+        disadvantages: data.disadvantages || "",
+        expected_time: data.expected_time || "",
+        key_factors: data.key_factors || "",
+        key_maker: data.key_maker || "",
+        member_id: data.member_id || 0,
+        name: data.name || "",
+        number: data.number || "",
+        opportunities: data.opportunities || "",
+        pain_points: data.pain_points || "",
+        possibilities: data.possibilities || 0,
+        process: data.process || "",
+        projected_amount: parseInt(data.projected_amount) || 0,
+        province_id: data.province_id || 0,
+        region_id: data.region_id || 0,
+        regular_customers_id: data.regular_customers_id || 0,
+        sale_stage_id: data.sale_stage_id || 0,
+        sale_type_id: data.sale_type_id || 0,
+        sales_sources_id: data.sales_sources_id || 0,
+        solutions: data.solutions || "",
+        status_id: data.status_id || 0,
+        threats: data.threats || "",
+        whether_established: data.whether_established || "",
+
+        remark: data.remark || "",
+        detail_address: data.detail_address || ""
+      }
+      return params
     },
     // 娣诲姞闄勪欢
     addAnnexClick() {},
@@ -522,10 +669,17 @@
           font-size: 18px;
         }
       }
-    }
-    .address-view {
-      margin-top: 10px;
-      padding-right: 40px;
+      .common-select {
+        display: flex;
+        .common-select-sel {
+          width: 270px;
+        }
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 16px;
+          cursor: pointer;
+        }
+      }
     }
     .annex-view {
       display: flex;
diff --git a/src/views/sales/salesOpportunity/index.vue b/src/views/sales/salesOpportunity/index.vue
index eba3e09..d12fe97 100644
--- a/src/views/sales/salesOpportunity/index.vue
+++ b/src/views/sales/salesOpportunity/index.vue
@@ -85,16 +85,16 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "鏈轰細鍚嶇О", prop: "opportunityName", min: 120 }, // 鏈轰細鍚嶇О
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 90 }, // 瀹㈡埛鍚嶇О
-          { label: "閿�鍞満浼氱紪鍙�", prop: "salesOpportunityNo" }, // 閿�鍞満浼氱紪鍙�
-          { label: "鑱旂郴浜哄鍚�", prop: "contactName", min: 100 }, // 鑱旂郴浜哄鍚�
-          { label: "閿�鍞樁娈�", prop: "saleStage" }, // 閿�鍞樁娈�
-          { label: "鍙兘鎬�(%)", prop: "possible" }, // 鍙兘鎬�
-          { label: "棰勮鎴愪氦鏃ユ湡", prop: "expectDealDate" }, // 棰勮鎴愪氦鏃ユ湡
-          { label: "棰勮鍚堝悓閲戦", prop: "expectContractAmount" }, // 棰勮鍚堝悓閲戦
-          { label: "棰勭畻缁濆鍊�", prop: "budgetAbsoluteValue" }, // 棰勭畻缁濆鍊�
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" } // 閿�鍞礋璐d汉
+          { label: "鏈轰細鍚嶇О", prop: "name", min: 120 }, // 鏈轰細鍚嶇О
+          { label: "瀹㈡埛鍚嶇О", prop: "client_name", min: 90 }, // 瀹㈡埛鍚嶇О
+          { label: "閿�鍞満浼氱紪鍙�", prop: "number" }, // 閿�鍞満浼氱紪鍙�
+          { label: "鑱旂郴浜哄鍚�", prop: "contact_name", min: 100 }, // 鑱旂郴浜哄鍚�
+          { label: "閿�鍞樁娈�", prop: "sale_stage_id" }, // 閿�鍞樁娈�
+          { label: "鍙兘鎬�(%)", prop: "possibilities_id" }, // 鍙兘鎬�
+          { label: "棰勮鎴愪氦鏃ユ湡", prop: "expected_time" }, // 棰勮鎴愪氦鏃ユ湡
+          { label: "棰勮鍚堝悓閲戦", prop: "projected_amount" }, // 棰勮鍚堝悓閲戦
+          { label: "棰勭畻缁濆鍊�", prop: "capital_budget" }, // 棰勭畻缁濆鍊�
+          { label: "閿�鍞礋璐d汉", prop: "member_id" } // 閿�鍞礋璐d汉
         ]
       }
       this.searchOptions = []
@@ -113,7 +113,9 @@
             if (res.data.list && res.data.list.length > 0) {
               const list = res.data.list.map((item) => {
                 return {
-                  ...item
+                  ...item,
+                  client_name: item.client.name,
+                  contact_name: item.contact.name
                 }
               })
               this.tableList.tableInfomation = list || []
@@ -135,84 +137,14 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {
-        customName: "",
-        salesOpportunityNo: "POT521",
-        opportunityName: "",
-        contactName: "",
-        businessSource: "",
-        businessType: "",
-        saleStage: "",
-        salesHead: "",
-        oldCustomerMarket: "",
-        competitor: "",
-        possible: "",
-        currency: "",
-        budgetAbsoluteValue: "",
-        expectDealDate: "",
-        expectContractAmount: "",
-        currentState: "",
-        demandPainPoint: "",
-        projectApproval: "",
-        fundBudget: "",
-        decisionMaker: "",
-        decisionFactors: "",
-        decisionFlow: "",
-        programme: "",
-        advantage: "",
-        disadvantage: "",
-        opportunity: "",
-        threaten: "",
-        position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        notes: ""
-      }
+      this.editConfig.infomation = {}
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = {
-        customName: "",
-        salesOpportunityNo: "POT521",
-        opportunityName: "",
-        contactName: "",
-        businessSource: "",
-        businessType: "",
-        saleStage: "",
-        salesHead: "",
-        oldCustomerMarket: "",
-        competitor: "",
-        possible: "",
-        currency: "",
-        budgetAbsoluteValue: "",
-        expectDealDate: "",
-        expectContractAmount: "",
-        currentState: "",
-        demandPainPoint: "",
-        projectApproval: "",
-        fundBudget: "",
-        decisionMaker: "",
-        decisionFactors: "",
-        decisionFlow: "",
-        programme: "",
-        advantage: "",
-        disadvantage: "",
-        opportunity: "",
-        threaten: "",
-        position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        notes: ""
-      }
+      this.editConfig.infomation = { ...row }
     }
   }
 }
diff --git a/src/views/sales/salesReturn/AddSalesReturnDialog.vue b/src/views/sales/salesReturn/AddSalesReturnDialog.vue
index d362302..44c5b3c 100644
--- a/src/views/sales/salesReturn/AddSalesReturnDialog.vue
+++ b/src/views/sales/salesReturn/AddSalesReturnDialog.vue
@@ -22,17 +22,17 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="clientId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞��璐у崟缂栧彿" prop="salesReturnOrderNo">
-                  <el-input v-model="editConfig.infomation.salesReturnOrderNo"></el-input>
+                <el-form-item label="閿�鍞��璐у崟缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -49,10 +49,10 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閫�鍏ヤ粨搴�" prop="returnWarehouse">
-                  <el-select v-model="editConfig.infomation.returnWarehouse" size="mini" style="width: 63%">
+                <el-form-item label="閫�鍏ヤ粨搴�" prop="repository">
+                  <el-select v-model="editConfig.infomation.repository" size="mini" style="width: 63%">
                     <el-option
-                      v-for="item in returnWarehouseOptions"
+                      v-for="item in repositoryOptions"
                       :key="item.value"
                       :label="item.label"
                       :value="item.value"
@@ -62,19 +62,14 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞礋璐d汉" prop="salesHead">
+                <el-form-item label="閿�鍞礋璐d汉" prop="memberId">
                   <el-select
-                    v-model="editConfig.infomation.salesHead"
+                    v-model="editConfig.infomation.memberId"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 63%"
                   >
-                    <el-option
-                      v-for="item in salesHeadOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                   </el-select>
                 </el-form-item>
@@ -92,22 +87,35 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="鐘舵��" prop="state">
-                  <CommonSelectView :common-value="editConfig.infomation.state" :common-options="stateOptions" />
+                <el-form-item label="鐘舵��" prop="status">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.status"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn" @click="editDropdownBox">
+                      <i class="el-icon-setting"></i>
+                    </div>
+                  </div>
                 </el-form-item>
               </el-col>
             </el-row>
           </div>
           <!-- 澶囨敞淇℃伅 -->
           <div class="basic-info-title">澶囨敞淇℃伅</div>
-          <div class="address-view">
+          <div class="basic-info-view">
             <el-row>
               <el-col :span="24">
-                <el-form-item label="閫�璐у師鍥�" prop="returnReason">
+                <el-form-item label="閫�璐у師鍥�" prop="reason">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2 }"
-                    v-model="editConfig.infomation.returnReason"
+                    v-model="editConfig.infomation.reason"
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -165,8 +173,9 @@
 </template>
 
 <script>
-import CommonSelectView from "@/components/makepager/CommonSelectView"
 import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import { getAllData } from "@/api/client/client"
+import { getAddSalesReturn, getUpdateSalesReturn } from "@/api/sales/salesReturn"
 export default {
   name: "AddSalesReturnDialog",
   props: {
@@ -176,48 +185,30 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            salesReturnOrderNo: "THD20230521-11",
-            selSourceOrder: "1",
-            returnWarehouse: "1",
-            salesHead: "5",
-            returnDate: "",
-            state: "",
-            returnReason: ""
-          }
+          infomation: {}
         }
       }
     }
   },
-  components: { CommonSelectView, CommonFormTableView },
+  components: { CommonFormTableView },
   computed: {},
   data() {
     return {
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        salesReturnOrderNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        returnWarehouse: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        salesHead: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }]
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        repository: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        memberId: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }]
       },
-      salesHeadOptions: [
-        // 閿�鍞礋璐d汉
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
-      selSourceOrderOptions: [{ value: "1", label: "閿�鍞槑缁嗗崟" }], // 閫夋嫨婧愬崟
-      returnWarehouseOptions: [
+      memberOptions: [],
+      selSourceOrderOptions: [], // 閫夋嫨婧愬崟
+      repositoryOptions: [
         { value: "1", label: "鎬讳粨" },
         { value: "2", label: "璧犲搧浠�" },
         { value: "3", label: "鍏朵粬浠�" }
       ], // 閫�鍏ヤ粨搴�
-      stateOptions: [], // 鐘舵��
+      statusOptions: [], // 鐘舵��
       currencyOptions: [
         { value: "1", label: "浜烘皯甯�(楼)" },
         { value: "2", label: "鑻遍晳(拢)" },
@@ -235,21 +226,101 @@
   },
   created() {
     this.setTableForm()
+    this.getCommonData()
   },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSalesReturn(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSalesReturn(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        salesReturn: {
+          clientId: data.clientId || 0,
+          memberId: data.memberId || 0,
+          number: data.number || "",
+          products: [
+            {
+              amount: 0,
+              desc: "",
+              id: 0,
+              name: "",
+              number: "",
+              price: 0,
+              total: 0
+            }
+          ],
+          reason: data.reason || "",
+          repository: data.repository || "",
+          returnDate: data.returnDate || "",
+          status: data.status || 0
+        }
+      }
+      return params
+    },
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {},
     setTableForm() {
       this.productTableList = {
-        tableData: [
-          {
-            id: "1",
-            productName: "涓婃捣鏈夐檺鍏徃",
-            other0: "ZDYBD03-1",
-            other1: "12",
-            other2: "5.00",
-            other4: "3.00",
-            other3: "2.00"
-          }
-        ],
+        tableData: [],
         tableColumn: [
           { label: "#", prop: "id", width: 40 },
           { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true },
@@ -268,14 +339,7 @@
           { label: "鎻忚堪", prop: "other8" }
         ]
       }
-    },
-    handleClose() {
-      this.editConfig.visible = false
-    },
-    // 娣诲姞闄勪欢
-    addAnnexClick() {},
-    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
-    setFormatClick() {}
+    }
   }
 }
 </script>
@@ -303,10 +367,17 @@
           font-size: 18px;
         }
       }
-    }
-    .address-view {
-      margin-top: 10px;
-      padding-right: 40px;
+      .common-select {
+        display: flex;
+        .common-select-sel {
+          width: 270px;
+        }
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 16px;
+          cursor: pointer;
+        }
+      }
     }
     .annex-view {
       display: flex;
diff --git a/src/views/sales/salesReturn/index.vue b/src/views/sales/salesReturn/index.vue
index 16f1078..ba7d780 100644
--- a/src/views/sales/salesReturn/index.vue
+++ b/src/views/sales/salesReturn/index.vue
@@ -71,14 +71,14 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "閿�鍞��璐у崟缂栧彿", prop: "salesReturnOrderNo", min: 120 },
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 90 },
+          { label: "閿�鍞��璐у崟缂栧彿", prop: "number", min: 120 },
+          { label: "瀹㈡埛鍚嶇О", prop: "clientId", min: 90 },
           { label: "閫�璐ф棩鏈�", prop: "returnDate", min: 100 },
-          { label: "鐘舵��", prop: "state" },
-          { label: "閫�鍏ヤ粨搴�", prop: "returnWarehouse" },
+          { label: "鐘舵��", prop: "status" },
+          { label: "閫�鍏ヤ粨搴�", prop: "repository" },
           { label: "搴旈��娆�", prop: "refundabe" },
           { label: "宸查��娆�", prop: "refunded" },
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" },
+          { label: "閿�鍞礋璐d汉", prop: "memberId" },
           { label: "淇敼鏃堕棿", prop: "modifyTime" }
         ]
       }
@@ -120,32 +120,14 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {
-        customName: "",
-        salesReturnOrderNo: "THD20230521-11",
-        selSourceOrder: "1",
-        returnWarehouse: "1",
-        salesHead: "5",
-        returnDate: "",
-        state: "",
-        returnReason: ""
-      }
+      this.editConfig.infomation = {}
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = {
-        customName: "",
-        salesReturnOrderNo: "THD20230521-11",
-        selSourceOrder: "",
-        returnWarehouse: "",
-        salesHead: "",
-        returnDate: "",
-        state: "",
-        returnReason: ""
-      }
+      this.editConfig.infomation = { ...row }
     }
   }
 }
diff --git a/src/views/sales/subOrder/AddSubOrderDialog.vue b/src/views/sales/subOrder/AddSubOrderDialog.vue
index 0000851..a9ad5d0 100644
--- a/src/views/sales/subOrder/AddSubOrderDialog.vue
+++ b/src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -21,32 +21,37 @@
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="clientId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.customName"></el-input>
+                    <el-input v-model="editConfig.infomation.clientId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍗曟嵁缂栧彿" prop="documentNumber">
-                  <el-input v-model="editConfig.infomation.documentNumber"></el-input>
+                <el-form-item label="鍗曟嵁缂栧彿" prop="number">
+                  <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="閿�鍞�诲崟" prop="masterOrder">
+                <el-form-item label="閿�鍞�诲崟" prop="masterOrderId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.masterOrder"></el-input>
+                    <el-input v-model="editConfig.infomation.masterOrderId"></el-input>
                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div>
                     <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="璐熻矗浜�" prop="owner">
-                  <el-select v-model="editConfig.infomation.owner" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
-                    <el-option v-for="item in ownerOptions" :key="item.value" :label="item.label" :value="item.value">
+                <el-form-item label="璐熻矗浜�" prop="memberId">
+                  <el-select
+                    v-model="editConfig.infomation.memberId"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option v-for="item in memberOptions" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                   </el-select>
                 </el-form-item>
@@ -85,7 +90,13 @@
             浜у搧绠$悊
             <div style="margin-left: 400px">
               甯佺
-              <el-select v-model="editConfig.infomation.currency" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
+              <el-select
+                v-model="editConfig.infomation.currency"
+                placeholder="璇烽�夋嫨"
+                size="mini"
+                style="width: 63%"
+                disabled
+              >
                 <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
@@ -106,6 +117,7 @@
                       placeholder="璇烽�夋嫨"
                       size="mini"
                       style="width: 104px; margin-left: 3px"
+                      disabled
                     >
                       <el-option
                         v-for="item in discountOptions"
@@ -116,14 +128,20 @@
                       </el-option>
                     </el-select>
                   </template>
-                  <el-input v-model="editConfig.infomation.discount"></el-input>
+                  <el-input v-model="editConfig.infomation.discount" disabled></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="7" :offset="17">
                 <el-form-item prop="discount">
                   <template slot="label">
                     <span>璋冩暣</span>
-                    <el-select v-model="adjust" placeholder="璇烽�夋嫨" size="mini" style="width: 74px; margin-left: 3px">
+                    <el-select
+                      v-model="adjust"
+                      placeholder="璇烽�夋嫨"
+                      size="mini"
+                      style="width: 74px; margin-left: 3px"
+                      disabled
+                    >
                       <el-option
                         v-for="item in adjustOptions"
                         :key="item.value"
@@ -133,7 +151,7 @@
                       </el-option>
                     </el-select>
                   </template>
-                  <el-input v-model="editConfig.infomation.discount"></el-input>
+                  <el-input v-model="editConfig.infomation.discount" disabled></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="7" :offset="17">
@@ -157,6 +175,8 @@
 
 <script>
 import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import { getAllData } from "@/api/client/client"
+import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
 export default {
   name: "QuotationDialog",
   components: { CommonFormTableView },
@@ -167,15 +187,7 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            documentNumber: "AC6521",
-            masterOrder: "",
-            owner: "",
-            currency: "",
-            discount: "",
-            total: "14.00"
-          }
+          infomation: {}
         }
       }
     }
@@ -186,19 +198,10 @@
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        documentNumber: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        owner: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
+        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        memberId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
       },
-      ownerOptions: [
-        // 璐熻矗浜�
-        { value: "1", label: "BOSS" },
-        { value: "2", label: "Mia" },
-        { value: "3", label: "璐㈠姟" },
-        { value: "4", label: "甯傚満" },
-        { value: "5", label: "绯荤粺绠$悊鍛�" },
-        { value: "6", label: "閿�鍞�" },
-        { value: "7", label: "閿�鍞�荤洃" }
-      ],
+      memberOptions: [],
       discount: "2",
       currencyOptions: [],
       discountOptions: [
@@ -221,8 +224,93 @@
   },
   created() {
     this.setTableForm()
+    this.getCommonData()
   },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        clientId: data.clientId || 0,
+        masterOrderId: data.masterOrderId || 0,
+        memberId: data.memberId || 0,
+        number: data.number || "",
+        product: [
+          {
+            amount: 0,
+            desc: "",
+            id: 0,
+            name: "",
+            number: "",
+            price: 0,
+            total: 0
+          }
+        ]
+      }
+      return params
+    },
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {},
     setTableForm() {
       this.productTableList = {
         tableData: [
@@ -250,14 +338,7 @@
           { label: "鎻忚堪", prop: "other8" }
         ]
       }
-    },
-    handleClose() {
-      this.editConfig.visible = false
-    },
-    // 娣诲姞闄勪欢
-    addAnnexClick() {},
-    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
-    setFormatClick() {}
+    }
   }
 }
 </script>
diff --git a/src/views/sales/subOrder/index.vue b/src/views/sales/subOrder/index.vue
index 3d862e9..ec9554f 100644
--- a/src/views/sales/subOrder/index.vue
+++ b/src/views/sales/subOrder/index.vue
@@ -77,13 +77,13 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 }, // 鍗曟嵁缂栧彿
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "閿�鍞�诲崟", prop: "masterOrder", min: 90 }, // 閿�鍞�诲崟
-          { label: "璐熻矗浜�", prop: "owner" }, // 璐熻矗浜�
+          { label: "鍗曟嵁缂栧彿", prop: "number", min: 120 }, // 鍗曟嵁缂栧彿
+          { label: "瀹㈡埛鍚嶇О", prop: "clientId", min: 120 }, // 瀹㈡埛鍚嶇О
+          { label: "閿�鍞�诲崟", prop: "masterOrderId", min: 90 }, // 閿�鍞�诲崟
+          { label: "璐熻矗浜�", prop: "memberId" }, // 璐熻矗浜�
           { label: "瀹℃壒鐘舵��", prop: "approvalStatus" }, // 瀹℃壒鐘舵��
           { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏁伴噺", prop: "number", min: 100 } // 鏁伴噺
+          { label: "鏁伴噺", prop: "number1", min: 100 } // 鏁伴噺
         ]
       }
       this.searchOptions = []
diff --git a/src/views/service/orderManage/AddOrderManageDialog.vue b/src/views/service/orderManage/AddOrderManageDialog.vue
index 7e89add..e4afce2 100644
--- a/src/views/service/orderManage/AddOrderManageDialog.vue
+++ b/src/views/service/orderManage/AddOrderManageDialog.vue
@@ -177,6 +177,8 @@
 
 <script>
 import CommonSelectView from "@/components/makepager/CommonSelectView"
+import { getAllData } from "@/api/client/client"
+import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
 export default {
   name: "AddOrderManageDialog",
   props: {
@@ -186,20 +188,7 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            orderNumber: "AC6521",
-            orderName: "",
-            orderType: "",
-            contactName: "",
-            repairSource: "",
-            selSourceOrder: "",
-            problemDesc: "",
-            approvalWorkflow: "",
-            approvalSteps: "",
-            approvalPerson: "",
-            approvalOpinion: ""
-          }
+          infomation: {}
         }
       }
     }
@@ -229,8 +218,87 @@
       approvalWorkflowOptions: [] // 瀹℃壒娴佺▼
     }
   },
-  created() {},
+  created() {
+    this.getCommonData()
+  },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        clientId: data.clientId || 0,
+        masterOrderId: data.masterOrderId || 0,
+        memberId: data.memberId || 0,
+        number: data.number || "",
+        product: [
+          {
+            amount: 0,
+            desc: "",
+            id: 0,
+            name: "",
+            number: "",
+            price: 0,
+            total: 0
+          }
+        ]
+      }
+      return params
+    },
     handleClose() {
       this.editConfig.visible = false
     },
diff --git a/src/views/service/orderManage/index.vue b/src/views/service/orderManage/index.vue
index 5f13148..d821a9d 100644
--- a/src/views/service/orderManage/index.vue
+++ b/src/views/service/orderManage/index.vue
@@ -81,12 +81,12 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "宸ュ崟缂栧彿", prop: "orderNumber", min: 100 }, // 宸ュ崟缂栧彿
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 130 }, // 瀹㈡埛鍚嶇О
+          { label: "宸ュ崟缂栧彿", prop: "number", min: 100 }, // 宸ュ崟缂栧彿
+          { label: "瀹㈡埛鍚嶇О", prop: "clientId", min: 130 }, // 瀹㈡埛鍚嶇О
           { label: "鑱旂郴浜哄鍚�", prop: "contactName" }, // 鑱旂郴浜哄鍚�
-          { label: "鏈嶅姟浜哄憳", prop: "servicePerson" }, // 鏈嶅姟浜哄憳
-          { label: "宸ュ崟鐘舵��", prop: "orderStatus" }, // 宸ュ崟鐘舵��
-          { label: "鎶ヤ慨鏉ユ簮", prop: "repairSource" }, // 鎶ヤ慨鏉ユ簮
+          { label: "鏈嶅姟浜哄憳", prop: "name" }, // 鏈嶅姟浜哄憳
+          { label: "宸ュ崟鐘舵��", prop: "orderType" }, // 宸ュ崟鐘舵��
+          { label: "鎶ヤ慨鏉ユ簮", prop: "reportSourceId" }, // 鎶ヤ慨鏉ユ簮
           { label: "宸ュ崟绫诲瀷", prop: "orderType" } // 宸ュ崟绫诲瀷
         ]
       }
diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue
index 237dfd5..7a3568e 100644
--- a/src/views/service/serviceContract/AddServiceContractDialog.vue
+++ b/src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -254,6 +254,8 @@
 <script>
 import CommonSelectView from "@/components/makepager/CommonSelectView"
 import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import { getAllData } from "@/api/client/client"
+import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
 export default {
   name: "AddServiceContractDialog",
   props: {
@@ -263,27 +265,7 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            serviceContractNumber: "AC6521",
-            owner: "5",
-            contactName: "",
-            salesOpportunity: "",
-            contractOrder: "",
-            quotation: "",
-            contractType: "",
-            signDate: "",
-            startDate: "",
-            endDate: "",
-            contractStatus: "",
-            serviceNumber: "",
-            termsTreaty: "",
-            notes: "",
-            approvalWorkflow: "",
-            approvalSteps: "",
-            approvalPerson: "",
-            approvalOpinion: ""
-          }
+          infomation: {}
         }
       }
     }
@@ -332,8 +314,94 @@
   },
   created() {
     this.setTableForm()
+    this.getCommonData()
   },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        clientId: data.clientId || 0,
+        masterOrderId: data.masterOrderId || 0,
+        memberId: data.memberId || 0,
+        number: data.number || "",
+        product: [
+          {
+            amount: 0,
+            desc: "",
+            id: 0,
+            name: "",
+            number: "",
+            price: 0,
+            total: 0
+          }
+        ]
+      }
+      return params
+    },
+
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {},
     setTableForm() {
       this.productTableList = {
         tableData: [
@@ -365,14 +433,7 @@
           { label: "鎻忚堪", prop: "other8" }
         ]
       }
-    },
-    handleClose() {
-      this.editConfig.visible = false
-    },
-    // 娣诲姞闄勪欢
-    addAnnexClick() {},
-    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
-    setFormatClick() {}
+    }
   }
 }
 </script>
diff --git a/src/views/service/serviceContract/index.vue b/src/views/service/serviceContract/index.vue
index e433765..51767b5 100644
--- a/src/views/service/serviceContract/index.vue
+++ b/src/views/service/serviceContract/index.vue
@@ -72,15 +72,15 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "鏈嶅姟鍚堝悓缂栧彿", prop: "serviceContractNumber", min: 100 }, // 鏈嶅姟鍚堝悓缂栧彿
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "绛剧害鏃ユ湡", prop: "signDate" }, // 绛剧害鏃ユ湡
-          { label: "鍚堝悓绫诲瀷", prop: "contractType" }, // 鍚堝悓绫诲瀷
-          { label: "鍚堝悓鐘舵��", prop: "contractStatus" }, // 鍚堝悓鐘舵��
-          { label: "璐熻矗浜�", prop: "owner" }, // 璐熻矗浜�
+          { label: "鏈嶅姟鍚堝悓缂栧彿", prop: "number", min: 100 }, // 鏈嶅姟鍚堝悓缂栧彿
+          { label: "瀹㈡埛鍚嶇О", prop: "clientId", min: 120 }, // 瀹㈡埛鍚嶇О
+          { label: "绛剧害鏃ユ湡", prop: "signTime" }, // 绛剧害鏃ユ湡
+          { label: "鍚堝悓绫诲瀷", prop: "typeId" }, // 鍚堝悓绫诲瀷
+          { label: "鍚堝悓鐘舵��", prop: "statusId" }, // 鍚堝悓鐘舵��
+          { label: "璐熻矗浜�", prop: "memberId" }, // 璐熻矗浜�
           { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" }, // 鏈嶅姟鍒版湡鏃�
+          { label: "鏈嶅姟寮�濮嬫棩", prop: "startTime" }, // 鏈嶅姟寮�濮嬫棩
+          { label: "鏈嶅姟鍒版湡鏃�", prop: "endTime" }, // 鏈嶅姟鍒版湡鏃�
           { label: "浠风◣鍚堣", prop: "priceTax" } // 浠风◣鍚堣
         ]
       }
diff --git a/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue b/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
index d69ad2a..b67ce49 100644
--- a/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
+++ b/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
@@ -284,6 +284,8 @@
 
 <script>
 import CommonSelectView from "@/components/makepager/CommonSelectView"
+import { getAllData } from "@/api/client/client"
+import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
 export default {
   name: "AddServiceFeeManageDialog",
   props: {
@@ -293,34 +295,7 @@
         return {
           visible: false,
           title: "鏂板缓",
-          infomation: {
-            customName: "",
-            serviceCharger: "",
-            customNumber: "",
-            customerSize: "",
-            customStatus: "",
-            importantLevel: "",
-            customType: "",
-            customSource: "",
-            serviceAgent: "",
-            latestServiceDate: "",
-            contactName: "",
-            duties: "",
-            phoneNumber: "",
-            contactsEmail: "",
-            operateRange: "",
-            position: "",
-            map: "",
-            country: "1",
-            province: "1",
-            city: "1",
-            region: "1",
-            address: "",
-            industry: "",
-            companyNature: "",
-            companyWeb: "",
-            notes: ""
-          }
+          infomation: {}
         }
       }
     }
@@ -379,8 +354,87 @@
       isUnflod: true
     }
   },
-  created() {},
+  created() {
+    this.getCommonData()
+  },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        clientId: data.clientId || 0,
+        masterOrderId: data.masterOrderId || 0,
+        memberId: data.memberId || 0,
+        number: data.number || "",
+        product: [
+          {
+            amount: 0,
+            desc: "",
+            id: 0,
+            name: "",
+            number: "",
+            price: 0,
+            total: 0
+          }
+        ]
+      }
+      return params
+    },
     handleClose() {
       this.editConfig.visible = false
     },
diff --git a/src/views/service/serviceFeeManage/index.vue b/src/views/service/serviceFeeManage/index.vue
index d53b73c..e7c1a98 100644
--- a/src/views/service/serviceFeeManage/index.vue
+++ b/src/views/service/serviceFeeManage/index.vue
@@ -80,17 +80,17 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
+          { label: "瀹㈡埛鍚嶇О", prop: "client", min: 120 }, // 瀹㈡埛鍚嶇О
           { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90, status: true }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
+          { label: "閿�鍞礋璐d汉", prop: "member_id" }, // 閿�鍞礋璐d汉
           { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
           { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
           { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
+          { label: "瀹㈡埛缂栧彿", prop: "client_id" }, // 瀹㈡埛缂栧彿
           { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
           { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
           { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "鏈嶅姟鍒版湡鏃�", prop: "latest_date" } // 鏈嶅姟鍒版湡鏃�
         ]
       }
       this.searchOptions = []
diff --git a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
index ba384cf..22cbcf8 100644
--- a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
+++ b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
@@ -165,6 +165,8 @@
 
 <script>
 import CommonSelectView from "@/components/makepager/CommonSelectView"
+import { getAllData } from "@/api/client/client"
+import { getAddSubOrder, getUpdateSubOrder } from "@/api/sales/subOrder"
 export default {
   name: "AddServiceFollowupDialog",
   props: {
@@ -215,8 +217,87 @@
       ]
     }
   },
-  created() {},
+  created() {
+    this.getCommonData()
+  },
   methods: {
+    getCommonData() {
+      getAllData()
+        .then((res) => {
+          this.memberOptions = res.data.member
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 淇濆瓨
+    saveClick(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.editConfig.infomation)
+          const params = this.saveParams()
+          console.log(params)
+          if (this.editConfig.title === "鏂板缓") {
+            getAddSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "娣诲姞鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          } else {
+            getUpdateSubOrder(params)
+              .then((res) => {
+                console.log(res)
+                this.editConfig.visible = false
+                if (res.code === 200) {
+                  this.$message({
+                    message: "缂栬緫鎴愬姛",
+                    type: "success"
+                  })
+                  this.$parent.getData()
+                }
+              })
+              .catch((err) => {
+                console.log(err)
+              })
+          }
+        } else {
+          console.log("error submit")
+          return false
+        }
+      })
+    },
+    saveParams() {
+      let data = this.editConfig.infomation
+      let params = {
+        id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
+        clientId: data.clientId || 0,
+        masterOrderId: data.masterOrderId || 0,
+        memberId: data.memberId || 0,
+        number: data.number || "",
+        product: [
+          {
+            amount: 0,
+            desc: "",
+            id: 0,
+            name: "",
+            number: "",
+            price: 0,
+            total: 0
+          }
+        ]
+      }
+      return params
+    },
     handleClose() {
       this.editConfig.visible = false
     },
diff --git a/src/views/service/serviceFollowup/index.vue b/src/views/service/serviceFollowup/index.vue
index c220f62..2947b71 100644
--- a/src/views/service/serviceFollowup/index.vue
+++ b/src/views/service/serviceFollowup/index.vue
@@ -65,11 +65,11 @@
       this.tableList = {
         tableInfomation: [],
         tableColumn: [
-          { label: "鍥炶鍗曠紪鍙�", prop: "followupNumber", min: 80 }, // 鍥炶鍗曠紪鍙�
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 130 }, // 瀹㈡埛鍚嶇О
-          { label: "鑱旂郴浜哄鍚�", prop: "contactName" }, // 鑱旂郴浜哄鍚�
-          { label: "瀹㈡埛鏈嶅姟鍗�", prop: "customServiceForm" }, // 瀹㈡埛鏈嶅姟鍗�
-          { label: "鍥炶浜�", prop: "visitor" }, // 鍥炶浜�
+          { label: "鍥炶鍗曠紪鍙�", prop: "number", min: 80 }, // 鍥炶鍗曠紪鍙�
+          { label: "瀹㈡埛鍚嶇О", prop: "clientId", min: 130 }, // 瀹㈡埛鍚嶇О
+          { label: "鑱旂郴浜哄鍚�", prop: "contactId" }, // 鑱旂郴浜哄鍚�
+          { label: "瀹㈡埛鏈嶅姟鍗�", prop: "serviceId" }, // 瀹㈡埛鏈嶅姟鍗�
+          { label: "鍥炶浜�", prop: "isVisit" }, // 鍥炶浜�
           { label: "婊℃剰搴�", prop: "satisfaction" }, // 婊℃剰搴�
           { label: "淇敼鏃堕棿", prop: "modifyTime" } // 淇敼鏃堕棿
         ]

--
Gitblit v1.8.0