From 2605e8abbd4d5c8b6fc7086b05b876ed96917bb4 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期四, 06 七月 2023 18:44:38 +0800
Subject: [PATCH] 销售模块部分页面及新建页面添加

---
 src/views/service/serviceContract/AddServiceContractDialog.vue   |    4 
 src/views/sales/productPlan/index.vue                            |   67 
 src/views/sales/subOrder/index.vue                               |  118 -
 src/views/service/serviceFollowup/AddServiceFollowupDialog.vue   |    1 
 src/components/makepager/PublicFunctionBtnView.vue               |   15 
 src/components/makepager/SearchCommonView.vue                    |   28 
 src/views/sales/masterOrder/index.vue                            |  135 +-
 src/views/sales/salesDetails/AddSalesDetailsDialog.vue           |  404 ++++++++
 src/views/sales/masterOrder/AddMasterOrderDialog.vue             |  237 ++++
 src/views/sales/refundForm/index.vue                             |   71 
 src/views/custom/customManage/AddCustomManageDialog.vue          |   10 
 src/components/makepager/TableCommonView.vue                     |  107 +
 src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue   |  558 +++++++++++
 src/views/sales/salesReturn/index.vue                            |   74 
 src/views/sales/quotation/AddQuotationDialog.vue                 |  349 ++++++
 src/views/sales/salesOpportunity/index.vue                       |  153 ++-
 src/views/sales/subOrder/AddSubOrderDialog.vue                   |  294 +++++
 src/views/sales/contractManage/index.vue                         |   73 
 src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue |    1 
 src/views/sales/quotation/index.vue                              |  122 +-
 src/views/sales/salesDetails/index.vue                           |  172 +-
 21 files changed, 2,445 insertions(+), 548 deletions(-)

diff --git a/src/components/makepager/PublicFunctionBtnView.vue b/src/components/makepager/PublicFunctionBtnView.vue
index 342b59e..8626cd8 100644
--- a/src/components/makepager/PublicFunctionBtnView.vue
+++ b/src/components/makepager/PublicFunctionBtnView.vue
@@ -37,16 +37,20 @@
         </div>
       </div>
       <!-- 鍒楄〃 -->
-      <div v-if="listButton" class="gray btn-icon" @click="listBtnClick">
+      <div v-if="listButton" class="btn-icon" @click="listBtnClick">
         <i class="el-icon-tickets"></i>
       </div>
       <!-- 鍦板浘 -->
-      <div v-if="mapButton" class="gray btn-icon" @click="mapBtnClick">
+      <div v-if="mapButton" class="btn-icon" @click="mapBtnClick">
         <i class="el-icon-location-information"></i>
       </div>
       <!-- 缁熻 -->
-      <div v-if="statistics" class="gray btn-icon" @click="statisticsBtnClick">
+      <div v-if="statistics" class="btn-icon" @click="statisticsBtnClick">
         <i class="el-icon-data-line"></i>
+      </div>
+      <!-- 瀹㈡埛婕忔枟 -->
+      <div v-if="customFunnel" class="btn-icon" @click="statisticsBtnClick" style="color: #666">
+        <i class="el-icon-postcard" title="瀹㈡埛婕忔枟"></i>
       </div>
     </div>
   </div>
@@ -81,6 +85,10 @@
       default: false
     },
     statistics: {
+      type: Boolean,
+      default: false
+    },
+    customFunnel: {
       type: Boolean,
       default: false
     },
@@ -167,6 +175,7 @@
       font-size: 20px;
       border-radius: 4px;
       color: rgb(0, 102, 255);
+      background-color: #f2f4fb;
     }
     .view-scope {
       display: flex;
diff --git a/src/components/makepager/SearchCommonView.vue b/src/components/makepager/SearchCommonView.vue
index 9f2f17e..768342a 100644
--- a/src/components/makepager/SearchCommonView.vue
+++ b/src/components/makepager/SearchCommonView.vue
@@ -29,6 +29,10 @@
           <div class="high-icon"><i class="el-icon-news"></i></div>
           <div>骞抽摵鏌ユ壘</div>
         </div>
+        <div v-if="labelSearch" class="other-search-label" @click="labelSearchClick">
+          <div class="high-icon"><i class="el-icon-discount"></i></div>
+          <div>鏍囩鏌ユ壘</div>
+        </div>
       </div>
     </div>
     <div v-if="isTileSearch" class="search-bottom">
@@ -101,29 +105,17 @@
     searchOptions: {
       type: Array,
       default: () => []
+    },
+    labelSearch: {
+      type: Boolean,
+      default: false
     }
   },
   data() {
     return {
-      // queryClassOptions: [
-      //   { value: "1", label: "鍏ㄩ儴" },
-      //   { value: "2", label: "骞垮憡瀹d紶" },
-      //   { value: "3", label: "璺熻繘涓�" },
-      //   { value: "4", label: "澶辫触鍏抽棴" }
-      // ],
       queryClassValue: this.queryClass,
       searchInput: "",
       searchSelValue: this.searchSel,
-      // searchOptions: [
-      //   { value: "1", label: "瀹㈡埛鍚嶇О" },
-      //   { value: "2", label: "閿�鍞嚎绱㈢紪鍙�" },
-      //   { value: "3", label: "鑱旂郴浜哄鍚�" },
-      //   { value: "4", label: "鎵嬫満鍙风爜" },
-      //   { value: "5", label: "鍟嗘満鏉ユ簮" },
-      //   { value: "6", label: "鐪佷唤" },
-      //   { value: "7", label: "鍩庡競" },
-      //   { value: "8", label: "璐熻矗浜�" }
-      // ],
       isTileSearch: false,
       tileSearchData: [
         {
@@ -161,6 +153,7 @@
     tileSearchClick() {
       this.isTileSearch = !this.isTileSearch
     },
+    labelSearchClick() {},
     // 鍒犻櫎
     handleClick(row) {
       console.log(row)
@@ -223,7 +216,8 @@
           font-size: 18px;
         }
       }
-      .other-search-tile {
+      .other-search-tile,
+      .other-search-label {
         display: flex;
         margin-left: 20px;
         .high-icon {
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index d85e3b9..ee1728d 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -7,10 +7,13 @@
       tooltip-effect="dark"
       style="width: 100%"
       :lazy="tableList.lazy"
+      :show-summary="showSummary.show"
+      :summary-method="getSummaries"
+      :span-method="arraySpanMethod"
       @selection-change="handleSelectionChange"
       :header-cell-style="{ background: '#ECF4FF', color: '#666' }"
     >
-      <el-table-column type="selection" width="55"> </el-table-column>
+      <el-table-column type="selection" width="40"> </el-table-column>
       <el-table-column
         v-for="(item, i) in tableList.tableColumn"
         :key="i"
@@ -20,6 +23,10 @@
         :min-width="item.min"
         sortable
       >
+        <template slot-scope="scope">
+          <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
+          <span v-else>{{ scope.row[item.prop] }}</span>
+        </template>
       </el-table-column>
       <slot name="tableButton" />
     </el-table>
@@ -41,25 +48,101 @@
           ]
         }
       }
+    },
+    showSummary: {
+      type: Object,
+      default: () => {
+        return {
+          show: false,
+          sumProp: [],
+          mergeNumber: 1
+        }
+      }
     }
   },
   data() {
     return {}
   },
-  computed: {
-    maxHeight() {
-      if (this.tableList.height) {
-        return `calc(100vh - ${this.tableList.height})`
-      }
-      return undefined
-    }
-  },
+  computed: {},
   methods: {
     handleReserve(row) {
       return row._id ? row._id : row.id
     },
     handleSelectionChange(val) {
       this.$emit("getSelectArray", val)
+    },
+    // 琛屽悎骞�
+    arraySpanMethod() {
+      if (this.showSummary.show) {
+        this.$nextTick(() => {
+          if (this.$refs.table.$el) {
+            var current = this.$refs.table.$el
+              .querySelector(".el-table__footer-wrapper")
+              .querySelector(".el-table__footer")
+            var cell = current.rows[0].cells
+            for (let i = 0; i < this.showSummary.mergeNumber; i++) {
+              cell[i].style.display = "none"
+            }
+            cell[this.showSummary.mergeNumber].classList.remove("is-left")
+            cell[this.showSummary.mergeNumber].colSpan = this.showSummary.mergeNumber.toString()
+          }
+        })
+      }
+    },
+    // 閲戦鍚堣
+    getSummaries(param) {
+      if (this.showSummary.show) {
+        const { columns, data } = param
+        console.log(param)
+        const sums = []
+        columns.forEach((column, index) => {
+          if (index === this.showSummary.mergeNumber) {
+            sums[index] = "鏈〉鎬昏"
+          }
+          const values = data.map((item) => Number(item[column.property]))
+          // if (column.property === this.showSummary.sumProp) {
+          if (this.showSummary.sumProp.includes(column.property)) {
+            sums[index + 1] = values.reduce((prev, curr) => {
+              const value = Number(curr)
+              if (!isNaN(value)) {
+                return this.number_format(prev + curr, 2, ".", ",")
+              } else {
+                return this.number_format(prev, 2, ".", ",")
+              }
+            }, 0)
+            sums[index + 1]
+          }
+        })
+        return sums
+      }
+    },
+    //瀹氫箟number_format鏂规硶
+    number_format(number, decimals, dec_point, thousands_sep) {
+      decimals = 2 //杩欓噷榛樿璁剧疆淇濈暀涓や綅灏忔暟锛屼篃鍙互娉ㄩ噴杩欏彞閲囩敤浼犲叆鐨勫弬鏁�
+      /*
+       * 鍙傛暟璇存槑锛�
+       * number锛氳鏍煎紡鍖栫殑鏁板瓧
+       * decimals锛氫繚鐣欏嚑浣嶅皬鏁�
+       * dec_point锛氬皬鏁扮偣绗﹀彿
+       * thousands_sep锛氬崈鍒嗕綅绗﹀彿
+       * */
+      number = (number + "").replace(/[^0-9+-Ee.]/g, "")
+      var n = !isFinite(+number) ? 0 : +number,
+        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
+        sep = typeof thousands_sep === "undefined" ? "," : thousands_sep,
+        dec = typeof dec_point === "undefined" ? "." : dec_point
+      var s = n.toString().split(".")
+      var re = /(-?\d+)(\d{3})/
+      while (re.test(s[0])) {
+        s[0] = s[0].replace(re, "$1" + sep + "$2")
+      }
+      if ((s[1] || "").length < prec) {
+        s[1] = s[1] || ""
+        s[1] += new Array(prec - s[1].length + 1).join("0")
+      } else {
+        s[1] = s[1].substring(0, prec) //灏忔暟鐐逛綅鏁拌秴鍑洪暱搴︽椂鎴彇鍓嶉潰鐨勪綅鏁�
+      }
+      return s.join(dec)
     }
   }
 }
