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