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