网络举报修复

Lvtianfang
许宏杰 2 years ago
parent 4f866f85f0
commit 4bb43489ee

@ -162,3 +162,13 @@
.desLable { .desLable {
width: 180px !important; width: 180px !important;
} }
.image-title {
margin: 10px 0;
font-size: 13px;
font-weight: bold;
color: #333;
}
.image-view {
border: 1px solid #e6ebf5;
}

@ -2,7 +2,7 @@
<el-image <el-image
:src="`${realSrc}`" :src="`${realSrc}`"
fit="cover" fit="cover"
:style="`width:${realWidth};height:${realHeight};`" :style="`width:${realWidth};height:${realHeight};margin:${margin}`"
:preview-src-list="realSrcList" :preview-src-list="realSrcList"
> >
<div slot="error" class="image-slot"> <div slot="error" class="image-slot">
@ -19,16 +19,20 @@ export default {
props: { props: {
src: { src: {
type: String, type: String,
default: "" default: "",
}, },
width: { width: {
type: [Number, String], type: [Number, String],
default: "" default: "",
},
margin: {
type: [Number, String],
default: "",
}, },
height: { height: {
type: [Number, String], type: [Number, String],
default: "" default: "",
} },
}, },
computed: { computed: {
realSrc() { realSrc() {
@ -47,7 +51,7 @@ export default {
} }
let real_src_list = this.src.split(","); let real_src_list = this.src.split(",");
let srcList = []; let srcList = [];
real_src_list.forEach(item => { real_src_list.forEach((item) => {
if (isExternal(item)) { if (isExternal(item)) {
return srcList.push(item); return srcList.push(item);
} }
@ -60,7 +64,7 @@ export default {
}, },
realHeight() { realHeight() {
return typeof this.height == "string" ? this.height : `${this.height}px`; return typeof this.height == "string" ? this.height : `${this.height}px`;
} },
}, },
}; };
</script> </script>

@ -23,8 +23,12 @@
<!-- 上传提示 --> <!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip"> <div class="el-upload__tip" slot="tip" v-if="showTip">
请上传 请上传
<template v-if="fileSize"> <b style="color: #f56c6c">{{ fileSize }}MB</b> </template> <template v-if="fileSize">
<template v-if="fileType"> <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
</template>
<template v-if="fileType">
格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b>
</template>
的文件 的文件
</div> </div>
@ -66,8 +70,8 @@ export default {
// //
isShowTip: { isShowTip: {
type: Boolean, type: Boolean,
default: true default: true,
} },
}, },
data() { data() {
return { return {
@ -77,11 +81,11 @@ export default {
dialogVisible: false, dialogVisible: false,
hideUpload: false, hideUpload: false,
baseUrl: process.env.VUE_APP_BASE_API, baseUrl: process.env.VUE_APP_BASE_API,
uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // uploadImgUrl: process.env.VUE_APP_BASE_API + "/zongzhi/common/upload", //
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
fileList: [] fileList: [],
}; };
}, },
watch: { watch: {
@ -89,9 +93,9 @@ export default {
handler(val) { handler(val) {
if (val) { if (val) {
// //
const list = Array.isArray(val) ? val : this.value.split(','); const list = Array.isArray(val) ? val : this.value.split(",");
// //
this.fileList = list.map(item => { this.fileList = list.map((item) => {
if (typeof item === "string") { if (typeof item === "string") {
if (item.indexOf(this.baseUrl) === -1) { if (item.indexOf(this.baseUrl) === -1) {
item = { name: this.baseUrl + item, url: this.baseUrl + item }; item = { name: this.baseUrl + item, url: this.baseUrl + item };
@ -107,8 +111,8 @@ export default {
} }
}, },
deep: true, deep: true,
immediate: true immediate: true,
} },
}, },
computed: { computed: {
// //
@ -125,7 +129,7 @@ export default {
if (file.name.lastIndexOf(".") > -1) { if (file.name.lastIndexOf(".") > -1) {
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1); fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
} }
isImg = this.fileType.some(type => { isImg = this.fileType.some((type) => {
if (file.type.indexOf(type) > -1) return true; if (file.type.indexOf(type) > -1) return true;
if (fileExtension && fileExtension.indexOf(type) > -1) return true; if (fileExtension && fileExtension.indexOf(type) > -1) return true;
return false; return false;
@ -135,7 +139,9 @@ export default {
} }
if (!isImg) { if (!isImg) {
this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}图片格式文件!`); this.$modal.msgError(
`文件格式不正确, 请上传${this.fileType.join("/")}图片格式文件!`
);
return false; return false;
} }
if (this.fileSize) { if (this.fileSize) {
@ -167,7 +173,7 @@ export default {
}, },
// //
handleDelete(file) { handleDelete(file) {
const findex = this.fileList.map(f => f.name).indexOf(file.name); const findex = this.fileList.map((f) => f.name).indexOf(file.name);
if (findex > -1) { if (findex > -1) {
this.fileList.splice(findex, 1); this.fileList.splice(findex, 1);
this.$emit("input", this.listToString(this.fileList)); this.$emit("input", this.listToString(this.fileList));
@ -202,9 +208,9 @@ export default {
strs += list[i].url.replace(this.baseUrl, "") + separator; strs += list[i].url.replace(this.baseUrl, "") + separator;
} }
} }
return strs != '' ? strs.substr(0, strs.length - 1) : ''; return strs != "" ? strs.substr(0, strs.length - 1) : "";
} },
} },
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -218,9 +224,9 @@ export default {
transition: all 0s; transition: all 0s;
} }
::v-deep .el-list-enter, .el-list-leave-active { ::v-deep .el-list-enter,
.el-list-leave-active {
opacity: 0; opacity: 0;
transform: translateY(0); transform: translateY(0);
} }
</style> </style>

@ -112,7 +112,6 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="举报人" align="center" prop="jbMan" /> <el-table-column label="举报人" align="center" prop="jbMan" />
<el-table-column label="被举报对象" align="center" prop="jbdx" /> <el-table-column label="被举报对象" align="center" prop="jbdx" />
<el-table-column label="苏州编号" align="center" prop="jbbh" /> <el-table-column label="苏州编号" align="center" prop="jbbh" />
@ -201,7 +200,14 @@
class="dialog-from" class="dialog-from"
> >
<el-form-item label="区域" prop="areaId"> <el-form-item label="区域" prop="areaId">
<el-input v-model="form.areaId" placeholder="请输入区域" /> <el-select v-model="form.areaId" placeholder="请选择区域" filterable>
<el-option
v-for="dict in townList"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="举报人" prop="jbMan"> <el-form-item label="举报人" prop="jbMan">
<el-input v-model="form.jbMan" placeholder="请输入举报人" /> <el-input v-model="form.jbMan" placeholder="请输入举报人" />
@ -233,7 +239,11 @@
<el-input v-model="form.address" placeholder="请输入地址" /> <el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item> </el-form-item>
<el-form-item label="举报内容"> <el-form-item label="举报内容">
<editor v-model="form.content" :min-height="192" /> <el-input
v-model="form.content"
type="textarea"
placeholder="请输入举报内容"
/>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="state"> <el-form-item label="状态" prop="state">
<el-select v-model="form.state" placeholder="请选择状态"> <el-select v-model="form.state" placeholder="请选择状态">
@ -279,7 +289,7 @@
labelClassName="desLable" labelClassName="desLable"
> >
<el-descriptions-item label="区域">{{ <el-descriptions-item label="区域">{{
form.areaId $filterTown(form.areaId)
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="举报人">{{ <el-descriptions-item label="举报人">{{
@ -314,13 +324,16 @@
form.content form.content
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="状态">{{ <el-descriptions-item label="状态">
form.state <dict-tag :options="dict.type.tc_steam_state" :value="form.state" />
}}</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="来源">{{ <el-descriptions-item label="来源">
form.source <dict-tag
}}</el-descriptions-item> :options="dict.type.tc_net_jb_source"
:value="form.source"
/>
</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
</div> </div>

@ -264,9 +264,9 @@
form.zhuanxiangContent form.zhuanxiangContent
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="专项图片">{{ <!-- <el-descriptions-item label="专项图片">{{
form.zhuanxiangImg form.zhuanxiangImg
}}</el-descriptions-item> }}</el-descriptions-item> -->
<el-descriptions-item label="处理类型"> <el-descriptions-item label="处理类型">
<dict-tag <dict-tag
@ -275,6 +275,17 @@
/> />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<div class="image-title">专项图片</div>
<div class="image-view">
<ImagePreview
v-for="(item, index) in imageList"
:key="'image' + index"
:src="item"
margin="10px"
width="60px"
height="60px"
/>
</div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -298,6 +309,7 @@ export default {
dicts: ["tc_chuli_type"], dicts: ["tc_chuli_type"],
data() { data() {
return { return {
imageList: [],
tableHeigth: 0, tableHeigth: 0,
// //
infoOpen: false, infoOpen: false,
@ -396,6 +408,7 @@ export default {
remark: null, remark: null,
}; };
this.imageList = [];
this.resetForm("form"); this.resetForm("form");
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@ -419,6 +432,11 @@ export default {
this.reset(); this.reset();
const id = row.id || this.ids; const id = row.id || this.ids;
getZhuanxiang(id).then((response) => { getZhuanxiang(id).then((response) => {
if (response.data.zhuanxiangImg) {
this.imageList = response.data.zhuanxiangImg.split(",");
} else {
this.imageList = [];
}
this.form = response.data; this.form = response.data;
this.infoOpen = true; this.infoOpen = true;
this.infoTitle = "查看清朗专项详情"; this.infoTitle = "查看清朗专项详情";

Loading…
Cancel
Save