linwe
2023-12-21 ad0a536bd7534a8eaf477d41294de21c7d7b25df
src/views/article/publicSignUp.vue
@@ -11,7 +11,31 @@
          @click="handleDelete">批量删除
        </el-button>
      </template>
      <template slot-scope="scope" slot="menu">
        <el-button type="text" icon="el-icon-s-custom" size="small" @click.stop="openDilog(scope.row,0)">
          编辑
        </el-button>
        <el-button type="primary" icon="el-icon-s-custom" size="small" @click.stop="openUser(scope.row,0)">
          参与用户
        </el-button>
      </template>
    </avue-crud>
    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="50%" :before-close="handleClose">
      <avue-form @submit="handleSubmit" :option="optionEnroll" v-model="discussForm">
      </avue-form>
    </el-dialog>
    <el-dialog title="" append-to-body :visible.sync="dialogVisiblesUser" width="50%" :before-close="userHandleClose">
      <!-- <span slot="title" class="dialog-footer">
        {{discussForm.ontitle}}
      </span> -->
      <avue-crud :data="dataUser" :page="pageUser" :option="option1" @on-load="getUser"></avue-crud>
    </el-dialog>
  </basicContainer>
</template>
@@ -21,8 +45,11 @@
    getDetailPd,
    addPd,
    updatePd,
    removePd
    removePd,
  } from "@/api/discuss/publicDiscuss";
  import {
    getPageUser,
  } from "@/api/discuss/userPublicEnroll";
  import option from "@/option/discuss/publicDiscuss";
  import {
    mapGetters
@@ -34,6 +61,103 @@
  export default {
    data() {
      return {
        option1: {
          menu: false,
          addBtn: false,
          column: [{
            label: '姓名',
            prop: 'name'
          }, {
            label: '头像',
            prop: 'avatar'
          }, {
            label: '手机',
            prop: 'phone'
          }, {
            label: '小区',
            prop: 'aoiName'
          }, {
            label: '地址',
            prop: 'addressName'
          }, {
            label: '时间',
            prop: 'createTime'
          }]
        },
        discussForm: {
          ontitle: '',
          title: '',
          openFlag: 0,
          numberRestrictions: 0,
          voteRestrictions: 0,
          userRestrictions: 0,
          endTime: '',
          articleId: '',
          createTime: '',
          updateTime: '',
          deleteFlag: '',
          repeatVote: 0,
          voteNumberPublic: 0,
          appointUser: '',
          userIds: '',
          eventType: 1,
        },
        optionEnroll: {
          column: [{
              label: "",
              type: 'title',
              prop: "title",
              span: 24,
              row: true,
              offset: 2,
              styles: {
                fontSize: '24px'
              }
            }, {
              labelWidth: 100,
              label: '开启',
              prop: 'openFlag',
              type: 'radio',
              button: true,
              row: true,
              offset: 6,
              dicData: [{
                label: '开启',
                value: 0
              }, {
                label: '不开启',
                value: 1
              }]
            },
            {
              labelWidth: 100,
              label: '开启投票',
              prop: 'openFlag',
              type: 'radio',
              button: true,
              row: true,
              offset: 6,
              dicData: [{
                label: '开启',
                value: 0
              }, {
                label: '不开启',
                value: 1
              }]
            },
            {
              label: "截止时间",
              row: true,
              offset: 6,
              prop: "endTime",
              type: "datetime",
              format: "yyyy-MM-dd hh:mm:ss",
              valueFormat: "timestamp",
            },
          ]
        },
        dialogVisibles: false,
        dialogVisiblesUser: false,
        // 弹框标题
        title: '',
        // 是否展示弹框
@@ -53,14 +177,59 @@
          currentPage: 1,
          total: 0
        },
        // 分页信息
        pageUser: {
          pageSize: 10,
          pageSizes: [10, 20, 30, 50, 100],
          currentPage: 1,
          total: 0
        },
        // 表单数据
        form: {},
        // 选择行
        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: 'enrollCount',
              searchSpan: 4,
              search: true,
            },
            {
              label: '截止时间',
              prop: 'endTime',
              searchSpan: 4,
              search: true,
            }
          ]
        },
        // 表单列表
        data: [],
        dataUser: [],
      }
    },
    mounted() {
@@ -78,6 +247,34 @@
      }
    },
    methods: {
      getUser(page, params = {}) {
        getPageUser(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
          const data = res.data.data;
          this.pageUser.total = data.total;
          this.dataUser = data.records;
          this.loading = false;
          this.selectionClear();
        });
      },
      userHandleClose() {
        this.dialogVisiblesUser = false
      },
      openUser(row) {
        this.dialogVisiblesUser = true
        this.getUser(this.pageUser, params = {})
      },
      openDilog(row, type) {
        this.dialogVisibles = true
        this.discussForm = row
        let times = new Date(row.endTime).getTime();
        this.discussForm.endTime = times
        console.table(this.discussForm)
        if (type == 0) {
          this.discussForm.ontitle = '公益报名'
        } else {
          this.discussForm.ontitle = '创建议题'
        }
      },
      init() {},
      searchHide() {
        this.search = !this.search;
@@ -90,10 +287,11 @@
        this.page.currentPage = 1;
        this.onLoad(this.page);
      },
      handleSubmit() {
        if (!this.form.id) {
          addPd(this.form).then(() => {
            this.box = false;
      handleSubmit(form, done) {
        done()
        if (!this.discussForm.id) {
          addPd(this.discussForm).then(() => {
            this.dialogVisibles = false
            this.onLoad(this.page);
            this.$message({
              type: "success",
@@ -101,8 +299,8 @@
            });
          });
        } else {
          updatePd(this.form).then(() => {
            this.box = false;
          updatePd(this.discussForm).then(() => {
            this.dialogVisibles = false
            this.onLoad(this.page);
            this.$message({
              type: "success",
@@ -210,4 +408,4 @@
  .el-pagination {
    margin-top: 20px;
  }
</style>
</style>