From c034d4cdaf348594c443b4acd5f4c3b166e4d420 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 17 七月 2025 16:30:31 +0800
Subject: [PATCH] Merge branch 'dev' into dev_fix_sub

---
 pages/mine/activity/addActivity.vue |  739 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 739 insertions(+), 0 deletions(-)

diff --git a/pages/mine/activity/addActivity.vue b/pages/mine/activity/addActivity.vue
new file mode 100644
index 0000000..09f6911
--- /dev/null
+++ b/pages/mine/activity/addActivity.vue
@@ -0,0 +1,739 @@
+<template>
+	<view class="add-user-container">
+		<!-- 琛ㄥ崟鍖哄煙 -->
+		<view class="form-card">
+			<u-form :model="form" ref="uForm" label-width="150rpx" :rules="rules" style="width: 100%;">
+
+				<!-- 娲诲姩鍚嶇О -->
+				<u-form-item label="娲诲姩鍚嶇О" prop="activityName" borderBottom required>
+					<u-input v-model="form.activityName" placeholder="璇疯緭鍏ユ椿鍔ㄥ悕绉�" border="none" />
+				</u-form-item>
+
+				<!-- 娲诲姩绫诲瀷 -->
+				<u-form-item label="娲诲姩绫诲瀷" prop="activityType" borderBottom required>
+					<u-radio-group v-model="form.activityType" placement="column">
+						<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in activityTypes"
+							:key="index" :label="item.value" :name="item.value" @change="activityTypeRadioChange">
+							<span>{{item.label}}</span>
+						</u-radio>
+					</u-radio-group>
+				</u-form-item>
+
+				<!-- 鎶ュ悕鏃堕棿鑼冨洿 -->
+				<u-form-item label="鎶ュ悕寮�濮嬫椂闂�" prop="reportStartTime" borderBottom required label-width="200rpx">
+					<uni-datetime-picker type="datetime" v-model="form.reportStartTime"
+						@change="handleReportStartTimeChange" />
+				</u-form-item>
+
+				<u-form-item label="鎶ュ悕缁撴潫鏃堕棿" prop="reportEndTime" borderBottom required label-width="200rpx">
+					<uni-datetime-picker type="datetime" v-model="form.reportEndTime" :start="form.reportStartTime"
+						@change="handleReportEndTimeChange" />
+				</u-form-item>
+
+				<!-- 娲诲姩鏃堕棿鑼冨洿 -->
+				<u-form-item label="娲诲姩寮�濮嬫椂闂�" prop="startTime" borderBottom required label-width="200rpx">
+					<uni-datetime-picker type="datetime" v-model="form.startTime" :start="form.reportEndTime"
+						@change="handleStartTimeChange" />
+				</u-form-item>
+
+				<u-form-item label="娲诲姩缁撴潫鏃堕棿" prop="endTime" borderBottom required label-width="200rpx">
+					<uni-datetime-picker type="datetime" v-model="form.endTime" :start="form.startTime"
+						@change="handleEndTimeChange" />
+				</u-form-item>
+
+				<!-- 灏侀潰绫诲瀷 -->
+				<u-form-item label="灏侀潰绫诲瀷" prop="coverType" borderBottom required>
+					<u-radio-group v-model="coverType" placement="column">
+						<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in coverTypes" :key="index"
+							:label="item.value" :name="item.value" @change="coverTypeRadioChange">
+							<span>{{item.label}}</span>
+						</u-radio>
+					</u-radio-group>
+
+				</u-form-item>
+
+
+				<!-- 娲诲姩灏侀潰 -->
+				<u-form-item label="娲诲姩灏侀潰" prop="cover" borderBottom required>
+					<u-input v-if="coverType === 'text'" v-model="form.cover" placeholder="璇疯緭鍏ュ皝闈㈡枃瀛�" border="none" />
+					<u-upload v-else :fileList="coverList" @delete="deleteCover" name="cover" :maxCount="1"
+						uploadText="涓婁紶灏侀潰" :action="uploadUrl" @success="handleSuccess"></u-upload>
+				</u-form-item>
+
+				<!-- 浜烘暟闄愬埗 -->
+				<u-form-item label="浜烘暟闄愬埗" prop="limitUserNum" borderBottom required>
+					<u-number-box v-model="form.limitUserNum" :min="0" :max="1000" integer></u-number-box>
+					<text style="margin-left: 20rpx;color: #999">0琛ㄧず涓嶉檺鍒�</text>
+				</u-form-item>
+
+				<!-- 娲诲姩鍦扮偣 -->
+				<u-form-item label="娲诲姩鍦扮偣" prop="activityLocation" borderBottom v-if="form.activityType === 'offline'"
+					required>
+					<u-input v-model="form.activityLocation" placeholder="璇疯緭鍏ユ椿鍔ㄥ湴鐐�" border="none" />
+				</u-form-item>
+
+				<!-- 娲诲姩鍐呭 -->
+				<u-form-item label="娲诲姩鍐呭" prop="activityContent" borderBottom required>
+
+				</u-form-item>
+				<sp-editor style="max-width: 70%;" :toolbar-config="{
+					           excludeKeys: ['direction', 'date', 'lineHeight', 'letterSpacing', 'listCheck'],
+					           iconSize: '15px'
+					         }" @init="initEditor" @input="inputOver" @overMax="overMax" @upinImage="upinImage"
+					@upinVideo="upinVideo"></sp-editor>
+			</u-form>
+
+			<!-- 鎻愪氦鎸夐挳 -->
+			<view class="submit-btn">
+				<u-button type="primary" shape="circle" @click="submitForm" :loading="loading">鎻愪氦</u-button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		convertImgStylesToAttributes,
+		handleHtmlWithVideo
+	} from '@/uni_modules/sp-editor/utils'
+	import '@/components/uview-components/uview-ui';
+	import {
+		addActivityByBuyer
+	} from '@/api/activity.js'
+
+	export default {
+		data() {
+			return {
+				uploadUrl: 'http://127.0.0.1:8890/common/lmk/file/upload',
+				coverType: 'file',
+
+
+				isImage: false, // 鏄惁鏄浘鐗�
+
+				editorIns: null,
+
+				loading: false,
+				coverList: [],
+				activityTypes: [{
+						label: '绾夸笂',
+						value: 'online'
+					},
+					{
+						label: '绾夸笅',
+						value: 'offline'
+					}
+				],
+				coverTypes: [{
+						label: '鏂囦欢',
+						value: 'file'
+					},
+					{
+						label: '鏂囧瓧',
+						value: 'text'
+					}
+				],
+				form: {
+					activityName: '',
+					activityType: 'online', // 榛樿绾夸笂
+					reportStartTime: '',
+					reportEndTime: '', // 榛樿鏄庡ぉ
+					startTime: '', // 榛樿鍚庡ぉ
+					endTime: '', // 榛樿澶у悗澶�
+					cover: '',
+					coverType: 'file',
+					limitUserNum: 0,
+					activityLocation: '',
+					activityContent: ''
+				},
+				rules: {
+					activityName: [{
+							required: true,
+							message: '璇疯緭鍏ユ椿鍔ㄥ悕绉�',
+							trigger: 'blur'
+						},
+						{
+							min: 2,
+							max: 50,
+							message: '闀垮害鍦�2鍒�50涓瓧绗�',
+							trigger: 'blur'
+						}
+					],
+					activityType: [{
+						required: true,
+						message: '璇烽�夋嫨娲诲姩绫诲瀷',
+						trigger: 'change'
+					}],
+					coverType: [{
+						required: true,
+						message: '璇烽�夋嫨灏侀潰绫诲瀷',
+						trigger: 'change'
+					}],
+					cover: [{
+						required: true,
+						message: '璇蜂笂浼犳椿鍔ㄥ皝闈�',
+						trigger: 'change'
+					}],
+					reportStartTime: [{
+						required: true,
+						message: '璇烽�夋嫨鎶ュ悕寮�濮嬫椂闂�',
+						trigger: 'blur'
+					}],
+					reportEndTime: [{
+							required: true,
+							message: '璇烽�夋嫨鎶ュ悕缁撴潫鏃堕棿',
+							trigger: 'change'
+						},
+						{
+							validator: this.validateReportTime,
+							trigger: 'change'
+						}
+					],
+					startTime: [{
+							required: true,
+							message: '璇烽�夋嫨娲诲姩寮�濮嬫椂闂�',
+							trigger: 'change'
+						},
+						{
+							validator: this.validateStartTime,
+							trigger: 'change'
+						}
+					],
+					endTime: [{
+							required: true,
+							message: '璇烽�夋嫨娲诲姩缁撴潫鏃堕棿',
+							trigger: 'change'
+						},
+						{
+							validator: this.validateEndTime,
+							trigger: 'change'
+						}
+					],
+					limitUserNum: [{
+							required: true,
+							message: '璇疯緭鍏ヤ汉鏁�',
+							trigger: 'change',
+							validator: this.numValidate,
+						},
+
+					],
+					activityContent: [{
+							required: true,
+							message: '璇疯緭鍏ユ椿鍔ㄥ唴瀹�',
+							trigger: 'blur'
+						},
+						{
+							min: 10,
+							message: '鑷冲皯杈撳叆10涓瓧绗�',
+							trigger: 'blur'
+						}
+					]
+				},
+			}
+		},
+		onReady() {
+			// 寰俊灏忕▼搴忛渶瑕佺敤姝ゅ啓娉�
+		},
+		onLoad() {
+			setTimeout(() => {
+				this.$refs.uForm.setRules(this.rules)
+			}, 500)
+		},
+		methods: {
+			/**
+			 * 鐩存帴杩愯绀轰緥宸ョ▼鎻掑叆鍥剧墖鏃犳硶姝e父鏄剧ず鐨勭湅杩欓噷
+			 * 鍥犱负鎻掍欢榛樿閲囩敤浜戠瀛樺偍鍥剧墖鐨勬柟寮�
+			 * 浠�$emit('upinImage', tempFiles, this.editorCtx)鐨勬柟寮忓洖璋�
+			 * @param {Object} tempFiles
+			 * @param {Object} editorCtx
+			 */
+			async upinImage(tempFiles, editorCtx) {
+				/**
+				 * 鏈湴涓存椂鎻掑叆鍥剧墖棰勮
+				 * 娉ㄦ剰锛氳繖閲屼粎鏄ず渚嬫湰鍦板浘鐗囬瑙堬紝鍥犱负闇�瑕佸皢鍥剧墖鍏堜笂浼犲埌浜戠锛屽啀灏嗗浘鐗囨彃鍏ュ埌缂栬緫鍣ㄤ腑
+				 * 姝e紡寮�鍙戞椂锛岃繕璇峰皢姝ゅ娉ㄩ噴锛屽苟瑙e紑涓嬮潰 浣跨敤 uniCloud.uploadFile 涓婁紶鍥剧墖鐨勭ず渚嬫柟娉� 鐨勬敞閲�
+				 * @tutorial https://uniapp.dcloud.net.cn/api/media/editor-context.html#editorcontext-insertimage
+				 */
+				let data = await this.upload(tempFiles);
+				console.log(data)
+				// #ifdef MP-WEIXIN
+				// 娉ㄦ剰寰俊灏忕▼搴忕殑鍥剧墖璺緞鏄湪tempFilePath瀛楁涓�
+				editorCtx.insertImage({
+					src: data.data.url, //瀵屾枃鏈唴瀹�
+					width: '80%', // 榛樿涓嶅缓璁摵婊″搴�100%锛岄鐣欎竴鐐圭┖闅欎互渚跨敤鎴风紪杈�
+					alt: data.data.url +'|'+data.data.fileKey,
+					success: function() {}
+				})
+				// #endif
+
+				// #ifndef MP-WEIXIN
+				editorCtx.insertImage({
+					src: data.data.url, //瀵屾枃鏈唴瀹�
+					width: '80%', // 榛樿涓嶅缓璁摵婊″搴�100%锛岄鐣欎竴鐐圭┖闅欎互渚跨敤鎴风紪杈�
+					success: function() {}
+				})
+				// #endif
+			},
+			async upinVideo(tempFiles, editorCtx) {
+				let data = await this.uploadVideo(tempFiles);
+				await editorCtx.insertImage({
+					src: 'https://img.zcool.cn/community/01055859b8e37fa8012075341db67f.gif', //瀵屾枃鏈唴瀹�
+					width: '80%', // 榛樿涓嶅缓璁摵婊″搴�100%锛岄鐣欎竴鐐圭┖闅欎互渚跨敤鎴风紪杈�
+					alt: data.data.url +'|'+data.data.fileKey,
+				})
+
+			},
+			async upload(tempFiles) {
+				uni.showLoading({
+					title: '鍔犺浇涓婁紶涓�...',
+					mask: true
+				});
+
+				try {
+					const res = await new Promise((resolve, reject) => {
+						uni.uploadFile({
+							url: 'http://127.0.0.1:8890/common/lmk/file/upload',
+							filePath: tempFiles[0].tempFilePath,
+							name: 'file',
+							success: (uploadRes) => {
+								if (uploadRes.statusCode === 200) {
+									try {
+										const parsedData = JSON.parse(uploadRes.data);
+										resolve(parsedData);
+									} catch (e) {
+										reject(new Error('瑙f瀽鍝嶅簲鏁版嵁澶辫触'));
+									}
+								} else {
+									reject(new Error(`涓婁紶澶辫触: ${uploadRes.statusCode}`));
+								}
+							},
+							fail: (err) => {
+								const errMsg = typeof err === 'object' ? JSON.stringify(err) :
+									String(err);
+								reject(new Error(`涓婁紶澶辫触: ${errMsg}`));
+							}
+						});
+					});
+
+					uni.hideLoading();
+					return res;
+				} catch (error) {
+					uni.hideLoading();
+					uni.showToast({
+						title: error.message,
+						icon: 'none'
+					});
+					throw error; // 鍙互閫夋嫨缁х画鎶涘嚭閿欒鎴栬繑鍥瀗ull
+				}
+			},
+
+
+			async uploadVideo(tempFiles) {
+				uni.showLoading({
+					title: '鍔犺浇涓婁紶涓�...',
+					mask: true
+				});
+
+				try {
+					const res = await new Promise((resolve, reject) => {
+						uni.uploadFile({
+							url: 'http://127.0.0.1:8890/common/lmk/file/upload',
+							filePath: tempFiles,
+							name: 'file',
+							success: (uploadRes) => {
+								if (uploadRes.statusCode === 200) {
+									try {
+										const parsedData = JSON.parse(uploadRes.data);
+										resolve(parsedData);
+									} catch (e) {
+										reject(new Error('瑙f瀽鍝嶅簲鏁版嵁澶辫触'));
+									}
+								} else {
+									reject(new Error(`涓婁紶澶辫触: ${uploadRes.statusCode}`));
+								}
+							},
+							fail: (err) => {
+								const errMsg = typeof err === 'object' ? JSON.stringify(err) :
+									String(err);
+								reject(new Error(`涓婁紶澶辫触: ${errMsg}`));
+							}
+						});
+					});
+
+					uni.hideLoading();
+					return res;
+				} catch (error) {
+					uni.hideLoading();
+					uni.showToast({
+						title: error.message,
+						icon: 'none'
+					});
+					throw error; // 鍙互閫夋嫨缁х画鎶涘嚭閿欒鎴栬繑鍥瀗ull
+				}
+			},
+			/**
+			 * 鑾峰彇杈撳叆鍐呭
+			 * @param {Object} e {html,text} 鍐呭鐨刪tml鏂囨湰锛屽拰text鏂囨湰
+			 */
+			inputOver(e) {
+				// 鍙互鍦ㄦ澶勮幏鍙栧埌缂栬緫鍣ㄥ凡缂栬緫鐨勫唴瀹�
+				console.log('==== inputOver :', e)
+				this.form.activityContent = e.html;
+			},
+			/**
+			 * 瓒呭嚭鏈�澶у唴瀹归檺鍒�
+			 * @param {Object} e {html,text} 鍐呭鐨刪tml鏂囨湰锛屽拰text鏂囨湰
+			 */
+			overMax(e) {
+				// 鑻ヨ缃簡鏈�澶у瓧鏁伴檺鍒讹紝鍙湪姝ゅ瑙﹀彂瓒呭嚭闄愬埗鐨勫洖璋�
+				console.log('==== overMax :', e)
+			},
+			/**
+			 * 缂栬緫鍣ㄥ氨缁�
+			 * @param {Object} editor 缂栬緫鍣ㄥ疄渚嬶紝浣犲彲浠ヨ嚜瀹氫箟璋冪敤editor瀹炰緥鐨勬柟娉�
+			 * @tutorial editor缁勪欢 https://uniapp.dcloud.net.cn/component/editor.html#editor-%E7%BB%84%E4%BB%B6
+			 * @tutorial 鐩稿叧api https://uniapp.dcloud.net.cn/api/media/editor-context.html
+			 */
+			initEditor(editor) {
+				this.editorIns = editor // 淇濆瓨缂栬緫鍣ㄥ疄渚�
+				// 淇濆瓨缂栬緫鍣ㄥ疄渚嬪悗锛屽彲浠ュ湪姝ゅ鑾峰彇鍚庣鏁版嵁锛屽苟璧嬪�肩粰缂栬緫鍣ㄥ垵濮嬪寲鍐呭
+				this.preRender()
+			},
+			preRender() {
+				setTimeout(() => {
+					// 寮傛鑾峰彇鍚庣鏁版嵁鍚庯紝鍒濆鍖栫紪杈戝櫒鍐呭
+					this.editorIns.setContents({
+						html: ``
+					})
+				}, 1000)
+			},
+			// 鏃堕棿閫夋嫨鍙樺寲澶勭悊
+			handleReportStartTimeChange(val) {
+				this.form = {
+					...this.form,
+					reportStartTime: val
+				}; // 瑙f瀯璧嬪�艰Е鍙戝搷搴斿紡
+				// 濡傛灉鎶ュ悕缁撴潫鏃堕棿鏃╀簬寮�濮嬫椂闂达紝鍒欓噸缃�
+				if (new Date(this.form.reportEndTime) < new Date(val)) {
+					this.form.reportEndTime = '';
+				}
+			},
+			handleReportEndTimeChange(val) {
+				this.form.reportEndTime = val;
+				// 濡傛灉娲诲姩寮�濮嬫椂闂存棭浜庢姤鍚嶇粨鏉熸椂闂达紝鍒欓噸缃�
+				if (new Date(this.form.startTime) < new Date(val)) {
+					this.form.startTime = '';
+				}
+			},
+			handleStartTimeChange(val) {
+				this.form.startTime = val;
+				// 濡傛灉娲诲姩缁撴潫鏃堕棿鏃╀簬寮�濮嬫椂闂达紝鍒欓噸缃�
+				if (new Date(this.form.endTime) < new Date(val)) {
+					this.form.endTime = '';
+				}
+			},
+			handleEndTimeChange(val) {
+				this.form.endTime = val;
+			},
+			activityTypeRadioChange(n) {
+				console.log('radioChange', n);
+				this.form.activityType = n;
+			},
+			coverTypeRadioChange(n) {
+				console.log('radioChange', n);
+				this.coverType = n;
+
+			},
+			// 鍥剧墖涓婁紶澶勭悊
+			// 鏂板鍥剧墖
+			afterRead(event) {
+				const {
+					file
+				} = event;
+				console.log('鏂囦欢绫诲瀷:', file.type);
+			},
+			// 鍒犻櫎灏侀潰
+			deleteCover() {
+				this.coverList = []
+				this.form.cover = ''
+			},
+			handleSuccess(data, index, lists, fileType) {
+				//琛ㄥ崟璧嬪��
+				this.form.coverType = fileType;
+				this.form.cover = data.data.fileKey;
+			},
+			// 楠岃瘉鎶ュ悕鏃堕棿
+			validateReportTime(rule, value, callback) {
+				if (!value) {
+					callback(new Error('璇烽�夋嫨鎶ュ悕缁撴潫鏃堕棿'))
+				} else if (new Date(value) <= new Date(this.form.reportStartTime)) {
+					callback(new Error('鎶ュ悕缁撴潫鏃堕棿蹇呴』鏅氫簬寮�濮嬫椂闂�'))
+				} else {
+					callback()
+				}
+			},
+
+			// 楠岃瘉娲诲姩寮�濮嬫椂闂�
+			validateStartTime(rule, value, callback) {
+				if (!value) {
+					callback(new Error('璇烽�夋嫨娲诲姩寮�濮嬫椂闂�'))
+				} else if (new Date(value) <= new Date(this.form.reportEndTime)) {
+					callback(new Error('娲诲姩寮�濮嬫椂闂村繀椤绘櫄浜庢姤鍚嶇粨鏉熸椂闂�'))
+				} else {
+					callback()
+				}
+			},
+			numValidate(rule, value, callback) {
+				console.log(value)
+				if (value <= 0 || value > 1000) {
+					callback(new Error('浜烘暟鑼冨洿1-1000'));
+				} else {
+					callback();
+				}
+			},
+			// 楠岃瘉娲诲姩缁撴潫鏃堕棿
+			validateEndTime(rule, value, callback) {
+				if (!value) {
+					callback(new Error('璇烽�夋嫨娲诲姩缁撴潫鏃堕棿'))
+				} else if (new Date(value) <= new Date(this.form.startTime)) {
+					callback(new Error('娲诲姩缁撴潫鏃堕棿蹇呴』鏅氫簬寮�濮嬫椂闂�'))
+				} else {
+					callback()
+				}
+			},
+// "<p><img src="https://img.zcool.cn/community/01055859b8e37fa8012075341db67f.gif" alt="https://lmk-1356772813.cos.ap-chengdu.myqcloud.com/video/2025071011124230197.mp4|video/2025071011124230197.mp4" width="80%"><img src="https://lmk-1356772813.cos.ap-chengdu.myqcloud.com/image/2025071011130152914.jpg" alt="https://lmk-1356772813.cos.ap-chengdu.myqcloud.com/image/2025071011130152914.jpg|image/2025071011130152914.jpg" width="80%"></p><p><br></p><p><br></p>"
+			buildTag(html) {
+			  return html.replace(/<img([^>]*)>/gi, (imgTag) => {
+			    const srcMatch = imgTag.match(/src="([^"]*)"/i);
+			    const altMatch = imgTag.match(/alt="([^"]*)"/i);
+			    const widthMatch = imgTag.match(/width="([^"]*)"/i);
+			
+			    if (!srcMatch && !altMatch) return imgTag;
+			
+			    // 鍒嗗壊 alt 鍐呭锛堟牸寮忥細宸﹁竟|鍙宠竟锛�
+			    let newSrc = srcMatch ? srcMatch[1] : '';
+			    let newAlt = altMatch ? altMatch[1] : '';
+			    
+			    if (altMatch && altMatch[1].includes('|')) {
+			      const [leftPart, rightPart] = altMatch[1].split('|');
+			      newSrc = leftPart.trim();  // | 宸︿晶浣滀负 src
+			      newAlt = rightPart.trim(); // | 鍙充晶浣滀负 alt
+			    }
+			
+			    const width = widthMatch ? widthMatch[1] : "80%";
+			
+			    // 妫�娴嬫槸鍚︿负瑙嗛锛堝熀浜庢柊鐨� src锛�
+			    const isVideo = /\.(mp4|webm|ogg|mov)$/i.test(newSrc);
+			
+			    if (isVideo) {
+			      const extension = newSrc.split('.').pop().toLowerCase();
+			      return `<video width="${width}" alt="${newAlt}" src="${newSrc}" height="auto" controls="controls"></video>`;
+			    }
+			
+			    // 闈炶棰戯細鏇存柊 src 鍜� alt
+			    return `<img src="${newSrc}" alt="${newAlt}" width="${width}">`;
+			  });
+			},
+			escapeStringHTML(str) {
+			    if (!str) return str;
+			    str = str.replace(/&lt;/g, '<');
+			    str = str.replace(/&gt;/g, '>');
+			    return str;
+			  },
+			// 鎻愪氦琛ㄥ崟
+			async submitForm() {
+				// let html = '"<p><img src="https://img.zcool.cn/community/01055859b8e37fa8012075341db67f.gif" alt="video/2025070811142279476.mp4" width="80%"><img src="https://lmk-1356772813.cos.ap-chengdu.myqcloud.com/image/2025070811142783043.jpg" alt="image/2025070811142783043.jpg" width="80%">娴嬭瘯娲诲姩鍐呭</p><p><br></p><p><br></p>"'
+				// const temphtml2  = this.buildTag(html)
+				const temphtml2 = this.buildTag(this.form.activityContent)
+				this.form.activityContent = temphtml2;
+				this.$refs.uForm.validate(valid => {
+					if (valid) {
+						console.log("閫氳繃")
+						if (this.coverType === 'text') {
+							this.form.coverType = 'text';
+						}
+						
+						this.loading = true
+						// 璋冪敤API
+						addActivityByBuyer(this.form).then(res => {
+							console.log(res)
+							if (res.statusCode === 200) {
+								this.loading = false
+								uni.showToast({
+									title: res.data.msg, // 鎻愮ず鏂囧瓧
+									icon: 'none', // 鍥炬爣绫诲瀷锛坰uccess/loading/none锛�
+									mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛堥槻姝㈣Е鎽哥┛閫忥級
+								});
+								setTimeout(() => {
+									uni.$emit('refreshParentPage');
+									uni.navigateBack();
+								}, 1500);
+
+							}
+						})
+
+
+					}
+				})
+
+			}
+
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.add-user-container {
+		width: 100%;
+		padding: 20rpx;
+		background-color: #f5f7fa;
+		min-height: 100vh;
+	}
+
+	.form-card {
+		background-color: #fff;
+		border-radius: 24rpx;
+		padding: 40rpx;
+		box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.08);
+		margin-bottom: 40rpx;
+
+		/* 琛ㄥ崟鏍囬鏍峰紡 */
+		.form-title {
+			font-size: 36rpx;
+			font-weight: 600;
+			color: #333;
+			margin-bottom: 40rpx;
+			text-align: center;
+			position: relative;
+
+			&:after {
+				content: '';
+				display: block;
+				width: 80rpx;
+				height: 6rpx;
+				background: linear-gradient(to right, #2979ff, #00bcd4);
+				margin: 20rpx auto 0;
+				border-radius: 3rpx;
+			}
+		}
+	}
+
+	/* 琛ㄥ崟椤规牱寮� */
+	.u-form-item {
+		padding: 28rpx 0;
+		margin-bottom: 10rpx;
+
+		/* 鏍囩鏍峰紡 */
+		::v-deep .u-form-item__body__left__content__label {
+			font-size: 30rpx;
+			color: #606266;
+			font-weight: 500;
+		}
+
+		/* 杈撳叆妗嗘牱寮� */
+		.u-input {
+			background-color: #f8f9fa;
+			border-radius: 12rpx;
+			padding: 20rpx 24rpx !important;
+
+			&__content__field-wrapper__field {
+				color: #333;
+				font-size: 28rpx;
+			}
+		}
+
+		/* 鍗曢�夌粍鏍峰紡 */
+		.u-radio-group {
+			margin-top: 10rpx;
+		}
+
+		.u-radio {
+			margin-bottom: 16rpx;
+
+			&__label {
+				font-size: 28rpx;
+				color: #606266;
+			}
+		}
+
+		/* 鏁板瓧杈撳叆妗嗘牱寮� */
+		.u-number-box {
+			margin-right: 20rpx;
+		}
+	}
+
+	/* 鏃堕棿閫夋嫨鍣ㄦ牱寮� */
+	.uni-datetime-picker {
+		width: 100%;
+
+		::v-deep .uniui-calendar {
+			color: #2979ff;
+		}
+
+		::v-deep .uni-datetime-picker-btn-cancel {
+			color: #999;
+		}
+
+		::v-deep .uni-datetime-picker-btn-confirm {
+			color: #2979ff;
+		}
+	}
+
+	/* 涓婁紶缁勪欢鏍峰紡 */
+	.u-upload {
+		::v-deep .u-upload__wrap {
+			padding: 0;
+		}
+
+		::v-deep .u-upload__button {
+			background-color: #f8f9fa;
+			border-radius: 12rpx;
+			color: #2979ff;
+			font-size: 28rpx;
+			height: 160rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			border: 1rpx dashed #dcdfe6;
+
+			&:active {
+				background-color: #f1f5f9;
+			}
+		}
+
+		::v-deep .u-upload__preview {
+			border-radius: 12rpx;
+			overflow: hidden;
+		}
+	}
+
+	/* 鎻愪氦鎸夐挳鏍峰紡 */
+	.submit-btn {
+		margin-top: 80rpx;
+		padding: 0 80rpx;
+
+		.u-button {
+			height: 90rpx;
+			font-size: 32rpx;
+			font-weight: 500;
+			letter-spacing: 2rpx;
+			background: linear-gradient(to right, #2979ff, #00bcd4);
+			box-shadow: 0 8rpx 24rpx rgba(41, 121, 255, 0.3);
+			transition: all 0.3s;
+
+			&:active {
+				transform: translateY(2rpx);
+				box-shadow: 0 4rpx 12rpx rgba(41, 121, 255, 0.3);
+			}
+		}
+	}
+
+	/* 搴曢儴璇存槑鏂囧瓧 */
+	.form-tips {
+		font-size: 24rpx;
+		color: #999;
+		text-align: center;
+		margin-top: 40rpx;
+		line-height: 1.6;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0