@@ -72,4 +155,10 @@
   margin-right: 10px;
   margin-bottom: 40px;
 }
+::v-deep {
+  .el-table__footer-wrapper tbody td.el-table__cell {
+    background-color: #fff;
+    text-align: right;
+  }
+}
 </style>
diff --git a/src/views/custom/customManage/AddCustomManageDialog.vue b/src/views/custom/customManage/AddCustomManageDialog.vue
index 034e261..3f1ca68 100644
--- a/src/views/custom/customManage/AddCustomManageDialog.vue
+++ b/src/views/custom/customManage/AddCustomManageDialog.vue
@@ -403,16 +403,6 @@
         salesHead: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }],
         approvalOpinion: [{ required: true, message: "璇疯緭鍏ュ鎵规剰瑙�", trigger: "blur" }]
       },
-      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" },
diff --git a/src/views/sales/contractManage/index.vue b/src/views/sales/contractManage/index.vue
index 147fea7..6e5af75 100644
--- a/src/views/sales/contractManage/index.vue
+++ b/src/views/sales/contractManage/index.vue
@@ -1,12 +1,16 @@
 <template>
   <div class="contract-manage">
-    <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
+    <SearchCommonView
+      ref="searchCommonView"
+      :label-search="true"
+      :query-class-options="queryClassOptions"
+      :search-options="searchOptions"
+    />
     <div class="btn-pager">
       <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
+        :receive="false"
+        :submit-approval="true"
+        ::statistics="true"
         :operates-list="operatesList"
       />
       <PagerView class="page" />
@@ -16,13 +20,12 @@
         <el-table-column label="鎿嶄綔" width="100">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" />
   </div>
 </template>
 
@@ -53,9 +56,11 @@
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "宸叉壒鍑�" },
+        { value: "3", label: "瀹℃壒涓�" },
+        { value: "4", label: "鏈彁浜�" },
+        { value: "3", label: "宸查┏鍥�" },
+        { value: "4", label: "宸叉嫆缁�" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,9 +71,9 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
@@ -83,31 +88,19 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
-            salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
-            productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            documentNumber: "ZDYB02-2",
+            owner: "绯荤粺绠$悊鍛�",
+            approvalStatus: "瀹℃壒涓�",
+            creator: "绯荤粺绠$悊鍛�",
+            createTime: "2023-0703 11:22:12"
           }
         ],
         tableColumn: [
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
-          { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 },
+          { label: "璐熻矗浜�", prop: "owner", min: 90 },
+          { label: "瀹℃壒鐘舵��", prop: "approvalStatus" },
+          { label: "鍒涘缓浜�", prop: "creator", min: 100 },
+          { label: "鍒涘缓鏃堕棿", prop: "createTime" }
         ]
       }
       this.searchOptions = []
@@ -118,9 +111,9 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
         saleLeadNumber: "LEA50",
         contactName: "",
@@ -141,9 +134,9 @@
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "缂栬緫"
+      this.editConfig.infomation = {
         customName: row.customName,
         saleLeadNumber: row.saleLeadNumber,
         contactName: row.contactName,
diff --git a/src/views/sales/masterOrder/AddMasterOrderDialog.vue b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
new file mode 100644
index 0000000..236c0f3
--- /dev/null
+++ b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
@@ -0,0 +1,237 @@
+<template>
+  <div class="add-quotation">
+    <el-dialog
+      :title="editCommonConfig.title + '閿�鍞�诲崟'"
+      :visible.sync="editConfig.visible"
+      :width="dialogWidth"
+      :before-close="handleClose"
+    >
+      <el-form
+        ref="form"
+        :model="editConfig.infomation"
+        :rules="rules"
+        label-position="right"
+        label-width="308px"
+        size="mini"
+      >
+        <!-- 淇℃伅 -->
+        <div class="basic-info">
+          <!-- 鍩烘湰淇℃伅 -->
+          <div v-if="isUnflod" class="basic-info-title">鍩烘湰淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col v-if="isUnflod" :span="12">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.customName"></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>
+              </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-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-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-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>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 闄勪欢淇℃伅 -->
+          <div v-if="isUnflod" class="basic-info-title">闄勪欢淇℃伅</div>
+          <div v-if="isUnflod" class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="闄勪欢" prop="">
+                  <div class="annex-view">
+                    <div @click="addAnnexClick">娣诲姞</div>
+                    <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+        <!-- 灞曞紑鏀惰捣 -->
+        <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>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
+        <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "QuotationDialog",
+  props: {
+    editCommonConfig: {
+      type: Object,
+      default: () => {
+        return {
+          visible: false,
+          title: "鏂板缓",
+          infomation: {
+            customName: "",
+            documentNumber: "AC6521",
+            owner: "",
+            serviceStartTime: "",
+            serviceDeadline: "",
+            contractAmount: ""
+          }
+        }
+      }
+    }
+  },
+  components: {},
+  computed: {},
+  data() {
+    return {
+      dialogWidth: "80%",
+      editConfig: this.editCommonConfig,
+      rules: {
+        documentNumber: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        owner: [{ 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: "閿�鍞�荤洃" }
+      ],
+      unflodCollapseStr: "鏀惰捣",
+      isUnflod: true
+    }
+  },
+  created() {},
+  methods: {
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {},
+    // 灞曞紑鏀惰捣
+    unflodCollapseClick() {
+      if (this.unflodCollapseStr === "鏀惰捣") {
+        this.unflodCollapseStr = "灞曞紑鏇村鏍忕洰"
+        this.isUnflod = false
+      } else {
+        this.unflodCollapseStr = "鏀惰捣"
+        this.isUnflod = true
+      }
+    }
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style lang="scss" scoped>
+.add-quotation {
+  .basic-info {
+    .basic-info-title {
+      background-color: #f4f8fe;
+      padding-left: 10px;
+      font-size: 15px;
+      font-weight: bold;
+      color: #666;
+      height: 42px;
+      line-height: 42px;
+    }
+    .basic-info-view {
+      margin-top: 10px;
+      padding-right: 40px;
+      .custom-name {
+        display: flex;
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 18px;
+        }
+      }
+    }
+    .address-view {
+      margin-top: 10px;
+      padding-right: 40px;
+    }
+    .annex-view {
+      display: flex;
+      color: #6166d3;
+      .setFormat {
+        margin-left: 10px;
+      }
+    }
+  }
+  .unflod-collapse {
+    display: flex;
+    height: 30px;
+    justify-content: center;
+    align-items: center;
+    color: #6166d3;
+  }
+  .dialog-footer {
+    background-color: #f5f5f5;
+    height: 55px;
+    line-height: 55px;
+  }
+}
+::v-deep {
+  .el-dialog__header {
+    padding: 12.5px 10px;
+    border-bottom: 1px solid #e5e5e5;
+    .el-dialog__title {
+      font-size: 15px;
+      color: #323232;
+      font-weight: bold;
+    }
+  }
+  .el-dialog__body {
+    padding: 0px;
+  }
+  .el-dialog__footer {
+    padding: 0px;
+    text-align: center;
+    box-sizing: border-box;
+    border-top: 1px solid #dadee5;
+  }
+  .product-view {
+    .el-form-item__label {
+      padding: 0;
+    }
+  }
+}
+</style>
diff --git a/src/views/sales/masterOrder/index.vue b/src/views/sales/masterOrder/index.vue
index 55e93d7..bed80be 100644
--- a/src/views/sales/masterOrder/index.vue
+++ b/src/views/sales/masterOrder/index.vue
@@ -2,27 +2,20 @@
   <div class="master-order">
     <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
     <div class="btn-pager">
-      <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
-        :operates-list="operatesList"
-      />
+      <PublicFunctionBtnView :operates-list="operatesList" />
       <PagerView class="page" />
     </div>
-    <TableCommonView ref="tableListRef" :table-list="tableList">
+    <TableCommonView ref="tableListRef" :show-summary="showSummary" :table-list="tableList">
       <template slot="tableButton">
-        <el-table-column label="鎿嶄綔" width="100">
+        <el-table-column label="鎿嶄綔" width="60">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddMasterOrderDialog v-if="editConfig.visible" :edit-common-config="editConfig" />
   </div>
 </template>
 
@@ -31,7 +24,7 @@
 import PublicFunctionBtnView from "@/components/makepager/PublicFunctionBtnView"
 import PagerView from "@/components/makepager/PagerView"
 import TableCommonView from "@/components/makepager/TableCommonView"
-import AddSalesLeadDialog from "@/views/custom/salesLead/AddSalesLeadDialog"
+import AddMasterOrderDialog from "@/views/sales/masterOrder/AddMasterOrderDialog"
 
 export default {
   name: "MasterOrder",
@@ -41,21 +34,19 @@
     PublicFunctionBtnView,
     PagerView,
     TableCommonView,
-    AddSalesLeadDialog
+    AddMasterOrderDialog
   },
-  computed: {
-    searchCommonHeight() {
-      return this.$refs.searchCommonView.offsetHeight
-    }
-  },
+  computed: {},
   data() {
     return {
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "宸叉壒鍑�" },
+        { value: "3", label: "瀹℃壒涓�" },
+        { value: "4", label: "鏈彁浜�" },
+        { value: "5", label: "宸查┏鍥�" },
+        { value: "6", label: "宸叉嫆缁�" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,12 +57,17 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
+      },
+      showSummary: {
+        show: true,
+        sumProp: ["contractAmount"],
+        mergeNumber: 5
       }
     }
   },
@@ -83,31 +79,32 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
-            salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
-            productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            documentNumber: "ZDYBD03-1",
+            customName: "寮犱笁",
+            serviceStartTime: "2023-0703 11:22:12",
+            serviceDeadline: "2023-0703 11:22:12",
+            contractAmount: 13000.0,
+            owner: "绯荤粺绠$悊鍛�",
+            approvalStatus: "鏈彁浜�"
+          },
+          {
+            documentNumber: "",
+            customName: "",
+            serviceStartTime: "",
+            serviceDeadline: "",
+            contractAmount: 13000.0,
+            owner: "",
+            approvalStatus: ""
           }
         ],
         tableColumn: [
+          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 }, // 鍗曟嵁缂栧彿
           { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
-          { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "鏈嶅姟寮�濮嬫椂闂�", prop: "serviceStartTime", min: 90 }, // 鏈嶅姟寮�濮嬫椂闂�
+          { label: "鏈嶅姟鎴鏃堕棿", prop: "serviceDeadline" }, // 鏈嶅姟鎴鏃堕棿
+          { label: "鍚堝悓閲戦", prop: "contractAmount", min: 100 }, // 鍚堝悓閲戦
+          { label: "璐熻矗浜�", prop: "owner" }, // 璐熻矗浜�
+          { label: "瀹℃壒鐘舵��", prop: "approvalStatus" } // 瀹℃壒鐘舵��
         ]
       }
       this.searchOptions = []
@@ -118,47 +115,29 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
-        saleLeadNumber: "LEA50",
-        contactName: "",
-        contactDuties: "",
-        phoneNumber: "",
-        businessStatus: "鏂板缓",
-        businessSource: "1",
+        documentNumber: "AC6521",
         owner: "",
-        position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        address: ""
+        serviceStartTime: "",
+        serviceDeadline: "",
+        contractAmount: ""
       }
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.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: ""
+      this.editConfig.visible = true
+      this.editConfig.title = "缂栬緫"
+      this.editConfig.infomation = {
+        customName: "",
+        documentNumber: "AC6521",
+        owner: "",
+        serviceStartTime: "",
+        serviceDeadline: "",
+        contractAmount: ""
       }
     }
   }
diff --git a/src/views/sales/productPlan/index.vue b/src/views/sales/productPlan/index.vue
index b764104..4b9f479 100644
--- a/src/views/sales/productPlan/index.vue
+++ b/src/views/sales/productPlan/index.vue
@@ -2,13 +2,7 @@
   <div class="product-plan">
     <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
     <div class="btn-pager">
-      <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
-        :operates-list="operatesList"
-      />
+      <PublicFunctionBtnView :operates-list="operatesList" />
       <PagerView class="page" />
     </div>
     <TableCommonView ref="tableListRef" :table-list="tableList">
@@ -16,13 +10,12 @@
         <el-table-column label="鎿嶄綔" width="100">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫-->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" />
   </div>
 </template>
 
@@ -53,9 +46,11 @@
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "宸叉壒鍑�" },
+        { value: "3", label: "瀹℃壒涓�" },
+        { value: "4", label: "鏈彁浜�" },
+        { value: "3", label: "宸查┏鍥�" },
+        { value: "4", label: "宸叉嫆缁�" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,9 +61,9 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
@@ -83,31 +78,19 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
-            salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
-            productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            documentNumber: "ZDYB04-2",
+            owner: "绯荤粺绠$悊鍛�",
+            approvalStatus: "鏈彁浜�",
+            creator: "绯荤粺绠$悊鍛�",
+            createTime: "2023-0703 11:22:12"
           }
         ],
         tableColumn: [
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
-          { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 },
+          { label: "璐熻矗浜�", prop: "owner", min: 90 },
+          { label: "瀹℃壒鐘舵��", prop: "approvalStatus" },
+          { label: "鍒涘缓浜�", prop: "creator", min: 100 },
+          { label: "鍒涘缓鏃堕棿", prop: "createTime" }
         ]
       }
       this.searchOptions = []
@@ -118,9 +101,9 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
         saleLeadNumber: "LEA50",
         contactName: "",
@@ -141,9 +124,9 @@
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "缂栬緫"
+      this.editConfig.infomation = {
         customName: row.customName,
         saleLeadNumber: row.saleLeadNumber,
         contactName: row.contactName,
diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue
new file mode 100644
index 0000000..210e329
--- /dev/null
+++ b/src/views/sales/quotation/AddQuotationDialog.vue
@@ -0,0 +1,349 @@
+<template>
+  <div class="add-quotation">
+    <el-dialog
+      :title="editCommonConfig.title + '鎶ヤ环鍗�'"
+      :visible.sync="editConfig.visible"
+      :width="dialogWidth"
+      :before-close="handleClose"
+    >
+      <el-form
+        ref="form"
+        :model="editConfig.infomation"
+        :rules="rules"
+        label-position="right"
+        label-width="308px"
+        size="mini"
+        style="height: 60vh; overflow-x: hidden"
+      >
+        <!-- 淇℃伅 -->
+        <div class="basic-info">
+          <!-- 鍩烘湰淇℃伅 -->
+          <div class="basic-info-title">鍩烘湰淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.customName"></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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鎶ヤ环鍗曠姸鎬�" prop="quotationStatus">
+                  <CommonSelectView
+                    :common-value="editConfig.infomation.quotationStatus"
+                    :common-options="quotationStatusOptions"
+                  />
+                </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-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鑱旂郴浜哄鍚�" prop="contactName">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.contactName"></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-select
+                    v-model="editConfig.infomation.salesHead"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option
+                      v-for="item in salesHeadOptions"
+                      :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="salesOpportunity">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.salesOpportunity"></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-row>
+          </div>
+          <!-- 鏉℃涓庢潯浠� -->
+          <div class="basic-info-title">鏉℃涓庢潯浠�</div>
+          <div class="address-view">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="鏉℃涓庢潯浠�" prop="termsTreaty">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 4 }"
+                    v-model="editConfig.infomation.termsTreaty"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 闄勪欢淇℃伅 -->
+          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="闄勪欢" prop="">
+                  <div class="annex-view">
+                    <div @click="addAnnexClick">娣诲姞</div>
+                    <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 浜у搧绠$悊 -->
+          <div class="basic-info-title" style="display: flex">
+            浜у搧绠$悊
+            <div style="margin-left: 400px">
+              甯佺
+              <el-select v-model="editConfig.infomation.currency" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
+                <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
+            </div>
+          </div>
+          <div class="product-view">
+            <CommonFormTableView :product-table-list="productTableList" />
+          </div>
+          <!-- 閫夋嫨瀹℃壒娴佺▼ -->
+          <div class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="20">
+                <el-form-item label="瀹℃壒娴佺▼" prop="approvalWorkflow">
+                  <el-select
+                    v-model="editConfig.infomation.approvalWorkflow"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 100%"
+                  >
+                    <el-option
+                      v-for="item in approvalWorkflowOptions"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="瀹℃壒姝ラ" prop="approvalSteps">
+                  <el-input v-model="editConfig.infomation.approvalSteps"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="瀹℃壒浜�" prop="approvalPerson">
+                  <el-input v-model="editConfig.infomation.approvalPerson"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="瀹℃壒鎰忚" prop="approvalOpinion">
+                  <el-input v-model="editConfig.infomation.approvalOpinion" type="textarea" :rows="2"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </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 size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import CommonSelectView from "@/components/makepager/CommonSelectView"
+import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+export default {
+  name: "QuotationDialog",
+  props: {
+    editCommonConfig: {
+      type: Object,
+      default: () => {
+        return {
+          visible: false,
+          title: "鏂板缓",
+          infomation: {
+            customName: "",
+            quotationNo: "AC6521",
+            quotationStatus: "",
+            validTo: "",
+            contactName: "",
+            salesHead: "",
+            salesOpportunity: "",
+            termsTreaty: "",
+            approvalWorkflow: "",
+            approvalSteps: "",
+            approvalPerson: "",
+            approvalOpinion: ""
+          }
+        }
+      }
+    }
+  },
+  components: { CommonSelectView, CommonFormTableView },
+  computed: {
+    searchCommonHeight() {
+      return this.$refs.searchCommonView.offsetHeight
+    }
+  },
+  data() {
+    return {
+      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" }]
+      },
+      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: [], // 鎶ヤ环鍗曠姸鎬�
+      currencyOptions: [
+        { value: "1", label: "浜烘皯甯�(楼)" },
+        { value: "2", label: "鑻遍晳(拢)" },
+        { value: "3", label: "娆у厓(鈧�)" }
+      ], // 甯佺
+      approvalWorkflowOptions: [], // 瀹℃壒娴佺▼
+      productTableList: {
+        tableData: [
+          {
+            id: "1",
+            productNumber: "123",
+            productName: "",
+            startDate: "",
+            endDate: "2016-05-02",
+            number: "",
+            address: ""
+          }
+        ]
+      }
+    }
+  },
+  created() {},
+  methods: {
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {}
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style lang="scss" scoped>
+.add-quotation {
+  .basic-info {
+    .basic-info-title {
+      background-color: #f4f8fe;
+      padding-left: 10px;
+      font-size: 15px;
+      font-weight: bold;
+      color: #666;
+      height: 42px;
+      line-height: 42px;
+    }
+    .basic-info-view {
+      margin-top: 10px;
+      padding-right: 40px;
+      .custom-name {
+        display: flex;
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 18px;
+        }
+      }
+    }
+    .address-view {
+      margin-top: 10px;
+      padding-right: 40px;
+    }
+    .annex-view {
+      display: flex;
+      color: #6166d3;
+      .setFormat {
+        margin-left: 10px;
+      }
+    }
+  }
+  .unflod-collapse {
+    display: flex;
+    height: 30px;
+    justify-content: center;
+    align-items: center;
+    color: #6166d3;
+  }
+  .dialog-footer {
+    background-color: #f5f5f5;
+    height: 55px;
+    line-height: 55px;
+  }
+}
+::v-deep {
+  .el-dialog__header {
+    padding: 12.5px 10px;
+    border-bottom: 1px solid #e5e5e5;
+    .el-dialog__title {
+      font-size: 15px;
+      color: #323232;
+      font-weight: bold;
+    }
+  }
+  .el-dialog__body {
+    padding: 0px;
+  }
+  .el-dialog__footer {
+    padding: 0px;
+    text-align: center;
+    box-sizing: border-box;
+    border-top: 1px solid #dadee5;
+  }
+  .product-view {
+    .el-form-item__label {
+      padding: 0;
+    }
+  }
+}
+</style>
diff --git a/src/views/sales/quotation/index.vue b/src/views/sales/quotation/index.vue
index d3a1cad..805ae6d 100644
--- a/src/views/sales/quotation/index.vue
+++ b/src/views/sales/quotation/index.vue
@@ -1,28 +1,26 @@
 <template>
   <div class="quotation">
