Commit a19a6ba1 by 吴春元

举报管理

parent f4752387
...@@ -8,7 +8,8 @@ import { ElConfigProvider } from "element-plus"; ...@@ -8,7 +8,8 @@ import { ElConfigProvider } from "element-plus";
import { zhCn } from "element-plus/es/locale/index"; import { zhCn } from "element-plus/es/locale/index";
import { provide } from "vue"; import { provide } from "vue";
const VITE_APP_TITLE = "太原市互联网宣传研究中心"; // 标题 const VITE_APP_TITLE =
"太原市互联网应急指挥和举报中心(太原市互联网宣传研究中心)"; // 标题
const VITE_ADDRESS = "山西省太原市杏花岭区新建路 78 号新闻大厦 8 层"; // 地址 const VITE_ADDRESS = "山西省太原市杏花岭区新建路 78 号新闻大厦 8 层"; // 地址
const VITE_EMAIL = "tyhlwjbzx@163.com"; // 举报邮箱 const VITE_EMAIL = "tyhlwjbzx@163.com"; // 举报邮箱
const VITE_PHONE = "0351-8222236"; // 举报电话 const VITE_PHONE = "0351-8222236"; // 举报电话
......
...@@ -3,7 +3,7 @@ import request from "@/utils/request"; ...@@ -3,7 +3,7 @@ import request from "@/utils/request";
// 热点留言列表 // 热点留言列表
export function getUpdateForm(data) { export function getUpdateForm(data) {
return request({ return request({
url: "/cms/leavemessage/list", url: "/cms/report/saveEntity",
method: "post", method: "post",
data: data, data: data,
}); });
......
let baseImageUrl; let baseImageUrl;
if (process.env.NODE_ENV === "development") { if (process.env.NODE_ENV === "development") {
// baseImageUrl = (path) => "http://192.168.19.142:9002" + path; // baseImageUrl = (path) => "http://192.168.19.248:9002" + path;
baseImageUrl = (path) => "http://localhost:9002" + path; baseImageUrl = (path) => "http://localhost:9002" + path;
// baseImageUrl = (path) => "http://yjzh.sxyztech.cn" + path; // baseImageUrl = (path) => "http://yjzh.sxyztech.cn" + path;
} else { } else {
......
...@@ -404,16 +404,16 @@ const activeNav = ref(0); ...@@ -404,16 +404,16 @@ const activeNav = ref(0);
const handleClick = (index: number, entry: any) => { const handleClick = (index: number, entry: any) => {
switch (index) { switch (index) {
case 0: case 0:
const pyHomePageUrl = router.resolve({ name: "PyHome" }).href;
window.open(pyHomePageUrl, "_blank");
break;
case 1:
router.push({ path: "/home/jb" }); router.push({ path: "/home/jb" });
break; break;
case 2: case 1:
const wmHomePageUrl = router.resolve({ name: "wm" }).href; const wmHomePageUrl = router.resolve({ name: "wm" }).href;
window.open(wmHomePageUrl, "_blank"); window.open(wmHomePageUrl, "_blank");
break; break;
case 2:
const pyHomePageUrl = router.resolve({ name: "PyHome" }).href;
window.open(pyHomePageUrl, "_blank");
break;
} }
// 处理点击事件 // 处理点击事件
}; };
...@@ -601,11 +601,6 @@ const slides = ref([]); ...@@ -601,11 +601,6 @@ const slides = ref([]);
const quickEntries = [ const quickEntries = [
{ {
title: "太原市互联网联合辟谣平台",
icon: "Message",
bg: "https://ai-public.mastergo.com/ai/img_res/36f741de94394af113bc0d3c823df49a.jpg",
},
{
title: "太原市互联网违法和不良信息举报平台", title: "太原市互联网违法和不良信息举报平台",
icon: "Share", icon: "Share",
bg: "https://ai-public.mastergo.com/ai/img_res/e3d550fe8d11531c42a774641cf3790a.jpg", bg: "https://ai-public.mastergo.com/ai/img_res/e3d550fe8d11531c42a774641cf3790a.jpg",
...@@ -615,6 +610,11 @@ const quickEntries = [ ...@@ -615,6 +610,11 @@ const quickEntries = [
icon: "Link", icon: "Link",
bg: "https://ai-public.mastergo.com/ai/img_res/c907287d38d89eb460120dc7cf6b2d17.jpg", bg: "https://ai-public.mastergo.com/ai/img_res/c907287d38d89eb460120dc7cf6b2d17.jpg",
}, },
{
title: "太原市互联网联合辟谣平台",
icon: "Message",
bg: "https://ai-public.mastergo.com/ai/img_res/36f741de94394af113bc0d3c823df49a.jpg",
},
]; ];
</script> </script>
<style> <style>
......
...@@ -25,35 +25,39 @@ ...@@ -25,35 +25,39 @@
<div class="gap-0"> <div class="gap-0">
<!-- 真实姓名 --> <!-- 真实姓名 -->
<el-form-item label="真实姓名" prop="realName" class="mb-0"> <el-form-item label="真实姓名" prop="userName" class="mb-0">
<el-input <el-input
v-model="form.realName" v-model="form.userName"
placeholder="请输入真实姓名" placeholder="请输入真实姓名"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- 性别 --> <!-- 性别 -->
<el-form-item label="性别" prop="gender" class="mb-0"> <el-form-item label="性别" prop="userSex" class="mb-0">
<el-radio-group v-model="form.gender"> <el-radio-group v-model="form.userSex">
<el-radio label="1"></el-radio> <el-radio
<el-radio label="2"></el-radio> v-for="item in userSexOptions"
:key="item.value"
:label="item.value"
>{{ item.label }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- 电子邮箱 --> <!-- 电子邮箱 -->
<el-form-item label="电子邮箱" prop="email" class="mb-0"> <el-form-item label="电子邮箱" prop="userEmail" class="mb-0">
<el-input <el-input
v-model="form.email" v-model="form.userEmail"
placeholder="请输入电子邮箱" placeholder="请输入电子邮箱"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- 电话号码 --> <!-- 电话号码 -->
<el-form-item label="电话号码" prop="phone" class="mb-0"> <el-form-item label="电话号码" prop="userMobile" class="mb-0">
<el-input <el-input
v-model="form.phone" v-model="form.userMobile"
placeholder="请输入电话号码" placeholder="请输入电话号码"
clearable clearable
></el-input> ></el-input>
...@@ -74,11 +78,11 @@ ...@@ -74,11 +78,11 @@
<!-- 通讯地址 --> <!-- 通讯地址 -->
<el-form-item <el-form-item
label="通讯地址" label="通讯地址"
prop="address" prop="userAddress"
class="mb-0 md:col-span-2" class="mb-0 md:col-span-2"
> >
<el-input <el-input
v-model="form.address" v-model="form.userAddress"
type="textarea" type="textarea"
:rows="2" :rows="2"
placeholder="请输入详细通讯地址" placeholder="请输入详细通讯地址"
...@@ -101,14 +105,17 @@ ...@@ -101,14 +105,17 @@
v-model="form.reportType" v-model="form.reportType"
@change="handleReportTypeChange" @change="handleReportTypeChange"
> >
<el-radio label="0">网站</el-radio> <el-radio
<el-radio label="1">搜索引擎类</el-radio> v-for="item in reportTypeOptions"
<el-radio label="2">APP</el-radio> :key="item.value"
:label="item.value"
>{{ item.label }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- 网站类型 --> <!-- 网站类型 -->
<div v-if="form.reportType === '0'" class="mb-4"> <div v-if="form.reportType === 1" class="mb-4">
<el-form-item label="网址名称" prop="websiteName" class="mb-0"> <el-form-item label="网址名称" prop="websiteName" class="mb-0">
<el-input <el-input
v-model="form.websiteName" v-model="form.websiteName"
...@@ -117,9 +124,9 @@ ...@@ -117,9 +124,9 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="被举报网址" prop="websiteUrl" class="mb-0"> <el-form-item label="被举报网址" prop="websitAddress" class="mb-0">
<el-input <el-input
v-model="form.websiteUrl" v-model="form.websitAddress"
placeholder="请输入被举报网址" placeholder="请输入被举报网址"
clearable clearable
></el-input> ></el-input>
...@@ -127,10 +134,10 @@ ...@@ -127,10 +134,10 @@
</div> </div>
<!-- 搜索引擎类型 --> <!-- 搜索引擎类型 -->
<div v-if="form.reportType === '1'" class="space-y-4 mb-4"> <div v-if="form.reportType === 2" class="space-y-4 mb-4">
<el-form-item label="搜索引擎类型" prop="searchEngineType"> <el-form-item label="搜索引擎类型" prop="searchType">
<el-select <el-select
v-model="form.searchEngineType" v-model="form.searchType"
placeholder="请选择搜索引擎类型" placeholder="请选择搜索引擎类型"
clearable clearable
class="w-full" class="w-full"
...@@ -148,11 +155,11 @@ ...@@ -148,11 +155,11 @@
<div class="gap-0"> <div class="gap-0">
<el-form-item <el-form-item
label="举报关键字" label="举报关键字"
prop="reportKeyword" prop="searchKeyword"
class="mb-0" class="mb-0"
> >
<el-input <el-input
v-model="form.reportKeyword" v-model="form.searchKeyword"
placeholder="请输入举报关键字" placeholder="请输入举报关键字"
clearable clearable
></el-input> ></el-input>
...@@ -168,11 +175,11 @@ ...@@ -168,11 +175,11 @@
<el-form-item <el-form-item
label="被举报网址" label="被举报网址"
prop="websiteUrl" prop="websitAddress"
class="mb-0 md:col-span-2" class="mb-0 md:col-span-2"
> >
<el-input <el-input
v-model="form.websiteUrl" v-model="form.websitAddress"
placeholder="请输入被举报网址" placeholder="请输入被举报网址"
:disabled="disabled" :disabled="disabled"
clearable clearable
...@@ -182,7 +189,7 @@ ...@@ -182,7 +189,7 @@
</div> </div>
<!-- APP类型 --> <!-- APP类型 -->
<div v-if="form.reportType === '2'" class="mb-0"> <div v-if="form.reportType === 3" class="mb-0">
<el-form-item label="APP名称" prop="websiteName" class="mb-0"> <el-form-item label="APP名称" prop="websiteName" class="mb-0">
<el-input <el-input
v-model="form.websiteName" v-model="form.websiteName"
...@@ -191,9 +198,9 @@ ...@@ -191,9 +198,9 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="APP官方地址" prop="websiteUrl" class="mb-0"> <el-form-item label="APP官方地址" prop="websitAddress" class="mb-0">
<el-input <el-input
v-model="form.websiteUrl" v-model="form.websitAddress"
placeholder="请输入APP官方地址" placeholder="请输入APP官方地址"
clearable clearable
></el-input> ></el-input>
...@@ -201,9 +208,13 @@ ...@@ -201,9 +208,13 @@
</div> </div>
<!-- 信息所在详细网址 --> <!-- 信息所在详细网址 -->
<el-form-item label="信息所在详细网址" prop="detailUrl" class="mb-4"> <el-form-item
label="信息所在详细网址"
prop="websitDetailAddress"
class="mb-4"
>
<el-input <el-input
v-model="form.detailUrl" v-model="form.websitDetailAddress"
placeholder="请输入信息所在详细网址" placeholder="请输入信息所在详细网址"
clearable clearable
:disabled="disabled" :disabled="disabled"
...@@ -234,17 +245,17 @@ ...@@ -234,17 +245,17 @@
v-for="item in harmTypeOptions" v-for="item in harmTypeOptions"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.label"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 附件上传 --> <!-- 附件上传 -->
<el-form-item label="附件" prop="attachmentsList" class="mb-4"> <el-form-item label="附件" prop="fileUrl" class="mb-4">
<el-upload <!-- <el-upload
v-model:file-list="fileList" v-model:file-list="fileList"
action="#" action="#"
accept=".gif,.jpg,.png,.bmp,.jpeg,.doc,.docx,.pdf" accept=".jpg,.png,.jpeg,.doc,.docx,.pdf"
list-type="text" list-type="text"
:auto-upload="false" :auto-upload="false"
:limit="3" :limit="3"
...@@ -260,6 +271,27 @@ ...@@ -260,6 +271,27 @@
每个附件大小不能超过10M,最多可上传3个附件 每个附件大小不能超过10M,最多可上传3个附件
</div> </div>
</template> </template>
</el-upload> -->
<el-upload
:file-list="contentImg"
:action="'/cms/upload/uploadFile'"
:limit="3"
:on-exceed="handleExceed"
:before-upload="beforeUpload"
:on-error="contentImgError"
:on-success="contentImgSuccess"
:on-remove="contentImghandleRemove"
accept=".jpg,.png,.jpeg,.doc,.docx,.pdf"
list-type="text"
name="multipartFile"
>
<el-button type="primary">点击上传</el-button>
<template #tip>
<div class="el-upload__tip text-sm text-gray-500">
每个附件大小不能超过10M,最多可上传3个附件
</div>
</template>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
...@@ -307,40 +339,52 @@ import Footer from "@/components/footer.vue"; ...@@ -307,40 +339,52 @@ import Footer from "@/components/footer.vue";
const disabled = ref(false); const disabled = ref(false);
const fileList = ref([]); const fileList = ref([]);
const formRef = ref(); const formRef = ref();
const contentImg = ref<any>([]);
const harmTypeOptions = [ const harmTypeOptions = [
{ label: "网络“开盒”恶意评价、侮辱谩骂及造谣污蔑等信息", value: 0 }, { label: "网络“开盒”恶意评价、侮辱谩骂及造谣污蔑等信息", value: 1 },
{ label: "网络交易环境", value: 1 }, { label: "网络交易环境", value: 2 },
{ label: "网上虚假宣传制售“特供酒", value: 2 }, { label: "网上虚假宣传制售“特供酒", value: 3 },
{ label: "境外赌场招赌信息", value: 3 }, { label: "境外赌场招赌信息", value: 4 },
{ label: "含有病态、低俗内容的热搜榜单", value: 4 }, { label: "含有病态、低俗内容的热搜榜单", value: 5 },
{ label: "生活服务类平台信息", value: 5 }, { label: "生活服务类平台信息", value: 6 },
{ label: "涉企侵权信息举报", value: 6 }, { label: "涉企侵权信息举报", value: 7 },
{ label: "低俗", value: 7 }, { label: "低俗", value: 8 },
{ label: "谣言", value: 8 }, { label: "谣言", value: 9 },
{ label: "淫秽色情", value: 9 }, { label: "淫秽色情", value: 10 },
{ label: "赌博", value: 10 }, { label: "赌博", value: 11 },
{ label: "诈骗", value: 11 }, { label: "诈骗", value: 12 },
{ label: "侵权", value: 12 }, { label: "侵权", value: 13 },
{ label: "病毒", value: 13 }, { label: "病毒", value: 14 },
{ label: "违背宪法原则", value: 14 }, { label: "违背宪法原则", value: 15 },
{ label: "攻击党和政府", value: 15 }, { label: "攻击党和政府", value: 16 },
{ label: "违背社会公德", value: 16 }, { label: "违背社会公德", value: 17 },
{ label: "其他违法和不良信息", value: 17 }, { label: "其他违法和不良信息", value: 18 },
{ label: "宣扬邪教", value: 18 }, { label: "宣扬邪教", value: 19 },
{ label: "迷信暴力", value: 19 }, { label: "迷信暴力", value: 20 },
{ label: "新冠肺炎疫情", value: 20 }, { label: "新冠肺炎疫情", value: 21 },
{ label: "侵权假冒", value: 21 }, { label: "侵权假冒", value: 22 },
]; ];
const searchEngineTypeOptions = [ const searchEngineTypeOptions = [
{ label: "其他", value: "http://" }, { label: "其他", url: "http://", value: 1 },
{ label: "百度", value: "http://www.baidu.com" }, { label: "百度", url: "http://www.baidu.com", value: 2 },
{ label: "谷歌", value: "http://www.google.com" }, { label: "谷歌", url: "http://www.google.com", value: 3 },
{ label: "雅虎", value: "http://www.yahoo.cn" }, { label: "雅虎", url: "http://www.yahoo.cn", value: 4 },
{ label: "搜狗", value: "http://www.sogou.com" }, { label: "搜狗", url: "http://www.sogou.com", value: 5 },
{ label: "360", value: "https://www.so.com" }, { label: "360", url: "https://www.so.com", value: 6 },
{ label: "必应", value: "https://cn.bing.com" }, { label: "必应", url: "https://cn.bing.com", value: 7 },
];
// 被举报类型选项
const reportTypeOptions = [
{ label: "网站", value: 1 },
{ label: "搜索引擎类", value: 2 },
{ label: "APP", value: 3 },
];
const userSexOptions = [
{ label: "男", value: 1 },
{ label: "女", value: 2 },
]; ];
// 获取城市选项 // 获取城市选项
...@@ -358,51 +402,47 @@ function getCityOptions() { ...@@ -358,51 +402,47 @@ function getCityOptions() {
// 处理区域选择变化 // 处理区域选择变化
function handleRegionChange(val: string[]) { function handleRegionChange(val: string[]) {
if (val.length === 2) { if (val.length === 2) {
form.provinces = val[0]; form.country = val[0];
form.citys = val[1]; form.city = val[1];
} }
} }
// 表单数据 // 表单数据
const form = reactive({ const form = reactive({
// 举报人基本信息 userName: "吴大大",
realName: "", userSex: "1",
gender: "1", userEmail: "123@qq.com",
email: "", userMobile: "13800000000",
phone: "", region: ["北京市", "北京市"],
region: [], country: "北京市",
provinces: "", city: "北京市",
citys: "", userAddress: "北京市朝阳区XX路XX号",
address: "", reportType: 1, // 举报信息
reportType: "0", // 举报信息 websiteName: "11", //网址名称
websiteName: "", //网址名称 websitAddress: "22", //被举报网址
websiteUrl: "", //被举报网址 searchType: "", //搜索引擎类型
searchEngineType: "", //搜索引擎类型 searchKeyword: "", //举报关键字
reportKeyword: "", //举报关键字 websitDetailAddress: "111", //信息所在详细网址
// searchWebsiteName: "", //被举报网站名称 reportContent: "222",
// searchWebsiteUrl: "", //被举报网址 harmType: "2222",
// appName: "", //APP名称 fileUrl: "",
// appOfficialUrl: "", //APP官方网址
detailUrl: "", //信息所在详细网址
reportContent: "",
harmType: "",
attachmentsList: [],
images: "", images: "",
captcha: "", captcha: "",
status: "0",
}); });
// 表单验证规则 // 表单验证规则
const rules = reactive({ const rules = reactive({
realName: [ userName: [
{ required: true, message: "请输入真实姓名", trigger: "blur" }, { required: true, message: "请输入真实姓名", trigger: "blur" },
{ min: 2, max: 10, message: "请输入2 到 10 位真实姓名", trigger: "blur" }, { min: 2, max: 10, message: "请输入2 到 10 位真实姓名", trigger: "blur" },
], ],
gender: [{ required: true, message: "请选择性别", trigger: "change" }], userSex: [{ required: true, message: "请选择性别", trigger: "change" }],
email: [ userEmail: [
{ required: true, message: "请输入邮箱地址", trigger: "blur" }, { required: true, message: "请输入邮箱地址", trigger: "blur" },
{ type: "email", message: "请输入正确的邮箱地址", trigger: "blur" }, { type: "email", message: "请输入正确的邮箱地址", trigger: "blur" },
], ],
phone: [ userMobile: [
{ required: true, message: "请输入电话号码", trigger: "blur" }, { required: true, message: "请输入电话号码", trigger: "blur" },
{ {
pattern: /^1[3-9]\d{9}$/, pattern: /^1[3-9]\d{9}$/,
...@@ -415,17 +455,17 @@ const rules = reactive({ ...@@ -415,17 +455,17 @@ const rules = reactive({
{ required: true, message: "请选择被举报类型", trigger: "change" }, { required: true, message: "请选择被举报类型", trigger: "change" },
], ],
websiteName: [{ required: true, message: "请输入网址名称", trigger: "blur" }], websiteName: [{ required: true, message: "请输入网址名称", trigger: "blur" }],
websiteUrl: [ websitAddress: [
{ required: true, message: "请输入被举报网址", trigger: "blur" }, { required: true, message: "请输入被举报网址", trigger: "blur" },
// { type: "url", message: "请输入正确的网址", trigger: "blur" }, // { type: "url", message: "请输入正确的网址", trigger: "blur" },
], ],
searchEngineType: [ searchType: [
{ required: true, message: "请选择搜索引擎类型", trigger: "change" }, { required: true, message: "请选择搜索引擎类型", trigger: "change" },
], ],
reportKeyword: [ searchKeyword: [
{ required: true, message: "请输入举报关键字", trigger: "blur" }, { required: true, message: "请输入举报关键字", trigger: "blur" },
], ],
detailUrl: [ websitDetailAddress: [
{ required: true, message: "请输入信息所在详细网址", trigger: "blur" }, { required: true, message: "请输入信息所在详细网址", trigger: "blur" },
// { type: "url", message: "请输入正确的网址", trigger: "blur" }, // { type: "url", message: "请输入正确的网址", trigger: "blur" },
], ],
...@@ -434,7 +474,6 @@ const rules = reactive({ ...@@ -434,7 +474,6 @@ const rules = reactive({
{ min: 1, max: 500, message: "举报内容不能超过500个字符", trigger: "blur" }, { min: 1, max: 500, message: "举报内容不能超过500个字符", trigger: "blur" },
], ],
harmType: [{ required: true, message: "请选择危害类型", trigger: "change" }], harmType: [{ required: true, message: "请选择危害类型", trigger: "change" }],
captcha: [ captcha: [
{ {
required: true, required: true,
...@@ -446,18 +485,22 @@ const rules = reactive({ ...@@ -446,18 +485,22 @@ const rules = reactive({
// 处理举报类型变化 // 处理举报类型变化
function handleReportTypeChange(value: string) { function handleReportTypeChange(value: string) {
form.websiteUrl = ""; //被举报网址 form.websitAddress = ""; //被举报网址
form.detailUrl = ""; //信息所在详细网址 form.websitDetailAddress = ""; //信息所在详细网址
form.websiteName = ""; //网址名称 form.websiteName = ""; //网址名称
form.searchEngineType = ""; //搜索引擎类型 form.searchType = ""; //搜索引擎类型
form.reportKeyword = ""; //举报关键字 form.searchKeyword = ""; //举报关键字
disabled.value = false; disabled.value = false;
} }
// 处理搜索引擎类型变化 // 处理搜索引擎类型变化
function handleSearchEngineTypeChange(value: string) { function handleSearchEngineTypeChange(value: string) {
form.websiteUrl = value; //被举报网址 searchEngineTypeOptions.forEach((item: any) => {
form.detailUrl = value; //信息所在详细网址 if (item.value === value) {
form.websitAddress = item.url; //被举报网址
form.websitDetailAddress = item.url; //信息所在详细网址
}
});
if (value === "http://") { if (value === "http://") {
disabled.value = false; disabled.value = false;
} else { } else {
...@@ -467,44 +510,83 @@ function handleSearchEngineTypeChange(value: string) { ...@@ -467,44 +510,83 @@ function handleSearchEngineTypeChange(value: string) {
// 处理文件上传超出限制 // 处理文件上传超出限制
function handleExceed(files: any, fileList: any) { function handleExceed(files: any, fileList: any) {
ElMessage.warning( ElMessage({
`最多只能上传 3 个文件,当前选择了 ${files.length} 个文件,共 ${ message: `最多只能上传 3 个文件,当前选择了 ${files.length} 个文件,共 ${
files.length + fileList.length files.length + fileList.length
} 个文件` } 个文件`,
); type: "warning",
});
} }
// 文件上传前的验证 // 文件上传前的验证
function beforeUpload(file: any) { function beforeUpload(file: any) {
const isLt10M = file.size / 1024 / 1024 < 10; const isLt10M = file.size / 1024 / 1024 < 10;
if (!isLt10M) { if (!isLt10M) {
ElMessage.error("单个附件大小不能超过 10MB!"); ElMessage({
message: "单个附件大小不能超过 10MB!",
type: "warning",
});
return false; return false;
} }
return true; return true;
} }
// 处理文件上传成功
function contentImgSuccess(response: any, file: any, fileList: any) {
if (response.result) {
contentImg.value.push({
url: file.url,
name: file.name,
path: response.data,
uid: file.uid,
});
}
debugger;
}
// 处理文件上传错误
function contentImgError(response: any, file: any, fileList: any) {
response = response.toString().replace("Error: ", "");
// debugger;
response = JSON.parse(response);
ElMessage({
message: response.msg,
type: "error",
});
}
// 移除上传文件 // 移除上传文件
function removeUploadFile(file: any, fileList: any) {} function contentImghandleRemove(file: any, fileList: any) {
var index = -1;
index = contentImg.value.findIndex(function (text: any) {
return text.uid == file.uid;
}); //查找元素下标
if (index != -1) {
contentImg.value.splice(index, 1); //删除元素
}
}
// 移除上传文件
// function removeUploadFile(file: any, fileList: any) {}
// 处理文件上传变化 // 处理文件上传变化
function handleUploadChange(files: any, fileList: any) { // function handleUploadChange(files: any, fileList: any) {
// let formData = new FormData(); // let formData = new FormData();
// fileList.forEach((file: any) => { // fileList.forEach((file: any) => {
// formData.append("multipartFile", file.raw); // 注意这里使用multipartFile对应后端参数 // formData.append("multipartFile", file.raw); // 注意这里使用multipartFile对应后端参数
// }); // });
// uploadFile(formData).then((res: any) => { // uploadFile(formData).then((res: any) => {
// if (res.code === 200) { // if (res.code === 200) {
// form.images = res.data; // form.images = res.data;
// ElMessage.success("文件上传成功!"); // ElMessage.success("文件上传成功!");
// } else { // } else {
// ElMessage.error("文件上传失败!"); // ElMessage.error("文件上传失败!");
// } // }
// }); // });
} // }
// 处理文件上传成功 // 处理文件上传成功
function handleUploadSuccess(res: any, file: any, fileList: any) {} // function handleUploadSuccess(res: any, file: any, fileList: any) {}
// 提交表单 // 提交表单
function submitForm() { function submitForm() {
...@@ -520,38 +602,59 @@ function submitForm() { ...@@ -520,38 +602,59 @@ function submitForm() {
form.captcha = ""; form.captcha = "";
return; return;
} }
if (fileList.value.length === 0) { //contentImg转json赋值给form.fileUrl
getUpdateForm(form).then((res) => { form.fileUrl = JSON.stringify(contentImg.value);
getUpdateForm(form).then((res: any) => {
if (res.code === 200) { if (res.code === 200) {
ElMessage.success("提交成功!"); ElMessage({
resetForm(); message: "提交成功!",
} else { type: "success",
ElMessage.error("提交失败!");
}
});
} else {
let formData = new FormData();
fileList.value.forEach((file: any) => {
formData.append("multipartFile", file.raw); // 注意这里使用multipartFile对应后端参数
}); });
uploadFile(formData).then((res: any) => { // 重置表单字段
if (res.code === 200) {
form.images = res.data;
getUpdateForm(form).then((res) => {
if (res.code === 200) {
ElMessage.success("提交成功!");
resetForm(); resetForm();
refreshCaptcha(); // 刷新验证码
} else { } else {
ElMessage.error("提交失败!"); ElMessage({
} message: "提交失败!",
type: "error",
}); });
} else {
ElMessage.error("文件上传失败!");
} }
}); });
} // if (fileList.value.length === 0) {
// getUpdateForm(form).then((res) => {
// if (res.code === 200) {
// ElMessage.success("提交成功!");
// resetForm();
// } else {
// ElMessage.error("提交失败!");
// }
// });
// } else {
// let formData = new FormData();
// fileList.value.forEach((file: any) => {
// formData.append("multipartFile", file.raw); // 注意这里使用multipartFile对应后端参数
// });
// uploadFile(formData).then((res: any) => {
// if (res.code === 200) {
// form.images = res.data;
// getUpdateForm(form).then((res) => {
// if (res.code === 200) {
// ElMessage.success("提交成功!");
// resetForm();
// } else {
// ElMessage.error("提交失败!");
// }
// });
// } else {
// ElMessage.error("文件上传失败!");
// }
// });
// }
} else { } else {
ElMessage.error("请填写完整信息!"); ElMessage({
message: "请填写完整信息!",
type: "error",
});
return false; return false;
} }
}); });
...@@ -559,7 +662,11 @@ function submitForm() { ...@@ -559,7 +662,11 @@ function submitForm() {
// 重置表单 // 重置表单
function resetForm() { function resetForm() {
formRef.value.resetFields(); formRef.value.resetFields();
// ElMessage.info("表单已重置"); contentImg.value = [];
ElMessage({
message: "表单已重置",
type: "info",
});
} }
const letters = Array.from("ABCDEFGHJKLMNPQRSTUVWXYZ23456789"); const letters = Array.from("ABCDEFGHJKLMNPQRSTUVWXYZ23456789");
......
...@@ -67,7 +67,8 @@ ...@@ -67,7 +67,8 @@
>太原市互联网违法和不良信息举报平台</a >太原市互联网违法和不良信息举报平台</a
> >
</h1> </h1>
<h2>太原市互联网举报电话:{{ inject("VITE_PHONE") }}</h2> <h3>太原市互联网举报电话:{{ inject("VITE_PHONE") }}</h3>
<h3>太原市互联网举报邮箱:{{ inject("VITE_EMAIL") }}</h3>
<el-button <el-button
class="botton" class="botton"
type="primary" type="primary"
......
...@@ -32,9 +32,9 @@ export default defineConfig({ ...@@ -32,9 +32,9 @@ export default defineConfig({
proxy: { proxy: {
"/cms": { "/cms": {
target: "http://localhost:9002", target: "http://localhost:9002",
// target: "http://192.168.19.248:9002",
// target: "http://172.16.70.52:8081", // target: "http://172.16.70.52:8081",
// target: "http://192.168.19.142:9002", // target: "http://192.168.19.142:9002",
// target: "http://192.168.19.127:9002",
changeOrigin: true, changeOrigin: true,
// rewrite: (path) => path.replace(/^\/cms/, "/cms"), // rewrite: (path) => path.replace(/^\/cms/, "/cms"),
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment