From 879249b34397ba1dc2be1ff1c7afd158d35ec340 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 25 十二月 2025 14:30:48 +0800
Subject: [PATCH] 1.公司-商机管理添加市的字段
---
src/views/procurementManagement/procurementInvoiceLedger/index.vue | 2
src/views/procurementManagement/procurementLedger/index.vue | 9 +
src/views/salesManagement/invoiceLedger/index.vue | 2
src/views/salesManagement/receiptPayment/index.vue | 8 +
src/views/salesManagement/opportunityManagement/index.vue | 137 +++++++++++++++++++++-------------
src/api/salesManagement/opportunityManagement.js | 15 +++
src/views/procurementManagement/invoiceEntry/index.vue | 4 +
src/components/PIMTable/PIMTable.vue | 3
src/views/salesManagement/salesLedger/index.vue | 12 +-
src/views/salesManagement/invoiceRegistration/index.vue | 11 +-
src/views/salesManagement/receiptPaymentHistory/index.vue | 2
11 files changed, 132 insertions(+), 73 deletions(-)
diff --git a/src/api/salesManagement/opportunityManagement.js b/src/api/salesManagement/opportunityManagement.js
index 31f64c3..950485e 100644
--- a/src/api/salesManagement/opportunityManagement.js
+++ b/src/api/salesManagement/opportunityManagement.js
@@ -44,3 +44,18 @@
data: ids,
});
}
+// 鏌ヨ鐪�
+export function getProvinceList() {
+ return request({
+ url: "/businessOpportunity/getProvinceList",
+ method: "get",
+ });
+}
+// 鏌ヨ甯�
+export function getCityList(id) {
+ return request({
+ url: "/businessOpportunity/getCityList",
+ method: "get",
+ params: id,
+ });
+}
diff --git a/src/components/PIMTable/PIMTable.vue b/src/components/PIMTable/PIMTable.vue
index a89aa96..94f9a52 100644
--- a/src/components/PIMTable/PIMTable.vue
+++ b/src/components/PIMTable/PIMTable.vue
@@ -26,9 +26,10 @@
align="center"
type="selection"
width="55"
+ fixed="left"
v-if="isSelection"
/>
- <el-table-column align="center" label="搴忓彿" type="index" width="60" />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" fixed="left" />
<el-table-column
v-for="(item, index) in column"
diff --git a/src/views/procurementManagement/invoiceEntry/index.vue b/src/views/procurementManagement/invoiceEntry/index.vue
index 4b25c38..4847581 100644
--- a/src/views/procurementManagement/invoiceEntry/index.vue
+++ b/src/views/procurementManagement/invoiceEntry/index.vue
@@ -125,21 +125,25 @@
{
type: "expand",
dataType: "slot",
+ fixed: "left",
slot: "expand",
},
{
label: "閲囪喘璁㈠崟鍙�",
prop: "purchaseContractNumber",
+ fixed: "left",
width:150
},
{
label: "閿�鍞悎鍚屽彿",
prop: "salesContractNo",
+ fixed: "left",
width:150
},
{
label: "渚涘簲鍟嗗悕绉�",
prop: "supplierName",
+ fixed: "left",
width:300
},
{
diff --git a/src/views/procurementManagement/procurementInvoiceLedger/index.vue b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
index 8ad8799..05a50de 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/index.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -46,7 +46,7 @@
:column="columns"
:tableLoading="loading"
:tableData="dataList"
- :isSelection="true"
+ :isSelection="false"
height="calc(100vh - 19.5em)"
:isShowSummary="true"
:summaryMethod="summarizeMainTable"
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index 4fbf775..620efa2 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -56,8 +56,8 @@
height="calc(100vh - 18.5em)"
stripe
>
- <el-table-column align="center" type="selection" width="55" />
- <el-table-column type="expand">
+ <el-table-column align="center" type="selection" width="55" fixed="left"/>
+ <el-table-column type="expand" fixed="left">
<template #default="props">
<el-table
:data="props.row.children"
@@ -95,21 +95,24 @@
</el-table>
</template>
</el-table-column>
- <el-table-column align="center" label="搴忓彿" type="index" width="60" />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" fixed="left"/>
<el-table-column
label="閲囪喘鍚堝悓鍙�"
prop="purchaseContractNumber"
width="200"
+ fixed="left"
show-overflow-tooltip
/>
<el-table-column
label="閿�鍞悎鍚屽彿"
prop="salesContractNo"
width="200"
+ fixed="left"
show-overflow-tooltip
/>
<el-table-column
label="渚涘簲鍟嗗悕绉�"
+ fixed="left"
width="240"
prop="supplierName"
show-overflow-tooltip
diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue
index 4e8c274..41a837d 100644
--- a/src/views/salesManagement/invoiceLedger/index.vue
+++ b/src/views/salesManagement/invoiceLedger/index.vue
@@ -28,7 +28,7 @@
<div class="table_list">
<el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
:row-key="(row) => row.id" show-summary :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)" stripe>
- <el-table-column align="center" type="selection" width="55" />
+<!-- <el-table-column align="center" type="selection" width="55" />-->
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
<el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" show-overflow-tooltip width="180" />
<el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" show-overflow-tooltip width="180" />
diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index 9d39684..d5a040d 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -65,8 +65,8 @@
@selection-change="handleSelectionChange"
stripe
>
- <el-table-column align="center" type="selection" width="55" />
- <el-table-column type="expand">
+ <el-table-column align="center" type="selection" width="55" fixed="left" />
+ <el-table-column type="expand" fixed="left">
<template #default="props">
<el-table
:data="props.row.children"
@@ -128,22 +128,25 @@
</el-table>
</template>
</el-table-column>
- <el-table-column align="center" label="搴忓彿" type="index" width="60" />
- <el-table-column label="鍚堝悓褰曞叆鏃ユ湡" prop="entryDate" width="120" />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" fixed="left" />
+ <el-table-column label="鍚堝悓褰曞叆鏃ユ湡" prop="entryDate" width="120" fixed="left" />
<el-table-column
label="閿�鍞悎鍚屽彿"
prop="salesContractNo"
show-overflow-tooltip
+ fixed="left"
width="200"
/>
<el-table-column
label="瀹㈡埛鍚堝悓鍙�"
prop="customerContractNo"
width="200"
+ fixed="left"
show-overflow-tooltip
/>
<el-table-column
label="瀹㈡埛鍚嶇О"
+ fixed="left"
prop="customerName"
show-overflow-tooltip
width="240"
diff --git a/src/views/salesManagement/opportunityManagement/index.vue b/src/views/salesManagement/opportunityManagement/index.vue
index 23cd728..405cd8a 100644
--- a/src/views/salesManagement/opportunityManagement/index.vue
+++ b/src/views/salesManagement/opportunityManagement/index.vue
@@ -38,7 +38,7 @@
height="calc(100vh - 18.5em)"
stripe
>
- <el-table-column align="center" type="selection" width="55" />
+ <el-table-column align="center" type="selection" width="55" fixed="left"/>
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
<el-table-column label="鐘舵��" prop="status" width="120">
<template #default="{ row }">
@@ -50,12 +50,13 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column label="鐪佷唤" prop="province" show-overflow-tooltip width="120" />
+ <el-table-column label="鐪佷唤" prop="province" show-overflow-tooltip />
+ <el-table-column label="甯�" prop="city" show-overflow-tooltip/>
<el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" show-overflow-tooltip />
<el-table-column label="鍟嗘満鏉ユ簮" prop="businessSource" show-overflow-tooltip />
<!-- <el-table-column label="瀹㈡埛鎻忚堪" prop="description" show-overflow-tooltip min-width="200" /> -->
- <el-table-column label="褰曞叆浜�" prop="entryPerson" show-overflow-tooltip />
- <el-table-column label="鏇存柊鏃ユ湡" prop="updateTime">
+ <el-table-column label="褰曞叆浜�" prop="entryPerson" show-overflow-tooltip width="120" />
+ <el-table-column label="鏇存柊鏃ユ湡" prop="updateTime" width="120">
<template #default="{ row }">
{{ formatDate(row.updateTime) }}
</template>
@@ -113,7 +114,7 @@
<el-dialog
v-model="dialogFormVisible"
:title="operationType === 'add' ? '鏂板缓鍟嗘満' : operationType === 'edit' ? '缂栬緫鍟嗘満' : operationType === 'addOperation' ? '娣诲姞鍟嗘満' : '鍟嗘満璇︽儏'"
- width="600px"
+ width="1000px"
@close="closeDialog"
>
<el-form
@@ -135,12 +136,25 @@
</el-form-item>
<el-form-item label="鐪佷唤" prop="province">
- <el-select v-model="form.province" filterable placeholder="璇烽�夋嫨鐪佷唤" style="width: 100%" :disabled="operationType === 'detail' || operationType === 'addOperation'">
+ <el-select v-model="form.province" filterable placeholder="璇烽�夋嫨鐪佷唤"
+ @change="getCityListChange"
+ style="width: 100%" :disabled="operationType === 'detail' || operationType === 'addOperation'">
<el-option
v-for="item in provinceOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="甯�" prop="city">
+ <el-select v-model="form.city" filterable placeholder="璇烽�夋嫨甯�"
+ style="width: 100%" :disabled="operationType === 'detail' || operationType === 'addOperation'">
+ <el-option
+ v-for="item in cityOptions"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
/>
</el-select>
</el-form-item>
@@ -165,7 +179,6 @@
type="textarea"
:rows="3"
placeholder="璇疯緭鍏ュ鎴锋弿杩�"
- maxlength="500"
show-word-limit
/>
</el-form-item>
@@ -265,12 +278,12 @@
import useUserStore from '@/store/modules/user'
import dayjs from 'dayjs'
import { getToken } from '@/utils/auth'
-import {
- opportunityListPage,
- addOpportunity,
- updateOpportunity,
- delOpportunity,
- addDescription
+import {
+ opportunityListPage,
+ addOpportunity,
+ updateOpportunity,
+ delOpportunity,
+ addDescription, getProvinceList, getCityList
} from '@/api/salesManagement/opportunityManagement.js'
import { userListNoPage } from '@/api/system/user.js'
import {customerList, getSalesLedgerWithProducts} from '@/api/salesManagement/salesLedger.js'
@@ -309,6 +322,7 @@
id: undefined,
status: undefined,
province: '',
+ city: '',
customerName: '',
businessSource: '',
description: '',
@@ -366,43 +380,9 @@
{ value: '椤圭洰楠屾敹', label: '椤圭洰楠屾敹' }
]
-// 鐪佷唤閫夐」锛堢ず渚嬶級
-const provinceOptions = [
- { value: '鍖椾含甯�', label: '鍖椾含甯�' },
- { value: '澶╂触甯�', label: '澶╂触甯�' },
- { value: '娌冲寳鐪�', label: '娌冲寳鐪�' },
- { value: '灞辫タ鐪�', label: '灞辫タ鐪�' },
- { value: '鍐呰挋鍙よ嚜娌诲尯', label: '鍐呰挋鍙よ嚜娌诲尯' },
- { value: '杈藉畞鐪�', label: '杈藉畞鐪�' },
- { value: '鍚夋灄鐪�', label: '鍚夋灄鐪�' },
- { value: '榛戦緳姹熺渷', label: '榛戦緳姹熺渷' },
- { value: '涓婃捣甯�', label: '涓婃捣甯�' },
- { value: '姹熻嫃鐪�', label: '姹熻嫃鐪�' },
- { value: '娴欐睙鐪�', label: '娴欐睙鐪�' },
- { value: '瀹夊窘鐪�', label: '瀹夊窘鐪�' },
- { value: '绂忓缓鐪�', label: '绂忓缓鐪�' },
- { value: '姹熻タ鐪�', label: '姹熻タ鐪�' },
- { value: '灞变笢鐪�', label: '灞变笢鐪�' },
- { value: '娌冲崡鐪�', label: '娌冲崡鐪�' },
- { value: '婀栧寳鐪�', label: '婀栧寳鐪�' },
- { value: '婀栧崡鐪�', label: '婀栧崡鐪�' },
- { value: '骞夸笢鐪�', label: '骞夸笢鐪�' },
- { value: '骞胯タ澹棌鑷不鍖�', label: '骞胯タ澹棌鑷不鍖�' },
- { value: '娴峰崡鐪�', label: '娴峰崡鐪�' },
- { value: '閲嶅簡甯�', label: '閲嶅簡甯�' },
- { value: '鍥涘窛鐪�', label: '鍥涘窛鐪�' },
- { value: '璐靛窞鐪�', label: '璐靛窞鐪�' },
- { value: '浜戝崡鐪�', label: '浜戝崡鐪�' },
- { value: '瑗胯棌鑷不鍖�', label: '瑗胯棌鑷不鍖�' },
- { value: '闄曡タ鐪�', label: '闄曡タ鐪�' },
- { value: '鐢樿們鐪�', label: '鐢樿們鐪�' },
- { value: '闈掓捣鐪�', label: '闈掓捣鐪�' },
- { value: '瀹佸鍥炴棌鑷不鍖�', label: '瀹佸鍥炴棌鑷不鍖�' },
- { value: '鏂扮枂缁村惥灏旇嚜娌诲尯', label: '鏂扮枂缁村惥灏旇嚜娌诲尯' },
- { value: '鍙版咕鐪�', label: '鍙版咕鐪�' },
- { value: '棣欐腐鐗瑰埆琛屾斂鍖�', label: '棣欐腐鐗瑰埆琛屾斂鍖�' },
- { value: '婢抽棬鐗瑰埆琛屾斂鍖�', label: '婢抽棬鐗瑰埆琛屾斂鍖�' }
-]
+// 鐪佷唤閫夐」
+const provinceOptions = ref([])
+const cityOptions = ref([])
// 鑾峰彇鐘舵�佹爣绛剧被鍨�
const getStatusTagType = (status) => {
@@ -516,8 +496,16 @@
customerList().then((res) => {
customerOption.value = res
})
+ getProvinceList().then(res => {
+ provinceOptions.value = res.data
+ })
dialogFormVisible.value = true
+}
+const getCityListChange = (id) => {
+ getCityList({provinceId: id}).then(res => {
+ cityOptions.value = res.data
+ })
}
// 娣诲姞鎿嶄綔
@@ -596,8 +584,43 @@
customerOption.value = res
})
+ // 鍔犺浇鐪佷唤鍒楄〃
+ await getProvinceList().then(res => {
+ provinceOptions.value = res.data
+ })
+
+ // 濡傛灉鍚庣杩斿洖鐨勬槸name锛岄渶瑕佽浆鎹负id
+ let provinceId = row.province
+ let cityId = row.city
+
+ // 濡傛灉province鏄痭ame瀛楃涓诧紝鏌ユ壘瀵瑰簲鐨刬d
+ if (row.province && typeof row.province === 'string' && !/^\d+$/.test(row.province)) {
+ const provinceOption = provinceOptions.value.find(item => item.name === row.province)
+ if (provinceOption) {
+ provinceId = provinceOption.id
+ // 鍔犺浇瀵瑰簲鐨勫煄甯傚垪琛�
+ await getCityList({ provinceId: provinceId }).then(res => {
+ cityOptions.value = res.data
+ // 濡傛灉city鏄痭ame瀛楃涓诧紝鏌ユ壘瀵瑰簲鐨刬d
+ if (row.city && typeof row.city === 'string' && !/^\d+$/.test(row.city)) {
+ const cityOption = cityOptions.value.find(item => item.name === row.city)
+ if (cityOption) {
+ cityId = cityOption.id
+ }
+ }
+ })
+ }
+ } else if (row.province) {
+ // 濡傛灉province鏄痠d锛岀洿鎺ュ姞杞藉煄甯傚垪琛�
+ await getCityList({ id: row.province }).then(res => {
+ cityOptions.value = res.data
+ })
+ }
+
// 浣跨敤褰撳墠璐﹀彿鍜屽綋澶╂棩鏈熶綔涓洪粯璁ゅ��
Object.assign(form, row, {
+ province: provinceId, // 浣跨敤杞崲鍚庣殑id
+ city: cityId, // 浣跨敤杞崲鍚庣殑id
entryPerson: userStore.nickName, // 璁剧疆褰曞叆浜轰负褰撳墠璐﹀彿
entryDate: dayjs().format('YYYY-MM-DD') // 璁剧疆褰曞叆鏃堕棿涓哄綋澶�
})
@@ -619,6 +642,10 @@
tempFileIds = fileList.value.map(item => item.tempId)
}
+ // 灏嗙渷浠藉拰甯傜殑id杞崲涓簄ame
+ const provinceName = form.province ? provinceOptions.value.find(item => item.id === form.province)?.name || form.province : ''
+ const cityName = form.city ? cityOptions.value.find(item => item.id === form.city)?.name || form.city : ''
+
let api
let successMessage
let submitData
@@ -628,6 +655,8 @@
successMessage = '鏂板缓鎴愬姛'
submitData = {
...form,
+ province: provinceName, // 浼爊ame鑰屼笉鏄痠d
+ city: cityName, // 浼爊ame鑰屼笉鏄痠d
tempFileIds: tempFileIds,
type: 9 // 鍟嗘満绠$悊鐨勭被鍨嬫爣璇�
}
@@ -649,6 +678,8 @@
successMessage = '淇敼鎴愬姛'
submitData = {
...form,
+ province: provinceName, // 浼爊ame鑰屼笉鏄痠d
+ city: cityName, // 浼爊ame鑰屼笉鏄痠d
tempFileIds: tempFileIds,
type: 9 // 鍟嗘満绠$悊鐨勭被鍨嬫爣璇�
}
diff --git a/src/views/salesManagement/receiptPayment/index.vue b/src/views/salesManagement/receiptPayment/index.vue
index b37ab85..cb34e99 100644
--- a/src/views/salesManagement/receiptPayment/index.vue
+++ b/src/views/salesManagement/receiptPayment/index.vue
@@ -74,8 +74,8 @@
stripe
height="calc(100vh - 21.5em)"
>
- <el-table-column align="center" type="selection" width="55" />
- <el-table-column type="expand">
+ <el-table-column align="center" type="selection" width="55"fixed="left" />
+ <el-table-column type="expand"fixed="left">
<template #default="props">
<el-table
:data="props.row.children"
@@ -154,17 +154,19 @@
</el-table>
</template>
</el-table-column>
- <el-table-column align="center" label="搴忓彿" type="index" width="60" />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60"fixed="left" />
<el-table-column
label="寮�绁ㄦ棩鏈�"
prop="invoiceDate"
show-overflow-tooltip
+ fixed="left"
width="240"
/>
<el-table-column
label="閿�鍞悎鍚屽彿"
prop="salesContractNo"
show-overflow-tooltip
+ fixed="left"
width="240"
/>
<el-table-column
diff --git a/src/views/salesManagement/receiptPaymentHistory/index.vue b/src/views/salesManagement/receiptPaymentHistory/index.vue
index ea373ea..205b749 100644
--- a/src/views/salesManagement/receiptPaymentHistory/index.vue
+++ b/src/views/salesManagement/receiptPaymentHistory/index.vue
@@ -52,7 +52,7 @@
:column="tableColumn"
:tableData="tableData"
:page="page"
- :isSelection="true"
+ :isSelection="false"
:isShowSummary="isShowSummarySon"
:summaryMethod="summarizeMainTable1"
:tableLoading="tableLoading"
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index ed8d43d..9441f39 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -41,8 +41,8 @@
<el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
:expand-row-keys="expandedRowKeys" :row-key="(row) => row.id" show-summary style="width: 100%"
:summary-method="summarizeMainTable" @expand-change="expandChange" height="calc(100vh - 18.5em)" stripe>
- <el-table-column align="center" type="selection" width="55" />
- <el-table-column type="expand">
+ <el-table-column align="center" type="selection" width="55" fixed="left" />
+ <el-table-column type="expand" fixed="left">
<template #default="props">
<el-table :data="props.row.children" border show-summary :summary-method="summarizeChildrenTable" stripe>
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
@@ -57,10 +57,10 @@
</el-table>
</template>
</el-table-column>
- <el-table-column align="center" label="搴忓彿" type="index" width="60" />
- <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip />
- <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" width="180" show-overflow-tooltip />
- <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="300" show-overflow-tooltip />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" fixed="left" />
+ <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip fixed="left"/>
+ <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" width="180" show-overflow-tooltip fixed="left" />
+ <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="300" show-overflow-tooltip fixed="left" />
<el-table-column label="涓氬姟鍛�" prop="salesman" width="100" show-overflow-tooltip />
<el-table-column label="椤圭洰鍚嶇О" prop="projectName" width="180" show-overflow-tooltip />
<el-table-column label="浠樻鏂瑰紡" prop="paymentMethod" show-overflow-tooltip />
--
Gitblit v1.9.3