From 6c497f71f5441633099fc7a7896da8e8c7835f05 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 09 三月 2026 15:46:37 +0800
Subject: [PATCH] 公司app 1.商机管理添加字段

---
 src/pages/opportunityManagement/detail.vue |   83 +++++++++++++++++++++++++++++------------
 1 files changed, 58 insertions(+), 25 deletions(-)

diff --git a/src/pages/opportunityManagement/detail.vue b/src/pages/opportunityManagement/detail.vue
index 14152bb..4364bd7 100644
--- a/src/pages/opportunityManagement/detail.vue
+++ b/src/pages/opportunityManagement/detail.vue
@@ -125,20 +125,19 @@
 			</up-form-item>
 			
 			<up-form-item label="鍚堝悓閲戦(鍏�)" prop="contractAmount" :required="isAddOrEdit">
-				<up-input
-					v-model="form.contractAmount"
-					:disabled="isDetail || isAddOperation"
-					type="number"
-					placeholder="璇疯緭鍏ュ悎鍚岄噾棰�"
-				/>
-			</up-form-item>
+			<up-input
+				v-model="form.contractAmount"
+				:disabled="isDetail || isAddOperation"
+				placeholder="璇疯緭鍏ュ悎鍚岄噾棰�"
+			/>
+		</up-form-item>
 			
 			<!-- 鎻忚堪淇℃伅 -->
 			<view class="section-header section-header-inner">
 				<text class="section-title">鎻忚堪淇℃伅</text>
 				<text class="section-subtitle">琛ュ厖鍟嗘満璇存槑锛屼究浜庡悗缁窡杩�</text>
 			</view>
-			<up-form-item label="鏀归�犲唴瀹�" prop="description" :required="isAddOrAddOperation">
+			<up-form-item label="鎷滆璁板綍" prop="description" :required="isAddOrAddOperation">
 				<up-textarea
 					v-model="form.description"
 					:disabled="isDetail"
@@ -149,16 +148,26 @@
 				/>
 			</up-form-item>
 			
+			<up-form-item label="鏀归�犲唴瀹�" prop="renContent">
+			<up-textarea
+				v-model="form.renContent"
+				:disabled="isDetail || isAddOperation"
+				:placeholder="renContentPlaceholder"
+				autoHeight
+				maxlength="500"
+			/>
+		</up-form-item>
+			
 			<up-form-item label="浠樻鎻忚堪" prop="paymentDescription">
-				<up-textarea
-					v-model="form.paymentDescription"
-					:disabled="isDetail"
-					placeholder="鏄惁鍨祫锛熶紒涓氭槸鍚﹀紑绁紵浼佷笟鏄惁鍒嗚ˉ璐存垨棰濆鍑洪挶锛�"
-					autoHeight
-					count
-					maxlength="500"
-				/>
-			</up-form-item>
+			<up-textarea
+				v-model="form.paymentDescription"
+				:disabled="isDetail || isAddOperation"
+				placeholder="鏄惁鍨祫锛熶紒涓氭槸鍚﹀紑绁紵浼佷笟鏄惁鍒嗚ˉ璐存垨棰濆鍑洪挶锛�"
+				autoHeight
+				count
+				maxlength="500"
+			/>
+		</up-form-item>
 			
 			<!-- 闄勪欢鏉愭枡 -->
 			<view class="section-header section-header-inner">
@@ -315,7 +324,8 @@
 const formRef = ref(null)
 const loading = ref(false)
 const operationType = ref('add')
-const renovationPlaceholder = '1.鏍囧噯鍖栵細\n2.瀹氬埗鍖栵細\n3.澶栭噰锛�'
+const renovationPlaceholder = '璇疯緭鍏ユ嫓璁胯褰�'
+const renContentPlaceholder = '1.鏍囧噯鍖栵細\n2.瀹氬埗鍖栵細\n3.澶栭噰锛�'
 
 // 闄勪欢涓婁紶
 const uploadFileList = ref([]) // up-upload 缁戝畾鍒楄〃
@@ -496,6 +506,7 @@
 	businessSource: '',
 	contractAmount: '',
 	description: '',
+	renContent: '',
 	paymentDescription: '',
 	entryPerson: userStore.nickName,
 	entryDate: dayjs().format('YYYY-MM-DD'),
