Commit b91b948e authored by 王晓旭's avatar 王晓旭

修改新闻的上传,修改反馈管理

parent da13f514
......@@ -147,6 +147,11 @@ export default {
areaFlag: false,
streetFlag: false,
communityFlag: false,
provinceName:'',
cityName:'',
areaName:'',
streetName:'',
communityName:''
}
},
......@@ -209,6 +214,11 @@ export default {
this.streetCode = ''
this.communityCode = ''
this.cityName=''
this.areaName=''
this.streetName=''
this.communityName=''
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
......@@ -230,6 +240,11 @@ export default {
this.areaCode = ''
this.streetCode = ''
this.communityCode = ''
this.areaName=''
this.streetName=''
this.communityName=''
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
......@@ -250,6 +265,9 @@ export default {
this.streetCode = ''
this.communityCode = ''
this.streetName=''
this.communityName=''
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
......@@ -271,6 +289,9 @@ export default {
this.fetchData(this.communityList, this.streetCode)
this.streetFlag = true
this.communityCode = ''
this.communityName=''
var split = val.split("&");
this.$emit("input", split[1]);
this.$emit('addressSelect', split[1])
......@@ -289,7 +310,6 @@ export default {
},
// 社区修改,拉取社区列表
changeCommunity(val) {
console.log("changeCommunity",val)
this.fetchData(this.communityList, this.streetCode)
this.communityFlag = true
var split = val.split("&");
......@@ -318,24 +338,29 @@ export default {
if(area.areaLevel=='1'){
//省
this.provinceCode = area.iid + "&" + area.areaCode
this.provinceName = area.name
this.fetchData(this.provinceList, pid)
return
}else if(area.areaLevel=='2'){
//市
this.cityCode = area.iid + "&" + area.areaCode
this.cityName = area.name
this.fetchData(this.cityList, pid)
}else if(area.areaLevel=='3'){
//区县
this.areaCode = area.iid + "&" + area.areaCode
this.areaName = area.name
this.fetchData(this.areaList, pid)
}else if(area.areaLevel=='4'){
//街道
let pid = area.pid + "&" + area.areaCode
this.streetName = area.name
this.fetchData(this.streetList,pid)
this.streetCode = area.iid + "&" + area.areaCode
}else if(area.areaLevel=='5'){
//社区
this.fetchData(this.communityList, pid)
this.communityName = area.name
this.communityCode = area.iid + "&" + area.areaCode
}
this.$post("/base/area/list", {iid:area.pid}).then((res) => {
......@@ -356,7 +381,6 @@ export default {
immediate: true,
handler(newVal) {
if (newVal) {
this.addressCodeToList(newVal)
} else {
this.$nextTick(() => {
......
<template>
<div>
<el-upload
v-show="isshow"
name="file"
list-type="picture-card"
class="avatar-uploader2"
:data="{filename:'infomation'}"
:show-upload-list="false"
:action="uploadFileUrl"
:before-upload="beforeUpload"
:on-success="uploadSuccessEdit"
>
</el-upload>
<div class="editor" ref="editor" :style="styles"></div>
</div>
</template>
<script>
......@@ -34,6 +49,8 @@ export default {
},
data() {
return {
isshow:false,
uploadFileUrl: "/enterprise/file/commonupload", // 上传的地址
Quill: null,
currentValue: "",
options: {
......@@ -42,7 +59,8 @@ export default {
debug: "warn",
modules: {
// 工具栏配置
toolbar: [
toolbar:{
container:[
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
["blockquote", "code-block"], // 引用 代码块
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表
......@@ -54,6 +72,19 @@ export default {
["clean"], // 清除文本格式
["link", "image", "video"] // 链接、图片、视频
],
handlers: {
"image": function (value) {
if (value) {
// 调用element的图片上传组件
document.querySelector('.avatar-uploader2 input').click()
} else {
this.quill.format('image', false)
}
}
}
}
},
placeholder: "请输入内容",
readOnly: this.readOnly,
......@@ -92,6 +123,51 @@ export default {
this.Quill = null;
},
methods: {
// 上传图片成功
uploadSuccessEdit(res, file) {
// res为图片服务器返回的数据
// 获取富文本组件实例
let quill = this.Quill
// 如果上传成功
if (res.code == 1) {
// 获取光标所在位置
let length = quill.getSelection().index;
// 插入图片 res.data.url为服务器返回的图片地址
quill.insertEmbed(length, 'image', res.url)
// quill.insertEmbed(length, 'image','https://02c4e834b47bd7c8.jomoxc.com:9082/fs6ca4aaf6.a.bdydns.com/0/bjh/news/5ed45c62f6d447320a096e85187dcc24.gif?r=BzcbRhcCTngfXBtDNFsvRw0nHEIFTAg0QVYXAGlUJwFALQpBFxdUMgsBTQ5wBCtfC3dbAVcKUTZfDE4IfgN8UVgnDFVWDE8wBlMAMwpYB1wPZgBFHQMlUiNY&xcid=3042c042cee643c3b324dcf1d0aefe2f&max_age=2592000&xcsched=1572413558&xclogid=5361435651673602026&xauzkey=mngx_d1cd221672f72b38bac902fc48026343_1697182784&f_ver=v1&bcecdn_trace_info=FGEFXgoaW3UDT0wOMgF6S0NhHxReGhk0C1taEAAzClgHXA9mAEUdAyVSI1g%3D')
// 调整光标到最后
quill.setSelection(length + 1)
} else {
this.$message.error('图片插入失败')
}
// loading动画消失
this.quillUpdateImg = false
},
handleChange(info) {
console.log(info);
// if (info.file.status === 'done') {
// // Get this url from response in real world.
// if(info.file.response && info.file.response.code == 1){
// let imgurl = `${BASE_URL}/${info.file.response.data}`
// let quill = this.$refs.myTextEditor.quill
// // 获取光标所在位置
// let length = quill.getSelection().index;
// // 插入图片,res为服务器返回的图片链接地址
// quill.insertEmbed(length, 'image', imgurl)
// }
// }
},
beforeUpload(file) {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif';
if (!isJpgOrPng) {
this.$message.error('请上传jpeg、png或gif格式的图片');
}
return isJpgOrPng;
},
init() {
const editor = this.$refs.editor;
this.Quill = new Quill(editor, this.options);
......
......@@ -5,7 +5,7 @@
<el-button v-if='!noView' type="text" icon="el-icon-view" size='mini' @click='$emit("view", row)' title="查看">查看</el-button>
<span>&nbsp;</span>
<Confirm @confirm='$emit("del", row.id)' message='确定要删除该条记录吗?'>
<el-button v-if='!noDel' type="text" icon="el-icon-delete" size='mini' title="删除">删除</el-button>
<el-button v-if='!noDel' type="text" icon="el-icon-delete" size='mini' class="del" title="删除">删除</el-button>
</Confirm>
</span>
</template>
......@@ -49,5 +49,9 @@ export default {
}
}
</script>
<style lang="less" scoped>
.del{
color: red !important;
}
</style>
......@@ -26,10 +26,9 @@
:span="24"
label="经营地址"
prop="businessAdress"
v-model="form.businessAdress"
placeholder="请输入经营地址"
>
<area-select v-model="form.areaCode" @addressSelect="addressSelect"></area-select>
<area-select ref="areaselect" v-model="form.areaCode" @addressSelect="addressSelect"></area-select>
</Field>
<!-- <Field label="所在地" prop="location" v-model="form.location" placeholder="请输入所在地"/> -->
......@@ -125,7 +124,7 @@
</el-row>
<el-form-item v-if="pageInfo.type!='view'" class="formbtns">
<el-button type="primary" @click="submitForm" icon="el-icon-circle-check-outline">保存</el-button>
<el-button type="primary" @click="hanndleSubmit" icon="el-icon-circle-check-outline">保存</el-button>
<el-button @click="open=false" icon="el-icon-circle-close-outline">取消</el-button>
</el-form-item>
</Field>
......@@ -241,6 +240,28 @@ export default {
},
methods: {
hanndleSubmit(){
this.form.businessAdress = this.$refs.areaselect.provinceName+this.$refs.areaselect.cityName+this.$refs.areaselect.areaName+this.$refs.areaselect.streetName+this.$refs.areaselect.communityName+this.form.location
// 检查知识产权list中类型不能为空
if(this.companyPatentsList && this.companyPatentsList.length>0){
let isNull = false
this.companyPatentsList.forEach((item)=>{
if (!item.intellectPropertyType) {
isNull = true
}
})
if(isNull){
this.$confirm('知识产权类型不能为空', '提示', {
confirmButtonText: '确定',
type: 'warning',
showCancelButton: false, //是否显示取消按钮
showClose: false, //是否显示关闭按钮
})
return;
}
}
this.submitForm()
},
addressSelect(val) {
console.log("addressSelect", val);
},
......
......@@ -65,7 +65,7 @@
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
);
}
}
......
......@@ -5,57 +5,120 @@
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="50%">
size="80%">
<div class="drawer">
<div class="card drleft">
<div class="lefttitle">建议内容</div>
<div class="diyhang">
<div class="jyitem">
<div class="leftlabel">真实姓名</div>
<div class="leftanser">{{form.feedbackName}}</div>
</div>
<div class="jyitem">
<div class="leftlabel">联系电话</div>
<div class="leftanser">{{form.contactInfo}}</div>
</div>
<div class="jyitem">
<div class="leftlabel">邮箱地址</div>
<div class="leftanser">{{form.email}}</div>
</div>
<div class="jyitem">
<div class="leftlabel">单位名称</div>
<div class="leftanser">{{form.companyName}}</div>
</div>
</div>
<div class="jyitem">
<div class="leftlabel">用户备注</div>
<div class="leftanser">{{form.remark}}</div>
</div>
<div class="jyitem">
<div class="leftlabel">具体内容</div>
<div class="leftanser">{{form.content}}</div>
</div>
<div class="jyitem">
<div class="leftlabel">附件</div>
<!-- <Field label="附件名称,多个逗号分割" prop="fileName" v-model="form.fileName" placeholder="请输入附件名称,多个逗号分割"/>
<Field label="附件地址,多个逗号分割"><fileUpload v-model="form.filePath" prePath="/file/fileupload"/></Field> -->
</div>
<div class="jyitem">
<div class="leftlabel">提交日期</div>
<div class="leftanser">{{createTime}}</div>
</div>
</div>
<div class="card drright">
<div class="righttitle">建议答复</div>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="标题" prop="title" v-model="form.title" type="textarea" placeholder="请输入标题"/>
<Field label="内容"><editor v-model="form.content" :min-height="256"/></Field>
<Field label="是否公开 " prop="isShow" v-model="form.isShow" type="select" :enumData="dict.isShow" placeholder="请选择是否公开 "/>
<Field label="反馈人姓名" prop="feedbackName" v-model="form.feedbackName" placeholder="请输入反馈人姓名"/>
<Field label="单位名称" prop="companyName" v-model="form.companyName" placeholder="请输入单位名称"/>
<Field label="联系方式" prop="contactInfo" v-model="form.contactInfo" placeholder="请输入联系方式"/>
<Field label="身份证号" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号"/>
<Field label="地址" prop="address" v-model="form.address" placeholder="请输入地址"/>
<Field label="邮箱地址" prop="email" v-model="form.email" placeholder="请输入邮箱地址"/>
<Field :span="23" label="所属部门" type="select" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
</el-row>
<!-- <el-row>
<Field :span="23" label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/>
</el-row> -->
<el-row>
<Field :span="23" label="回复内容" type="textarea" prop="replyContent" v-model="form.replyContent" placeholder="请输入回复内容"/>
</el-row>
<!-- <el-row>
<Field :span="23" label="回复附件名称,多个逗号分割" prop="replyFileName" v-model="form.replyFileName" placeholder="请输入回复附件名称,多个逗号分割"/>
</el-row> -->
<el-row>
<Field :span="23" label="选择附件"><fileUpload v-model="form.replyFilePath" prePath="/file/fileupload"/></Field>
</el-row>
<el-row>
<Field :span="23" label="是否公开 " prop="isShow" v-model="form.isShow" type="select" :enumData="dict.isShow" placeholder="请选择是否公开 "/>
<!-- <Field label="标题" prop="title" v-model="form.title" type="textarea" placeholder="请输入标题"/> -->
<!-- <Field label="身份证号" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号"/> -->
<!-- <Field label="地址" prop="address" v-model="form.address" placeholder="请输入地址"/>
<Field label="是否回复 " prop="reply" v-model="form.reply" type="select" :enumData="dict.reply" placeholder="请选择是否回复 "/>
<Field label="回复人" prop="replyPerson" v-model="form.replyPerson" placeholder="请输入回复人"/>
<Field label="回复"><editor v-model="form.replyContent" :min-height="256"/></Field>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/>
<Field label="反馈类型 " prop="feedbackType" v-model="form.feedbackType" type="select" :enumData="dict.feedbackType" placeholder="请选择反馈类型 "/>
<Field label="附件名称,多个逗号分割" prop="fileName" v-model="form.fileName" placeholder="请输入附件名称,多个逗号分割"/>
<Field label="附件地址,多个逗号分割"><fileUpload v-model="form.filePath" prePath="/file/fileupload"/></Field>
<Field label="回复附件名称,多个逗号分割" prop="replyFileName" v-model="form.replyFileName" placeholder="请输入回复附件名称,多个逗号分割"/>
<Field label="回复附件地址,多个逗号分割"><fileUpload v-model="form.replyFilePath" prePath="/file/fileupload"/></Field>
<Field label="回复时间" prop="replyTime" v-model="form.replyTime" type="date" />
<Field label="处理人id" prop="processId" v-model="form.processId" placeholder="请输入处理人id"/>
<Field label="处理人名称" prop="processName" v-model="form.processName" placeholder="请输入处理人名称"/>
<Field label="处理状态" prop="processStatus" v-model="form.processStatus" type="select" :enumData="dict.processStatus" placeholder="请选择处理状态"/>
<Field label="处理意见" prop="processComments" v-model="form.processComments" placeholder="请输入处理意见"/>
<Field label="处理时间" prop="processTime" v-model="form.processTime" type="date" />
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field label="处理时间" prop="processTime" v-model="form.processTime" type="date" /> -->
</el-row>
<form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn />
<!-- <form-buttons @submit='submitForm' v-if="pageInfo.type!='view'" noCancelBtn /> -->
</el-form>
</div>
</div>
<div class="footbtn">
<el-button type="primary" @click='submitForm' icon='el-icon-circle-check-outline'>确认</el-button>
<el-button @click='()=>{open = false}' icon='el-icon-circle-close-outline'>取消</el-button>
</div>
</el-drawer>
</template>
<script>
import moment from 'moment'
import form from "@/assets/mixins/formdialog";
export default {
name: "FeedbackDetail",
mixins: [form],
components: {
},
watch:{
form(newval){
if(newval.createTime){
this.createTime = moment(newval.createTime).format('yyyy-MM-DD')
}else{
this.createTime = '--'
}
}
},
created() {
this.changePath("feedback")
},
data() {
return {
createTime:'',
// 遮罩层
loading: true,
// 弹出层标题
......@@ -216,3 +279,54 @@ export default {
},
};
</script>
<style lang="less" scoped>
.footbtn{
height: 100px;
display: flex;
justify-content: center;
align-items: center;
}
.drawer{
min-height: calc(100% - 100px);
width: 100%;
background: rgba(220, 220, 220, 0.466);
display: flex;
justify-content: space-between;
padding: 20px;
.drright{
.righttitle{
font-weight: 600;
margin:8px 0 20px;
color: red;
}
}
.drleft{
.jyitem{
display: flex;
flex-direction: column;
justify-content: center;
.leftlabel{
color: #0377FF;
font-weight: 600;
margin:8px 0;
}
}
.diyhang{
display: flex;
justify-content: space-between;
}
.lefttitle{
font-size: 16px;
font-weight: 600;
margin-bottom: 10px;
}
}
.card{
width: calc( 50% - 10px);
background: #ffffff;
border-radius: 25px;
padding: 20px;
}
}
</style>
\ No newline at end of file
<template>
<div class="page">
<LayoutTable ref="layouttable" :data="tableData" :config="tableConfig" >
<LayoutTable ref="layouttable" :data="tableData" :config="tableConfig" notDel notAdd>
<!-- 热门0为非热门1为热门 -->
<div slot="table-search-left" class="onlyhot">
<el-checkbox
......@@ -142,7 +142,7 @@
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<el-button type="text" icon="el-icon-edit" size='mini' onClick={()=>{this.toEdit(row)}} title="详情">详情</el-button>
);
}
}
......
......@@ -170,6 +170,24 @@
// 选中短视频
this.form.productPicPath = ''
}
// 检查常见问题list中问题不能为空
if(this.productQuestionList && this.productQuestionList.length>0){
let isNull = false
this.productQuestionList.forEach((item)=>{
if (!item.question) {
isNull = true
}
})
if(isNull){
this.$confirm('常见问题项的问题标题不能为空', '提示', {
confirmButtonText: '确定',
type: 'warning',
showCancelButton: false, //是否显示取消按钮
showClose: false, //是否显示关闭按钮
})
return;
}
}
this.submitForm()
},
// 修改宣传形式
......
......@@ -9,12 +9,12 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field :span="20" label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/>
<Field :span="20" label="所属公司" prop="companyIds" v-model="form.companyIds" :multiple="true" type="select" :enum-data="dict.companyId" placeholder="请输入所属公司"/>
<Field :span="20" label="所属公司" prop="companyIds" v-model="form.companyIds" :multiple="true" type="select" :enum-data="dict.companyIds" placeholder="请输入所属公司"/>
<Field :span="20" label="职位" prop="positionId" v-model="form.positionId" type="select" :enum-data="dict.positionId" placeholder="请输入职位ID"/>
<Field :span="20" label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field :span="20" label="员工状态" type="select" prop="staffStatus" v-model="form.staffStatus" :enum-data="dict.staffStatus" placeholder="请输入员工状态"/>
<Field :span="20" label="头像" prop="photoPath" placeholder="请输入照片"><imageUpload v-model="form.photoPath" prePath="/file/preview"/> </Field>
<Field :span="20" label="邮件地址" prop="email" v-model="form.email" placeholder="请输入邮件地址"/>
<Field :span="20" label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-row>
......
......@@ -87,12 +87,16 @@
{label: "最近更新时间", prop: "updateTime", formatter: this.formatterDate},
{label: "更新人员", prop: "updateUserId", formatter: this.formatter},
{label: "员工状态", prop: "staffStatus",formatter: this.formatter},
{
label: "操作",
width: 240,
formatter: row => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<div>
<span> </span>
<table-buttons noAdd noView row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
</div>
);
}
}
......
......@@ -24,6 +24,14 @@ module.exports = {
secure: false,
cookieDomainRewrite: "localhost",
},
"/file": {
// target: "http://test.office.com:11073",
// target: 'http://8.136.255.30:11078',
target: 'http://192.168.0.98:11086',
changeOrigin: true,
secure: false,
cookieDomainRewrite: "localhost",
},
},
},
};
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