linwe
2023-12-21 ad0a536bd7534a8eaf477d41294de21c7d7b25df
src/views/article/discussionManage.vue
@@ -33,7 +33,7 @@
      <div id="">
        <avue-crud :option="optionList" :data="form" ref="crud" @row-save="rowSave" @row-update="rowUpdate"
          @row-del="rowDel">
          <template slot="menuLeft">
          <template slot="menuLeft" v-if="!editFlag">
            <el-button type="primary" size="small" plain icon="el-icon-circle-plus-outline" @click="add()">添加
            </el-button>
          </template>
@@ -41,7 +41,7 @@
            <i :class="scope.row.icon" style="font-size:14px"></i>
          </template>
          <template #menu="{row,size}">
            <el-button v-if="row.level === 1" :size="size" text type="primary" @click="openDilog(row)">编辑</el-button>
            <el-button v-if="row.level === 1" :size="size" text type="primary" @click="edit(row)">编辑</el-button>
            <el-button v-if="row.level === 1" :size="size" text type="danger" @click="deletes(row)">删除</el-button>
            <el-button v-if="row.level === 2" :size="size" text type="primary" @click="openUser(row,1)">选择此项人数
              :{{row.number}} 详情</el-button>
@@ -50,16 +50,12 @@
      </div>
    </el-dialog>
    <el-dialog title="" append-to-body :visible.sync="dialogVisiblesEdit" width="50%" :before-close="editHandleClose">
      <span slot="title" class="dialog-footer">
        编辑议题
      </span>
      <div id="">
        <avue-form @submit="handleSubmitEdit" :option="optionDiscuss" v-model="discussForm"></avue-form>
        <avue-form @submit="handleSubmitEdit" :option="optionDiscussEdit" v-model="discussForm"></avue-form>
      </div>
    </el-dialog>
@@ -67,7 +63,7 @@
      <!-- <span slot="title" class="dialog-footer">
        {{discussForm.ontitle}}
      </span> -->
      <avue-crud :data="data" :option="option1"></avue-crud>
      <avue-crud :data="userData" :page="pageUser" :option="option1" @on-load="getUser"></avue-crud>
    </el-dialog>
  </basicContainer>