@@ -514,7 +525,7 @@
 		{ required: true, message: '璇疯緭鍏ュ悎鍚岄噾棰�', trigger: ['blur', 'change'] }
 	],
 	description: [
-		{ required: true, message: '璇疯緭鍏ユ敼閫犲唴瀹�', trigger: ['blur', 'change'] }
+		{ required: true, message: '璇疯緭鍏ユ嫓璁胯褰�', trigger: ['blur', 'change'] }
 	],
 	entryPerson: [
 		{ required: true, message: '璇疯緭鍏ュ綍鍏ヤ汉', trigger: ['blur', 'change'] }
@@ -528,10 +539,13 @@
 const statusOptions = [
 	{ value: '鏂板缓', label: '鏂板缓' },
 	{ value: '椤圭洰璺熻釜', label: '椤圭洰璺熻釜' },
+	{ value: '鏀惧純', label: '鏀惧純' },
 	{ value: '鍚堝悓绛剧害', label: '鍚堝悓绛剧害' },
 	{ value: '澶囨鐢虫姤', label: '澶囨鐢虫姤' },
 	{ value: '椤圭洰浜や粯', label: '椤圭洰浜や粯' },
-	{ value: '椤圭洰楠屾敹', label: '椤圭洰楠屾敹' }
+	{ value: '椤圭洰楠屾敹', label: '椤圭洰楠屾敹' },
+	{ value: '椤圭洰鍥炴', label: '椤圭洰鍥炴' },
+	{ value: '鍥炶ˉ璐�', label: '鍥炶ˉ璐�' }
 ]
 
 const provinceOptions = ref([])
@@ -579,7 +593,7 @@
 		case 'edit':
 			return '缂栬緫鍟嗘満'
 		case 'addOperation':
-			return '娣诲姞鎻忚堪'
+			return '娣诲姞鎷滆璁板綍'
 		case 'detail':
 		default:
 			return '鍟嗘満璇︽儏'
@@ -698,14 +712,25 @@
 
 // 鎻愪氦琛ㄥ崟
 const onSubmit = () => {
-	if (isDetail.value) return
-	if (!formRef.value) return
+	console.log('onSubmit called, isDetail:', isDetail.value, 'operationType:', operationType.value)
+	console.log('formRef.value:', formRef.value)
+	if (isDetail.value) {
+		console.log('Blocked: isDetail is true')
+		return
+	}
+	if (!formRef.value) {
+		console.log('Blocked: formRef is null')
+		return
+	}
 	
+	console.log('Starting validation...')
 	formRef.value.validate().then(async () => {
 		loading.value = true
 		try {
 			let api
 			let params
+			console.log('Submitting with operationType:', operationType.value)
+			console.log('Form data:', form.value)
 			
 			if (operationType.value === 'add') {
 				api = addOpportunity
@@ -759,13 +784,20 @@
 		} finally {
 			loading.value = false
 		}
-	}).catch(() => {})
+	}).catch((err) => {
+		console.log('Validation failed:', err)
+		uni.showToast({
+			title: '璇锋鏌ヨ〃鍗曞~鍐欐槸鍚︽纭�',
+			icon: 'none'
+		})
+	})
 }
 
 onLoad(async () => {
 	// 璇诲彇鎿嶄綔绫诲瀷鍜屾暟鎹�
 	const type = uni.getStorageSync('opportunityOperationType') || 'add'
 	operationType.value = type
+	console.log('onLoad - operationType set to:', operationType.value)
 	
 	// 鍔犺浇鐪佷唤鍒楄〃
 	await loadProvinces()
@@ -804,8 +836,9 @@
 			form.value.mainBusinessRevenue = nullToEmpty(form.value.mainBusinessRevenue)
 			form.value.customerScale = nullToEmpty(form.value.customerScale)
 			form.value.informationState = nullToEmpty(form.value.informationState)
-			form.value.contractAmount = nullToEmpty(form.value.contractAmount)
+		form.value.contractAmount = form.value.contractAmount !== null && form.value.contractAmount !== undefined ? String(form.value.contractAmount) : ''
 			form.value.description = nullToEmpty(form.value.description)
+			form.value.renContent = nullToEmpty(form.value.renContent)
 			form.value.paymentDescription = nullToEmpty(form.value.paymentDescription)
 			form.value.entryPerson = nullToEmpty(form.value.entryPerson)
 			form.value.entryDate = nullToEmpty(form.value.entryDate)

--
Gitblit v1.9.3