wangzhibo
2025-10-23 cad64c1de2c45856b0774933c5801b05b64984e8
1
{"version":3,"file":"advice.js","sources":["pages/index/advice.vue","../../HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvYWR2aWNlLnZ1ZQ"],"sourcesContent":["<template>\r\n\t<view class=\"page-wrapper\">\r\n\t\t<div class=\"bg-top\"></div>\r\n\r\n\t\t<div class=\"content-wrapper\">\r\n\r\n\t\t\t<view class=\"text-2xl font-bold mb-4 text-center\">投诉和建议</view>\r\n\r\n\t\t\t<!-- 投诉建议 -->\r\n\t\t\t<!-- 投诉内容 -->\r\n\t\t\t<view>\r\n\t\t\t\t<label class=\"text-sm font-semibold font-medium mb-1 block\">问题描述</label>\r\n\t\t\t\t<textarea v-model=\"form.question\" placeholder=\"请输入您的投诉或建议(5-500字)\"\r\n\t\t\t\t\tclass=\"w-95-percent h-40 p-2 border border-gray-300 rounded-lg resize-none\"\r\n\t\t\t\t\tmaxlength=\"500\"></textarea>\r\n\t\t\t\t<view class=\"text-right text-xs text-gray-500\">{{ form.question.length }}/500</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 上传图片 -->\r\n\t\t\t<view class=\"mb-4\">\r\n\t\t\t\t<view class=\"text-sm font-semibold mb-1\">上传图片</view>\r\n\t\t\t\t<view class=\"flex justify-start space-x-2\">\r\n\t\t\t\t\t<view v-for=\"(img, index) in form.images\" :key=\"index\" class=\"relative\">\r\n\t\t\t\t\t\t<image :src=\"img\" class=\"w-20 h-20 rounded-md object-cover\" />\r\n\t\t\t\t\t\t<view\r\n\t\t\t\t\t\t\tclass=\"absolute top-0 right-0 bg-black bg-opacity-50 text-white text-xs px-1 cursor-pointer\"\r\n\t\t\t\t\t\t\t@click=\"removeImage(index)\">\r\n\t\t\t\t\t\t\t×\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view v-if=\"form.images.length < 3\"\r\n\t\t\t\t\t\tclass=\"w-20 h-20 border border-dashed border-gray-400 rounded-md text-gray-400 flex justify-center items-center cursor-pointer\"\r\n\t\t\t\t\t\t@click=\"chooseImage\">\r\n\t\t\t\t\t\t+\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<!--\r\n\t\t\t\t<button v-if=\"form.images.length < 3\"\r\n\t\t\t\t\tclass=\"w-20 h-20 border border-dashed border-gray-400 rounded-md text-gray-400\"\r\n\t\t\t\t\t@click=\"chooseImage\">\r\n\t\t\t\t\t+\r\n\t\t\t\t</button>\r\n\t\t\t\t-->\r\n\t\t\t\t</view>\r\n\t\t\t\t<view class=\"text-xs text-gray-500 mt-1\">最多选择3张,每张不超过5MB</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 联系人 -->\r\n\t\t\t<view>\r\n\t\t\t\t<label class=\"text-sm font-semibold font-medium mb-1 block\">联系人:</label>\r\n\t\t\t\t<input v-model=\"form.contactperson\" type=\"text\" placeholder=\"请输入联系人(最多10个字)\"\r\n\t\t\t\t\tclass=\"w-95-percent border border-gray-300 rounded p-2 h-12\" />\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 联系电话 -->\r\n\t\t\t<view class=\"mt-10\">\r\n\t\t\t\t<label class=\"text-sm font-semibold font-medium mb-1 block\">联系电话:</label>\r\n\t\t\t\t<input v-model=\"form.contactphone\" type=\"text\" placeholder=\"请输入联系电话\"\r\n\t\t\t\t\tclass=\"w-95-percent border border-gray-300 rounded p-2 h-12\" />\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 提交按钮 -->\r\n\t\t\t<button class=\"w-full bg-blue-500 text-white py-3 rounded mt-10\" @click=\"submitForm\">\r\n\t\t\t\t提交\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<div class=\"bg-bottom\"></div>\r\n\r\n\t</view>\r\n</template>\r\n\r\n<script>\r\n\timport {\r\n\t\tuseUserStore\r\n\t} from '@/stores/user'\r\n\timport {\r\n\t\tapiService\r\n\t} from '@/apiservice/apiService'\r\n\r\n\tconst userStore = useUserStore()\r\n\r\n\texport default {\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tform: {\r\n\t\t\t\t\tquestion: '',\r\n\t\t\t\t\timages: [],\r\n\t\t\t\t\tcontactperson: userStore.username,\r\n\t\t\t\t\tcontactphone: userStore.phone\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tmethods: {\r\n\t\t\tchooseImage() {\r\n\t\t\t\tuni.chooseImage({\r\n\t\t\t\t\tcount: 3 - this.form.images.length,\r\n\t\t\t\t\tsizeType: ['original', 'compressed'],\r\n\t\t\t\t\tsuccess: (res) => {\r\n\t\t\t\t\t\tconst files = res.tempFilePaths.filter((f, i) => i + this.form.images.length < 3)\r\n\r\n\t\t\t\t\t\tconst maxSize = 5 * 1024 * 1024 // 5MB,单位字节\r\n\t\t\t\t\t\tconst oversized = files.filter(f => f.size > maxSize)\r\n\t\t\t\t\t\tif (oversized.length > 0) {\r\n\t\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\t\ttitle: '图片不能大于 5MB,请重新选择',\r\n\t\t\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\treturn\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.form.images.push(...files)\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tremoveImage(index) {\r\n\t\t\t\tthis.form.images.splice(index, 1)\r\n\t\t\t},\r\n\t\t\tasync uploadAllImages() {\r\n\t\t\t\tif (this.form.images.length === 0) return [];\r\n\r\n\t\t\t\tconst uploadPromises = this.form.images.map(img => {\r\n\t\t\t\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t\t\t\tuni.uploadFile({\r\n\t\t\t\t\t\t\turl: apiService.baseURL + '/advices/upload', // 后端上传接口\r\n\t\t\t\t\t\t\tfilePath: img,\r\n\t\t\t\t\t\t\tname: 'file',\r\n\t\t\t\t\t\t\tsuccess: (res) => {\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tconst data = JSON.parse(res.data);\r\n\t\t\t\t\t\t\t\t\tif (data.code === 1000 && data.data) {\r\n\t\t\t\t\t\t\t\t\t\tresolve(data.data);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\treject(new Error('上传失败'));\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} catch (err) {\r\n\t\t\t\t\t\t\t\t\treject(err);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfail: reject\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn Promise.all(uploadPromises);\r\n\t\t\t},\r\n\t\t\tasync submitForm() {\r\n\t\t\t\t// 内容校验\r\n\t\t\t\tif (this.form.question.length < 5) {\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '投诉内容至少5个字',\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tif (this.form.question.length > 200) {\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '投诉内容最多200字',\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// 联系人校验\r\n\t\t\t\tconst contact = this.form.contactperson.trim()\r\n\t\t\t\tif (!contact) {\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '联系人不能为空',\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tif (contact.length > 10) {\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '联系人最多10个字符',\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// 电话校验\r\n\t\t\t\tconst phone = this.form.contactphone.trim()\r\n\t\t\t\tconst phoneRegex = /^(1\\d{10}|([0-9\\uFF10-\\uFF19\\--\\s,,]{5,20}))$/\r\n\t\t\t\tif (!phoneRegex.test(phone)) {\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '联系电话格式不正确',\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\ttry {\r\n\t\t\t\t\tuni.showLoading({\r\n\t\t\t\t\t\ttitle: '提交中...'\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// 1️⃣ 并发上传图片\r\n\t\t\t\t\tconst imageUrls = await this.uploadAllImages();\r\n\t\t\t\t\tconst [img1, img2, img3] = imageUrls || [];\r\n\r\n\t\t\t\t\t// 2️⃣ 组合提交数据\r\n\t\t\t\t\tconst payload = {\r\n\t\t\t\t\t\tuuid: userStore.uuid,\r\n\t\t\t\t\t\tquestion: this.form.question,\r\n\t\t\t\t\t\timg1: img1,\r\n\t\t\t\t\t\timg2: img2,\r\n\t\t\t\t\t\timg3: img3,\r\n\t\t\t\t\t\tcontactperson: this.form.contactperson,\r\n\t\t\t\t\t\tcontactphone: this.form.contactphone\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tapiService.advicesAdd(payload).then((res) => {\r\n\t\t\t\t\t\tif (res.code === 1000) {\r\n\t\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\t\ttitle: '提交成功,我们将在24小时内回复,请在“我的”菜单查看。',\r\n\t\t\t\t\t\t\t\ticon: 'success'\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t// 重置表单\r\n\t\t\t\t\t\t\tthis.form.question = ''\r\n\t\t\t\t\t\t\tthis.form.images = []\r\n\t\t\t\t\t\t\tuni.navigateTo({\r\n\t\t\t\t\t\t\t\turl: '/pages/ucenter/my-advice'\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconsole.warn('游客更新失败:', res.message)\r\n\t\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\t\ttitle: res.message || '提交失败',\r\n\t\t\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).catch((err) => {\r\n\t\t\t\t\t\tconsole.error('游客更新错误:', err)\r\n\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\ttitle: '发生错误,请联系管理员',\r\n\t\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t})\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tconsole.error(\"提交错误:\", err);\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: \"网络错误\",\r\n\t\t\t\t\t\ticon: \"none\"\r\n\t\t\t\t\t});\r\n\t\t\t\t} finally {\r\n\t\t\t\t\tuni.hideLoading();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t}\r\n</script>\r\n<style>\r\n\t/* 布局与容器 */\r\n\t.p-4 {\r\n\t\tpadding: 1rem;\r\n\t}\r\n\r\n\t.bg-gray-100 {\r\n\t\tbackground-color: #f3f4f6;\r\n\t}\r\n\r\n\t.min-h-screen {\r\n\t\tmin-height: 100vh;\r\n\t}\r\n\r\n\t/* 字体与文本 */\r\n\t.text-2xl {\r\n\t\tfont-size: 1.5rem;\r\n\t\tline-height: 2rem;\r\n\t}\r\n\r\n\t.font-bold {\r\n\t\tfont-weight: 700;\r\n\t}\r\n\r\n\t.font-medium {\r\n\t\tfont-weight: 500;\r\n\t}\r\n\r\n\t.font-semibold {\r\n\t\tfont-weight: 600;\r\n\t}\r\n\r\n\t.text-center {\r\n\t\ttext-align: center;\r\n\t}\r\n\r\n\t.text-sm {\r\n\t\tfont-size: 0.875rem;\r\n\t\tline-height: 1.25rem;\r\n\t}\r\n\r\n\t.mt-10 {\r\n\t\tmargin-top: 50rpx;\r\n\t}\r\n\r\n\t.justify-start {\r\n\t\tjustify-content: flex-start;\r\n\t}\r\n\r\n\t.text-xs {\r\n\t\tfont-size: 0.75rem;\r\n\t\tline-height: 1rem;\r\n\t}\r\n\r\n\t.text-gray-400 {\r\n\t\tcolor: #9ca3af;\r\n\t}\r\n\r\n\t.text-gray-500 {\r\n\t\tcolor: #6b7280;\r\n\t}\r\n\r\n\t.text-white {\r\n\t\tcolor: #ffffff;\r\n\t}\r\n\r\n\t/* 边距 */\r\n\t.mb-1 {\r\n\t\tmargin-bottom: 0.25rem;\r\n\t}\r\n\r\n\t.mb-4 {\r\n\t\tmargin-bottom: 1rem;\r\n\t}\r\n\r\n\t.mt-1 {\r\n\t\tmargin-top: 0.25rem;\r\n\t}\r\n\r\n\t/* 尺寸与边框 */\r\n\t.w-full {\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\t.w-95-percent {\r\n\t\twidth: 95%;\r\n\t}\r\n\r\n\t.h-40 {\r\n\t\theight: 8rem;\r\n\t}\r\n\r\n\t.h-12 {\r\n\t\theight: 2.5rem;\r\n\t}\r\n\r\n\t.w-20 {\r\n\t\twidth: 5rem;\r\n\t}\r\n\r\n\t.h-20 {\r\n\t\theight: 5rem;\r\n\t}\r\n\r\n\t.border {\r\n\t\tborder-width: 1px;\r\n\t\tborder-style: solid;\r\n\t\tborder-color: #d1d5db;\r\n\t}\r\n\r\n\t.border-gray-300 {\r\n\t\tborder-color: #d1d5db;\r\n\t}\r\n\r\n\t.border-gray-400 {\r\n\t\tborder-color: #9ca3af;\r\n\t}\r\n\r\n\t.border-dashed {\r\n\t\tborder-style: dashed;\r\n\t}\r\n\r\n\t.rounded {\r\n\t\tborder-radius: 0.25rem;\r\n\t}\r\n\r\n\t.rounded-md {\r\n\t\tborder-radius: 0.375rem;\r\n\t}\r\n\r\n\t.rounded-lg {\r\n\t\tborder-radius: 0.5rem;\r\n\t}\r\n\r\n\t/* 背景色与透明度 */\r\n\t.bg-black {\r\n\t\tbackground-color: #000000;\r\n\t}\r\n\r\n\t.bg-opacity-50 {\r\n\t\topacity: 0.5;\r\n\t}\r\n\r\n\t.bg-blue-500 {\r\n\t\tbackground-color: #3b82f6;\r\n\t}\r\n\r\n\t/* 位置 */\r\n\t.relative {\r\n\t\tposition: relative;\r\n\t}\r\n\r\n\t.absolute {\r\n\t\tposition: absolute;\r\n\t}\r\n\r\n\t.top-0 {\r\n\t\ttop: 0;\r\n\t}\r\n\r\n\t.right-0 {\r\n\t\tright: 0;\r\n\t}\r\n\r\n\t.justify-center {\r\n\t\tjustify-content: center;\r\n\t}\r\n\r\n\t.items-center {\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t/* 布局与对齐 */\r\n\t.flex {\r\n\t\tdisplay: flex;\r\n\t}\r\n\r\n\t.space-x-2 {\r\n\t\tmargin-left: 0.5rem;\r\n\t}\r\n\r\n\t.text-right {\r\n\t\ttext-align: right;\r\n\t}\r\n\r\n\t.block {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t.cursor-pointer {\r\n\t\tcursor: pointer;\r\n\t}\r\n\r\n\t/* 填充 */\r\n\t.p-2 {\r\n\t\tpadding: 0.5rem;\r\n\t}\r\n\r\n\t.py-3 {\r\n\t\tpadding-top: 0.75rem;\r\n\t\tpadding-bottom: 0.75rem;\r\n\t}\r\n\r\n\t.px-1 {\r\n\t\tpadding-left: 0.25rem;\r\n\t\tpadding-right: 0.25rem;\r\n\t}\r\n\r\n\t/* 图片与视频 */\r\n\t.object-cover {\r\n\t\tobject-fit: cover;\r\n\t}\r\n\r\n\t/* 其他 */\r\n\t.resize-none {\r\n\t\tresize: none;\r\n\t}\r\n\r\n\t.page-wrapper {\r\n\t\tposition: relative;\r\n\t\tmin-height: 100vh;\r\n\t\t/* 确保小内容时填满视口 */\r\n\t\toverflow: hidden;\r\n\t}\r\n\r\n\t/* 顶部背景 */\r\n\t.bg-top {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t\twidth: 100%;\r\n\t\theight: 500rpx;\r\n\t\t/* 可用固定像素或图片高度 */\r\n\t\tbackground: url('https://farm.evcc.top/Uploads/yuanboyuan/background/bg_top.jpg') no-repeat top center;\r\n\t\tbackground-size: cover;\r\n\t\tz-index: 0;\r\n\t}\r\n\r\n\t/* 底部背景 */\r\n\t.bg-bottom {\r\n\t\tposition: absolute;\r\n\t\tbottom: 0;\r\n\t\tleft: 0;\r\n\t\twidth: 100%;\r\n\t\theight: 500rpx;\r\n\t\t/* 可用固定像素或图片高度 */\r\n\t\tbackground: url('https://farm.evcc.top/Uploads/yuanboyuan/background/bg_bottom.jpg') no-repeat bottom center;\r\n\t\tbackground-size: cover;\r\n\t\tz-index: 0;\r\n\t}\r\n\r\n\t/* 内容层 */\r\n\t.content-wrapper {\r\n\t\tposition: relative;\r\n\t\tz-index: 1;\r\n\t\tpadding: 2rem 1rem;\r\n\t}\r\n</style>","import MiniProgramPage from 'D:/HBuilderProjects/园博园/pages/index/advice.vue'\nwx.createPage(MiniProgramPage)"],"names":["useUserStore","uni","apiService"],"mappings":"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"}