From 624e812b40ac87bf8d7a17b83b4a3bc3bbd901fb Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期四, 03 八月 2023 18:38:58 +0800
Subject: [PATCH] 增加客户服务单(删除工单管理、消费服务单)和客户管理模块详情页

---
 src/views/service/orderManage/AddOrderManageDialog.vue |  458 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 395 insertions(+), 63 deletions(-)

diff --git a/src/views/service/orderManage/AddOrderManageDialog.vue b/src/views/service/orderManage/AddOrderManageDialog.vue
index 27c15f6..685e1d5 100644
--- a/src/views/service/orderManage/AddOrderManageDialog.vue
+++ b/src/views/service/orderManage/AddOrderManageDialog.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="order-manage">
     <el-dialog
-      :title="editCommonConfig.title + '宸ュ崟绠$悊'"
+      :title="editCommonConfig.title + '瀹㈡埛鏈嶅姟鍗�'"
       :visible.sync="editConfig.visible"
       :width="dialogWidth"
       :before-close="handleClose"
@@ -40,17 +40,30 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="宸ュ崟缂栧彿" prop="number">
+                <el-form-item label="鏈嶅姟鍗曠紪鍙�" prop="number">
                   <el-input v-model="editConfig.infomation.number"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="宸ュ崟鍚嶇О" prop="name">
-                  <el-input v-model="editConfig.infomation.name"></el-input>
+                <el-form-item label="鏈嶅姟鍚堝悓" prop="name">
+                  <div class="custom-name">
+                    <el-autocomplete
+                      v-model="editConfig.infomation.client_name"
+                      :fetch-suggestions="querySearchAsync"
+                      value-key="name"
+                      @select="handleSelectClient"
+                    ></el-autocomplete>
+                    <div class="common-select-btn" @click="selClientClick">
+                      <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
+                    </div>
+                    <div class="common-select-btn" @click="clearupClient">
+                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    </div>
+                  </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="宸ュ崟绫诲瀷" prop="orderType">
+                <el-form-item label="鏁呴殰绫诲埆" prop="orderType">
                   <div class="common-select">
                     <el-select
                       v-model="editConfig.infomation.orderType"
@@ -66,16 +79,113 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鑱旂郴浜哄鍚�" prop="contactId">
+                <el-form-item label="涓婚" prop="contactId">
+                  <el-input v-model="editConfig.infomation.contactId"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鍚堝悓璁㈠崟" prop="name">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.contactId"></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>
+                    <el-autocomplete
+                      v-model="editConfig.infomation.client_name"
+                      :fetch-suggestions="querySearchAsync"
+                      value-key="name"
+                      @select="handleSelectClient"
+                    ></el-autocomplete>
+                    <div class="common-select-btn" @click="selClientClick">
+                      <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
+                    </div>
+                    <div class="common-select-btn" @click="clearupClient">
+                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    </div>
                   </div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鎶ヤ慨鏉ユ簮" prop="reportSourceId">
+                <el-form-item label="浜у搧绫诲埆" prop="orderType">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.orderType"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in orderTypeOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="浜у搧鍚嶇О" prop="name">
+                  <div class="custom-name">
+                    <el-autocomplete
+                      v-model="editConfig.infomation.client_name"
+                      :fetch-suggestions="querySearchAsync"
+                      value-key="name"
+                      @select="handleSelectClient"
+                    ></el-autocomplete>
+                    <div class="common-select-btn" @click="selClientClick">
+                      <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
+                    </div>
+                    <div class="common-select-btn" @click="clearupClient">
+                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    </div>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鏈嶅姟鏂瑰紡" prop="orderType">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.orderType"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in orderTypeOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鏈嶅姟浜哄憳" prop="orderType">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.orderType"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in orderTypeOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鑱旂郴浜哄鍚�" prop="client_name">
+                  <div class="custom-name">
+                    <el-autocomplete
+                      v-model="editConfig.infomation.client_name"
+                      :fetch-suggestions="querySearchAsync"
+                      value-key="name"
+                      @select="handleSelectClient"
+                    ></el-autocomplete>
+                    <div class="common-select-btn" @click="selClientClick">
+                      <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
+                    </div>
+                    <div class="common-select-btn" @click="clearupClient">
+                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    </div>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="涓ラ噸绋嬪害" prop="reportSourceId">
                   <div class="common-select">
                     <el-select
                       v-model="editConfig.infomation.reportSourceId"
@@ -90,27 +200,192 @@
                   </div>
                 </el-form-item>
               </el-col>
-              <!-- <el-col :span="12">
-                <el-form-item label="閫夋嫨婧愬崟" prop="sourceSheet">
-                  <el-select v-model="editConfig.infomation.sourceSheet" size="mini">
-                    <el-option
-                      v-for="item in sourceSheetOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
-                    </el-option>
-                  </el-select>
+              <el-col :span="24">
+                <el-form-item label="涓婇棬鍦板潃" prop="problemDescription">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2, maxRows: 4 }"
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="editConfig.infomation.problemDescription"
+                  ></el-input>
                 </el-form-item>
-              </el-col> -->
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="浼樺厛绾у埆" prop="reportSourceId">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.reportSourceId"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in reportSourceOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="棰勭害涓婇棬鏃堕棿" prop="startTime">
+                  <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" placeholder="閫夋嫨鏃ユ湡">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="閿�鍞満浼�" prop="client_name">
+                  <div class="custom-name">
+                    <el-autocomplete
+                      v-model="editConfig.infomation.client_name"
+                      :fetch-suggestions="querySearchAsync"
+                      value-key="name"
+                      @select="handleSelectClient"
+                    ></el-autocomplete>
+                    <div class="common-select-btn" @click="selClientClick">
+                      <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
+                    </div>
+                    <div class="common-select-btn" @click="clearupClient">
+                      <i class="el-icon-edit-outline" title="娓呴櫎"></i>
+                    </div>
+                  </div>
+                </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="startTime">
+                  <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" placeholder="閫夋嫨鏃ユ湡">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="瀹為檯澶勭悊鏃堕棿" prop="startTime">
+                  <el-date-picker v-model="editConfig.infomation.startTime" type="datetime" placeholder="閫夋嫨鏃ユ湡">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="浜ら�氳垂" prop="reportSourceId">
+                  <el-input v-model="editConfig.infomation.problemDescription"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鏀惰垂閲戦" prop="reportSourceId">
+                  <el-input v-model="editConfig.infomation.problemDescription"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="鑺辫垂鏃堕棿" prop="reportSourceId">
+                  <div class="common-select">
+                    <el-select
+                      v-model="editConfig.infomation.reportSourceId"
+                      placeholder="璇烽�夋嫨"
+                      class="common-select-sel"
+                      size="mini"
+                    >
+                      <el-option v-for="item in reportSourceOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 鏃堕棿/閲戦 -->
+          <div class="basic-info-title">鏃堕棿/閲戦</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="甯歌闂" prop="problemDescription">
+                  <el-input v-model="editConfig.infomation.problemDescription"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="闂鎻忚堪" prop="problemDescription">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2, maxRows: 4 }"
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="editConfig.infomation.problemDescription"
+                  ></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="24">
+                <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-row>
           </div>
           <!-- 闂鎻忚堪 -->
           <div class="basic-info-title">闂鎻忚堪</div>
           <div class="basic-info-view">
             <el-row>
+              <el-col :span="12">
+                <el-form-item label="甯歌闂" prop="problemDescription">
+                  <el-input v-model="editConfig.infomation.problemDescription"></el-input>
+                </el-form-item>
+              </el-col>
               <el-col :span="24">
                 <el-form-item label="闂鎻忚堪" prop="problemDescription">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2, maxRows: 4 }"
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="editConfig.infomation.problemDescription"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+          <!-- 瑙e喅鏂规硶 -->
+          <div class="basic-info-title">瑙e喅鏂规硶</div>
+          <div class="basic-info-view">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label="瑙e喅鏂规硶" prop="problemDescription">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2, maxRows: 4 }"
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="editConfig.infomation.problemDescription"
+                  ></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="24">
+                <el-form-item label="鍐呴儴澶囨敞" prop="problemDescription">
+                  <el-input
+                    type="textarea"
+                    :autosize="{ minRows: 2, maxRows: 4 }"
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="editConfig.infomation.problemDescription"
+                  ></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="24">
+                <el-form-item label="澶囨敞" prop="problemDescription">
                   <el-input
                     type="textarea"
                     :autosize="{ minRows: 2, maxRows: 4 }"
@@ -148,46 +423,40 @@
               </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="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 v-if="editConfig.title === '缂栬緫'" class="basic-info">