-    <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
+    <SearchCommonView
+      ref="searchCommonView"
+      :label-search="true"
+      :query-class-options="queryClassOptions"
+      :search-options="searchOptions"
+    />
     <div class="btn-pager">
-      <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
-        :operates-list="operatesList"
-      />
+      <PublicFunctionBtnView :submit-approval="true" :operates-list="operatesList" />
       <PagerView class="page" />
     </div>
     <TableCommonView ref="tableListRef" :table-list="tableList">
       <template slot="tableButton">
-        <el-table-column label="鎿嶄綔" width="100">
+        <el-table-column label="鎿嶄綔" width="60">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddQuotationDialog v-if="editConfig.visible" :edit-common-config="editConfig" />
   </div>
 </template>
 
@@ -31,7 +29,7 @@
 import PublicFunctionBtnView from "@/components/makepager/PublicFunctionBtnView"
 import PagerView from "@/components/makepager/PagerView"
 import TableCommonView from "@/components/makepager/TableCommonView"
-import AddSalesLeadDialog from "@/views/custom/salesLead/AddSalesLeadDialog"
+import AddQuotationDialog from "@/views/sales/quotation/AddQuotationDialog"
 
 export default {
   name: "QuotationView",
@@ -41,7 +39,7 @@
     PublicFunctionBtnView,
     PagerView,
     TableCommonView,
-    AddSalesLeadDialog
+    AddQuotationDialog
   },
   computed: {
     searchCommonHeight() {
@@ -53,9 +51,9 @@
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "浠婃棩鍒涘缓" },
+        { value: "3", label: "鏈懆鍒涘缓" },
+        { value: "4", label: "鏈湀鍒涘缓" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,9 +64,9 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
@@ -83,31 +81,29 @@
       this.tableList = {
         tableInfomation: [
           {
+            quotationNo: "QUO109",
             customName: "123123",
-            customType: "鏅�氬鎴�",
+            contactName: "椹噷濂�",
             salesHead: "绯荤粺绠$悊鍛�",
             modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
+            subTotal: "锟�9,499.00",
+            total: "锟�9,499.00",
             productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            number: "1.00",
+            priceTax: "锟�9499.00"
           }
         ],
         tableColumn: [
+          { label: "鎶ヤ环鍗曞彿", prop: "quotationNo", min: 90 }, // 鎶ヤ环鍗曞彿
           { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
+          { label: "鑱旂郴浜哄鍚�", prop: "contactName", min: 90 }, // 鑱旂郴浜哄鍚�
           { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
           { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
+          { label: "灏忚", prop: "subTotal" }, // 灏忚
+          { label: "鍚堣", prop: "total" }, // 鍚堣
           { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "鏁伴噺", prop: "number" }, // 鏁伴噺
+          { label: "浠风◣鍚堣", prop: "priceTax" } // 浠风◣鍚堣
         ]
       }
       this.searchOptions = []
@@ -118,47 +114,41 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
-        saleLeadNumber: "LEA50",
+        quotationNo: "AC6521",
+        quotationStatus: "",
+        validTo: "",
         contactName: "",
-        contactDuties: "",
-        phoneNumber: "",
-        businessStatus: "鏂板缓",
-        businessSource: "1",
-        owner: "",
-        position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        address: ""
+        salesHead: "",
+        salesOpportunity: "",
+        termsTreaty: "",
+        approvalWorkflow: "",
+        approvalSteps: "",
+        approvalPerson: "",
+        approvalOpinion: ""
       }
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.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: ""
+      this.editConfig.visible = true
+      this.editConfig.title = "缂栬緫"
+      this.editConfig.infomation = {
+        customName: "",
+        quotationNo: "AC6521",
+        quotationStatus: "",
+        validTo: "",
+        contactName: "",
+        salesHead: "",
+        salesOpportunity: "",
+        termsTreaty: "",
+        approvalWorkflow: "",
+        approvalSteps: "",
+        approvalPerson: "",
+        approvalOpinion: ""
       }
     }
   }
diff --git a/src/views/sales/refundForm/index.vue b/src/views/sales/refundForm/index.vue
index 46a0efe..724699f 100644
--- a/src/views/sales/refundForm/index.vue
+++ b/src/views/sales/refundForm/index.vue
@@ -2,13 +2,7 @@
   <div class="refund-form">
     <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
     <div class="btn-pager">
-      <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
-        :operates-list="operatesList"
-      />
+      <PublicFunctionBtnView :receive="false" :submit-approval="true" :operates-list="operatesList" />
       <PagerView class="page" />
     </div>
     <TableCommonView ref="tableListRef" :table-list="tableList">
@@ -16,13 +10,12 @@
         <el-table-column label="鎿嶄綔" width="100">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" />
   </div>
 </template>
 
@@ -53,9 +46,9 @@
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "鐜伴噾閫�娆�" },
+        { value: "3", label: "鏃犻渶鍙戠エ" },
+        { value: "4", label: "鏈湀閫�娆�" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,9 +59,9 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
@@ -83,31 +76,27 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
+            refundOrderNo: "TKD20220118-44",
+            customName: "涓囩鐗╂枡鍙戝睍鏈夐檺鍏徃",
+            refundDate: "2022-01-18",
+            account: "浜烘皯甯佽处鎴�",
+            whetherInvoicing: "鏈紑",
+            paymentMethod: "鐜伴噾",
             salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
-            productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            modifyTime: "202-01-18 13:11:05",
+            priceTax: "锟�12.00"
           }
         ],
         tableColumn: [
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
-          { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "閫�娆惧崟缂栧彿", prop: "refundOrderNo" },
+          { label: "瀹㈡埛鍚嶇О", prop: "customName", 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: "priceTax" }
         ]
       }
       this.searchOptions = []
@@ -118,9 +107,9 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
         saleLeadNumber: "LEA50",
         contactName: "",
