From 28e0aa1d40bff8985ac3e662d3a7726594d919c3 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期一, 14 八月 2023 19:45:26 +0800
Subject: [PATCH] 销售机会联调及bug修复
---
src/components/layout/components/appsidebar/index.scss | 2
src/views/service/serviceContract/AddServiceContractDialog.vue | 8
src/views/client/client/index.vue | 9
src/views/service/serviceFollowup/AddServiceFollowupDialog.vue | 12
src/views/service/clientServiceOrder/DetailClientServiceOrder.vue | 4
src/views/client/salesLead/AddSalesLeadDialog.vue | 46 +++
src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue | 28 +
src/api/common/address.js | 84 ------
src/views/client/client/AddClientManageDialog.vue | 69 ++++-
src/views/client/salesLead/DetailSalesLead.vue | 14
src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue | 156 +++++++-----
src/views/sales/salesOpportunity/DetailAdvanceDialog.vue | 55 +++-
src/views/sales/salesOpportunity/DetailOpportunity.vue | 129 ++++++----
src/views/client/salesLead/index.vue | 2
src/views/sales/salesOpportunity/index.vue | 25 -
src/api/sales/salesOpportunity.js | 17 +
src/views/service/clientServiceOrder/index.vue | 7
src/components/layout/components/AppMain.vue | 8
18 files changed, 377 insertions(+), 298 deletions(-)
diff --git a/src/api/common/address.js b/src/api/common/address.js
index 12ecb36..1a22d46 100644
--- a/src/api/common/address.js
+++ b/src/api/common/address.js
@@ -1,81 +1,9 @@
-import request from "@/common/untils/request.js"
+// import request from "@/common/untils/request.js"
+import axios from "axios"
-// 鑾峰彇鍥藉鍒楄〃
-export function getCountryList() {
- return request({
- url: "/api/country/list",
- method: "get"
- })
-}
-// 娣诲姞鍥藉
-export function getAddCountry(data) {
- return request({
- url: "/api/country/add",
- method: "post",
- data
- })
-}
-// 鍒犻櫎鍥藉
-export function getDeleteCountry(data) {
- return request({
- url: "/api/country/delete",
- method: "delete",
- data
- })
-}
-// 璁剧疆鍥藉
-export function getSetCountry(data) {
- return request({
- url: "/api/country/set",
- method: "put",
- data
- })
-}
-// 鏇存柊鍥藉
-export function getUpdateCountry(data) {
- return request({
- url: "/api/country/update",
- method: "put",
- data
- })
-}
-
-// 鑾峰彇鐪佷唤鍒楄〃
-export function getProvinceList() {
- return request({
- url: "/api/province/list",
- method: "get"
- })
-}
-// 娣诲姞鐪佷唤
-export function getAddProvince(data) {
- return request({
- url: "/api/province/add",
- method: "post",
- data
- })
-}
-// 鍒犻櫎鐪佷唤
-export function getDeleteProvince(data) {
- return request({
- url: "/api/province/delete",
- method: "delete",
- data
- })
-}
-// 璁剧疆鐪佷唤
-export function getSetProvince(data) {
- return request({
- url: "/api/province/set",
- method: "put",
- data
- })
-}
-// 鏇存柊鐪佷唤
-export function getUpdateProvince(data) {
- return request({
- url: "/api/province/update",
- method: "put",
- data
+// 鑾峰彇鍩庡競鍒楄〃
+export const getCityList = async (data) => {
+ return await axios.get(`/api/city/list`, {
+ params: data
})
}
diff --git a/src/api/sales/salesOpportunity.js b/src/api/sales/salesOpportunity.js
index eb5d7a5..9fd8d0a 100644
--- a/src/api/sales/salesOpportunity.js
+++ b/src/api/sales/salesOpportunity.js
@@ -32,3 +32,20 @@
data
})
}
+
+// 鑾峰彇閿�鍞樁娈�
+export function getSaleStageList() {
+ return request({
+ url: "/api/saleStage/list",
+ method: "get"
+ })
+}
+
+// 鎺ㄨ繘閿�鍞満浼�
+export function pushSaleChance(data) {
+ return request({
+ url: "/api/saleChance/push",
+ method: "put",
+ data
+ })
+}
diff --git a/src/components/layout/components/AppMain.vue b/src/components/layout/components/AppMain.vue
index 7223e79..7cdbb3d 100644
--- a/src/components/layout/components/AppMain.vue
+++ b/src/components/layout/components/AppMain.vue
@@ -1,7 +1,9 @@
<template>
<div class="app-main">
<AppHeader :headerTitle="$route.meta.title" />
- <router-view :key="key" />
+ <div class="app-main-content">
+ <router-view :key="key" />
+ </div>
</div>
</template>
@@ -29,5 +31,9 @@
flex-direction: column;
// height: 100%;
width: 100%;
+ .app-main-content {
+ width: 100%;
+ overflow-y: auto;
+ }
}
</style>
diff --git a/src/components/layout/components/appsidebar/index.scss b/src/components/layout/components/appsidebar/index.scss
index dfd1db6..a5d60a4 100644
--- a/src/components/layout/components/appsidebar/index.scss
+++ b/src/components/layout/components/appsidebar/index.scss
@@ -1,6 +1,6 @@
.app-sidebar {
position: relative;
- height: 100%;
+ // height: 100%;
background-color: #314255;
.box {
width: 200px;
diff --git a/src/views/client/client/AddClientManageDialog.vue b/src/views/client/client/AddClientManageDialog.vue
index 7200b7d..25552c5 100644
--- a/src/views/client/client/AddClientManageDialog.vue
+++ b/src/views/client/client/AddClientManageDialog.vue
@@ -49,7 +49,7 @@
<el-option v-for="item in clientStatusOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -78,7 +78,7 @@
<el-option v-for="item in clientTypeOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -94,9 +94,9 @@
<el-option v-for="item in clientSourceOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn" @click="editDropdownBox">
+ <!-- <div class="common-select-btn" @click="editDropdownBox">
<i class="el-icon-setting"></i>
- </div>
+ </div> -->
</div>
</el-form-item>
</el-col>
@@ -130,7 +130,8 @@
<el-form-item label="涓嬫鍥炶鏃ユ湡" prop="next_visit_time">
<el-date-picker
v-model="editConfig.infomation.next_visit_time"
- type="datetime"
+ value-format="yyyy-MM-dd"
+ type="date"
placeholder="閫夋嫨鏃ユ湡"
>
</el-date-picker>
@@ -140,7 +141,8 @@
<el-form-item label="鏈�鏅氭湇鍔″埌鏈熸棩" prop="latest_service_time">
<el-date-picker
v-model="editConfig.infomation.latest_service_time"
- type="datetime"
+ value-format="yyyy-MM-dd"
+ type="date"
placeholder="閫夋嫨鏃ユ湡"
>
</el-date-picker>
@@ -200,7 +202,7 @@
<el-option v-for="item in industryOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -213,6 +215,7 @@
<el-form-item label="娉ㄥ唽鏃堕棿" prop="registration_time">
<el-date-picker
v-model="editConfig.infomation.registration_time"
+ value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="閫夋嫨鏃ユ湡鏃堕棿"
>
@@ -236,7 +239,7 @@
>
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -257,7 +260,7 @@
>
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -278,7 +281,7 @@
>
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -316,11 +319,12 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ disabled
>
<el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -332,11 +336,12 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ @change="selProvinceChange"
>
<el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -348,15 +353,16 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ :disabled="cityOptions.length <= 0 ? true : false"
>
<el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <!-- <el-col :span="12">
<el-form-item label="鍖哄煙" prop="region_id">
<div class="common-select">
<el-select
@@ -371,7 +377,7 @@
<div class="common-select-btn"><i class="el-icon-setting"></i></div>
</div>
</el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="24">
<el-form-item label="璇︾粏鍦板潃" prop="detail_address">
<el-input
@@ -485,6 +491,7 @@
<script>
import { getAllData, getAddClient, getUpdateClient } from "@/api/client/client"
+import { getCityList } from "@/api/common/address"
export default {
name: "AddClientManageDialog",
props: {
@@ -535,7 +542,7 @@
registerCapitalOptions: [], // 娉ㄥ唽璧勯噾
enterpriseNatureOptions: [], // 鍏徃鎬ц川
enterpriseScaleOptions: [], // 瀹㈡埛瑙勬ā
- countryOptions: [], // 鍥藉
+ countryOptions: [{ id: 1, name: "涓浗" }], // 鍥藉
provinceOptions: [], // 鐪佷唤
cityOptions: [], // 鍩庡競
regionOptions: [], // 鍖哄煙
@@ -543,10 +550,18 @@
}
},
created() {
+ if (this.editConfig.title !== "鏂板缓" && this.editConfig.infomation.province_id !== 0) {
+ this.getCityList(this.editConfig.infomation.province_id, "edit")
+ }
this.getCommonData()
},
methods: {
getCommonData() {
+ this.editConfig.infomation.country_id = 1
+ this.editConfig.infomation.province_id =
+ this.editConfig.infomation.province_id === 0 ? "" : this.editConfig.infomation.province_id
+ this.editConfig.infomation.city_id =
+ this.editConfig.infomation.city_id === 0 ? "" : this.editConfig.infomation.city_id
getAllData()
.then((res) => {
this.memberOptions = res.data.member
@@ -558,9 +573,8 @@
this.registerCapitalOptions = res.data.registered_capital
this.enterpriseNatureOptions = res.data.enterprise_nature
this.enterpriseScaleOptions = res.data.enterprise_scale
- this.countryOptions = res.data.country
+ // this.countryOptions = res.data.country
this.provinceOptions = res.data.province
- this.cityOptions = res.data.city
this.regionOptions = res.data.region
})
.catch((err) => {
@@ -630,7 +644,7 @@
let params = {
id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
business_scope: data.business_scope,
- city_id: 0,
+ city_id: data.city_id || 0,
client_level_id: data.client_level_id || 0,
client_origin_id: data.client_origin_id || 0,
client_status_id: data.client_status_id || 0,
@@ -662,7 +676,7 @@
name: data.name || "",
next_visit_time: data.next_visit_time || "",
number: data.number || "",
- province_id: 0,
+ province_id: data.province_id || 0,
region_id: 0,
registered_capital_id: data.registered_capital_id || 0,
registration_time: data.registration_time || "",
@@ -682,6 +696,21 @@
console.log("aaa")
this.editDropdownConfig.editVisible = true
this.editDropdownConfig.title = "瀹㈡埛鏉ユ簮"
+ },
+ // 閫夋嫨鐪佷唤
+ selProvinceChange(val) {
+ this.getCityList(val, "sel")
+ },
+ async getCityList(val, value) {
+ await getCityList({ province_id: val }).then((res) => {
+ console.log(res)
+ if (res.data.code === 200) {
+ this.cityOptions = res.data.data.list
+ if (value === "sel") {
+ this.editConfig.infomation.city_id = ""
+ }
+ }
+ })
}
}
}
diff --git a/src/views/client/client/index.vue b/src/views/client/client/index.vue
index cdadd62..dfc5187 100644
--- a/src/views/client/client/index.vue
+++ b/src/views/client/client/index.vue
@@ -145,11 +145,11 @@
{ label: "瀹㈡埛鍚嶇О", prop: "name", min: 100, isClientClick: true }, // 瀹㈡埛鍚嶇О
{ label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉
{ label: "閲嶈绾у埆", prop: "client_level" }, // 閲嶈绾у埆
- { label: "涓嬫鍥炶鏃ユ湡", prop: "next_visit_time", isTime: true, min: 90 }, // 涓嬫鍥炶鏃ユ湡
+ { label: "涓嬫鍥炶鏃ユ湡", prop: "next_visit_time", min: 90 }, // 涓嬫鍥炶鏃ユ湡
{ label: "璇︾粏鍦板潃", prop: "detail_address", min: 200 }, // 璇︾粏鍦板潃
{ label: "瀹㈡埛鐘舵��", prop: "client_status" }, // 瀹㈡埛鐘舵��
{ label: "鑱旂郴浜哄鍚�", prop: "contact_name", isContactClick: true }, // 鑱旂郴浜哄鍚�
- { label: "鎵嬫満鍙风爜", prop: "contact_phone" } // 鎵嬫満鍙风爜
+ { label: "鑱旂郴浜烘墜鏈哄彿鐮�", prop: "contact_phone" } // 鎵嬫満鍙风爜
]
}
this.searchOptions = []
@@ -190,7 +190,8 @@
contact_phone: contact_phone,
client_level: item.client_level.name,
client_status: item.client_status.name,
- contact_id: contact_id
+ contact_id: contact_id,
+ member_name: item.member.username
}
})
this.tableList.tableInfomation = list || []
@@ -228,7 +229,7 @@
addBtnClick() {
this.editConfig.visible = true
this.editConfig.title = "鏂板缓"
- this.editConfig.infomation = {}
+ this.editConfig.infomation = { city_id: 0 }
},
// 缂栬緫
handleClick(row) {
diff --git a/src/views/client/salesLead/AddSalesLeadDialog.vue b/src/views/client/salesLead/AddSalesLeadDialog.vue
index 4c9ec58..83da223 100644
--- a/src/views/client/salesLead/AddSalesLeadDialog.vue
+++ b/src/views/client/salesLead/AddSalesLeadDialog.vue
@@ -78,9 +78,9 @@
>
</el-option>
</el-select>
- <div class="common-select-btn" @click="editDropdownBox">
+ <!-- <div class="common-select-btn" @click="editDropdownBox">
<i class="el-icon-setting"></i>
- </div>
+ </div> -->
</div>
</el-form-item>
</el-col>
@@ -120,11 +120,12 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ disabled
>
<el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -136,11 +137,12 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ @change="selProvinceChange"
>
<el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -152,15 +154,16 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ :disabled="cityOptions.length <= 0 ? true : false"
>
<el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <!-- <el-col :span="12">
<el-form-item label="鍖哄煙" prop="region_id">
<div class="common-select">
<el-select
@@ -175,7 +178,7 @@
<div class="common-select-btn"><i class="el-icon-setting"></i></div>
</div>
</el-form-item>
- </el-col>
+ </el-col> -->
</el-row>
<!-- <el-row>
<el-col :span="24">
@@ -228,6 +231,7 @@
import EditDropdownDialog from "@/views/other/commonDialog/EditDropdownDialog"
import { getAddSalesLeads, getUpdateSalesLeads } from "@/api/client/salesLead"
import { getAllData } from "@/api/client/client"
+import { getCityList } from "@/api/common/address"
export default {
name: "AddSalesLeadDialog",
@@ -266,7 +270,7 @@
},
businessSourceOptions: [],
memberOptions: [],
- countryOptions: [], // 鍥藉
+ countryOptions: [{ id: 1, name: "涓浗" }], // 鍥藉
provinceOptions: [], // 鐪佷唤
cityOptions: [], // 鍩庡競
regionOptions: [], // 鍖哄煙
@@ -280,18 +284,25 @@
}
},
created() {
+ if (this.editConfig.title !== "鏂板缓" && this.editConfig.infomation.province_id !== 0) {
+ this.getCityList(this.editConfig.infomation.province_id, "edit")
+ }
this.getCommonData()
},
mounted() {},
methods: {
getCommonData() {
+ this.editConfig.infomation.country_id = 1
+ this.editConfig.infomation.province_id =
+ this.editConfig.infomation.province_id === 0 ? "" : this.editConfig.infomation.province_id
+ this.editConfig.infomation.city_id =
+ this.editConfig.infomation.city_id === 0 ? "" : this.editConfig.infomation.city_id
getAllData()
.then((res) => {
console.log(res)
this.businessSourceOptions = res.data.sales_source
- this.countryOptions = res.data.country
+ // this.countryOptions = res.data.country
this.provinceOptions = res.data.province
- this.cityOptions = res.data.city
this.regionOptions = res.data.region
this.memberOptions = res.data.member
})
@@ -381,6 +392,21 @@
confirmPhone(value) {
const inputValue = value.replace(/[^\d*]/g, "")
this.editConfig.infomation.contact_phone = inputValue
+ },
+ // 閫夋嫨鐪佷唤
+ selProvinceChange(val) {
+ this.getCityList(val, "sel")
+ },
+ async getCityList(val, value) {
+ await getCityList({ province_id: val }).then((res) => {
+ console.log(res)
+ if (res.data.code === 200) {
+ this.cityOptions = res.data.data.list
+ if (value === "sel") {
+ this.editConfig.infomation.city_id = ""
+ }
+ }
+ })
}
}
}
diff --git a/src/views/client/salesLead/DetailSalesLead.vue b/src/views/client/salesLead/DetailSalesLead.vue
index 4df0d87..2e3988c 100644
--- a/src/views/client/salesLead/DetailSalesLead.vue
+++ b/src/views/client/salesLead/DetailSalesLead.vue
@@ -221,19 +221,13 @@
this.addressInfoList = [
{
leftStr: "鍥藉",
- leftValue: "",
+ leftValue: "涓浗",
rightStr: "鐪佷唤",
- rightValue: ""
+ rightValue: this.detailConfig.infomation.Province.name
},
{
leftStr: "鍩庡競",
- leftValue: "",
- rightStr: "鍖哄煙",
- rightValue: ""
- },
- {
- leftStr: "鍦板潃",
- leftValue: "",
+ leftValue: this.detailConfig.infomation.City.name,
rightStr: "",
rightValue: ""
}
@@ -255,6 +249,8 @@
this.isDynamicExpand = !this.isDynamicExpand
} else if (value === "address") {
this.isAddressExpand = !this.isAddressExpand
+ } else if (value === "remark") {
+ this.isRemarkExpand = !this.isRemarkExpand
}
}
}
diff --git a/src/views/client/salesLead/index.vue b/src/views/client/salesLead/index.vue
index 73e5bee..78a2656 100644
--- a/src/views/client/salesLead/index.vue
+++ b/src/views/client/salesLead/index.vue
@@ -187,7 +187,7 @@
addBtnClick() {
this.editSalesLeadConfig.visible = true
this.editSalesLeadConfig.title = "鏂板缓"
- this.editSalesLeadConfig.infomation = { businessStatus: "鏂板缓" }
+ this.editSalesLeadConfig.infomation = { businessStatus: "鏂板缓", city_id: 0 }
},
// 缂栬緫
handleClick(row) {
diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
index 61fd54a..2db4a3e 100644
--- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
+++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -99,7 +99,7 @@
</el-option>
</el-select>
<!-- @click="editDropdownBox" -->
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -116,7 +116,7 @@
</el-option>
</el-select>
<!-- @click="editDropdownBox" -->
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -133,7 +133,7 @@
</el-option>
</el-select>
<!-- @click="editDropdownBox" -->
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -168,7 +168,7 @@
</el-option>
</el-select>
<!-- @click="editDropdownBox" -->
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -196,7 +196,7 @@
</el-option>
</el-select>
<!-- @click="editDropdownBox" -->
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -220,13 +220,24 @@
</el-col>
<el-col :span="12">
<el-form-item label="棰勮鎴愪氦鏃ユ湡" prop="expected_time">
- <el-date-picker v-model="editConfig.infomation.expected_time" type="date" placeholder="閫夋嫨鏃ユ湡">
+ <el-date-picker
+ v-model="editConfig.infomation.expected_time"
+ value-format="yyyy-MM-dd"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ >
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="棰勮鍚堝悓閲戦" prop="projected_amount">
- <el-input v-model="editConfig.infomation.projected_amount"></el-input>
+ <el-input-number
+ v-model="editConfig.infomation.projected_amount"
+ placeholder="璇疯緭鍏�"
+ :min="0"
+ :controls="false"
+ style="width: 100%; margin-right: 5px"
+ ></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -242,7 +253,7 @@
</el-option>
</el-select>
<!-- @click="editDropdownBox" -->
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -381,11 +392,12 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ disabled
>
<el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -397,11 +409,12 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ @change="selProvinceChange"
>
<el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -413,15 +426,16 @@
placeholder="璇烽�夋嫨"
class="common-select-sel"
size="mini"
+ :disabled="cityOptions.length <= 0 ? true : false"
>
<el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <!-- <el-col :span="12">
<el-form-item label="鍖哄煙" prop="region_id">
<div class="common-select">
<el-select
@@ -436,7 +450,7 @@
<div class="common-select-btn"><i class="el-icon-setting"></i></div>
</div>
</el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="20">
<el-form-item label="璇︾粏鍦板潃" prop="detail_address">
<el-input
@@ -520,6 +534,7 @@
import { getAddSaleChance, getUpdateSaleChance } from "@/api/sales/salesOpportunity"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"
+import { getCityList } from "@/api/common/address"
export default {
name: "AddSalesOpportunityDialog",
props: {
@@ -551,13 +566,13 @@
dialogWidth: "80%",
editConfig: this.editCommonConfig,
rules: {
- number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- name: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- member_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- sale_stage_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- currency: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- expected_time: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- projected_amount: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
+ number: [{ required: true, message: "璇疯緭鍏ラ攢鍞満浼氱紪鍙�", trigger: "blur" }],
+ name: [{ required: true, message: "璇疯緭鍏ユ満浼氬悕绉�", trigger: "blur" }],
+ member_id: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }],
+ sale_stage_id: [{ required: true, message: "璇烽�夋嫨閿�鍞樁娈�", trigger: "change" }],
+ currency: [{ required: true, message: "璇烽�夋嫨甯佺", trigger: "change" }],
+ expected_time: [{ required: true, message: "璇烽�夋嫨棰勮鎴愪氦鏃ユ湡", trigger: "change" }],
+ projected_amount: [{ required: true, message: "璇疯緭鍏ラ璁″悎鍚岄噾棰�", trigger: "blur" }]
},
businessSourceOptions: [],
memberOptions: [],
@@ -565,9 +580,9 @@
saleStageOptions: [], // 閿�鍞樁娈�
oldCustomerMarketOptions: [], // 鑰佸鎴疯惀閿�
possibleOptions: [], // 鍙兘鎬�
- currencyOptions: [], // 甯佺
+ currencyOptions: [{ id: 1, name: "浜烘皯甯�" }], // 甯佺
currentStateOptions: [], // 褰撳墠鐘舵��
- countryOptions: [], // 鍥藉
+ countryOptions: [{ id: 1, name: "涓浗" }], // 鍥藉
provinceOptions: [], // 鐪佷唤
cityOptions: [], // 鍩庡競
regionOptions: [], // 鍖哄煙
@@ -589,24 +604,29 @@
created() {
this.$store.dispatch("geClient")
this.$store.dispatch("geContact")
+ if (this.editConfig.title !== "鏂板缓" && this.editConfig.infomation.province_id !== 0) {
+ this.getCityList(this.editConfig.infomation.province_id, "edit")
+ }
this.getCommonData()
},
methods: {
getCommonData() {
+ this.editConfig.infomation.country_id = 1
+ this.editConfig.infomation.province_id =
+ this.editConfig.infomation.province_id === 0 ? "" : this.editConfig.infomation.province_id
+ this.editConfig.infomation.city_id =
+ this.editConfig.infomation.city_id === 0 ? "" : this.editConfig.infomation.city_id
getAllData()
.then((res) => {
- // 缂� 鍙兘鎬� 甯佺 褰撳墠鐘舵��
this.memberOptions = res.data.member
this.businessSourceOptions = res.data.sales_source
this.businessTypeOptions = res.data.sale_type
this.oldCustomerMarketOptions = res.data.regular_customers
this.saleStageOptions = res.data.sale_stage
- this.countryOptions = res.data.country
this.provinceOptions = res.data.province
- this.cityOptions = res.data.city
this.regionOptions = res.data.region
this.possibleOptions = res.data.possibility
- this.currencyOptions = res.data.currency
+ // this.currencyOptions = res.data.currency
this.currentStateOptions = res.data.status
})
.catch((err) => {
@@ -628,41 +648,33 @@
const params = this.saveParams()
console.log(params)
if (this.editConfig.title === "鏂板缓") {
- getAddSaleChance(params)
- .then((res) => {
- console.log(res)
- this.editConfig.visible = false
- if (res.code === 200) {
- this.$message({
- message: "娣诲姞鎴愬姛",
- type: "success"
- })
- if (this.editConfig.title === "鏂板缓" && this.editConfig.infomation.client_name) {
- this.$parent.handleClose()
- } else {
- this.$parent.getData()
- }
- }
- })
- .catch((err) => {
- console.log(err)
- })
- } else {
- getUpdateSaleChance(params)
- .then((res) => {
- console.log(res)
- this.editConfig.visible = false
- if (res.code === 200) {
- this.$message({
- message: "缂栬緫鎴愬姛",
- type: "success"
- })
+ getAddSaleChance(params).then((res) => {
+ console.log(res)
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message({
+ message: "娣诲姞鎴愬姛",
+ type: "success"
+ })
+ if (this.editConfig.title === "鏂板缓" && this.editConfig.infomation.client_name) {
+ this.$parent.handleClose()
+ } else {
this.$parent.getData()
}
- })
- .catch((err) => {
- console.log(err)
- })
+ }
+ })
+ } else {
+ getUpdateSaleChance(params).then((res) => {
+ console.log(res)
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message({
+ message: "缂栬緫鎴愬姛",
+ type: "success"
+ })
+ this.$parent.getData()
+ }
+ })
}
} else {
console.log("error submit")
@@ -678,9 +690,9 @@
budget: data.budget || 0,
capital_budget: data.capital_budget || "",
city_id: data.city_id || 0,
- client_id: parseInt(this.clientId),
+ client_id: this.clientId || 0,
competitors: data.competitors || "",
- contact_id: parseInt(this.contactId),
+ contact_id: this.contactId || 0,
country_id: data.country_id || 0,
currency: data.currency || 0,
disadvantages: data.disadvantages || "",
@@ -694,7 +706,7 @@
pain_points: data.pain_points || "",
possibilities: data.possibilities || 0,
process: data.process || "",
- projected_amount: parseInt(data.projected_amount) || 0,
+ projected_amount: data.projected_amount || 0,
province_id: data.province_id || 0,
region_id: data.region_id || 0,
regular_customers_id: data.regular_customers_id || 0,
@@ -763,7 +775,22 @@
// 娣诲姞闄勪欢
addAnnexClick() {},
// 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
- setFormatClick() {}
+ setFormatClick() {},
+ // 閫夋嫨鐪佷唤
+ selProvinceChange(val) {
+ this.getCityList(val, "sel")
+ },
+ async getCityList(val, value) {
+ await getCityList({ province_id: val }).then((res) => {
+ console.log(res)
+ if (res.data.code === 200) {
+ this.cityOptions = res.data.data.list
+ if (value === "sel") {
+ this.editConfig.infomation.city_id = ""
+ }
+ }
+ })
+ }
}
}
</script>
@@ -820,6 +847,9 @@
height: 55px;
line-height: 55px;
}
+ .el-input__inner {
+ text-align: left;
+ }
}
}
</style>
diff --git a/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue b/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue
index c4aa32d..eb8fcde 100644
--- a/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue
+++ b/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue
@@ -13,23 +13,25 @@
<div class="one">
<el-radio :label="1">
<span>鎺ㄨ繘鍒颁笅涓�闃舵</span>
- <el-select v-model="value" size="mini" disabled>
- <el-option v-for="(item, index) in options" :key="index" :label="item" :value="item"> </el-option>
+ <el-select v-model="value1" size="mini" disabled>
+ <el-option v-for="(item, index) in options" :key="index" :label="item.name" :value="item.id">
+ </el-option>
</el-select>
</el-radio>
</div>
<div class="two">
<el-radio :label="2">
<span>鎺ㄨ繘鍒版寚瀹氶樁娈�</span>
- <el-select v-model="value" size="mini">
- <el-option v-for="(item, index) in options" :key="index" :label="item" :value="item"> </el-option>
+ <el-select v-model="value" size="mini" @change="designatedStageClick">
+ <el-option v-for="(item, index) in options" :key="index" :label="item.name" :value="item.id">
+ </el-option>
</el-select>
</el-radio>
</div>
</el-radio-group>
</div>
<div slot="footer" class="dialog-footer">
- <el-button type="primary" size="small" @click="saveClick('form')">鎺ㄨ繘</el-button>
+ <el-button type="primary" size="small" @click="saveClick()">鎺ㄨ繘</el-button>
<el-button size="small" @click="commonConfig.visible = false">鍙栨秷</el-button>
</div>
</el-dialog>
@@ -37,6 +39,7 @@
</template>
<script>
+import { pushSaleChance } from "@/api/sales/salesOpportunity"
export default {
name: "DetailAdvanceDialog",
props: {
@@ -45,7 +48,10 @@
default: () => {
return {
visible: false,
- active: "闇�姹傚垎鏋�"
+ active: "闇�姹傚垎鏋�",
+ allOptions: [],
+ options: [],
+ id: 0
}
}
}
@@ -54,12 +60,13 @@
computed: {},
data() {
return {
- allOptions: ["鍒濇湡娌熼��", "闇�姹傚垎鏋�", "鏂规鎶ヤ环", "鍟嗗姟璋堝垽", "鎴愬姛缁撴", "澶辫触缁撴"],
+ allOptions: this.advanceConfig.allOptions,
dialogWidth: "25%",
radio: 1,
commonConfig: this.advanceConfig,
+ value1: "",
value: "",
- options: ["鍒濇湡娌熼��", "闇�姹傚垎鏋�", "鏂规鎶ヤ环", "鍟嗗姟璋堝垽", "鎴愬姛缁撴", "澶辫触缁撴"]
+ options: this.advanceConfig.options
}
},
watch: {},
@@ -68,17 +75,41 @@
},
methods: {
setData() {
- console.log(this.commonConfig.active)
this.allOptions.map((item, index) => {
- if (item === this.commonConfig.active) {
- console.log(index)
- this.value = this.allOptions[index + 1]
+ if (item.id === this.commonConfig.active) {
+ if (index + 1 === this.allOptions.length) {
+ this.value = this.allOptions[0].id
+ this.value1 = this.allOptions[0].id
+ } else {
+ this.value = this.allOptions[index + 1].id
+ this.value1 = this.allOptions[index + 1].id
+ }
+
this.options.splice(index, 1)
}
})
},
handleClose() {
this.commonConfig.visible = false
+ },
+ designatedStageClick() {
+ this.radio = 2
+ },
+ async saveClick() {
+ let stepId = 0
+ if (this.radio === 2) {
+ stepId = this.value
+ } else {
+ stepId = this.value1
+ }
+ await pushSaleChance({
+ id: this.commonConfig.id,
+ step: stepId
+ }).then((res) => {
+ if (res.code === 200) {
+ this.handleClose()
+ }
+ })
}
}
}
diff --git a/src/views/sales/salesOpportunity/DetailOpportunity.vue b/src/views/sales/salesOpportunity/DetailOpportunity.vue
index cd2476c..5d2257f 100644
--- a/src/views/sales/salesOpportunity/DetailOpportunity.vue
+++ b/src/views/sales/salesOpportunity/DetailOpportunity.vue
@@ -38,13 +38,16 @@
</div>
<div v-show="isSchduleExpand" class="basic-info-content">
<div class="step-view">
- <el-steps :active="active" align-center>
- <el-step :active-color="'#fff'" :title="item.title" :key="index" v-for="(item, index) in stepsList">
+ <el-steps :active="sale_active" align-center>
+ <el-step :active-color="'#fff'" :title="item.name" :key="item.id" v-for="(item, index) in stepsList">
<template slot="title">
<div class="step-title-view">
- <div class="step-label">{{ item.title }}</div>
- <div v-show="index === active" class="step-btn" @click="advanceClick(item)">鎺ㄨ繘</div>
- <div class="step-desc">{{ item.desc }}</div>
+ <div class="step-label">{{ item.name }}</div>
+ <div v-show="sale_active === index" class="step-btn" @click="advanceClick(item)">
+ <!-- && sale_stage_id !== stepsList.length -->
+ 鎺ㄨ繘
+ </div>
+ <!-- <div class="step-desc">{{ item.desc }}</div> -->
</div>
</template>
</el-step>
@@ -170,11 +173,11 @@
<li v-for="(item, i) in addressInfoList" :key="i">
<div class="left">
<div class="content-title">{{ item.leftStr + "锛�" }}</div>
- <div class="content-data">{{ item.leftValue }}</div>
+ <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
</div>
<div class="right">
<div class="content-title">{{ item.rightStr }}</div>
- <div class="content-data">{{ item.rightValue }}</div>
+ <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
</div>
</li>
</ul>
@@ -217,7 +220,7 @@
</div>
</div>
<!-- 閿�鍞満浼氶樁娈垫帹杩涘巻鍙� -->
- <div class="basic-info">
+ <!-- <div class="basic-info">
<div class="basic-info-label" @click="expandClick('history')">
<i v-if="isHistoryExpand" class="el-icon-arrow-down"></i>
<i v-else class="el-icon-arrow-up"></i>
@@ -234,7 +237,7 @@
</li>
</ul>
</div>
- </div>
+ </div> -->
</div>
<div v-if="activeName === 'second'" class="second">
<FollowupRecords :isDetail="true" />
@@ -264,6 +267,7 @@
import SalesDetails from "@/views/sales/salesDetails"
import ServiceContract from "@/views/service/serviceContract"
import DetailAdvanceDialog from "@/views/sales/salesOpportunity/DetailAdvanceDialog"
+import { getSaleStageList } from "@/api/sales/salesOpportunity"
export default {
name: "DetailClientManage",
props: {
@@ -284,14 +288,7 @@
detailConfig: this.opportunityDetail,
activeName: "first",
isSchduleExpand: true, // 杩涘害杩借釜
- stepsList: [
- { title: "鍒濇湡娌熼��", desc: "鍋滅暀: 1鏈�8澶�20灏忔椂" },
- { title: "闇�姹傚垎鏋�", desc: "" },
- { title: "鏂规鎶ヤ环", desc: "" },
- { title: "鍟嗗姟璋堝垽", desc: "" },
- { title: "鎴愬姛缁撴", desc: "" },
- { title: "澶辫触缁撴", desc: "" }
- ],
+ stepsList: [],
isBasicExpand: true, // 鍩烘湰淇℃伅灞曞紑
basicInfoList: [],
isForecastExpand: true, // 閿�鍞娴�
@@ -308,47 +305,60 @@
isAnnexExpand: true, // 闄勪欢淇℃伅
isHistoryExpand: true, // 鎺ㄨ繘鍘嗗彶
historyList: [],
- active: 2,
+ sale_active: 0,
advanceConfig: {
visible: false,
- active: ""
+ active: "",
+ allOptions: [],
+ options: []
}
}
},
created() {
- this.setData()
+ this.getSaleStageList()
+ this.setData(this.detailConfig.infomation)
},
mounted() {},
methods: {
- setData() {
+ async getSaleStageList() {
+ await getSaleStageList().then((res) => {
+ this.stepsList = res.data.list
+ res.data.list.map((item, index) => {
+ if (item.id === this.detailConfig.infomation.sale_stage_id) {
+ this.sale_active = index
+ }
+ })
+ })
+ },
+ setData(item) {
this.basicInfoList = [
{
leftStr: "瀹㈡埛鍚嶇О",
- leftValue: "",
+ leftValue: item.client_name,
rightStr: "閿�鍞満浼氱紪鍙�",
- rightValue: ""
+ rightValue: item.id
},
{
leftStr: "鏈轰細鍚嶇О",
- leftValue: "",
+ leftValue: item.name,
rightStr: "鑱旂郴浜哄鍚�",
- rightValue: ""
+ rightValue: item.contact_name
},
{
leftStr: "鍟嗘満鏉ユ簮",
- leftValue: "",
+ leftValue: item.SalesSources.name,
rightStr: "鍟嗘満绫诲瀷",
- rightValue: ""
+ rightValue: "" // item.SaleType.name
},
{
leftStr: "閿�鍞樁娈�",
- leftValue: "",
+ leftValue: item.sale_stage_name,
rightStr: "閿�鍞礋璐d汉",
- rightValue: ""
+ rightValue: item.member.username
},
{
leftStr: "鑰佸鎴疯惀閿�",
- leftValue: "",
+ leftValue: item.regular_customers_id,
rightStr: "绛惧埌",
rightValue: ""
},
@@ -368,21 +378,21 @@
this.forecastList = [
{
leftStr: "鍙兘鎬�(%)",
- leftValue: "",
+ leftValue: item.possibility.name,
rightStr: "甯佺",
- rightValue: ""
+ rightValue: "浜烘皯甯�"
},
{
leftStr: "棰勭畻缁濆鍊�",
- leftValue: "",
+ leftValue: item.capital_budget,
rightStr: "棰勮鎴愪氦鏃ユ湡",
- rightValue: ""
+ rightValue: item.expected_time
},
{
leftStr: "棰勮鍚堝悓閲戦",
- leftValue: "",
+ leftValue: item.projected_amount,
rightStr: "褰撳墠鐘舵��",
- rightValue: ""
+ rightValue: item.status_id
}
]
this.dynamicInfoList = [
@@ -408,58 +418,58 @@
this.businessInfoList = [
{
leftStr: "瀹㈡埛闇�姹傛垨鐥涚偣锛坵hy锛�",
- leftValue: ""
+ leftValue: item.pain_points
},
{
leftStr: "鏄惁宸茬粡绔嬮」锛坧lan锛�",
- leftValue: ""
+ leftValue: item.whether_established
},
{
leftStr: "璧勯噾棰勭畻鏄灏戯紙plan锛�",
- leftValue: ""
+ leftValue: item.capital_budget
},
{
leftStr: "鍏抽敭鍐崇瓥浜烘槸璋侊紙who锛�",
- leftValue: ""
+ leftValue: item.key_maker
},
{
leftStr: "鍏抽敭鍐崇瓥鍥犵礌鏈夊摢浜涳紙what锛�",
- leftValue: ""
+ leftValue: item.key_factors
},
{
leftStr: "鍐崇瓥娴佺▼鏄�庢牱鐨勶紙what锛�",
- leftValue: ""
+ leftValue: item.process
},
{
leftStr: "绔炰簤瀵规墜鎻愪緵鐨勬柟妗堬紙what锛�",
- leftValue: ""
+ leftValue: item.solutions
}
]
this.swotInfoList = [
{
leftStr: "浼樺娍(S)",
- leftValue: "",
+ leftValue: item.advantages,
rightStr: "鍔e娍(W)",
- rightValue: ""
+ rightValue: item.disadvantages
},
{
leftStr: "鏈轰細(O)",
- leftValue: "",
+ leftValue: item.opportunities,
rightStr: "濞佽儊(T)",
- rightValue: ""
+ rightValue: item.threats
}
]
this.addressInfoList = [
{
leftStr: "鍥藉",
- leftValue: "",
+ leftValue: "涓浗",
rightStr: "鐪佷唤",
- rightValue: ""
+ rightValue: item.Province.name
},
{
leftStr: "鍩庡競",
- leftValue: "",
- rightStr: "鍖哄煙",
+ leftValue: item.City.name,
+ rightStr: "",
rightValue: ""
},
{
@@ -484,6 +494,7 @@
},
handleClose() {
this.detailConfig.visible = false
+ this.$parent.getData()
},
// tab鍒囨崲
tabsClick(tab, event) {
@@ -516,9 +527,17 @@
},
// 鎺ㄨ繘
advanceClick(item) {
- console.log(item)
- this.advanceConfig.visible = true
- this.advanceConfig.active = item.title
+ let options = []
+ for (let i = 0; i < this.stepsList.length; i++) {
+ options.push(this.stepsList[i])
+ }
+ this.advanceConfig = {
+ visible: true,
+ active: item.id,
+ allOptions: this.stepsList,
+ options: options,
+ id: this.detailConfig.infomation.id
+ }
}
}
}
@@ -629,7 +648,7 @@
}
.step-view {
padding: 30px 60px 5px;
- height: 100px;
+ height: 80px;
.step-title-view {
margin-top: 10px;
font-size: 12px;
diff --git a/src/views/sales/salesOpportunity/index.vue b/src/views/sales/salesOpportunity/index.vue
index 6a1ded9..277db73 100644
--- a/src/views/sales/salesOpportunity/index.vue
+++ b/src/views/sales/salesOpportunity/index.vue
@@ -141,7 +141,7 @@
{ label: "瀹㈡埛鍚嶇О", prop: "client_name", min: 90, isClientClick: true }, // 瀹㈡埛鍚嶇О
{ label: "閿�鍞満浼氱紪鍙�", prop: "number" }, // 閿�鍞満浼氱紪鍙�
{ label: "鑱旂郴浜哄鍚�", prop: "contact_name", min: 100, isContactClick: true }, // 鑱旂郴浜哄鍚�
- { label: "閿�鍞樁娈�", prop: "sale_stage" }, // 閿�鍞樁娈�
+ { label: "閿�鍞樁娈�", prop: "sale_stage_name" }, // 閿�鍞樁娈�
{ label: "鍙兘鎬�(%)", prop: "possibilities" }, // 鍙兘鎬�
{ label: "棰勮鎴愪氦鏃ユ湡", prop: "expected_time", isTime: true, min: 130 }, // 棰勮鎴愪氦鏃ユ湡
{ label: "棰勮鍚堝悓閲戦", prop: "projected_amount" }, // 棰勮鍚堝悓閲戦
@@ -172,7 +172,8 @@
return {
...item,
client_name: item.client.name,
- contact_name: item.contact.name
+ contact_name: item.contact.name,
+ sale_stage_name: item.sale_stage.name
}
})
this.tableList.tableInfomation = list || []
@@ -207,7 +208,7 @@
addBtnClick() {
this.editConfig.visible = true
this.editConfig.title = "鏂板缓"
- this.editConfig.infomation = {}
+ this.editConfig.infomation = { city_id: 0 }
},
// 缂栬緫
handleClick(row) {
@@ -218,24 +219,6 @@
},
// 鍒犻櫎
delClick() {
- // this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", {
- // confirmButtonText: "纭畾",
- // cancelButtonText: "鍙栨秷",
- // type: "warning"
- // })
- // .then(function () {
- // return getDelSaleChance({ id: id })
- // })
- // .then((response) => {
- // if (response.code === 200) {
- // this.$message.success("鍒犻櫎鎴愬姛")
- // this.getData()
- // } else {
- // this.$message.warning("鍒犻櫎澶辫触")
- // }
- // })
- // .catch(function () {})
-
if (this.selValueList && this.selValueList.length > 0) {
this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", {
confirmButtonText: "纭畾",
diff --git a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue
index e308dae..eda11e6 100644
--- a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue
+++ b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue
@@ -54,7 +54,7 @@
<el-form-item label="鏈嶅姟鍚堝悓">
<div class="custom-name">
<el-autocomplete
- v-model="editConfig.infomation.service_number"
+ v-model="editConfig.infomation.serviceContract_Number"
:fetch-suggestions="
(queryString, callback) => {
querySearchAsync(queryString, callback, 'serviceContract')
@@ -85,7 +85,7 @@
<el-option v-for="item in faultTypeOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -171,7 +171,7 @@
<el-option v-for="item in serviceTypeOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -229,7 +229,7 @@
<el-option v-for="item in severityOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -260,7 +260,7 @@
>
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -314,7 +314,7 @@
<el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -326,13 +326,23 @@
<el-row>
<el-col :span="12">
<el-form-item label="甯屾湜澶勭悊鏃堕棿" prop="expectTime">
- <el-date-picker v-model="editConfig.infomation.expectTime" type="datetime" placeholder="閫夋嫨鏃堕棿">
+ <el-date-picker
+ v-model="editConfig.infomation.expectTime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetime"
+ placeholder="閫夋嫨鏃堕棿"
+ >
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="瀹為檯澶勭悊鏃堕棿" prop="realTime">
- <el-date-picker v-model="editConfig.infomation.startTime" type="realTime" placeholder="閫夋嫨鏃堕棿">
+ <el-date-picker
+ v-model="editConfig.infomation.startTime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="realTime"
+ placeholder="閫夋嫨鏃堕棿"
+ >
</el-date-picker>
</el-form-item>
</el-col>
@@ -370,7 +380,7 @@
<el-option v-for="item in timeSpentOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
diff --git a/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue b/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue
index 88ccd46..cf0fb8b 100644
--- a/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue
+++ b/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue
@@ -357,7 +357,7 @@
},
{
leftStr: "鏈嶅姟鍚堝悓",
- leftValue: data.Contract.number,
+ leftValue: data.ServiceContract.number,
rightStr: "鏁呴殰绫诲埆",
rightValue: data.FaultType.name
},
@@ -365,7 +365,7 @@
leftStr: "涓婚",
leftValue: data.subject,
rightStr: "鍚堝悓璁㈠崟",
- rightValue: data.OrderManage.number
+ rightValue: data.SalesDetails.number
},
{
leftStr: "浜у搧绫诲埆",
diff --git a/src/views/service/clientServiceOrder/index.vue b/src/views/service/clientServiceOrder/index.vue
index b091743..c2d952d 100644
--- a/src/views/service/clientServiceOrder/index.vue
+++ b/src/views/service/clientServiceOrder/index.vue
@@ -143,7 +143,9 @@
keyword: keyword,
keywordType: keywordType,
page: this.pagerOptions.currPage,
- pageSize: this.pagerOptions.pageSize
+ pageSize: this.pagerOptions.pageSize,
+ salesDetailsId: 0,
+ serviceContractId: 0
})
.then((res) => {
console.log(res)
@@ -154,7 +156,8 @@
...item,
client_name: item.Client.name,
serviceType_name: item.ServiceType.name,
- faultType_name: item.FaultType.name
+ faultType_name: item.FaultType.name,
+ serviceContract_Number: item.ServiceContract.number
}
})
this.tableList.tableInfomation = list || []
diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue
index fe2da95..cebf667 100644
--- a/src/views/service/serviceContract/AddServiceContractDialog.vue
+++ b/src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -163,7 +163,7 @@
<el-option v-for="item in contractTypeOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -223,7 +223,7 @@
>
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -267,7 +267,7 @@
</el-row>
</div>
<!-- 闄勪欢淇℃伅 -->
- <div class="basic-info-title">闄勪欢淇℃伅</div>
+ <!-- <div class="basic-info-title">闄勪欢淇℃伅</div>
<div class="basic-info-view">
<el-row>
<el-col :span="12">
@@ -292,7 +292,7 @@
</el-form-item>
</el-col>
</el-row>
- </div>
+ </div> -->
<!-- 浜у搧绠$悊 -->
<div class="basic-info-title" style="display: flex">
浜у搧绠$悊
diff --git a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
index a4071bb..8c98d07 100644
--- a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
+++ b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
@@ -123,7 +123,7 @@
<el-option v-for="item in satisfactionOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -139,7 +139,7 @@
<el-option v-for="item in timelyRateOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -155,7 +155,7 @@
<el-option v-for="item in solveRateOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -179,7 +179,7 @@
<el-option v-for="item in isVisitOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+ <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
</div>
</el-form-item>
</el-col>
@@ -202,7 +202,7 @@
</el-row>
</div>
<!-- 闄勪欢淇℃伅 -->
- <div class="basic-info-title">闄勪欢淇℃伅</div>
+ <!-- <div class="basic-info-title">闄勪欢淇℃伅</div>
<div class="basic-info-view">
<el-row>
<el-col :span="12">
@@ -227,7 +227,7 @@
</el-form-item>
</el-col>
</el-row>
- </div>
+ </div> -->
</div>
</el-form>
<div slot="footer" class="dialog-footer">
--
Gitblit v1.8.0