dev
parent
da5102d6e6
commit
a63c3369e0
@ -1,111 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<a-drawer
|
|
||||||
title="资讯-详情"
|
|
||||||
:width="720"
|
|
||||||
:visible="show"
|
|
||||||
:body-style="{ paddingBottom: '80px' }"
|
|
||||||
@close="detailClose"
|
|
||||||
>
|
|
||||||
<div class="drawer-content">
|
|
||||||
<div class="content-title">
|
|
||||||
{{ detailData.title }}
|
|
||||||
<a-tag color="blue">{{
|
|
||||||
detailData.status === 1 ? "未发布" : "已发布"
|
|
||||||
}}</a-tag>
|
|
||||||
</div>
|
|
||||||
<a-divider></a-divider>
|
|
||||||
|
|
||||||
<a-descriptions>
|
|
||||||
<a-descriptions-item label="资讯类型">
|
|
||||||
{{ detailData.categoryName }}
|
|
||||||
</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="阅读量">
|
|
||||||
{{ detailData.viewsNum }}
|
|
||||||
</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="创建人">
|
|
||||||
{{ detailData.createName }}
|
|
||||||
</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="创建时间">
|
|
||||||
{{ detailData.createDate }}
|
|
||||||
</a-descriptions-item>
|
|
||||||
</a-descriptions>
|
|
||||||
<a-descriptions :column="1">
|
|
||||||
<a-descriptions-item label="资讯内容">
|
|
||||||
{{ detailData.content }}
|
|
||||||
</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="公告封面图">
|
|
||||||
<img
|
|
||||||
v-for="(item, index) in detailData.imgList"
|
|
||||||
:key="index"
|
|
||||||
:src="$ImgUrl(item.url)"
|
|
||||||
class="content-img"
|
|
||||||
/>
|
|
||||||
</a-descriptions-item>
|
|
||||||
</a-descriptions>
|
|
||||||
</div>
|
|
||||||
<div class="drawer-footer">
|
|
||||||
<a-button :style="{ marginRight: '8px' }" @click="detailClose">
|
|
||||||
关闭
|
|
||||||
</a-button>
|
|
||||||
</div>
|
|
||||||
</a-drawer>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { newsInfo } from "@/api/operation/news/index.js";
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
detailId: Number,
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
detailData: {},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
mounted() {},
|
|
||||||
methods: {
|
|
||||||
detailClose() {
|
|
||||||
this.$emit("detailClose");
|
|
||||||
},
|
|
||||||
handleTableChange(pagination) {
|
|
||||||
console.log(pagination);
|
|
||||||
const pager = { ...this.pagination };
|
|
||||||
pager.current = pagination.current;
|
|
||||||
pager.pageSize = pagination.pageSize;
|
|
||||||
this.pagination = pager;
|
|
||||||
this.getData();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
detailId: {
|
|
||||||
handler(id) {
|
|
||||||
if (id !== null && id !== undefined) {
|
|
||||||
newsInfo({ informationId: id }).then((res) => {
|
|
||||||
this.detailData = res.data;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
immediate: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="less" scoped>
|
|
||||||
.content-title {
|
|
||||||
color: #000000d9;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 25px;
|
|
||||||
}
|
|
||||||
.content-img {
|
|
||||||
width: 108px;
|
|
||||||
height: 86px;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,21 +0,0 @@
|
|||||||
export const form = {
|
|
||||||
id:undefined,
|
|
||||||
title:undefined,
|
|
||||||
categoryId:undefined,
|
|
||||||
status:undefined,
|
|
||||||
content:undefined,
|
|
||||||
imgUrls:[]
|
|
||||||
}
|
|
||||||
export const rules = {
|
|
||||||
title:[{required:true,message:'请输入标题',trigger:'blur'}],
|
|
||||||
categoryId:[{required:true,message:'请选择分类',trigger:'change'}],
|
|
||||||
status:[{required:true,message:'请选择',trigger:'change'}],
|
|
||||||
content:[{required:true,message:'请输入',trigger:'blur'}],
|
|
||||||
}
|
|
||||||
export const options = {
|
|
||||||
status:[
|
|
||||||
{ id:1, name:'未发布' },
|
|
||||||
{ id:2, name:'已发布' },
|
|
||||||
],
|
|
||||||
categoryId:[]
|
|
||||||
}
|
|
@ -1,201 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<a-drawer
|
|
||||||
:title="title"
|
|
||||||
:width="720"
|
|
||||||
:visible="show"
|
|
||||||
:body-style="{ paddingBottom: '80px' }"
|
|
||||||
@close="addClose"
|
|
||||||
>
|
|
||||||
<div class="drawer-content">
|
|
||||||
基本信息
|
|
||||||
<a-divider></a-divider>
|
|
||||||
<a-form-model
|
|
||||||
ref="ruleForm"
|
|
||||||
:model="form"
|
|
||||||
:rules="rules"
|
|
||||||
layout="vertical"
|
|
||||||
>
|
|
||||||
<a-row>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-model-item prop="title" label="标题">
|
|
||||||
<a-input
|
|
||||||
v-model="form.title"
|
|
||||||
placeholder="请输入标题"
|
|
||||||
style="width: 80%"
|
|
||||||
></a-input>
|
|
||||||
</a-form-model-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-model-item prop="categoryId" label="资讯分类">
|
|
||||||
<a-select
|
|
||||||
v-model="form.categoryId"
|
|
||||||
placeholder="请选择"
|
|
||||||
style="width: 80%"
|
|
||||||
>
|
|
||||||
<a-select-option
|
|
||||||
v-for="item in options.categoryId"
|
|
||||||
:key="item.id"
|
|
||||||
:value="item.id"
|
|
||||||
>{{ item.name }}</a-select-option
|
|
||||||
>
|
|
||||||
</a-select>
|
|
||||||
</a-form-model-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="12">
|
|
||||||
<a-form-model-item prop="status" label="发布状态">
|
|
||||||
<a-select
|
|
||||||
v-model="form.status"
|
|
||||||
placeholder="请选择"
|
|
||||||
style="width: 80%"
|
|
||||||
>
|
|
||||||
<a-select-option
|
|
||||||
v-for="item in options.status"
|
|
||||||
:key="item.id"
|
|
||||||
:value="item.id"
|
|
||||||
>{{ item.name }}</a-select-option
|
|
||||||
>
|
|
||||||
</a-select>
|
|
||||||
</a-form-model-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="24">
|
|
||||||
<a-form-model-item prop="content" label="内容">
|
|
||||||
<a-textarea
|
|
||||||
v-model="form.content"
|
|
||||||
placeholder="请输入内容"
|
|
||||||
style="width: 80%"
|
|
||||||
></a-textarea>
|
|
||||||
</a-form-model-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :span="24">
|
|
||||||
资讯封面图片
|
|
||||||
<commonUpload
|
|
||||||
:fileList="fileList"
|
|
||||||
@handleChange="handleChange"
|
|
||||||
></commonUpload>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
</a-form-model>
|
|
||||||
</div>
|
|
||||||
<div class="drawer-footer">
|
|
||||||
<a-button :style="{ marginRight: '8px' }" @click="addClose">
|
|
||||||
关闭
|
|
||||||
</a-button>
|
|
||||||
<a-button type="primary" @click="submit"> 提交 </a-button>
|
|
||||||
</div>
|
|
||||||
</a-drawer>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { form, rules, options } from "./form.js";
|
|
||||||
import {
|
|
||||||
newsInsert,
|
|
||||||
newsUpdate,
|
|
||||||
newsInfo,
|
|
||||||
itemSelect
|
|
||||||
} from "@/api/operation/news/index.js";
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
editId: Number,
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
title: "新增资讯",
|
|
||||||
form,
|
|
||||||
rules,
|
|
||||||
options,
|
|
||||||
fileList: [],
|
|
||||||
};
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.getItem();
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
async getItem() {
|
|
||||||
let res = await itemSelect();
|
|
||||||
this.options.categoryId = res.data;
|
|
||||||
},
|
|
||||||
addClose() {
|
|
||||||
this.$refs.ruleForm.resetFields();
|
|
||||||
this.fileList = [];
|
|
||||||
this.form.imgUrls = [];
|
|
||||||
this.$emit("addClose");
|
|
||||||
},
|
|
||||||
success() {
|
|
||||||
this.$emit("success");
|
|
||||||
this.addClose();
|
|
||||||
},
|
|
||||||
submit() {
|
|
||||||
this.$refs.ruleForm.validate(async (valid) => {
|
|
||||||
if (valid) {
|
|
||||||
if (this.editId === null) {
|
|
||||||
let res = await newsInsert(this.form);
|
|
||||||
if (res.code === 200) {
|
|
||||||
this.$message.success(res.msg);
|
|
||||||
this.success();
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(this.form);
|
|
||||||
let res = await newsUpdate(this.form);
|
|
||||||
if (res.code === 200) {
|
|
||||||
this.$message.success(res.msg);
|
|
||||||
this.success();
|
|
||||||
} else {
|
|
||||||
this.$message.error(res.msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
handleChange(data) {
|
|
||||||
this.fileList = data;
|
|
||||||
if (data[0].status === "done") {
|
|
||||||
console.log("-------done-------");
|
|
||||||
this.form.imgUrls.push(data[0].response.data);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
editId: {
|
|
||||||
handler(val) {
|
|
||||||
if (val !== null) {
|
|
||||||
this.title = "修改资讯";
|
|
||||||
this.form.id = val;
|
|
||||||
newsInfo({ informationId: val }).then((res) => {
|
|
||||||
this.form = res.data;
|
|
||||||
if (res.data.imgList.length > 0) {
|
|
||||||
console.log(res.data.imgList);
|
|
||||||
const pic = [];
|
|
||||||
for (let item of res.data.imgList) {
|
|
||||||
let obj = {
|
|
||||||
name: item.url.split("_")[0] + "." + item.url.split(".")[1],
|
|
||||||
url: this.$ImgUrl(item.url),
|
|
||||||
uid: item.url.split("_")[1],
|
|
||||||
status: "done",
|
|
||||||
thumbUrl: this.$ImgUrl(item.url),
|
|
||||||
};
|
|
||||||
pic.push(obj);
|
|
||||||
}
|
|
||||||
this.fileList = pic;
|
|
||||||
} else {
|
|
||||||
this.form.imgUrls = [];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
this.title = "新增资讯";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
immediate: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style></style>
|
|
@ -1,21 +1,34 @@
|
|||||||
export const form = {
|
export const form = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
|
inspectionRouteId: undefined,
|
||||||
name:undefined,
|
name:undefined,
|
||||||
describes:undefined,
|
positionId:undefined,
|
||||||
status:undefined,
|
inspector:undefined,
|
||||||
spaceTime:undefined,
|
planBeginDate:undefined,
|
||||||
pointRouteList:[]
|
isSort:undefined,
|
||||||
|
checkRateType:undefined,
|
||||||
}
|
}
|
||||||
export const rules = {
|
export const rules = {
|
||||||
name:[{required:true,message:'请输入路线名称',trigger:'blur'}],
|
inspectionRouteId:[{required:true,message:'请选择路线',trigger:'change'}],
|
||||||
describes:[{required:true,message:'请输入描述',trigger:'blur'}],
|
name:[{required:true,message:'请输入名称',trigger:'blur'}],
|
||||||
status:[{required:true,message:'请选择',trigger:'change'}],
|
inspector:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
spaceTime:[{required:true,message:'请输入持续时间',trigger:'blur'}],
|
planBeginDate:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
isSort:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
checkRateType:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
}
|
}
|
||||||
export const options = {
|
export const options = {
|
||||||
status:[
|
isSort:[
|
||||||
{ id:1, name:'启用' },
|
{ id:1, name:'顺序' },
|
||||||
{ id:2, name:'停用' },
|
{ id:2, name:'不顺序' },
|
||||||
],
|
],
|
||||||
pointList:[]
|
routeList: [],
|
||||||
|
checkRateType: [
|
||||||
|
{ id:1, name:'每天' },
|
||||||
|
{ id:2, name:'每周' },
|
||||||
|
{ id:3, name:'每月' },
|
||||||
|
],
|
||||||
|
// 岗位选择
|
||||||
|
positionId: [],
|
||||||
|
// 人员选择
|
||||||
|
inspector:[]
|
||||||
}
|
}
|
Loading…
Reference in new issue