@@ -141,9 +130,9 @@
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "缂栬緫"
+      this.editConfig.infomation = {
         customName: row.customName,
         saleLeadNumber: row.saleLeadNumber,
         contactName: row.contactName,
diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
new file mode 100644
index 0000000..a79366c
--- /dev/null
+++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -0,0 +1,404 @@
+<template>
+  <div class="add-sales-details">
+    <el-dialog
+      :title="editCommonConfig.title + '閿�鍞槑缁嗗崟'"
+      :visible.sync="editConfig.visible"
+      :width="dialogWidth"
+      :before-close="handleClose"
+    >
+      <el-form
+        ref="form"
+        :model="editConfig.infomation"
+        :rules="rules"
+        label-position="right"
+        label-width="308px"
+        size="mini"
+        style="height: 60vh; overflow-x: hidden"
+      >
+        <!-- 淇℃伅 -->
+        <div class="basic-info">
+          <!-- 鍩烘湰淇℃伅 -->
+          <div class="basic-info-title">鍩烘湰淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.customName"></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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="閿�鍞満浼�" prop="salesOpportunity">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.salesOpportunity"></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="selSourceOrder">
+                  <el-select v-model="editConfig.infomation.selSourceOrder" size="mini" style="width: 63%">
+                    <el-option
+                      v-for="item in selSourceOrderOptions"
+                      :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="signDate">
+                  <el-date-picker v-model="editConfig.infomation.signDate" type="date" placeholder="閫夋嫨鏃ユ湡">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="閿�鍞礋璐d汉" prop="salesHead">
+                  <el-select
+                    v-model="editConfig.infomation.salesHead"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option
+                      v-for="item in salesHeadOptions"
+                      :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="deliveryDate">
+                  <el-date-picker v-model="editConfig.infomation.deliveryDate" type="date" placeholder="閫夋嫨鏃ユ湡">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="寰俊璁㈠崟鐘舵��" prop="wechatOrderStatus">
+                  <CommonSelectView
+                    :common-value="editConfig.infomation.wechatOrderStatus"
+                    :common-options="wechatOrderStatusOptions"
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 鏀惰揣淇℃伅 -->
+          <div class="basic-info-title">鏀惰揣淇℃伅</div>
+          <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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鏀惰揣浜鸿仈绯绘柟寮�" prop="consigneeContactInfo">
+                  <el-input v-model="editConfig.infomation.consigneeContactInfo"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="鏀惰揣鍦板潃" prop="shippingAddress">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.shippingAddress"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 鏉℃涓庢潯浠� -->
+          <div class="basic-info-title">鏉℃涓庢潯浠�</div>
+          <div class="address-view">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="鏉℃涓庢潯浠�" prop="termsTreaty">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 4 }"
+                    v-model="editConfig.infomation.termsTreaty"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 澶囨敞淇℃伅 -->
+          <div class="basic-info-title">澶囨敞淇℃伅</div>
+          <div class="address-view">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="澶囨敞" prop="notes">
+                  <el-input type="textarea" :autosize="{ minRows: 2 }" v-model="editConfig.infomation.notes"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 闄勪欢淇℃伅 -->
+          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="闄勪欢" prop="">
+                  <div class="annex-view">
+                    <div @click="addAnnexClick">娣诲姞</div>
+                    <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 浜у搧绠$悊 -->
+          <div class="basic-info-title" style="display: flex">
+            浜у搧绠$悊
+            <div style="margin-left: 400px">
+              甯佺
+              <el-select v-model="editConfig.infomation.currency" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
+                <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
+            </div>
+          </div>
+          <div class="product-view">
+            <CommonFormTableView :product-table-list="productTableList" />
+          </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">
+                <el-form-item label="瀹℃壒娴佺▼" prop="approvalWorkflow">
+                  <el-select
+                    v-model="editConfig.infomation.approvalWorkflow"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 100%"
+                  >
+                    <el-option
+                      v-for="item in approvalWorkflowOptions"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="瀹℃壒姝ラ" prop="approvalSteps">
+                  <el-input v-model="editConfig.infomation.approvalSteps"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="瀹℃壒浜�" prop="approvalPerson">
+                  <el-input v-model="editConfig.infomation.approvalPerson"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="闇�瑕佸姞鎬ュ鎵�" prop="approvalUrgent">
+                  <el-checkbox v-model="editConfig.infomation.approvalUrgent"></el-checkbox>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="瀹℃壒鎰忚" prop="approvalOpinion">
+                  <el-input v-model="editConfig.infomation.approvalOpinion" type="textarea" :rows="2"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </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 size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import CommonSelectView from "@/components/makepager/CommonSelectView"
+import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+export default {
+  name: "AddSalesDetailsDialog",
+  props: {
+    editCommonConfig: {
+      type: Object,
+      default: () => {
+        return {
+          visible: false,
+          title: "鏂板缓",
+          infomation: {
+            customName: "",
+            orderNumber: "XSHT521",
+            salesOpportunity: "",
+            selSourceOrder: "",
+            signDate: "",
+            salesHead: "",
+            deliveryDate: "",
+            wechatOrderStatus: "",
+            consignee: "",
+            consigneeContactInfo: "",
+            shippingAddress: "",
+            termsTreaty: "",
+            notes: "",
+            approvalWorkflow: "",
+            approvalSteps: "",
+            approvalPerson: "",
+            approvalUrgent: "",
+            approvalOpinion: ""
+          }
+        }
+      }
+    }
+  },
+  components: { CommonSelectView, 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" }]
+      },
+      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: "閿�鍞瓙鍗�" }],
+      wechatOrderStatusOptions: [], // 寰俊璁㈠崟鐘舵��
+      currencyOptions: [
+        { value: "1", label: "浜烘皯甯�(楼)" },
+        { value: "2", label: "鑻遍晳(拢)" },
+        { value: "3", label: "娆у厓(鈧�)" }
+      ], // 甯佺
+      approvalWorkflowOptions: [], // 瀹℃壒娴佺▼
+      productTableList: {
+        tableData: [
+          {
+            id: "1",
+            productNumber: "123",
+            productName: "",
+            startDate: "",
+            endDate: "2016-05-02",
+            number: "",
+            address: ""
+          }
+        ]
+      }
+    }
+  },
+  created() {},
+  methods: {
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {}
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style lang="scss" scoped>
+.add-sales-details {
+  .basic-info {
+    .basic-info-title {
+      background-color: #f4f8fe;
+      padding-left: 10px;
+      font-size: 15px;
+      font-weight: bold;
+      color: #666;
+      height: 42px;
+      line-height: 42px;
+    }
+    .basic-info-view {
+      margin-top: 10px;
+      padding-right: 40px;
+      .custom-name {
+        display: flex;
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 18px;
+        }
+      }
+    }
+    .address-view {
+      margin-top: 10px;
+      padding-right: 40px;
+    }
+    .annex-view {
+      display: flex;
+      color: #6166d3;
+      .setFormat {
+        margin-left: 10px;
+      }
+    }
+  }
+  .unflod-collapse {
+    display: flex;
+    height: 30px;
+    justify-content: center;
+    align-items: center;
+    color: #6166d3;
+  }
+  .dialog-footer {
+    background-color: #f5f5f5;
+    height: 55px;
+    line-height: 55px;
+  }
+}
+::v-deep {
+  .el-dialog__header {
+    padding: 12.5px 10px;
+    border-bottom: 1px solid #e5e5e5;
+    .el-dialog__title {
+      font-size: 15px;
+      color: #323232;
+      font-weight: bold;
+    }
+  }
+  .el-dialog__body {
+    padding: 0px;
+  }
+  .el-dialog__footer {
+    padding: 0px;
+    text-align: center;
+    box-sizing: border-box;
+    border-top: 1px solid #dadee5;
+  }
+  .product-view {
+    .el-form-item__label {
+      padding: 0;
+    }
+  }
+}
+</style>
diff --git a/src/views/sales/salesDetails/index.vue b/src/views/sales/salesDetails/index.vue
index e82b948..9bc9112 100644
--- a/src/views/sales/salesDetails/index.vue
+++ b/src/views/sales/salesDetails/index.vue
@@ -2,27 +2,20 @@
   <div class="sales-details">
     <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
     <div class="btn-pager">
-      <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
-        :operates-list="operatesList"
-      />
+      <PublicFunctionBtnView :submit-approval="true" :operates-list="operatesList" />
       <PagerView class="page" />
     </div>
-    <TableCommonView ref="tableListRef" :table-list="tableList">
+    <TableCommonView ref="tableListRef" :show-summary="showSummary" :table-list="tableList">
       <template slot="tableButton">
-        <el-table-column label="鎿嶄綔" width="100">
+        <el-table-column label="鎿嶄綔" width="60">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddSalesDetailsDialog v-if="editConfig.visible" :edit-common-config="editConfig" />
   </div>
 </template>
 
@@ -31,7 +24,7 @@
 import PublicFunctionBtnView from "@/components/makepager/PublicFunctionBtnView"
 import PagerView from "@/components/makepager/PagerView"
 import TableCommonView from "@/components/makepager/TableCommonView"
-import AddSalesLeadDialog from "@/views/custom/salesLead/AddSalesLeadDialog"
+import AddSalesDetailsDialog from "@/views/sales/salesDetails/AddSalesDetailsDialog"
 
 export default {
   name: "SalesDetails",
@@ -41,7 +34,7 @@
     PublicFunctionBtnView,
     PagerView,
     TableCommonView,
-    AddSalesLeadDialog
+    AddSalesDetailsDialog
   },
   computed: {
     searchCommonHeight() {
@@ -53,9 +46,10 @@
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "宸插彂璐�" },
+        { value: "3", label: "寰呴噰璐�" },
+        { value: "4", label: "鏈湀浜や粯" },
+        { value: "5", label: "宸蹭綔搴�" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,12 +60,26 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
+      },
+      showSummary: {
+        show: true,
+        sumProp: [
+          "receiveTotalAmount",
+          "total",
+          "amountReceivable",
+          "invoicedAmount",
+          "uninvoicedAmount",
+          "number",
+          "unOutoundNo",
+          "priceTax"
+        ],
+        mergeNumber: 6
       }
     }
   },
@@ -83,31 +91,39 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
+            orderNumber: "XSHT265",
+            customName: "55555",
+            signDate: "2023-06-25",
             salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
+            outboundStatus: "鏈嚭搴�",
+            receiveTotalAmount: "8000.00",
+            total: "8000.00",
+            amountReceivable: "8000.00",
+            invoicedAmount: "8000.00",
+            uninvoicedAmount: "8000.00",
             productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            number: "1.00",
+            taxUnitPrice: "8000.00",
+            unOutoundNo: "1.00",
+            priceTax: "8000.00"
           }
         ],
         tableColumn: [
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
-          { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "璁㈠崟缂栧彿", prop: "orderNumber" },
+          { label: "瀹㈡埛鍚嶇О", prop: "customName" },
+          { label: "绛剧害鏃ユ湡", prop: "signDate" },
+          { label: "閿�鍞礋璐d汉", prop: "salesHead" },
+          { label: "鍑哄簱鐘舵��", prop: "outboundStatus" },
+          { label: "宸叉敹鎬婚", prop: "receiveTotalAmount", price: true },
+          { label: "鍚堣", prop: "total", price: true },
+          { label: "搴旀敹浣欓", prop: "amountReceivable", price: true },
+          { label: "宸插紑绁ㄩ噾棰�", prop: "invoicedAmount", price: true },
+          { label: "鏈紑绁ㄩ噾棰�", prop: "uninvoicedAmount", price: true },
+          { label: "浜у搧鍚嶇О", prop: "productName" },
+          { label: "鏁伴噺", prop: "number" },
+          { label: "鍚◣鍗曚环", prop: "taxUnitPrice", price: true },
+          { label: "鏈嚭搴撴暟閲�", prop: "unOutoundNo" },
+          { label: "浠风◣鍚堣", prop: "priceTax", price: true }
         ]
       }
       this.searchOptions = []
