odc.xiaohui
2023-05-24 ca98aec684da949dd1f7d4c1d546aecb1b9f9669
宣传添加修改
6个文件已修改
226 ■■■■ 已修改文件
src/api/announcement.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/publicty.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/cause/Group.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/Publicity.vue 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/announcement.vue 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/announcement.js
@@ -14,3 +14,10 @@
        data:params
    })
}
export function editAnnounce(params) {
    return request({
        url: '/policePublicity',
        method: 'put',
        data:params
    })
}
src/api/publicty.js
@@ -14,3 +14,10 @@
        data:params
    })
}
export function editPublicityList(params) {
    return request({
        url: '/publicity',
        method: 'put',
        data:params
    })
}
src/views/cause/Group.vue
@@ -139,7 +139,7 @@
  },
  data() {
    return {
      delId:null,
      delId: null,
      visible: false,
      top: 0,
      left: 0,
@@ -192,20 +192,20 @@
  },
  methods: {
    deletemsg(){
    deletemsg() {
      console.log('删除消息!')
      let obj={
        id:this.delId
      let obj = {
        id: this.delId
      }
      delmsg(this.delId).then(res=>{
      delmsg(this.delId).then(res => {
        console.log(res)
        this.$message.success(res)
        this.handleNodeClick(this.groupIdlist)
      })
    },
    //右击
    openMenu(e,id) {
      console.log(e,id)
    openMenu(e, id) {
      console.log(e, id)
      clearInterval(this.timer);
      this.delId = id
      var x = e.pageX; //这个应该是相对于整个浏览器页面的x坐标,左上角为坐标原点(0,0)
@@ -350,7 +350,7 @@
        console.log(this.messageList)
      })
    },
    scrollHeight(){
    scrollHeight() {
      let message = document.getElementById('container');
      message.scrollTop = message.scrollHeight;
    },
@@ -664,6 +664,7 @@
  padding: 7px 16px;
  cursor: pointer;
}
.contextmenu li:hover {
  background: #eee;
}
src/views/common/Publicity.vue
@@ -51,6 +51,7 @@
          <el-table-column label="操作" align="conter">
            <template slot-scope="scope">
              <el-button type="text" size="medium" @click="details(scope.row.id)">详情</el-button>
              <el-button size="medium" type="text" @click="edit(scope.row.id)">修改</el-button>
              <el-button type="text" size="medium" @click="punlish(scope.row.id, scope.row.status)"
                         :disabled="scope.row.status == 2">
                <span v-if="scope.row.status === 1" style="color:#ff0000">下架</span>
@@ -113,35 +114,46 @@
    </el-dialog>
    <!--公共宣传详情弹窗-->
    <el-dialog title="公共宣传详情" :visible.sync="detailsVisible" width="50%" :append-to-body="true"
    <el-dialog :title="title" :visible.sync="detailsVisible" width="50%" :append-to-body="true"
               :before-close="detailsVisibleclose">
      <el-row :gutter="15">
        <el-form ref="addGroupForm" :model="detailsRow" size="medium" label-width="100px">
          <el-col :span="12">
            <el-form-item label="标题" prop="effectiveEtime">
              <el-input v-model="detailsRow.publicityTitle" disabled></el-input>
              <el-input v-model="detailsRow.publicityTitle" :disabled="title=='详情'"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
          <el-form-item label="正文图片">
            <el-upload
                :file-list="detailsRow.media"
                :on-preview="handlePictureCardPreview"
                :on-remove="handleRemoves"
                :on-success="uploadSuccess4"
                :with-credentials="true"
                action="/api/minio/upload"
                list-type="picture-card"
                :with-credentials="true"
                :on-preview="handlePictureCardPreview"
                :on-success="uploadSuccess3"
                :on-remove="handleRemove"
                :file-list="detailsRow.img"
                disabled
                class="freePic">
                :disabled="title=='详情'">
              <i slot="default" class="el-icon-plus"></i>
            </el-upload>
<!--            <el-upload-->
<!--                action="/api/minio/upload"-->
<!--                list-type="picture-card"-->
<!--                :with-credentials="true"-->
<!--                :on-preview="handlePictureCardPreview"-->
<!--                :on-success="uploadSuccess3"-->
<!--                :on-remove="handleRemove"-->
<!--                :file-list="detailsRow.img"-->
<!--                :disabled="title=='详情'"-->
<!--                class="freePic">-->
<!--              <i slot="default" class="el-icon-plus"></i>-->
<!--            </el-upload>-->
          </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="内容 " prop="text">
              <el-input v-model="detailsRow.text" type="textarea" placeholder="请输入公告内容" disabled
              <el-input v-model="detailsRow.text" type="textarea" placeholder="请输入公告内容" :disabled="title=='详情'"
                        :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
            </el-form-item>
          </el-col>
@@ -161,7 +173,7 @@
          </el-col> -->
          <el-col :span="12">
            <el-form-item label="发布时间" prop="effectiveEtime">
              <el-date-picker v-model="detailsRow.releaseTime" type="datetime" placeholder="选择日期时间" disabled
              <el-date-picker v-model="detailsRow.releaseTime" type="datetime" placeholder="选择日期时间" :disabled="title=='详情'"
                              :style="{ width: '100%' }" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
@@ -176,6 +188,12 @@
              <span v-if="detailsRow.status === 1">已发布</span>
              <span v-else-if="detailsRow.status === 0">未发布</span>
              <span v-else="detailsRow.status === 2">已下架</span>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item>
              <el-button type="primary" @click="onSubmit" :disabled="title=='详情'">提交</el-button>
              <el-button @click="detailsVisible= false">取消</el-button>
            </el-form-item>
          </el-col>
        </el-form>
@@ -229,7 +247,7 @@
<script>
import {
  getPublicityList,
  addPublicityList
  addPublicityList, editPublicityList
} from '@/api/publicty'
@@ -237,6 +255,7 @@
  name: "Publicity",
  data() {
    return {
      title:'详情',
      detailsId:null,
      dialogVisibleTime:false,
      fileList: [],
@@ -312,6 +331,18 @@
        handleCloseTime(){
          this.dialogVisibleTime = false
        },
        uploadSuccess4(res, file) {
          console.log(res,this.detailsRow.media.length)
          if (res.code === 200) {
            this.detailsRow.media.push({
              name: res.data,
              url: '/minio/img/' + res.data,
              uid:this.detailsRow.media.length+1
            })
          } else {
            this.$message.error(res.msg)
          }
        },
        uploadSuccess3(res, file) {
          if (res.code === 200) {
            this.addPublicityForm.img.push({
@@ -322,6 +353,11 @@
          } else {
            this.$message.error(res.msg)
          }
        },
        handleRemoves(file, fileList){
          console.log('>>>>>>>>>>>>>>>>>>>>>',this.detailsRow.media)
          this.detailsRow.media = fileList
          console.log(this.detailsRow.media)
        },
        // 正文图片上传,删除操作
        handleRemove(file, fileList) {
@@ -405,20 +441,46 @@
            );
          }
        },
        //详情
        details(val) {
        onSubmit(){
          console.log('提交',this.detailsRow)
          let obj = this.detailsRow
          obj.photoStr = obj.media.map(item=> item.name).join(',')
          editPublicityList(this.detailsRow).then(res=>{
            console.log(res)
              this.detailsVisible = false
            this.$message.success('修改成功')
          })
        },
        edit(val){
          this.title = '修改'
          this.detailsVisible = true;
          this.$http.get('/api/publicity/' + val).then(res => {
            this.detailsRow = res.data.data
            this.detailsRow.img = this.detailsRow['photoStr'].split(',').map(item => {
            this.detailsRow.media = this.detailsRow['photoStr'].split(',').map((item,index) => {
              return {
                name: item,
                url: '/minio/img/' + item,
                uid: this.detailsRow['photoStr'].split(',').length
                uid: index+1
              }
            })
            this.fileList = this.detailsRow.img
            this.fileList = this.detailsRow.media
            console.log(this.detailsRow)
          });
        },
        //详情
        details(val) {
          this.title = '详情'
          this.detailsVisible = true;
          this.$http.get('/api/publicity/' + val).then(res => {
            this.detailsRow = res.data.data
            this.detailsRow.media = this.detailsRow['photoStr'].split(',').map((item,index) => {
              return {
                name: item,
                url: '/minio/img/' + item,
                uid: index+1
              }
            })
            this.fileList = this.detailsRow.media
          });
        },
        //添加
src/views/common/announcement.vue
@@ -50,6 +50,7 @@
          <el-table-column align="conter" label="操作">
            <template slot-scope="scope">
              <el-button size="medium" type="text" @click="details(scope.row.id)">详情</el-button>
              <el-button size="medium" type="text" @click="edit(scope.row.id)">修改</el-button>
              <el-button :disabled="scope.row.status == 2" size="medium" type="text"
                         @click="punlish(scope.row.id, scope.row.status)">
                <span v-if="scope.row.status === 1" style="color:#ff0000">下架</span>
@@ -111,35 +112,47 @@
    </el-dialog>
    <!--公共宣传详情弹窗-->
    <el-dialog :append-to-body="true" :before-close="detailsVisibleclose" :visible.sync="detailsVisible" title="警方公告详情"
    <el-dialog :append-to-body="true" :before-close="detailsVisibleclose" :visible.sync="detailsVisible" :title="title"
               width="50%">
      <el-row :gutter="15">
        <el-form ref="addGroupForm" :model="detailsRow" label-width="100px" size="medium">
          <el-col :span="12">
            <el-form-item label="标题" prop="effectiveEtime">
              <el-input v-model="detailsRow.title" disabled></el-input>
              <el-input v-model="detailsRow.title" :disabled="title=='详情'"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="正文图片">
              <el-upload
                  :file-list="detailsRow.media"
                  :limit="1"
                  :on-preview="handlePictureCardPreview"
                  :on-remove="handleRemove"
                  :on-success="uploadSuccess3"
                  :on-remove="handleRemoves"
                  :on-success="uploadSuccess4"
                  :with-credentials="true"
                  action="/api/minio/upload"
                  class="freePic"
                  disabled
                  list-type="picture-card">
                  list-type="picture-card"
                  :disabled="title=='详情'">
                <i slot="default" class="el-icon-plus"></i>
              </el-upload>
<!--              <el-upload-->
<!--                  :file-list="detailsRow.media"-->
<!--                  :on-preview="handlePictureCardPreview"-->
<!--                  :on-remove="handleRemoves"-->
<!--                  :on-success="uploadSuccess3"-->
<!--                  :with-credentials="true"-->
<!--                  action="/api/minio/upload"-->
<!--                  class="freePic"-->
<!--                  :disabled="title=='详情'"-->
<!--                  list-type="picture-card">-->
<!--                <i slot="default" class="el-icon-plus"></i>-->
<!--              </el-upload>-->
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="内容 " prop="text">
              <el-input v-model="detailsRow.text" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }" disabled
              <el-input v-model="detailsRow.text" :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }" :disabled="title=='详情'"
                        placeholder="请输入公告内容" type="textarea"></el-input>
            </el-form-item>
          </el-col>
@@ -159,7 +172,7 @@
          </el-col> -->
          <el-col :span="12">
            <el-form-item label="发布时间" prop="effectiveEtime">
              <el-date-picker v-model="detailsRow.ctime" :style="{ width: '100%' }" disabled placeholder="选择日期时间"
              <el-date-picker v-model="detailsRow.ctime" :style="{ width: '100%' }" :disabled="title=='详情'" placeholder="选择日期时间"
                              type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
@@ -174,6 +187,12 @@
              <span v-if="detailsRow.status === 1">已发布</span>
              <span v-else-if="detailsRow.status === 0">未发布</span>
              <span v-else="detailsRow.status === 2">已下架</span>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item>
              <el-button type="primary" @click="onSubmit" :disabled="title=='详情'">提交</el-button>
              <el-button @click="detailsVisible= false">取消</el-button>
            </el-form-item>
          </el-col>
        </el-form>
@@ -214,21 +233,22 @@
<script>
import {
  getPublicityList,
  addPublicityList
  addPublicityList, editPublicityList
} from '@/api/publicty'
import {addannouncementList, getannouncementList} from "@/api/announcement";
import {addannouncementList, editAnnounce, getannouncementList} from "@/api/announcement";
export default {
  name: "Publicity",
  data() {
    return {
      title:'详情',
      fileList: [],
      dialogImageUrl: '',
      dialogVisible: false,
      //详细内容弹框
      detailsVisible: false,
      //详细内容
      detailsRow: [],
      detailsRow: { img: []},
      //表单提交内容
      addPublicityForm: {
        title: '',
@@ -296,8 +316,22 @@
            img: []
          }
        },
        uploadSuccess3(res, file) {
        uploadSuccess4(res, file) {
          console.log(res,this.detailsRow)
          if (res.code === 200) {
            this.detailsRow.media.push({
              name: res.data,
              url: '/minio/img/' + res.data,
              uid: this.detailsRow.media.length
            })
          } else {
            this.$message.error(res.msg)
          }
        },
        uploadSuccess3(res, file) {
          if (res.code === 200) {
            this.addPublicityForm.img.push({
              name: res.data,
              url: '/minio/img/' + res.data,
@@ -306,6 +340,11 @@
          } else {
            this.$message.error(res.msg)
          }
        },
        handleRemoves(file, fileList){
          console.log('>>>>>>>>>>>>>>>>>>>>>',this.detailsRow.media)
          this.detailsRow.media = fileList
          console.log(this.detailsRow.media)
        },
        // 正文图片上传,删除操作
        handleRemove(file, fileList) {
@@ -353,9 +392,35 @@
            );
          }
        },
        onSubmit(){
          console.log('提交',this.detailsRow)
          let obj = this.detailsRow
          obj.media = obj.media.map(item=> item.name).join(',')
          editAnnounce(this.detailsRow).then(res=>{
            console.log(res)
                this.$message.success('修改成功')
                this.detailsVisible  =false
          })
        },
        edit(val){
          this.title = '修改'
          this.detailsVisible = true;
          this.$http.get('/api/policePublicity/' + val).then(res => {
            this.detailsRow = res.data.data
            this.detailsRow.media = this.detailsRow['media'].split(',').map(item => {
              return {
                name: item,
                url: '/minio/img/' + item,
                uid: this.detailsRow['media'].split(',').length
              }
            })
            console.log(this.detailsRow)
            this.fileList = this.detailsRow.media
          });
        },
        //详情
        details(val) {
          this.title = '详情'
          this.detailsVisible = true;
          this.$http.get('/api/policePublicity/' + val).then(res => {
            this.detailsRow = res.data.data
vue.config.js
@@ -7,8 +7,8 @@
        open: true,
        proxy: {
            '/api': {
                target: 'http://192.168.3.220:8080',
                // target: 'https://qyqjzdd.cdqingyang.gov.cn/qyjz',
                // target: 'http://192.168.3.220:8080',
                target: 'https://qyqjzdd.cdqingyang.gov.cn/qyjz',
                changeOrigin: true,
                pathRewrite: {
                    '^/api': ''