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