@@ -118,47 +134,51 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
-        saleLeadNumber: "LEA50",
-        contactName: "",
-        contactDuties: "",
-        phoneNumber: "",
-        businessStatus: "鏂板缓",
-        businessSource: "1",
-        owner: "",
-        position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        address: ""
+        orderNumber: "XSHT521",
+        salesOpportunity: "",
+        selSourceOrder: "",
+        signDate: "",
+        salesHead: "",
+        deliveryDate: "",
+        wechatOrderStatus: "",
+        consignee: "",
+        consigneeContactInfo: "",
+        shippingAddress: "",
+        termsTreaty: "",
+        notes: "",
+        approvalWorkflow: "",
+        approvalSteps: "",
+        approvalPerson: "",
+        approvalOpinion: ""
       }
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.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: ""
+      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: ""
       }
     }
   }
@@ -175,4 +195,10 @@
     }
   }
 }
+::v-deep {
+  .el-table .cell,
+  .el-table th.el-table__cell > .cell {
+    padding: 0 2px;
+  }
+}
 </style>
diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
new file mode 100644
index 0000000..f11fa15
--- /dev/null
+++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -0,0 +1,558 @@
+<template>
+  <div class="add-sales-opportunity">
+    <el-dialog
+      :title="editCommonConfig.title + '閿�鍞満浼�'"
+      :visible.sync="editConfig.visible"
+      :width="dialogWidth"
+      :before-close="handleClose"
+    >
+      <el-form
+        ref="form"
+        :model="editConfig.infomation"
+        :rules="rules"
+        label-position="right"
+        label-width="308px"
+        size="mini"
+        style="height: 60vh; overflow-x: hidden"
+      >
+        <!-- 淇℃伅 -->
+        <div class="basic-info">
+          <!-- 鍩烘湰淇℃伅 -->
+          <div class="basic-info-title">鏈轰細鍩烘湰淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.customName"></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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鏈轰細鍚嶇О" prop="opportunityName">
+                  <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>
+                    <!-- <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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鍟嗘満鏉ユ簮" prop="businessSource">
+                  <CommonSelectView
+                    :common-value="editConfig.infomation.businessSource"
+                    :common-options="businessSourceOptions"
+                  />
+                </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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="閿�鍞樁娈�" prop="saleStage">
+                  <CommonSelectView
+                    :common-value="editConfig.infomation.saleStage"
+                    :common-options="saleStageOptions"
+                  />
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="閿�鍞礋璐d汉" prop="salesHead">
+                  <el-select
+                    v-model="editConfig.infomation.salesHead"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option
+                      v-for="item in salesHeadOptions"
+                      :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="oldCustomerMarket">
+                  <CommonSelectView
+                    :common-value="editConfig.infomation.oldCustomerMarket"
+                    :common-options="oldCustomerMarketOptions"
+                  />
+                </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>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 閿�鍞娴� -->
+          <div class="basic-info-title">閿�鍞娴�</div>
+          <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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="甯佺" prop="currency">
+                  <el-select
+                    v-model="editConfig.infomation.currency"
+                    placeholder="璇烽�夋嫨"
+                    size="mini"
+                    style="width: 63%"
+                  >
+                    <el-option
+                      v-for="item in currencyOptions"
+                      :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="budgetAbsoluteValue">
+                  <el-input v-model="editConfig.infomation.budgetAbsoluteValue"></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-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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="褰撳墠鐘舵��" prop="currentState">
+                  <CommonSelectView
+                    :common-value="editConfig.infomation.currentState"
+                    :common-options="currentStateOptions"
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 鍟嗘満涓冭绱� -->
+          <div class="basic-info-title">鍟嗘満涓冭绱�(5W2P)</div>
+          <div class="address-view">
+            <el-row>
+              <el-col :span="20">
+                <el-form-item label="瀹㈡埛闇�姹傛垨鐥涚偣锛坵hy锛�" prop="demandPainPoint">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.demandPainPoint"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="鏄惁宸茬粡绔嬮」锛坧lan锛�" prop="projectApproval">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.projectApproval"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="璧勯噾棰勭畻鏄灏戯紙plan锛�" prop="fundBudget">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.fundBudget"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="鍏抽敭鍐崇瓥浜烘槸璋侊紙who锛�" prop="decisionMaker">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.decisionMaker"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="鍏抽敭鍐崇瓥鍥犵礌鏈夊摢浜涳紙what锛�" prop="decisionFactors">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.decisionFactors"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="鍐崇瓥娴佺▼鏄�庢牱鐨勶紙what锛�" prop="decisionFlow">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.decisionFlow"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="绔炰簤瀵规墜鎻愪緵鐨勬柟妗堬紙what锛�" prop="programme">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.programme"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- SWOT鍒嗘瀽 -->
+          <div class="basic-info-title">SWOT鍒嗘瀽</div>
+          <div class="address-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="浼樺娍(S)" prop="advantage">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.advantage"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鍔e娍(W)" prop="disadvantage">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.disadvantage"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鏈轰細(O)" prop="opportunity">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.opportunity"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="濞佽儊(T)" prop="threaten">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2 }"
+                    v-model="editConfig.infomation.threaten"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 鍦板潃淇℃伅 -->
+          <div class="basic-info-title">鍦板潃淇℃伅</div>
+          <div class="address-view">
+            <el-row>
+              <el-col :span="20">
+                <el-form-item label="瀹氫綅" prop="position">
+                  <el-input v-model="editConfig.infomation.position"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="鍦板浘" prop="map">
+                  <div style="height: 100px"></div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鍥藉" prop="country">
+                  <CommonSelectView :common-value="editConfig.infomation.country" :common-options="countryOptions" />
+                </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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鍩庡競" prop="city">
+                  <CommonSelectView :common-value="editConfig.infomation.city" :common-options="cityOptions" />
+                </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>
+              </el-col>
+              <el-col :span="20">
+                <el-form-item label="璇︾粏鍦板潃" prop="address">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2, maxRows: 4 }"
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="editConfig.infomation.address"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 澶囨敞淇℃伅 -->
+          <div class="basic-info-title">澶囨敞淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="20">
+                <el-form-item label="澶囨敞" prop="notes">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2, maxRows: 4 }"
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="editConfig.infomation.notes"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 闄勪欢淇℃伅 -->
+          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="闄勪欢" prop="">
+                  <div class="annex-view">
+                    <div @click="addAnnexClick">娣诲姞</div>
+                    <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
+        <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import CommonSelectView from "@/components/makepager/CommonSelectView"
+export default {
+  name: "AddSalesOpportunityDialog",
+  props: {
+    editCommonConfig: {
+      type: Object,
+      default: () => {
+        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: ""
+          }
+        }
+      }
+    }
+  },
+  components: { CommonSelectView },
+  computed: {
+    searchCommonHeight() {
+      return this.$refs.searchCommonView.offsetHeight
+    }
+  },
+  data() {
+    return {
+      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" }],
+        currency: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        expectDealDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+        expectContractAmount: [{ 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: "閿�鍞�荤洃" }
+      ],
+      businessTypeOptions: [], // 鍟嗘満绫诲瀷
+      saleStageOptions: [], // 閿�鍞樁娈�
+      oldCustomerMarketOptions: [], // 鑰佸鎴疯惀閿�
+      possibleOptions: [], // 鍙兘鎬�
+      currencyOptions: [], // 甯佺
+      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: "瑗垮煄鍖�" }
+      ] // 鍖哄煙
+    }
+  },
+  created() {},
+  methods: {
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {}
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style lang="scss" scoped>
+.add-sales-opportunity {
+  .basic-info {
+    .basic-info-title {
+      background-color: #f4f8fe;
+      padding-left: 10px;
+      font-size: 15px;
+      font-weight: bold;
+      color: #666;
+      height: 42px;
+      line-height: 42px;
+    }
+    .basic-info-view {
+      margin-top: 10px;
+      padding-right: 40px;
+      .custom-name {
+        display: flex;
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 18px;
+        }
+      }
+    }
+    .address-view {
+      margin-top: 10px;
+      padding-right: 40px;
+    }
+    .annex-view {
+      display: flex;
+      color: #6166d3;
+      .setFormat {
+        margin-left: 10px;
+      }
+    }
+  }
+  .unflod-collapse {
+    display: flex;
+    height: 30px;
+    justify-content: center;
+    align-items: center;
+    color: #6166d3;
+  }
+  .dialog-footer {
+    background-color: #f5f5f5;
+    height: 55px;
+    line-height: 55px;
+  }
+}
+::v-deep {
+  .el-dialog__header {
+    padding: 12.5px 10px;
+    border-bottom: 1px solid #e5e5e5;
+    .el-dialog__title {
+      font-size: 15px;
+      color: #323232;
+      font-weight: bold;
+    }
+  }
+  .el-dialog__body {
+    padding: 0px;
+  }
+  .el-dialog__footer {
+    padding: 0px;
+    text-align: center;
+    box-sizing: border-box;
+    border-top: 1px solid #dadee5;
+  }
+}
+</style>
diff --git a/src/views/sales/salesOpportunity/index.vue b/src/views/sales/salesOpportunity/index.vue
index 794f88f..c602de2 100644
--- a/src/views/sales/salesOpportunity/index.vue
+++ b/src/views/sales/salesOpportunity/index.vue
@@ -4,9 +4,8 @@
     <div class="btn-pager">
       <PublicFunctionBtnView
         :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
         :statistics="true"
+        :custom-funnel="true"
         :operates-list="operatesList"
       />
       <PagerView class="page" />
@@ -22,7 +21,7 @@
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddSalesOpportunityDialog v-if="editConfig.visible" :edit-common-config="editConfig" />
   </div>
 </template>
 