+            <div class="basic-info-label" @click="expandClick('record')">
+              <i v-if="isRecordExpand" class="el-icon-arrow-down"></i>
+              <i v-else class="el-icon-arrow-up"></i>
+              <span style="margin-left: 10px">瀹㈡埛鏈嶅姟鍗曞巻鍙茶褰�</span>
+            </div>
+            <div v-show="isRecordExpand" class="basic-info-content">
+              <div class="list" v-if="recordTableList.length > 0">
+                <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+                <TableCommonView
+                  ref="recordTableListRef"
+                  :select-box="false"
+                  :table-list="recordTableList"
+                ></TableCommonView>
+              </div>
+              <div class="no-data" v-else>娌℃湁鎵惧埌浠讳綍璁板綍</div>
+            </div>
+          </div>
+          <!-- 鏈嶅姟鍚堝悓淇℃伅 -->
+          <div v-if="editConfig.title === '缂栬緫'" class="basic-info">
+            <div class="basic-info-label" @click="expandClick('contract')">
+              <i v-if="isConttractExpand" class="el-icon-arrow-down"></i>
+              <i v-else class="el-icon-arrow-up"></i>
+              <span style="margin-left: 10px">鏈嶅姟鍚堝悓淇℃伅</span>
+            </div>
+            <div v-show="isConttractExpand" class="basic-info-content">
+              <div class="list" v-if="recordTableList.length > 0">
+                <PagerView class="page" :pager-options="pagerOptions1" v-on="pagerEvents" />
+                <TableCommonView ref="tableListRef" :select-box="false" :table-list="tableList"></TableCommonView>
+              </div>
+              <div class="no-data" v-else>娌℃湁鎵惧埌浠讳綍璁板綍</div>
+            </div>
+          </div>
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -209,8 +478,10 @@
 import { getAllData } from "@/api/client/client"
 import { getAddOrderManage, getUpdateOrderManage } from "@/api/serviceManage/orderManage"
 import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
 export default {
   name: "AddOrderManageDialog",
+  mixins: [pageMixin],
   props: {
     editCommonConfig: {
       type: Object,
@@ -253,14 +524,43 @@
         editVisible: false,
         title: "",
         infomation: {}
+      },
+      isRecordExpand: true,
+      recordTableList: {},
+      pagerOptions: {
+        currPage: 1,
+        pageSize: 5,
+        totalCount: 0
+      },
+      isConttractExpand: true,
+      tableList: {},
+      pagerOptions1: {
+        currPage: 1,
+        pageSize: 5,
+        totalCount: 0
       }
     }
   },
   created() {
     this.$store.dispatch("geClient")
     this.getCommonData()
+    this.setTable()
   },
   methods: {
+    setTable() {
+      this.recordTableList = {
+        tableInfomation: [],
+        tableColumn: [
+          { label: "鏈嶅姟鍗曠紪鍙�", prop: "number", min: 100 },
+          { label: "涓婚", prop: "name" },
+          { label: "鏈嶅姟浜哄憳", prop: "clientId", min: 130 },
+          { label: "鏈嶅姟鏂瑰紡", prop: "contactName" },
+          { label: "浜у搧绫诲埆", prop: "name" },
+          { label: "浜у搧鍚嶇О", prop: "orderType" },
+          { label: "淇敼鏃堕棿", prop: "reportSourceId" }
+        ]
+      }
+    },
     getCommonData() {
       getAllData()
         .then((res) => {
@@ -367,7 +667,16 @@
     // 娣诲姞闄勪欢
     addAnnexClick() {},
     // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
-    setFormatClick() {}
+    setFormatClick() {},
+    // 灞曞紑鏀惰捣鐐瑰嚮浜嬩欢
+    expandClick(value) {
+      console.log(value)
+      if (value === "record") {
+        this.isRecordExpand = !this.isRecordExpand
+      } else if (value === "contract") {
+        this.isConttractExpand = !this.isConttractExpand
+      }
+    }
   }
 }
 </script>
@@ -408,6 +717,29 @@
         margin-left: 10px;
       }
     }
+    .basic-info {
+      .basic-info-label {
+        padding-left: 10px;
+        height: 42px;
+        line-height: 42px;
+        background: #f4f8fe;
+        color: #333;
+        font-size: 14px;
+      }
+      .basic-info-content {
+        .list {
+          .page {
+            text-align: right;
+            margin-bottom: 5px;
+          }
+        }
+        .no-data {
+          height: 40px;
+          line-height: 40px;
+          margin-left: 10px;
+        }
+      }
+    }
   }
   .dialog-footer {
     background-color: #f5f5f5;

--
Gitblit v1.8.0