From e34c2e67208bd63e320a4504ce8cf40a83ba7cbb Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期五, 07 七月 2023 18:48:09 +0800 Subject: [PATCH] 销售模块剩余部分新建页面 --- src/views/sales/generatePlan/AddGeneratePlanDialog.vue | 279 +++++++ src/views/service/serviceFollowup/AddServiceFollowupDialog.vue | 15 src/views/service/serviceFeeManage/index.vue | 5 src/views/sales/salesDetails/AddSalesDetailsDialog.vue | 65 + src/components/makepager/TableCommonView.vue | 11 src/views/custom/salesLead/index.vue | 6 src/views/service/orderManage/AddOrderManageDialog.vue | 15 src/views/sales/salesReturn/index.vue | 52 src/views/custom/followupRecords/AddFollowupRecordsDialog.vue | 15 src/components/layout/components/appsidebar/index.vue | 5 src/views/sales/contractManage/index.vue | 56 src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue | 15 src/views/service/serviceContract/AddServiceContractDialog.vue | 74 + src/components/makepager/CommonFormTableView.vue | 196 +++- src/views/sales/masterOrder/AddMasterOrderDialog.vue | 15 src/views/sales/salesReturn/AddSalesReturnDialog.vue | 357 +++++++++ src/views/custom/contacts/AddContactsDialog.vue | 15 src/views/sales/refundForm/AddRefundFormDialog.vue | 408 ++++++++++ src/router/index.js | 2 src/views/sales/refundForm/index.vue | 60 src/views/custom/customManage/AddCustomManageDialog.vue | 15 src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue | 15 src/views/custom/customManage/index.vue | 18 src/views/sales/quotation/AddQuotationDialog.vue | 73 + src/views/sales/subOrder/AddSubOrderDialog.vue | 66 + src/router/sales/index.js | 10 src/views/sales/contractManage/AddContractManageDialog.vue | 301 +++++++ src/views/sales/generatePlan/index.vue | 64 28 files changed, 1,947 insertions(+), 281 deletions(-) diff --git a/src/components/layout/components/appsidebar/index.vue b/src/components/layout/components/appsidebar/index.vue index db1ae8b..d2d5ea1 100644 --- a/src/components/layout/components/appsidebar/index.vue +++ b/src/components/layout/components/appsidebar/index.vue @@ -4,6 +4,7 @@ <div class="box"> <el-menu router + unique-opened :default-active="$route.path" class="el-menu-vertical-demo" @select="handleOpen" @@ -12,7 +13,7 @@ text-color="#fff" active-text-color="#ffd04b" > - <el-submenu index=""> + <el-submenu index="1"> <template slot="title"> <i class="el-icon-location"></i> <span>瀹㈡埛绠$悊</span> @@ -35,7 +36,7 @@ <el-menu-item index="/sales/salesReturn">閿�鍞��璐у崟</el-menu-item> <el-menu-item index="/sales/refundForm">閿�鍞��娆惧崟</el-menu-item> <el-menu-item index="/sales/contractManage">鍚堝悓绠$悊</el-menu-item> - <el-menu-item index="/sales/productPlan">鐢熶骇璁″垝</el-menu-item> + <el-menu-item index="/sales/generatePlan">鐢熸垚璁″垝</el-menu-item> </el-submenu> <el-submenu index="3"> <template slot="title"> diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue index 125520c..c8ce837 100644 --- a/src/components/makepager/CommonFormTableView.vue +++ b/src/components/makepager/CommonFormTableView.vue @@ -1,65 +1,50 @@ <template> <div class="page-view"> <el-form ref="form" :model="productTableList" :show-message="false" label-position="right"> - <el-table :data="productTableList.tableData" style="width: 100%"> - <el-table-column prop="id" label="#" width="30"></el-table-column> - <el-table-column prop="productName" label="浜у搧鍚嶇О"> - <template slot-scope="scope"> - <el-form-item - label=" " - :prop="'tableData.' + scope.$index + '.productName'" - :rules="[{ required: true, message: '杈撳叆涓嶈兘涓虹┖' }]" - > - <el-input v-model.trim="scope.row.productName" maxlength="50" size="mini" style="width: 70px"></el-input> - </el-form-item> + <el-table + :data="productTableList.tableData" + :show-summary="showSummary.show" + :summary-method="getSummaries" + :span-method="arraySpanMethod" + style="width: 100%" + > + <el-table-column + v-for="(item, i) in productTableList.tableColumn" + :key="i" + :prop="item.prop" + :label="item.label" + :width="item.width" + :min-width="item.min" + align="right" + > + <!-- 琛ㄥご鏍峰紡 --> + <template slot="header"> + <span v-if="item.isRequird" style="color: #f56c6c">*</span> + <span>{{ item.label }}</span> </template> - </el-table-column> - <el-table-column prop="productNumber" label="浜у搧缂栧彿"></el-table-column> - <el-table-column prop="startDate" label="鏈嶅姟寮�濮嬫棩" width="140"> + <!-- column鏍峰紡 --> <template slot-scope="scope"> <el-form-item + v-if="item.input" label=" " - :prop="'tableData.' + scope.$index + '.startDate'" - :rules="[{ required: true, message: '杈撳叆涓嶈兘涓虹┖' }]" + :prop="'tableData.' + scope.$index + '.' + item.prop" + :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]" > - <el-date-picker - v-model="scope.row.startDate" - size="mini" - type="date" - placeholder="閫夋嫨鏃ユ湡" - style="width: 90px" - > + <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> + </el-form-item> + <el-form-item + v-else-if="item.date" + label=" " + :prop="'tableData.' + scope.$index + '.' + item.prop" + :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]" + > + <!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> --> + <el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px"> </el-date-picker> </el-form-item> + <span v-else>{{ scope.row[item.prop] }}</span> </template> </el-table-column> - <el-table-column prop="endDate" label="鏈嶅姟鍒版湡鏃�" width="140"> - <template slot-scope="scope"> - <el-form-item - label=" " - :prop="'tableData.' + scope.$index + '.endDate'" - :rules="[{ required: true, message: '杈撳叆涓嶈兘涓虹┖' }]" - > - <el-date-picker - v-model="scope.row.endDate" - size="mini" - type="date" - placeholder="閫夋嫨鏃ユ湡" - style="width: 90px" - > - </el-date-picker> - </el-form-item> - </template> - </el-table-column> - <el-table-column prop="number" label="鏁伴噺"></el-table-column> - <el-table-column prop="" label="鍚◣鍗曚环"> </el-table-column> - <el-table-column prop="" label="涓嶅惈绋庡崟浠�"> </el-table-column> - <el-table-column prop="" label="鎶樻墸鐜�(%)"></el-table-column> - <el-table-column prop="" label="鎶樻墸棰�"> </el-table-column> - <el-table-column prop="" label="绋�(閿�鍞�)"> </el-table-column> - <el-table-column prop="" label="瀹為檯鍚◣鍗曚环"></el-table-column> - <el-table-column prop="" label="浠风◣鍚堣"> </el-table-column> - <el-table-column prop="" label="鎻忚堪"> </el-table-column> </el-table> </el-form> <div style="margin: 10px"> @@ -67,6 +52,18 @@ <el-button size="small" type="primary">瀵煎叆鏄庣粏</el-button> <el-button size="small" type="primary">娓呯┖</el-button> <el-button size="small" type="primary">閲嶇畻</el-button> + </div> + <div v-if="showSummary.total || showSummary.refundable" style="height: 42px; line-height: 42px"> + <el-row :gutter="10"> + <el-col v-if="showSummary.total" :span="2" :offset="22"> + <span style="font-weight: bold">鍚堣</span> + <span style="margin-left: 10px">0.00</span> + </el-col> + <el-col v-if="showSummary.refundable" :span="2" :offset="22"> + <span style="font-weight: bold">搴旈��娆�</span> + <span style="margin-left: 10px">0.00</span> + </el-col> + </el-row> </div> </div> </template> @@ -84,6 +81,18 @@ // table琛ㄥ崟 { label: "", prop: "", min: 200, tooltip: true } ] + } + } + }, + showSummary: { + type: Object, + default: () => { + return { + show: false, + total: false, + refundable: false, + sumProp: [], + mergeNumber: 1 } } } @@ -105,6 +114,76 @@ }, handleSelectionChange(val) { this.$emit("getSelectArray", val) + }, + // 琛屽悎骞� + arraySpanMethod() { + if (this.showSummary.show) { + this.$nextTick(() => { + if (this.$refs.table) { + var current = this.$refs.table.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 + 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] = 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] + } + }) + return sums + } + }, + // 鏁板瓧鎹㈣涓洪噾棰濇樉绀烘牸寮� + 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) } } } @@ -117,4 +196,21 @@ margin-bottom: 0; } } +::v-deep { + .el-form-item__label { + display: none; + } + .el-table__footer-wrapper tbody td.el-table__cell { + background-color: #fff; + text-align: right; + font-weight: bold; + } + .el-input--suffix .el-input__inner { + padding-right: 0px; + } + .el-table .cell, + .el-table th.el-table__cell > .cell { + padding: 0 5px; + } +} </style> diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue index ee1728d..9db25d6 100644 --- a/src/components/makepager/TableCommonView.vue +++ b/src/components/makepager/TableCommonView.vue @@ -21,10 +21,12 @@ :label="item.label" :width="item.width" :min-width="item.min" + show-overflow-tooltip="true" sortable > <template slot-scope="scope"> <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span> + <span v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</span> <span v-else>{{ scope.row[item.prop] }}</span> </template> </el-table-column> @@ -93,7 +95,6 @@ getSummaries(param) { if (this.showSummary.show) { const { columns, data } = param - console.log(param) const sums = [] columns.forEach((column, index) => { if (index === this.showSummary.mergeNumber) { @@ -116,7 +117,7 @@ return sums } }, - //瀹氫箟number_format鏂规硶 + // 鏁板瓧鎹㈣涓洪噾棰濇樉绀烘牸寮� number_format(number, decimals, dec_point, thousands_sep) { decimals = 2 //杩欓噷榛樿璁剧疆淇濈暀涓や綅灏忔暟锛屼篃鍙互娉ㄩ噴杩欏彞閲囩敤浼犲叆鐨勫弬鏁� /* @@ -154,6 +155,12 @@ margin-top: 20px; margin-right: 10px; margin-bottom: 40px; + .blue { + padding: 10px; + color: #fff; + background-color: blue; + border-radius: 4px; + } } ::v-deep { .el-table__footer-wrapper tbody td.el-table__cell { diff --git a/src/router/index.js b/src/router/index.js index f634154..6effbfa 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -55,7 +55,7 @@ insIndex: true }, redirect: { - name: "custom" + name: "salesLead" }, children: routes }, diff --git a/src/router/sales/index.js b/src/router/sales/index.js index f21c624..48fdcd9 100644 --- a/src/router/sales/index.js +++ b/src/router/sales/index.js @@ -8,7 +8,7 @@ const salesReturn = (resolve) => require(["@/views/sales/salesReturn/index"], resolve) // 閿�鍞��璐у崟 const refundForm = (resolve) => require(["@/views/sales/refundForm/index"], resolve) // 閿�鍞��娆惧崟 const contractManage = (resolve) => require(["@/views/sales/contractManage/index"], resolve) // 鍚堝悓绠$悊 -const productPlan = (resolve) => require(["@/views/sales/productPlan/index"], resolve) // 鐢熶骇璁″垝 +const generatePlan = (resolve) => require(["@/views/sales/generatePlan/index"], resolve) // 鐢熸垚璁″垝 const appconfig = [ { @@ -76,11 +76,11 @@ } }, { - path: "/sales/productPlan", - name: "productPlan", - component: productPlan, + path: "/sales/generatePlan", + name: "generatePlan", + component: generatePlan, meta: { - title: "鐢熶骇璁″垝" + title: "鐢熸垚璁″垝" } } ] diff --git a/src/views/custom/contacts/AddContactsDialog.vue b/src/views/custom/contacts/AddContactsDialog.vue index f1efe13..3c83421 100644 --- a/src/views/custom/contacts/AddContactsDialog.vue +++ b/src/views/custom/contacts/AddContactsDialog.vue @@ -149,8 +149,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> diff --git a/src/views/custom/customManage/AddCustomManageDialog.vue b/src/views/custom/customManage/AddCustomManageDialog.vue index 3f1ca68..1617898 100644 --- a/src/views/custom/customManage/AddCustomManageDialog.vue +++ b/src/views/custom/customManage/AddCustomManageDialog.vue @@ -272,8 +272,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> diff --git a/src/views/custom/customManage/index.vue b/src/views/custom/customManage/index.vue index 629d3b7..83f429a 100644 --- a/src/views/custom/customManage/index.vue +++ b/src/views/custom/customManage/index.vue @@ -31,7 +31,7 @@ </div> <TableCommonView ref="tableListRef" :table-list="tableList"> <template slot="tableButton"> - <el-table-column label="鎿嶄綔" width="120" fixed="right"> + <el-table-column label="鎿嶄綔" width="150" fixed="right"> <template slot-scope="scope"> <el-button type="text" size="small">鍙樻洿鍏捣</el-button> <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button> @@ -118,15 +118,15 @@ } ], tableColumn: [ - { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 190 }, // 瀹㈡埛鍚嶇О - { label: "閿�鍞礋璐d汉", prop: "saleLeadOwner", min: 120 }, // 閿�鍞礋璐d汉 - { label: "閲嶈绾у埆", prop: "importantLevel", min: 120 }, // 閲嶈绾у埆 + { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 100 }, // 瀹㈡埛鍚嶇О + { label: "閿�鍞礋璐d汉", prop: "saleLeadOwner" }, // 閿�鍞礋璐d汉 + { label: "閲嶈绾у埆", prop: "importantLevel" }, // 閲嶈绾у埆 { label: "涓嬫鍥炶鏃ユ湡", prop: "notContactDay", min: 90 }, // 鏈仈绯讳汉澶╂暟 - { label: "鎵嬫満鍙风爜", prop: "nextFollowDate", min: 150 }, // 涓嬫鍥炶鏃ユ湡 - { label: "璇︾粏鍦板潃", prop: "detailAddress", min: 290 }, // 璇︾粏鍦板潃 - { label: "瀹㈡埛鐘舵��", prop: "customStatus", min: 100 }, // 瀹㈡埛鐘舵�� - { label: "鑱旂郴浜哄鍚�", prop: "contactName", min: 100 }, // 鑱旂郴浜哄鍚� - { label: "鎵嬫満", prop: "phoneNumber", min: 100 } // 鎵嬫満鍙风爜 + { label: "鎵嬫満鍙风爜", prop: "nextFollowDate" }, // 涓嬫鍥炶鏃ユ湡 + { label: "璇︾粏鍦板潃", prop: "detailAddress", min: 200 }, // 璇︾粏鍦板潃 + { label: "瀹㈡埛鐘舵��", prop: "customStatus" }, // 瀹㈡埛鐘舵�� + { label: "鑱旂郴浜哄鍚�", prop: "contactName" }, // 鑱旂郴浜哄鍚� + { label: "鎵嬫満", prop: "phoneNumber" } // 鎵嬫満鍙风爜 ] } this.searchOptions = [] diff --git a/src/views/custom/followupRecords/AddFollowupRecordsDialog.vue b/src/views/custom/followupRecords/AddFollowupRecordsDialog.vue index c3a0965..dc48051 100644 --- a/src/views/custom/followupRecords/AddFollowupRecordsDialog.vue +++ b/src/views/custom/followupRecords/AddFollowupRecordsDialog.vue @@ -142,8 +142,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> diff --git a/src/views/custom/salesLead/index.vue b/src/views/custom/salesLead/index.vue index 8579098..5cbb5a0 100644 --- a/src/views/custom/salesLead/index.vue +++ b/src/views/custom/salesLead/index.vue @@ -38,11 +38,7 @@ TableCommonView, AddSalesLeadDialog }, - computed: { - searchCommonHeight() { - return this.$refs.searchCommonView.offsetHeight - } - }, + computed: {}, data() { return { tableList: {}, diff --git a/src/views/sales/contractManage/AddContractManageDialog.vue b/src/views/sales/contractManage/AddContractManageDialog.vue new file mode 100644 index 0000000..57a719b --- /dev/null +++ b/src/views/sales/contractManage/AddContractManageDialog.vue @@ -0,0 +1,301 @@ +<template> + <div class="add-contract-manage"> + <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="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="contractStatus"> + <CommonSelectView + :common-value="editConfig.infomation.contractStatus" + :common-options="contractStatusOptions" + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閿�鍞姤浠峰崟" prop="salesQuotation"> + <div class="custom-name"> + <el-input v-model="editConfig.infomation.salesQuotation"></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 v-if="isUnflod" class="basic-info-title">闄勪欢淇℃伅</div> + <div class="basic-info-view"> + <el-row> + <el-col :span="12"> + <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">鍚堝悓鎵弿浠�</span> + </div> + </template> + <div class="annex-view"> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> + <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> + </div> + </el-form-item> + </el-col> + </el-row> + </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> + <!-- 閫夋嫨瀹℃壒娴佺▼ --> + <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" +export default { + name: "AddContractManageDialog", + props: { + editCommonConfig: { + type: Object, + default: () => { + return { + visible: false, + title: "鏂板缓", + infomation: { + customName: "", + documentNumber: "TKD20230521-12", + owner: "", + contractStatus: "", + salesQuotation: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" + } + } + } + } + }, + components: { CommonSelectView }, + 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: "閿�鍞�荤洃" } + ], + contractStatusOptions: [ + { value: "1", label: "寰呭鎵�" }, + { value: "2", label: "瀹℃壒涓�" }, + { value: "3", label: "宸插鎵�" }, + { value: "4", label: "宸插綊妗�" } + ], // 鍚堝悓鐘舵�� + approvalWorkflowOptions: [], // 瀹℃壒娴佺▼ + 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-contract-manage { + .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/contractManage/index.vue b/src/views/sales/contractManage/index.vue index 6e5af75..eae7b40 100644 --- a/src/views/sales/contractManage/index.vue +++ b/src/views/sales/contractManage/index.vue @@ -25,7 +25,7 @@ </template> </TableCommonView> <!-- 鏂板缓/缂栬緫 --> - <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" /> + <AddContractManageDialog v-if="editConfig.visible" :edit-common-config="editConfig" /> </div> </template> @@ -34,17 +34,17 @@ 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 AddContractManageDialog from "@/views/sales/contractManage/AddContractManageDialog" export default { - name: "ContractManage ", + name: "ContractManage", props: {}, components: { SearchCommonView, PublicFunctionBtnView, PagerView, TableCommonView, - AddSalesLeadDialog + AddContractManageDialog }, computed: { searchCommonHeight() { @@ -59,8 +59,8 @@ { value: "2", label: "宸叉壒鍑�" }, { value: "3", label: "瀹℃壒涓�" }, { value: "4", label: "鏈彁浜�" }, - { value: "3", label: "宸查┏鍥�" }, - { value: "4", label: "宸叉嫆缁�" } + { value: "5", label: "宸查┏鍥�" }, + { value: "6", label: "宸叉嫆缁�" } ], searchOptions: [], operatesList: [ @@ -115,20 +115,14 @@ this.editConfig.title = "鏂板缓" this.editConfig.infomation = { customName: "", - saleLeadNumber: "LEA50", - contactName: "", - contactDuties: "", - phoneNumber: "", - businessStatus: "鏂板缓", - businessSource: "1", + documentNumber: "ZDYBD01-3", owner: "", - position: "", - map: "", - country: "1", - province: "1", - city: "1", - region: "1", - address: "" + contractStatus: "", + salesQuotation: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" } }, // 缂栬緫 @@ -137,21 +131,15 @@ this.editConfig.visible = true this.editConfig.title = "缂栬緫" this.editConfig.infomation = { - customName: row.customName, - saleLeadNumber: row.saleLeadNumber, - contactName: row.contactName, - contactDuties: row.contactDuties, - phoneNumber: row.phoneNumber, - businessStatus: "鏂板缓", - businessSource: row.businessSource, - owner: row.owner, - position: "", - map: "", - country: "1", - province: "1", - city: "1", - region: "1", - address: "" + customName: "", + documentNumber: "TKD20230521-12", + owner: "", + contractStatus: "", + salesQuotation: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" } } } diff --git a/src/views/sales/generatePlan/AddGeneratePlanDialog.vue b/src/views/sales/generatePlan/AddGeneratePlanDialog.vue new file mode 100644 index 0000000..573207a --- /dev/null +++ b/src/views/sales/generatePlan/AddGeneratePlanDialog.vue @@ -0,0 +1,279 @@ +<template> + <div class="add-generate-plan"> + <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 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="subOrder"> + <div class="custom-name"> + <el-input v-model="editConfig.infomation.subOrder"></el-input> + <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div> + <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div> + </div> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="閿�鍞槑缁嗗崟" prop="salesDetails"> + <div class="custom-name"> + <el-input v-model="editConfig.infomation.salesDetails"></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 v-if="isUnflod" class="basic-info-title">璁″垝鐩稿叧</div> + <div class="address-view"> + <el-row> + <el-col :span="12"> + <el-form-item label="璁″垝寮�濮嬫椂闂�" prop="planStartTime"> + <el-date-picker v-model="editConfig.infomation.planStartTime" type="datetime" default-time="12:00:00"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="璁″垝鎴鏃堕棿" prop="planDeadline"> + <el-date-picker v-model="editConfig.infomation.planDeadline" type="datetime" default-time="12:00:00"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="璁″垝鍐呭" prop="refundReason"> + <el-input + type="textarea" + :autosize="{ minRows: 2 }" + v-model="editConfig.infomation.refundReason" + ></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=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> + <div class="annex-view"> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> + <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> + </div> + </el-form-item> + </el-col> + </el-row> + </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> + </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: "AddGeneratePlanDialog", + props: { + editCommonConfig: { + type: Object, + default: () => { + return { + visible: false, + title: "鏂板缓", + infomation: { + customName: "", + documentNumber: "", + owner: "", + subOrder: "", + salesDetails: "", + planStartTime: "", + planDeadline: "" + } + } + } + } + }, + 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-generate-plan { + .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/productPlan/index.vue b/src/views/sales/generatePlan/index.vue similarity index 76% rename from src/views/sales/productPlan/index.vue rename to src/views/sales/generatePlan/index.vue index 4b9f479..5ed0740 100644 --- a/src/views/sales/productPlan/index.vue +++ b/src/views/sales/generatePlan/index.vue @@ -1,5 +1,5 @@ <template> - <div class="product-plan"> + <div class="generate-plan"> <SearchCommonView ref="searchCommonView" :query-class-options="queryClassOptions" :search-options="searchOptions" /> <div class="btn-pager"> <PublicFunctionBtnView :operates-list="operatesList" /> @@ -15,7 +15,7 @@ </template> </TableCommonView> <!-- 鏂板缓/缂栬緫--> - <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" /> + <AddGeneratePlanDialog v-if="editConfig.visible" :edit-common-config="editConfig" /> </div> </template> @@ -24,17 +24,17 @@ 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 AddGeneratePlanDialog from "@/views/sales/generatePlan/AddGeneratePlanDialog" export default { - name: "ProductPlan ", + name: "GeneratePlan", props: {}, components: { SearchCommonView, PublicFunctionBtnView, PagerView, TableCommonView, - AddSalesLeadDialog + AddGeneratePlanDialog }, computed: { searchCommonHeight() { @@ -49,8 +49,8 @@ { value: "2", label: "宸叉壒鍑�" }, { value: "3", label: "瀹℃壒涓�" }, { value: "4", label: "鏈彁浜�" }, - { value: "3", label: "宸查┏鍥�" }, - { value: "4", label: "宸叉嫆缁�" } + { value: "5", label: "宸查┏鍥�" }, + { value: "6", label: "宸叉嫆缁�" } ], searchOptions: [], operatesList: [ @@ -105,20 +105,16 @@ this.editConfig.title = "鏂板缓" this.editConfig.infomation = { customName: "", - saleLeadNumber: "LEA50", - contactName: "", - contactDuties: "", - phoneNumber: "", - businessStatus: "鏂板缓", - businessSource: "1", + documentNumber: "ZDYBD04-12", owner: "", - position: "", - map: "", - country: "1", - province: "1", - city: "1", - region: "1", - address: "" + subOrder: "", + salesDetails: "", + planStartTime: "", + planDeadline: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" } }, // 缂栬緫 @@ -127,21 +123,17 @@ this.editConfig.visible = true this.editConfig.title = "缂栬緫" this.editConfig.infomation = { - customName: row.customName, - saleLeadNumber: row.saleLeadNumber, - contactName: row.contactName, - contactDuties: row.contactDuties, - phoneNumber: row.phoneNumber, - businessStatus: "鏂板缓", - businessSource: row.businessSource, - owner: row.owner, - position: "", - map: "", - country: "1", - province: "1", - city: "1", - region: "1", - address: "" + customName: "", + documentNumber: "", + owner: "", + subOrder: "", + salesDetails: "", + planStartTime: "", + planDeadline: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" } } } @@ -150,7 +142,7 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> -.product-plan { +.generate-plan { .btn-pager { display: flex; .page { diff --git a/src/views/sales/masterOrder/AddMasterOrderDialog.vue b/src/views/sales/masterOrder/AddMasterOrderDialog.vue index 236c0f3..307d059 100644 --- a/src/views/sales/masterOrder/AddMasterOrderDialog.vue +++ b/src/views/sales/masterOrder/AddMasterOrderDialog.vue @@ -67,8 +67,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue index 210e329..37c0246 100644 --- a/src/views/sales/quotation/AddQuotationDialog.vue +++ b/src/views/sales/quotation/AddQuotationDialog.vue @@ -108,8 +108,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> @@ -128,7 +141,7 @@ </div> </div> <div class="product-view"> - <CommonFormTableView :product-table-list="productTableList" /> + <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" /> </div> <!-- 閫夋嫨瀹℃壒娴佺▼ --> <div class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div> @@ -244,22 +257,18 @@ { value: "3", label: "娆у厓(鈧�)" } ], // 甯佺 approvalWorkflowOptions: [], // 瀹℃壒娴佺▼ - productTableList: { - tableData: [ - { - id: "1", - productNumber: "123", - productName: "", - startDate: "", - endDate: "2016-05-02", - number: "", - address: "" - } - ] + productTableList: {}, + showSummary: { + show: true, + total: true, + sumProp: ["other1", "other2", "other3", "other4"], + mergeNumber: 3 } } }, - created() {}, + created() { + this.setTableForm() + }, methods: { handleClose() { this.editConfig.visible = false @@ -267,7 +276,39 @@ // 娣诲姞闄勪欢 addAnnexClick() {}, // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡 - setFormatClick() {} + setFormatClick() {}, + setTableForm() { + this.productTableList = { + tableData: [ + { + id: "1", + productName: "涓婃捣鏈夐檺鍏徃", + other0: "ZDYBD03-1", + other1: "12", + other2: "5.00", + other4: "3.00", + other3: "2.00" + } + ], + tableColumn: [ + { label: "#", prop: "id", width: 40 }, + { label: "鍚◣鍗曚环", prop: "other9", input: true }, + { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true }, + { label: "浜у搧缂栧彿", prop: "other0" }, + { label: "鏁伴噺", prop: "other1", input: true, isRequird: true }, + { label: "鎶樻墸鐜�(%)", prop: "other6", input: true }, + { label: "涓嶅惈绋庡崟浠�", prop: "other7", input: true }, + { label: "鎶樻墸棰�", prop: "other2" }, + { label: "绋�(閿�鍞�)", prop: "other7", input: true }, + { label: "瀹為檯鍚◣鍗曚环", prop: "other3" }, + { label: "涓嶅惈绋庨噾棰�", prop: "other4" }, + { label: "浠风◣鍚堣", prop: "other3", input: true }, + { label: "鎻忚堪", prop: "other8" }, + { label: "婧愬崟绫诲瀷", prop: "other5" }, + { label: "婧愬崟", prop: "other6" } + ] + } + } } } </script> diff --git a/src/views/sales/refundForm/AddRefundFormDialog.vue b/src/views/sales/refundForm/AddRefundFormDialog.vue new file mode 100644 index 0000000..7b4587d --- /dev/null +++ b/src/views/sales/refundForm/AddRefundFormDialog.vue @@ -0,0 +1,408 @@ +<template> + <div class="add-refund-form"> + <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="refundOrderNo"> + <el-input v-model="editConfig.infomation.refundOrderNo"></el-input> + </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="閿�鍞礋璐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="refundDate"> + <el-date-picker v-model="editConfig.infomation.refundDate" type="date" placeholder="閫夋嫨鏃ユ湡"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="浠樻鏂瑰紡" prop="paymentMethod"> + <CommonSelectView + :common-value="editConfig.infomation.paymentMethod" + :common-options="paymentMethodOptions" + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="璐︽埛" prop="account"> + <CommonSelectView :common-value="editConfig.infomation.account" :common-options="accountOptions" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏄惁寮�绁�" prop="whetherInvoicing"> + <CommonSelectView + :common-value="editConfig.infomation.whetherInvoicing" + :common-options="whetherInvoicingOptions" + /> + </el-form-item> + </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="refundReason"> + <el-input + type="textarea" + :autosize="{ minRows: 2 }" + v-model="editConfig.infomation.refundReason" + ></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=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> + <div class="annex-view"> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </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 :show-summary="showSummary" :product-table-list="productTableList" /> + </div> + <!-- 閫夋嫨瀹℃壒娴佺▼ --> + <div v-if="editConfig.title === '鏂板缓'" class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div> + <div v-if="editConfig.title === '鏂板缓'" class="basic-info-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: "AddRefundFormDialog", + props: { + editCommonConfig: { + type: Object, + default: () => { + return { + visible: false, + title: "鏂板缓", + infomation: { + customName: "", + refundOrderNo: "TKD20230521-12", + selSourceOrder: "", + salesHead: "", + refundDate: "", + paymentMethod: "", + account: "", + whetherInvoicing: "", + refundReason: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" + } + } + } + } + }, + components: { CommonSelectView, CommonFormTableView }, + computed: {}, + data() { + return { + dialogWidth: "80%", + editConfig: this.editCommonConfig, + rules: { + customName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + refundOrderNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + refundDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], + salesHead: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], + account: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }] + }, + salesHeadOptions: [ + // 閿�鍞礋璐d汉 + { value: "1", label: "BOSS" }, + { value: "2", label: "Mia" }, + { value: "3", label: "璐㈠姟" }, + { value: "4", label: "甯傚満" }, + { value: "5", label: "绯荤粺绠$悊鍛�" }, + { value: "6", label: "閿�鍞�" }, + { value: "7", label: "閿�鍞�荤洃" } + ], + selSourceOrderOptions: [{ value: "1", label: "閿�鍞��璐у崟" }], // 閫夋嫨婧愬崟 + paymentMethodOptions: [ + { value: "1", label: "鐜伴噾" }, + { value: "2", label: "鏀エ" }, + { value: "3", label: "鐢垫眹" }, + { value: "4", label: "閭斂姹囨" }, + { value: "5", label: "缃戜笂閾惰" }, + { value: "6", label: "鍏朵粬" } + ], // 浠樻鏂瑰紡 + accountOptions: [{ value: "1", label: "浜烘皯甯佽处鎴�" }], // 璐︽埛 + whetherInvoicingOptions: [ + { value: "1", label: "鏈紑" }, + { value: "2", label: "宸插紑" } + ], // 鏄惁寮�绁� + currencyOptions: [ + { value: "1", label: "浜烘皯甯�(楼)" }, + { value: "2", label: "鑻遍晳(拢)" }, + { value: "3", label: "娆у厓(鈧�)" } + ], // 甯佺 + approvalWorkflowOptions: [], // 瀹℃壒娴佺▼ + productTableList: {}, + showSummary: { + show: true, + total: true, + sumProp: ["other1", "other2", "other3", "other4"], + mergeNumber: 5 + } + } + }, + created() { + this.setTableForm() + }, + methods: { + setTableForm() { + this.productTableList = { + tableData: [ + { + id: "1", + productName: "涓婃捣鏈夐檺鍏徃", + other0: "ZDYBD03-1", + other1: "12", + other2: "5.00", + other4: "3.00", + other3: "2.00" + } + ], + tableColumn: [ + { label: "#", prop: "id", width: 40 }, + { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true }, + { label: "浜у搧缂栧彿", prop: "other0" }, + { label: "婧愬崟绫诲瀷", prop: "other5" }, + { label: "婧愬崟", prop: "other6" }, + { label: "鏁伴噺", prop: "other1", input: true, isRequird: true }, + { label: "鍚◣鍗曚环", prop: "other9", input: true }, + { label: "涓嶅惈绋庡崟浠�", prop: "other7", input: true }, + { label: "鎶樻墸鐜�(%)", prop: "other6", input: true }, + { label: "鎶樻墸棰�", prop: "other2" }, + { label: "绋�(閿�鍞�)", prop: "other7", input: true }, + { label: "瀹為檯鍚◣鍗曚环", prop: "other3" }, + { label: "涓嶅惈绋庨噾棰�", prop: "other4" }, + { label: "浠风◣鍚堣", prop: "other3", input: true }, + { label: "鎻忚堪", prop: "other8" } + ] + } + }, + handleClose() { + this.editConfig.visible = false + }, + // 娣诲姞闄勪欢 + addAnnexClick() {}, + // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡 + setFormatClick() {} + } +} +</script> + +<!-- Add "scoped" attribute to limit CSS to this component only --> +<style lang="scss" scoped> +.add-refund-form { + .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/refundForm/index.vue b/src/views/sales/refundForm/index.vue index 724699f..14ecec0 100644 --- a/src/views/sales/refundForm/index.vue +++ b/src/views/sales/refundForm/index.vue @@ -15,7 +15,7 @@ </template> </TableCommonView> <!-- 鏂板缓/缂栬緫 --> - <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" /> + <AddRefundFormDialog v-if="editConfig.visible" :edit-common-config="editConfig" /> </div> </template> @@ -24,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 AddRefundFormDialog from "@/views/sales/refundForm/AddRefundFormDialog" export default { name: "RefundForm", @@ -34,7 +34,7 @@ PublicFunctionBtnView, PagerView, TableCommonView, - AddSalesLeadDialog + AddRefundFormDialog }, computed: { searchCommonHeight() { @@ -111,20 +111,18 @@ 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: "" + refundOrderNo: "TKD20230521-12", + selSourceOrder: "1", + salesHead: "5", + refundDate: "", + paymentMethod: "1", + account: "1", + whetherInvoicing: "1", + refundReason: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" } }, // 缂栬緫 @@ -133,21 +131,19 @@ this.editConfig.visible = true this.editConfig.title = "缂栬緫" this.editConfig.infomation = { - customName: row.customName, - saleLeadNumber: row.saleLeadNumber, - contactName: row.contactName, - contactDuties: row.contactDuties, - phoneNumber: row.phoneNumber, - businessStatus: "鏂板缓", - businessSource: row.businessSource, - owner: row.owner, - position: "", - map: "", - country: "1", - province: "1", - city: "1", - region: "1", - address: "" + customName: "", + refundOrderNo: "TKD20230521-12", + selSourceOrder: "", + salesHead: "", + refundDate: "", + paymentMethod: "", + account: "", + whetherInvoicing: "", + refundReason: "", + approvalWorkflow: "", + approvalSteps: "", + approvalPerson: "", + approvalOpinion: "" } } } diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue index a79366c..90bc152 100644 --- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue +++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue @@ -154,8 +154,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> @@ -174,7 +187,7 @@ </div> </div> <div class="product-view"> - <CommonFormTableView :product-table-list="productTableList" /> + <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" /> </div> <!-- 閫夋嫨瀹℃壒娴佺▼ --> <div v-if="editConfig.title === '鏂板缓'" class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div> @@ -299,23 +312,45 @@ { value: "3", label: "娆у厓(鈧�)" } ], // 甯佺 approvalWorkflowOptions: [], // 瀹℃壒娴佺▼ - productTableList: { - tableData: [ - { - id: "1", - productNumber: "123", - productName: "", - startDate: "", - endDate: "2016-05-02", - number: "", - address: "" - } - ] + productTableList: {}, + showSummary: { + show: true, + total: true, + sumProp: ["other1", "other7"], + mergeNumber: 2 } } }, - created() {}, + created() { + this.setTableForm() + }, methods: { + setTableForm() { + this.productTableList = { + tableData: [ + { + id: "1", + productName: "涓婃捣鏈夐檺鍏徃", + other0: "ZDYBD03-1", + other1: "12", + other2: "", + other6: "3.00", + other7: "2.00" + } + ], + tableColumn: [ + { label: "#", prop: "id", width: 40 }, + { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true }, + { label: "浜у搧缂栧彿", prop: "other0" }, + { label: "鏁伴噺", prop: "other1", input: true, isRequird: true }, + { label: "鍚◣鍗曚环", prop: "other6", input: true }, + { label: "浠风◣鍚堣", prop: "other7", input: true }, + { label: "鎻忚堪", prop: "other8" }, + { label: "婧愬崟绫诲瀷", prop: "other2" }, + { label: "婧愬崟", prop: "other3" } + ] + } + }, handleClose() { this.editConfig.visible = false }, diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue index f11fa15..cf9379e 100644 --- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue +++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue @@ -338,8 +338,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> diff --git a/src/views/sales/salesReturn/AddSalesReturnDialog.vue b/src/views/sales/salesReturn/AddSalesReturnDialog.vue new file mode 100644 index 0000000..3e1bc1c --- /dev/null +++ b/src/views/sales/salesReturn/AddSalesReturnDialog.vue @@ -0,0 +1,357 @@ +<template> + <div class="add-sales-return"> + <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="salesReturnOrderNo"> + <el-input v-model="editConfig.infomation.salesReturnOrderNo"></el-input> + </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="returnWarehouse"> + <el-select v-model="editConfig.infomation.returnWarehouse" size="mini" style="width: 63%"> + <el-option + v-for="item in returnWarehouseOptions" + :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="閿�鍞礋璐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="returnDate"> + <el-date-picker v-model="editConfig.infomation.returnDate" type="date" placeholder="閫夋嫨鏃ユ湡"> + </el-date-picker> + </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="state"> + <CommonSelectView :common-value="editConfig.infomation.state" :common-options="stateOptions" /> + </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="returnReason"> + <el-input + type="textarea" + :autosize="{ minRows: 2 }" + v-model="editConfig.infomation.returnReason" + ></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=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> + <div class="annex-view"> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </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 :show-summary="showSummary" :product-table-list="productTableList" /> + </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" +import CommonFormTableView from "@/components/makepager/CommonFormTableView" +export default { + name: "AddSalesReturnDialog", + props: { + editCommonConfig: { + type: Object, + default: () => { + return { + visible: false, + title: "鏂板缓", + infomation: { + customName: "", + salesReturnOrderNo: "THD20230521-11", + selSourceOrder: "1", + returnWarehouse: "1", + salesHead: "5", + returnDate: "", + state: "", + returnReason: "" + } + } + } + } + }, + components: { CommonSelectView, CommonFormTableView }, + computed: {}, + data() { + return { + dialogWidth: "80%", + editConfig: this.editCommonConfig, + rules: { + salesReturnOrderNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], + returnWarehouse: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], + salesHead: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }] + }, + salesHeadOptions: [ + // 閿�鍞礋璐d汉 + { value: "1", label: "BOSS" }, + { value: "2", label: "Mia" }, + { value: "3", label: "璐㈠姟" }, + { value: "4", label: "甯傚満" }, + { value: "5", label: "绯荤粺绠$悊鍛�" }, + { value: "6", label: "閿�鍞�" }, + { value: "7", label: "閿�鍞�荤洃" } + ], + selSourceOrderOptions: [{ value: "1", label: "閿�鍞槑缁嗗崟" }], // 閫夋嫨婧愬崟 + returnWarehouseOptions: [ + { value: "1", label: "鎬讳粨" }, + { value: "2", label: "璧犲搧浠�" }, + { value: "3", label: "鍏朵粬浠�" } + ], // 閫�鍏ヤ粨搴� + stateOptions: [], // 鐘舵�� + currencyOptions: [ + { value: "1", label: "浜烘皯甯�(楼)" }, + { value: "2", label: "鑻遍晳(拢)" }, + { value: "3", label: "娆у厓(鈧�)" } + ], // 甯佺 + productTableList: {}, + showSummary: { + show: true, + total: false, + refundable: true, + sumProp: ["other1", "other2", "other3", "other4"], + mergeNumber: 4 + } + } + }, + created() { + this.setTableForm() + }, + methods: { + setTableForm() { + this.productTableList = { + tableData: [ + { + id: "1", + productName: "涓婃捣鏈夐檺鍏徃", + other0: "ZDYBD03-1", + other1: "12", + other2: "5.00", + other4: "3.00", + other3: "2.00" + } + ], + tableColumn: [ + { label: "#", prop: "id", width: 40 }, + { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true }, + { label: "浜у搧缂栧彿", prop: "other0" }, + { label: "婧愬崟绫诲瀷", prop: "other5" }, + { label: "婧愬崟", prop: "other6" }, + { label: "鏁伴噺", prop: "other1", input: true, isRequird: true }, + { label: "鍚◣鍗曚环", prop: "other9", input: true }, + { label: "涓嶅惈绋庡崟浠�", prop: "other7", input: true }, + { label: "鎶樻墸鐜�(%)", prop: "other6", input: true }, + { label: "鎶樻墸棰�", prop: "other2" }, + { label: "绋�(閿�鍞�)", prop: "other7", input: true }, + { label: "瀹為檯鍚◣鍗曚环", prop: "other3" }, + { label: "涓嶅惈绋庨噾棰�", prop: "other4" }, + { label: "浠风◣鍚堣", prop: "other3", input: true }, + { label: "鎻忚堪", prop: "other8" } + ] + } + }, + handleClose() { + this.editConfig.visible = false + }, + // 娣诲姞闄勪欢 + addAnnexClick() {}, + // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡 + setFormatClick() {} + } +} +</script> + +<!-- Add "scoped" attribute to limit CSS to this component only --> +<style lang="scss" scoped> +.add-sales-return { + .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/salesReturn/index.vue b/src/views/sales/salesReturn/index.vue index 7029c18..bce9ea1 100644 --- a/src/views/sales/salesReturn/index.vue +++ b/src/views/sales/salesReturn/index.vue @@ -15,7 +15,7 @@ </template> </TableCommonView> <!-- 鏂板缓/缂栬緫 --> - <AddSalesLeadDialog v-if="editConfig.visible" :edit-sales-lead-config="editConfig" /> + <AddSalesReturnDialog v-if="editConfig.visible" :edit-common-config="editConfig" /> </div> </template> @@ -24,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 AddSalesReturnDialog from "@/views/sales/salesReturn/AddSalesReturnDialog" export default { name: "SalesReturn", @@ -34,7 +34,7 @@ PublicFunctionBtnView, PagerView, TableCommonView, - AddSalesLeadDialog + AddSalesReturnDialog }, computed: { searchCommonHeight() { @@ -49,7 +49,7 @@ { value: "2", label: "涓" }, { value: "3", label: "缁撴潫" }, { value: "4", label: "宸插叆搴�" }, - { value: "4", label: "鏈叆搴�" } + { value: "5", label: "鏈叆搴�" } ], searchOptions: [], operatesList: [ @@ -112,20 +112,13 @@ 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: "" + salesReturnOrderNo: "THD20230521-11", + selSourceOrder: "1", + returnWarehouse: "1", + salesHead: "5", + returnDate: "", + state: "", + returnReason: "" } }, // 缂栬緫 @@ -134,21 +127,14 @@ this.editConfig.visible = true this.editConfig.title = "缂栬緫" this.editConfig.infomation = { - customName: row.customName, - saleLeadNumber: row.saleLeadNumber, - contactName: row.contactName, - contactDuties: row.contactDuties, - phoneNumber: row.phoneNumber, - businessStatus: "鏂板缓", - businessSource: row.businessSource, - owner: row.owner, - position: "", - map: "", - country: "1", - province: "1", - city: "1", - region: "1", - address: "" + customName: "", + salesReturnOrderNo: "THD20230521-11", + selSourceOrder: "", + returnWarehouse: "", + salesHead: "", + returnDate: "", + state: "", + returnReason: "" } } } diff --git a/src/views/sales/subOrder/AddSubOrderDialog.vue b/src/views/sales/subOrder/AddSubOrderDialog.vue index fd6c74e..4e198db 100644 --- a/src/views/sales/subOrder/AddSubOrderDialog.vue +++ b/src/views/sales/subOrder/AddSubOrderDialog.vue @@ -59,8 +59,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> @@ -187,6 +200,7 @@ { value: "7", label: "閿�鍞�荤洃" } ], discount: "2", + currencyOptions: [], discountOptions: [ { value: "1", label: "鐧惧垎姣旈檷浠�" }, { value: "2", label: "鐩存帴闄嶄环" } @@ -196,23 +210,47 @@ { value: "1", label: "澧炲姞" }, { value: "2", label: "鍑忓皯" } ], // 璋冩暣 - productTableList: { - tableData: [ - { - id: "1", - productNumber: "123", - productName: "", - startDate: "", - endDate: "2016-05-02", - number: "", - address: "" - } - ] + productTableList: {}, + showSummary: { + show: true, + total: false, + sumProp: ["other1", "other7"], + mergeNumber: 7 } } }, - created() {}, + created() { + this.setTableForm() + }, methods: { + setTableForm() { + this.productTableList = { + tableData: [ + { + id: "1", + productName: "涓婃捣鏈夐檺鍏徃", + other0: "ZDYBD03-1", + other1: "12", + other2: "", + other6: "3.00", + other7: "2.00" + } + ], + tableColumn: [ + { label: "#", prop: "id", width: 40 }, + { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true }, + { label: "浜у搧缂栧彿", prop: "other0" }, + { label: "璁¢噺鍗曚綅", prop: "other2" }, + { label: "瑙勬牸缂栧彿", prop: "other3" }, + { label: "婧愬崟绫诲瀷", prop: "other4" }, + { label: "鍚堝悓淇℃伅", prop: "other5" }, + { label: "鏁伴噺", prop: "other1", input: true, isRequird: true }, + { label: "鍚◣鍗曚环", prop: "other6", input: true }, + { label: "浠风◣鍚堣", prop: "other7", input: true }, + { label: "鎻忚堪", prop: "other8" } + ] + } + }, handleClose() { this.editConfig.visible = false }, diff --git a/src/views/service/orderManage/AddOrderManageDialog.vue b/src/views/service/orderManage/AddOrderManageDialog.vue index 048a9a7..39565a9 100644 --- a/src/views/service/orderManage/AddOrderManageDialog.vue +++ b/src/views/service/orderManage/AddOrderManageDialog.vue @@ -102,8 +102,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue index 83cc100..d79b75d 100644 --- a/src/views/service/serviceContract/AddServiceContractDialog.vue +++ b/src/views/service/serviceContract/AddServiceContractDialog.vue @@ -164,8 +164,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> @@ -184,7 +197,7 @@ </div> </div> <div class="product-view"> - <CommonFormTableView :product-table-list="productTableList" /> + <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" /> </div> <!-- 閫夋嫨瀹℃壒娴佺▼ --> <div class="basic-info-title">閫夋嫨瀹℃壒娴佺▼</div> @@ -288,8 +301,7 @@ rules: { serviceContractNumber: [{ required: true, message: "璇疯緭鍏ユ湇鍔″悎鍚岀紪鍙�", trigger: "blur" }], signDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], - owner: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }], - approvalOpinion: [{ required: true, message: "璇疯緭鍏ュ鎵规剰瑙�", trigger: "blur" }] + owner: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }] }, ownerOptions: [ // 璐熻矗浜� @@ -309,23 +321,51 @@ { value: "3", label: "娆у厓(鈧�)" } ], // 甯佺 approvalWorkflowOptions: [], // 瀹℃壒娴佺▼ - productTableList: { - tableData: [ - { - id: "1", - productNumber: "123", - productName: "", - startDate: "", - endDate: "2016-05-02", - number: "", - address: "" - } - ] + productTableList: {}, + showSummary: { + show: true, + total: true, + sumProp: ["other1", "other2", "other3", "other4"], + mergeNumber: 3 } } }, - created() {}, + created() { + this.setTableForm() + }, methods: { + setTableForm() { + this.productTableList = { + tableData: [ + { + id: "1", + productName: "涓婃捣鏈夐檺鍏徃", + other0: "ZDYBD03-1", + other1: "12", + other2: "5.00", + other4: "3.00", + other3: "2.00" + } + ], + tableColumn: [ + { label: "#", prop: "id", width: 40 }, + { label: "浜у搧鍚嶇О", prop: "productName", input: true, isRequird: true }, + { label: "浜у搧缂栧彿", prop: "other0" }, + { label: "鏈嶅姟寮�濮嬫棩", prop: "other5", date: true, isRequird: true, min: 100 }, + { label: "鏈嶅姟鍒版湡鏃�", prop: "other6", date: true, isRequird: true, min: 100 }, + { label: "鏁伴噺", prop: "other1", input: true, isRequird: true }, + { label: "鍚◣鍗曚环", prop: "other9", input: true }, + { label: "涓嶅惈绋庡崟浠�", prop: "other7", input: true }, + { label: "鎶樻墸鐜�(%)", prop: "other6", input: true }, + { label: "鎶樻墸棰�", prop: "other2" }, + { label: "绋�(閿�鍞�)", prop: "other7", input: true }, + { label: "瀹為檯鍚◣鍗曚环", prop: "other3" }, + { label: "涓嶅惈绋庨噾棰�", prop: "other4" }, + { label: "浠风◣鍚堣", prop: "other3", input: true }, + { label: "鎻忚堪", prop: "other8" } + ] + } + }, handleClose() { this.editConfig.visible = false }, diff --git a/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue b/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue index c8ef662..750aef2 100644 --- a/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue +++ b/src/views/service/serviceFeeManage/AddServiceFeeManageDialog.vue @@ -245,8 +245,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> diff --git a/src/views/service/serviceFeeManage/index.vue b/src/views/service/serviceFeeManage/index.vue index 48e2bdc..9dd8191 100644 --- a/src/views/service/serviceFeeManage/index.vue +++ b/src/views/service/serviceFeeManage/index.vue @@ -96,12 +96,13 @@ customStatus: "娼滃湪瀹㈡埛", productName: "鑷姩鎵撳嵃鏈�", startDate: "2023-06-27", - endDate: "2024-07-15" + endDate: "2024-07-15", + status: "blue" } ], tableColumn: [ { label: "瀹㈡埛鍚嶇О", prop: "customName", min: 120 }, // 瀹㈡埛鍚嶇О - { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90 }, // 瀹㈡埛绫诲瀷 + { label: "瀹㈡埛绫诲瀷", prop: "customType", min: 90, status: true }, // 瀹㈡埛绫诲瀷 { label: "閿�鍞礋璐d汉", prop: "salesHead" }, // 閿�鍞礋璐d汉 { label: "淇敼鏃堕棿", prop: "modifyTime", min: 100 }, // 淇敼鏃堕棿 { label: "瀹㈡埛瑙勬ā", prop: "customerSize" }, // 瀹㈡埛瑙勬ā diff --git a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue index 2c252ab..55dfdfa 100644 --- a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue +++ b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue @@ -131,8 +131,21 @@ <el-row> <el-col :span="12"> <el-form-item label="闄勪欢" prop=""> + <template slot="label"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"> + <i class="el-icon-warning-outline" title="鏈�澶氫笂浼�20涓檮浠讹紝鏈�澶ч檺鍒�5MB"></i> + </div> + <span style="margin-left: 5px">闄勪欢</span> + </div> + </template> <div class="annex-view"> - <div @click="addAnnexClick">娣诲姞</div> + <div @click="addAnnexClick"> + <div style="display: flex; float: right"> + <div style="font-size: 16px"><i class="el-icon-paperclip"></i></div> + <span>娣诲姞</span> + </div> + </div> <div class="setFormat" @click="setFormatClick">璁剧疆鍏佽涓婁紶鐨勬枃浠舵牸寮�</div> </div> </el-form-item> -- Gitblit v1.8.0