@@ -31,7 +30,7 @@
 import PublicFunctionBtnView from "@/components/makepager/PublicFunctionBtnView"
 import PagerView from "@/components/makepager/PagerView"
 import TableCommonView from "@/components/makepager/TableCommonView"
-import AddSalesLeadDialog from "@/views/custom/salesLead/AddSalesLeadDialog"
+import AddSalesOpportunityDialog from "@/views/sales/salesOpportunity/AddSalesOpportunityDialog"
 
 export default {
   name: "SalesOpportunity",
@@ -41,7 +40,7 @@
     PublicFunctionBtnView,
     PagerView,
     TableCommonView,
-    AddSalesLeadDialog
+    AddSalesOpportunityDialog
   },
   computed: {
     searchCommonHeight() {
@@ -51,7 +50,21 @@
   data() {
     return {
       tableList: {},
-      queryClassOptions: [{ value: "1", label: "鍏ㄩ儴" }],
+      queryClassOptions: [
+        { value: "1", label: "鍏ㄩ儴" },
+        { value: "2", label: "鍒濇湡娌熼��" },
+        { value: "3", label: "鍟嗗姟璋堝垽" },
+        { value: "4", label: "鎴愬姛缁撴" },
+        { value: "5", label: "澶辫触缁撴" },
+        { value: "6", label: "鏈懆鍒涘缓" },
+        { value: "7", label: "鏈湀鍒涘缓" },
+        { value: "8", label: "鏈懆棰勮鎴愪氦" },
+        { value: "9", label: "鏈湀棰勮鎴愪氦" },
+        { value: "10", label: "鍦ㄨ皥鍟嗘満" },
+        { value: "11", label: "椤圭洰鏆傚仠" },
+        { value: "12", label: "15澶╂湭鑱旂郴鍟嗘満" },
+        { value: "13", label: "棰勮閲戦1W浠ヤ笂" }
+      ],
       searchOptions: [],
       operatesList: [
         { id: "1", name: "鍏变韩" },
@@ -61,9 +74,9 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鎭㈠京" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
@@ -78,31 +91,29 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
-            salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
-            productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            opportunityName: "123123",
+            customName: "涓婃捣閾冮摏",
+            salesOpportunityNo: "POT205",
+            contactName: "鍒樻��",
+            saleStage: "鍒濇湡娌熼��",
+            possible: "A绫诲鎴�",
+            expectDealDate: "50",
+            expectContractAmount: "2023-05-28",
+            budgetAbsoluteValue: "锟�200,000.00",
+            salesHead: "绯荤粺绠$悊鍛�"
           }
         ],
         tableColumn: [
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
-          { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { 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汉
         ]
       }
       this.searchOptions = []
@@ -113,47 +124,85 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
-        saleLeadNumber: "LEA50",
+        salesOpportunityNo: "POT521",
+        opportunityName: "",
         contactName: "",
-        contactDuties: "",
-        phoneNumber: "",
-        businessStatus: "鏂板缓",
-        businessSource: "1",
-        owner: "",
+        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",
-        address: ""
+        notes: ""
       }
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.infomation = {
-        customName: row.customName,
-        saleLeadNumber: row.saleLeadNumber,
-        contactName: row.contactName,
-        contactDuties: row.contactDuties,
-        phoneNumber: row.phoneNumber,
-        businessStatus: "鏂板缓",
-        businessSource: row.businessSource,
-        owner: row.owner,
+      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",
-        address: ""
+        notes: ""
       }
     }
   }
diff --git a/src/views/sales/salesReturn/index.vue b/src/views/sales/salesReturn/index.vue
index e78644d..7029c18 100644
--- a/src/views/sales/salesReturn/index.vue
+++ b/src/views/sales/salesReturn/index.vue
@@ -2,27 +2,20 @@
   <div class="sales-return">
     <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
     <div class="btn-pager">
-      <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
-        :operates-list="operatesList"
-      />
+      <PublicFunctionBtnView :receive="false" :import-button="false" receive:operates-list="operatesList" />
       <PagerView class="page" />
     </div>
     <TableCommonView ref="tableListRef" :table-list="tableList">
       <template slot="tableButton">
-        <el-table-column label="鎿嶄綔" width="100">
+        <el-table-column label="鎿嶄綔" width="60">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" />
   </div>
 </template>
 
@@ -53,9 +46,10 @@
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "涓" },
+        { value: "3", label: "缁撴潫" },
+        { value: "4", label: "宸插叆搴�" },
+        { value: "4", label: "鏈叆搴�" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,9 +60,9 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
@@ -83,31 +77,27 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
+            salesReturnOrderNo: "THD20230607-44",
+            customName: "娆у厠绉戞妧鑲′唤鏈夐檺鍏徃",
+            returnDate: "2023-06-07",
+            state: "鏈叆搴�",
+            returnWarehouse: "鎬讳粨",
+            refundabe: "锟�9,499.00",
+            refunded: "锟�1,499.00",
             salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
-            productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            modifyTime: "2023-06-07 11:10:25"
           }
         ],
         tableColumn: [
-          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
-          { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "閿�鍞��璐у崟缂栧彿", prop: "salesReturnOrderNo", min: 120 },
+          { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 90 },
+          { label: "閫�璐ф棩鏈�", prop: "returnDate", min: 100 },
+          { label: "鐘舵��", prop: "state" },
+          { label: "閫�鍏ヤ粨搴�", prop: "returnWarehouse" },
+          { label: "搴旈��娆�", prop: "refundabe" },
+          { label: "宸查��娆�", prop: "refunded" },
+          { label: "閿�鍞礋璐d汉", prop: "salesHead" },
+          { label: "淇敼鏃堕棿", prop: "modifyTime" }
         ]
       }
       this.searchOptions = []
@@ -118,9 +108,9 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
         saleLeadNumber: "LEA50",
         contactName: "",