@@ -91,6 +87,10 @@
    remove
  } from "@/api/discuss/topics";
  import {
    getPage
  } from "@/api/discuss/userTopics";
  import option from "@/option/discuss/publicDiscuss";
  import {
    mapGetters
@@ -103,27 +103,35 @@
    data() {
      return {
        option1: {
          addBtn:false,
          addBtn: false,
          menu: false,
          column: [{
            label: '姓名',
            prop: 'name'
          }, {
            label: '昵称',
            prop: 'sex'
            label: '头像',
            prop: 'avatar'
          }, {
            label: '手机',
            prop: 'sex'
            prop: 'phone'
          }, {
            label: '小区',
            prop: 'sex'
            prop: 'aoiName'
          }, {
            label: '地址',
            prop: 'sex'
            prop: 'addressName'
          }, {
            label: '时间',
            prop: 'createTime'
          }]
        },
        userParams: {},
        // 分页信息
        pageUser: {
          pageSize: 10,
          pageSizes: [10, 20, 30, 50, 100],
          currentPage: 1,
          total: 0
        },
        discussForm: {
          title: '',
@@ -180,10 +188,10 @@
              row: true,
              dicData: [{
                label: '多选',
                value: 0
                value: 1
              }, {
                label: '单选',
                value: 1
                value: 0
              }]
            }, {
              label: '排序',
@@ -215,17 +223,15 @@
            },
          ]
        },
        optionDiscuss: {
        optionDiscussEdit: {
          column: [{
              label: "",
              // labelWidth: 20,
              type: 'title',
              prop: "title",
              span: 24,
              row: true,
              offset: 2,
              styles: {
                // color: 'red',
                fontSize: '24px'
              }
            }, {
@@ -245,72 +251,18 @@
              }]
            }, {
              labelWidth: 100,
              label: '多房屋可重复',
              prop: 'repeatVote',
              label: '开启签名',
              prop: 'signatureFlag',
              type: 'radio',
              button: true,
              row: true,
              offset: 6,
              dicData: [{
                label: '不可以',
                label: '开启',
                value: 0
              }, {
                label: '可以',
                label: '不开启',
                value: 1
              }]
            }, {
              labelWidth: 100,
              label: '投票限制',
              prop: 'voteRestrictions',
              type: 'radio',
              button: true,
              row: true,
              offset: 6,
              dicData: [{
                label: '一人一票',
                value: 0
              }, {
                label: '一户一票',
                value: 1
              }]
            }, {
              labelWidth: 100,
              label: '用户限制',
              prop: 'userRestrictions',
              type: 'radio',
              button: true,
              row: true,
              offset: 6,
              dicData: [{
                label: '不限制',
                value: 0
              }, {
                label: '必须绑定手机',
                value: 1
              }, {
                label: '必须绑定房屋',
                value: 2
              }]
            }, {
              labelWidth: 100,
              label: '票数公开',
              prop: 'voteNumberPublic',
              type: 'radio',
              button: true,
              row: true,
              offset: 6,
              dicData: [{
                label: '全程公开',
                value: 0
              }, {
                label: '投票后公开',
                value: 1
              }, {
                label: '投票结束后公开',
                value: 2
              }, {
                label: '不公开',
                value: 3
              }]
            },
            {
@@ -322,35 +274,6 @@
              format: "yyyy-MM-dd hh:mm:ss",
              valueFormat: "timestamp",
            },
            // {
            //   labelWidth: 100,
            //   label: '人数限制',
            //   prop: 'numberRestrictions',
            //   type: 'number',
            //   button: true,
            //   row: true,
            //   min: 0,
            //   max: 99999999,
            //   controlsPosition: '',
            //   step: 10,
            //   offset: 6,
            // },
            // {
            //   labelWidth: 100,
            //   label: '指定用户',
            //   prop: 'appointUser',
            //   type: 'radio',
            //   button: true,
            //   row: true,
            //   offset: 6,
            //   dicData: [{
            //     label: '不限制',
            //     value: 0
            //   }, {
            //     label: '指定用户可见',
            //     value: 1
            //   }]
            // },
          ]
        },
        disCussFrom: {
@@ -404,11 +327,49 @@
        // 选择行
        selectionList: [],
        // 表单配置
        option: option,
        option: {
          selection: true,
          height: "auto",
          calcHeight: 54,
          align: 'center',
          menuAlign: 'center',
          addBtn: false,
          editBtn: false,
          searchMenuSpan: 3,
          searchBtn: true,
          menuWidth: 500,
          column: [{
              label: 'ID',
              prop: 'id',
              searchSpan: 4,
              // search: true,
            },
            {
              label: '标题',
              prop: 'title',
              searchSpan: 4,
              search: true,
            },
            {
              label: '参与人数',
              prop: 'topsCount',
              searchSpan: 4,
              search: true,
            },
            {
              label: '截止时间',
              prop: 'endTime',
              searchSpan: 4,
              search: true,
            }
          ]
        },
        // 表单列表
        data: [],
        userData: [],
        dataTop: [],
        dialogVisibles: false,
        publicDiscussId: '',
      }
    },
    mounted() {
@@ -428,7 +389,26 @@
    methods: {
      openUser(row, type) {
        console.table(row)
        this.dialogVisiblesUser = true
        if (type == 0) {
          this.userParams = {
            publicDiscussId: row.id
          }
        } else {
          this.userParams = {
            topicsId: row.id
          }
        }
        this.getUserPage(this.pageUser, this.userParams)
      },
      getUserPage(page, params = {}) {
        getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
          const data = res.data.data;
          this.pageUser.total = data.total;
          this.userData = data.records;
        });
      },
      openEdit(row) {
@@ -506,9 +486,10 @@
      openDilog(row, type) {
        this.dialogVisibles = true
        this.loading = true;
        // this.disCussFrom.publicDiscussId = row.id
        this.publicDiscussId = row.id
        let params = {
          level: 1
          level: 1,
          publicDiscussId: row.id
        }
        getLists(1, 100, Object.assign(params, this.query)).then(res => {
          const data = res.data.data;
@@ -520,6 +501,7 @@
      handleSubmit(form, done) {
        done();
        form.publicDiscussId = this.publicDiscussId
        add(form).then(
          () => {
            this.$message({
@@ -528,7 +510,8 @@
            });
            this.editFlag = false
            let params = {
              level: 1
              level: 1,
              publicDiscussId: this.publicDiscussId
            }
            getLists(1, 100, Object.assign(params, this.query)).then(res => {
              const data = res.data.data;
@@ -654,4 +637,4 @@
  .el-pagination {
    margin-top: 20px;
  }
</style>
</style>