linwe
2024-08-09 5e2aafeede13d337380f736567caf74f49713be7
src/views/article/discussionManage.vue
@@ -19,8 +19,19 @@
          编辑议题
        </el-button>
        <el-button icon="el-icon-user" :size="size" :type="type" @click.stop="openUserPopup(row, 1)">
        <el-button icon="el-icon-user" :size="size" v-if="row.articleType != 4" :type="type"
          @click.stop="openUserPopup(row, 0)">
          参与用户
        </el-button>
        <el-button icon="el-icon-user" v-if="row.articleType == 4" :size="size" :type="type"
          @click.stop="handleExport(row)">
          导出投票
        </el-button>
        <el-button icon="el-icon-user" v-if="row.articleType == 4 && row.publish == '1'" :size="size" :type="type"
          @click.stop="lookVotingStatistics(row,'业主大会统计')">
          查看投票
        </el-button>
        <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
@@ -38,8 +49,9 @@
      </template>
      <template slot-scope="{ row, size }" slot="iscomment">
        <el-tag :size="size" :type="showStatus(row.iscomment, 2).type" v-text="showStatus(row.iscomment, 2).text">
        </el-tag>
        <el-switch @change="iscommentInput($event, row)" v-model="row.iscomment" :active-value="'1'"
          :inactive-value="'0'" active-color="#13ce66" inactive-color="#ccc">
        </el-switch>
      </template>
    </avue-crud>
@@ -47,6 +59,8 @@
    </deitDiscussion>
    <discussionManageChild ref="discussionManageChild" />
    <votingStatistics ref="votingStatistics" />
  </basic-container>
</template>
@@ -78,11 +92,28 @@
  } from "vuex"
  import deitDiscussion from "./components/deitDiscussion"
  import discussionManageChild from "./components/discussionManageChild"
  import votingStatistics from "./components/votingStatistics"
  import NProgress from 'nprogress'
  import 'nprogress/nprogress.css'
  import Qs from "qs"
  import {
    exportBlob
  } from "@/api/common"
  import {
    getToken
  } from '@/util/auth'
  import {
    downloadXls
  } from "@/util/util"
  import {
    dateNow
  } from "@/util/date"
  export default {
    components: {
      deitDiscussion,
      discussionManageChild,
      votingStatistics
    },
    data() {
@@ -156,6 +187,7 @@
              minRows: 2,
              tags: true,
              type: "tree",
              dataType: "string",
              multiple: true,
              dicData: [],
              rules: [{
@@ -167,13 +199,12 @@
                label: "name",
                value: 'id'
              },
              hide: true,
              // hide: true,
            },
            {
              width: 110,
              label: "封面",
              prop: "url",
              // align:'center',
              type: "upload",
              listType: "picture-img",
              action: "/api/blade-resource/oss/endpoint/put-file",
@@ -181,12 +212,11 @@
                res: "data",
                url: "link",
              },
              // hide: true,
              span: 24,
            },
            {
              width: 110,
              label: "文章类型",
              label: "议事类型",
              prop: "articleType",
              addDisplay: true,
              editDisplay: true,
@@ -202,26 +232,7 @@
              type: "tree",
              rules: [{
                required: true,
                message: "请选择文章类型",
                trigger: "blur",
              }, ],
            },
            {
              label: "发布时间",
              prop: "dateTime",
              type: "daterange",
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd",
              searchSpan: 6,
              searchRange: true,
              hide: true,
              addDisplay: false,
              editDisplay: false,
              viewDisplay: false,
              search: true,
              rules: [{
                required: true,
                message: "请选择发布时间",
                message: "请选择议事类型",
                trigger: "blur",
              }, ],
            },
@@ -232,6 +243,10 @@
              type: "date",
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd HH:mm:ss",
              search: true,
              addDisplay: false,
              editDisplay: false,
              viewDisplay: false,
            },
            {
              width: 100,
@@ -483,12 +498,63 @@
      }
    },
    methods: {
      openEditPopup(row) {
        this.$refs.DeitDiscussion.initData(row)
      lookVotingStatistics(row, name) {
        this.$router.push({
          path: `/myiframe/urlPath?name=preview-${name}&src=${this.website.reportUrl}/view/965861526961414144?articleId=${row.id}`
        })
      },
      openUserPopup(row) {
        this.$refs.DeitDiscussion.openUser(row)
      handleExport(row) {
        this.$confirm("是否导出投票结果数据?", "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          NProgress.start()
          this.query = {}
          this.query.articleId = row.id
          this.query.districtId = row.articleRange
          var data = {
            ...this.query
          }
          data = Qs.stringify(data)
          exportBlob(
              `/api/blade-userTopics/userTopics/exportDataIndex?${this.website.tokenHeader}=${getToken()}&` + data)
            .then(
              res => {
                downloadXls(res.data, `投票结果${dateNow()}.xlsx`)
                NProgress.done()
              })
        })
      },
      iscommentInput(e, data) {
        upcomment(data.id, e).then(() => {
          this.$message({
            type: "success",
            message: "操作成功!",
          })
        })
      },
      openEditPopup(row) {
        getListPd(1, 10, {
          eventType: 1,
          articleId: row.id
        }).then(res => {
          if (res.data.data.records.length == 0) {
            this.$message.warning('请先设置议事规则!')
            setTimeout(() => {
              this.openDilog(row, 1)
            }, 200)
          } else {
            this.$refs.DeitDiscussion.initData(row)
          }
        })
      },
      openUserPopup(row, type) {
        this.$refs.DeitDiscussion.openUser(row, type)
      },
      openDilog(row, type) {
@@ -503,7 +569,7 @@
          row.videoUrl = ""
        }
        row.userid = this.userInfo.user_id
        row.articleRange = JSON.stringify(row.articleList)
        row.articleRange = row.articleList
        if (row.url.length > 0) {
          var urls = []
          var split = row.url.split(",")
@@ -515,7 +581,7 @@
        }
        // 类型  0:文章 1经营性收支,2:物业招标 3:公益报名 4:选举调查
        row.type = 4
        row.publish = 1
        // row.publish = 1
        add(row).then(
          () => {
@@ -533,7 +599,7 @@
        )
      },
      rowUpdate(row, index, done, loading) {
        row.articleRange = JSON.stringify(row.articleList)
        row.articleRange = row.articleList
        if (row.url.length > 0) {
          var urls = []
          var split = row.url.split(",")
@@ -631,7 +697,7 @@
            // })
            this.form = {
              ...data,
              articleList: JSON.parse(data.articleRange)
              articleList: data.articleRange
            }
          })
        }
@@ -671,6 +737,7 @@
          this.page.total = data.total
          this.data = data.records
          this.data.forEach(item => {
            item.articleList = item.articleRange
            if (item.url.length > 0) {
              var urls = []
              var names = item.url.split(",")
@@ -683,7 +750,9 @@
          this.loading = false
          this.selectionClear()
        })
        getDistrictTree(params = {}).then((res) => {
        getDistrictTree(params = {
          filterFlag: 1
        }).then((res) => {
          const data = res.data.data
          this.districtTree = data
          const column = this.findObject(this.option.column, "articleList")