@@ -141,9 +131,9 @@
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "缂栬緫"
+      this.editConfig.infomation = {
         customName: row.customName,
         saleLeadNumber: row.saleLeadNumber,
         contactName: row.contactName,
diff --git a/src/views/sales/subOrder/AddSubOrderDialog.vue b/src/views/sales/subOrder/AddSubOrderDialog.vue
new file mode 100644
index 0000000..fd6c74e
--- /dev/null
+++ b/src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -0,0 +1,294 @@
+<template>
+  <div class="add-quotation">
+    <el-dialog
+      :title="editCommonConfig.title + '閿�鍞瓙鍗�'"
+      :visible.sync="editConfig.visible"
+      :width="dialogWidth"
+      :before-close="handleClose"
+    >
+      <el-form
+        ref="form"
+        :model="editConfig.infomation"
+        :rules="rules"
+        label-position="right"
+        label-width="308px"
+        size="mini"
+      >
+        <!-- 淇℃伅 -->
+        <div class="basic-info">
+          <!-- 鍩烘湰淇℃伅 -->
+          <div class="basic-info-title">鍩烘湰淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="customName">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.customName"></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>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="閿�鍞�诲崟" prop="masterOrder">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.masterOrder"></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-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 闄勪欢淇℃伅 -->
+          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="闄勪欢" prop="">
+                  <div class="annex-view">
+                    <div @click="addAnnexClick">娣诲姞</div>
+                    <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 浜у搧绠$悊 -->
+          <div class="basic-info-title" style="display: flex">
+            浜у搧绠$悊
+            <div style="margin-left: 400px">
+              甯佺
+              <el-select v-model="editConfig.infomation.currency" placeholder="璇烽�夋嫨" size="mini" style="width: 63%">
+                <el-option v-for="item in currencyOptions" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
+            </div>
+          </div>
+          <div class="product-view">
+            <CommonFormTableView :product-table-list="productTableList" />
+          </div>
+          <!-- 鍚堣 -->
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="7" :offset="17">
+                <el-form-item prop="discount">
+                  <template slot="label">
+                    <span>鏁村崟鎶樻墸</span>
+                    <el-select
+                      v-model="discount"
+                      placeholder="璇烽�夋嫨"
+                      size="mini"
+                      style="width: 104px; margin-left: 3px"
+                    >
+                      <el-option
+                        v-for="item in discountOptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                      >
+                      </el-option>
+                    </el-select>
+                  </template>
+                  <el-input v-model="editConfig.infomation.discount"></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-option
+                        v-for="item in adjustOptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                      >
+                      </el-option>
+                    </el-select>
+                  </template>
+                  <el-input v-model="editConfig.infomation.discount"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="7" :offset="17">
+                <el-form-item label="鍚堣" prop="total">
+                  <el-button type="text" v-model="editConfig.infomation.total" style="color: #555; font-size: 13px">{{
+                    editConfig.infomation.total ? editConfig.infomation.total : "0.00"
+                  }}</el-button>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆瓨</el-button>
+        <el-button size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+export default {
+  name: "QuotationDialog",
+  components: { CommonFormTableView },
+  props: {
+    editCommonConfig: {
+      type: Object,
+      default: () => {
+        return {
+          visible: false,
+          title: "鏂板缓",
+          infomation: {
+            customName: "",
+            documentNumber: "AC6521",
+            masterOrder: "",
+            owner: "",
+            currency: "",
+            discount: "",
+            total: "14.00"
+          }
+        }
+      }
+    }
+  },
+  computed: {},
+  data() {
+    return {
+      dialogWidth: "80%",
+      editConfig: this.editCommonConfig,
+      rules: {
+        documentNumber: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+        owner: [{ 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: "閿�鍞�荤洃" }
+      ],
+      discount: "2",
+      discountOptions: [
+        { value: "1", label: "鐧惧垎姣旈檷浠�" },
+        { value: "2", label: "鐩存帴闄嶄环" }
+      ], // 鏁村崟鎶樻墸
+      adjust: "1",
+      adjustOptions: [
+        { value: "1", label: "澧炲姞" },
+        { value: "2", label: "鍑忓皯" }
+      ], // 璋冩暣
+      productTableList: {
+        tableData: [
+          {
+            id: "1",
+            productNumber: "123",
+            productName: "",
+            startDate: "",
+            endDate: "2016-05-02",
+            number: "",
+            address: ""
+          }
+        ]
+      }
+    }
+  },
+  created() {},
+  methods: {
+    handleClose() {
+      this.editConfig.visible = false
+    },
+    // 娣诲姞闄勪欢
+    addAnnexClick() {},
+    // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
+    setFormatClick() {}
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style lang="scss" scoped>
+.add-quotation {
+  .basic-info {
+    .basic-info-title {
+      background-color: #f4f8fe;
+      padding-left: 10px;
+      font-size: 15px;
+      font-weight: bold;
+      color: #666;
+      height: 42px;
+      line-height: 42px;
+    }
+    .basic-info-view {
+      margin-top: 10px;
+      padding-right: 40px;
+      .custom-name {
+        display: flex;
+        .common-select-btn {
+          margin-left: 5px;
+          font-size: 18px;
+        }
+      }
+    }
+    .address-view {
+      margin-top: 10px;
+      padding-right: 40px;
+    }
+    .annex-view {
+      display: flex;
+      color: #6166d3;
+      .setFormat {
+        margin-left: 10px;
+      }
+    }
+  }
+  .dialog-footer {
+    background-color: #f5f5f5;
+    height: 55px;
+    line-height: 55px;
+  }
+}
+::v-deep {
+  .el-dialog__header {
+    padding: 12.5px 10px;
+    border-bottom: 1px solid #e5e5e5;
+    .el-dialog__title {
+      font-size: 15px;
+      color: #323232;
+      font-weight: bold;
+    }
+  }
+  .el-dialog__body {
+    padding: 0px;
+  }
+  .el-dialog__footer {
+    padding: 0px;
+    text-align: center;
+    box-sizing: border-box;
+    border-top: 1px solid #dadee5;
+  }
+  .product-view {
+    .el-form-item__label {
+      padding: 0;
+    }
+  }
+}
+</style>
diff --git a/src/views/sales/subOrder/index.vue b/src/views/sales/subOrder/index.vue
index eae75a9..7eb42ec 100644
--- a/src/views/sales/subOrder/index.vue
+++ b/src/views/sales/subOrder/index.vue
@@ -2,27 +2,20 @@
   <div class="sub-order">
     <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" />
     <div class="btn-pager">
-      <PublicFunctionBtnView
-        :duplicate-check="true"
-        :list-button="true"
-        :map-button="true"
-        :statistics="true"
-        :operates-list="operatesList"
-      />
+      <PublicFunctionBtnView :operates-list="operatesList" />
       <PagerView class="page" />
     </div>
-    <TableCommonView ref="tableListRef" :table-list="tableList">
+    <TableCommonView ref="tableListRef" :show-summary="showSummary" :table-list="tableList">
       <template slot="tableButton">
-        <el-table-column label="鎿嶄綔" width="100">
+        <el-table-column label="鎿嶄綔" width="60">
           <template slot-scope="scope">
             <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-            <el-button type="text" size="small">璺熻繘</el-button>
           </template>
         </el-table-column>
       </template>
     </TableCommonView>
     <!-- 鏂板缓/缂栬緫 -->
-    <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-sales-lead-config="editSalesLeadConfig" />
+    <AddSubOrderDialog v-if="editConfig.visible" :edit-common-config="editConfig" />
   </div>
 </template>
 
@@ -31,7 +24,7 @@
 import PublicFunctionBtnView from "@/components/makepager/PublicFunctionBtnView"
 import PagerView from "@/components/makepager/PagerView"
 import TableCommonView from "@/components/makepager/TableCommonView"
-import AddSalesLeadDialog from "@/views/custom/salesLead/AddSalesLeadDialog"
+import AddSubOrderDialog from "@/views/sales/subOrder/AddSubOrderDialog"
 
 export default {
   name: "SubOrder",
@@ -41,7 +34,7 @@
     PublicFunctionBtnView,
     PagerView,
     TableCommonView,
-    AddSalesLeadDialog
+    AddSubOrderDialog
   },
   computed: {
     searchCommonHeight() {
@@ -53,9 +46,11 @@
       tableList: {},
       queryClassOptions: [
         { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "骞垮憡瀹d紶" },
-        { value: "3", label: "璺熻繘涓�" },
-        { value: "4", label: "澶辫触鍏抽棴" }
+        { value: "2", label: "宸叉壒鍑�" },
+        { value: "3", label: "瀹℃壒涓�" },
+        { value: "4", label: "鏈彁浜�" },
+        { value: "5", label: "宸查┏鍥�" },
+        { value: "6", label: "宸叉嫆缁�" }
       ],
       searchOptions: [],
       operatesList: [
@@ -66,12 +61,17 @@
         { id: "5", name: "鏇存敼鍒涘缓浜�" },
         { id: "6", name: "鏍戠粨鏋勮缃�" },
         { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍏捣鍙傛暟璁剧疆" }
+        { id: "8", name: "鎭㈠棰勮鍒楀" }
       ],
-      editSalesLeadConfig: {
+      editConfig: {
         visible: false,
         title: "鏂板缓",
         infomation: {}
+      },
+      showSummary: {
+        show: true,
+        sumProp: ["number"],
+        mergeNumber: 7
       }
     }
   },
@@ -83,31 +83,23 @@
       this.tableList = {
         tableInfomation: [
           {
-            customName: "123123",
-            customType: "鏅�氬鎴�",
-            salesHead: "绯荤粺绠$悊鍛�",
-            modifyTime: "2023-0703 11:22:12",
-            customerSize: "499浠ヤ笂",
-            importantLevel: "A绫诲鎴�",
-            customNumber: "AC651",
-            customStatus: "娼滃湪瀹㈡埛",
+            documentNumber: "ZDYBD12-1",
+            customName: "涓婃捣鏈夐檺鍏徃",
+            masterOrder: "ZDYBD03-1",
+            owner: "绯荤粺绠$悊鍛�",
+            approvalStatus: "鏈彁浜�",
             productName: "鑷姩鎵撳嵃鏈�",
-            startDate: "2023-06-27",
-            endDate: "2024-07-15"
+            number: "2.00"
           }
         ],
         tableColumn: [
+          { label: "鍗曟嵁缂栧彿", prop: "documentNumber", min: 120 }, // 鍗曟嵁缂栧彿
           { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О
-          { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷
-          { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉
-          { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿
-          { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā
-          { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆
-          { label: "瀹㈡埛缂栧彿", prop: "customNumber" }, // 瀹㈡埛缂栧彿
-          { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵��
+          { label: "閿�鍞�诲崟", prop: "masterOrder", min: 90 }, // 閿�鍞�诲崟
+          { label: "璐熻矗浜�", prop: "owner" }, // 璐熻矗浜�
+          { label: "瀹℃壒鐘舵��", prop: "approvalStatus" }, // 瀹℃壒鐘舵��
           { label: "浜у搧鍚嶇О", prop: "productName" }, // 浜у搧鍚嶇О
-          { label: "鏈嶅姟寮�濮嬫棩鏈�", prop: "startDate" }, // 鏈嶅姟寮�濮嬫棩鏈�
-          { label: "鏈嶅姟鍒版湡鏃�", prop: "endDate" } // 鏈嶅姟鍒版湡鏃�
+          { label: "鏁伴噺", prop: "number", min: 100 } // 鏁伴噺
         ]
       }
       this.searchOptions = []
@@ -118,47 +110,31 @@
     },
     // 鏂板缓
     addBtnClick() {
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = {
+      this.editConfig.visible = true
+      this.editConfig.title = "鏂板缓"
+      this.editConfig.infomation = {
         customName: "",
-        saleLeadNumber: "LEA50",
-        contactName: "",
-        contactDuties: "",
-        phoneNumber: "",
-        businessStatus: "鏂板缓",
-        businessSource: "1",
+        documentNumber: "AC6521",
+        masterOrder: "",
         owner: "",
-        position: "",
-        map: "",
-        country: "1",
-        province: "1",
-        city: "1",
-        region: "1",
-        address: ""
+        currency: "",
+        discount: "",
+        total: ""
       }
     },
     // 缂栬緫
     handleClick(row) {
       console.log(row)
-      this.editSalesLeadConfig.visible = true
-      this.editSalesLeadConfig.title = "缂栬緫"
-      this.editSalesLeadConfig.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: ""
+      this.editConfig.visible = true
+      this.editConfig.title = "缂栬緫"
+      this.editConfig.infomation = {
+        customName: "",
+        documentNumber: "AC6521",
+        masterOrder: "",
+        owner: "",
+        currency: "",
+        discount: "",
+        total: "14.00"
       }
     }
   }
diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue
index 26b0b60..83cc100 100644
--- a/src/views/service/serviceContract/AddServiceContractDialog.vue
+++ b/src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="service-contract">
+  <div class="add-service-contract">
     <el-dialog
       :title="editCommonConfig.title + '鏈嶅姟鍚堝悓'"
       :visible.sync="editConfig.visible"
@@ -339,7 +339,7 @@
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
-.service-contract {
+.add-service-contract {
   .basic-info {
     .basic-info-title {
       background-color: #f4f8fe;
diff --git a/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue b/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
index b42379d..c8ef662 100644
--- a/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
+++ b/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue
@@ -262,7 +262,6 @@
         </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 size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>
diff --git a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
index 15560b4..2c252ab 100644
--- a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
+++ b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
@@ -143,7 +143,6 @@
       </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 size="small" @click="editConfig.visible = false">鍙栨秷</el-button>
       </div>

--
Gitblit v1.8.0