linwei
2024-01-16 61985d6f294a8db7d4a69ec05df2aaea9f52d802
物业评分
2 files modified
313 ■■■■■ changed files
src/views/article/components/deitDiscussion.vue 237 ●●●● patch | view | raw | blame | history
src/views/property/propertyCompany.vue 76 ●●●●● patch | view | raw | blame | history
src/views/article/components/deitDiscussion.vue
@@ -10,11 +10,38 @@
-->
<template>
  <div>
    <el-dialog title="" append-to-body :visible.sync="popupTableShow" width="80%" :before-close="handleClose">
      <span slot="title" class="dialog-footer">
        {{ ontitle }}
      </span>
      <div id="" v-if="editFlag">
        <avue-form @submit="handleSubmit" :option="optionDiscuss" @reset-change="handleReset" v-model="disCussFrom">
        </avue-form>
      </div>
    <el-dialog title="" append-to-body :visible.sync="popupTableUserShow" width="80%" :before-close="userHandleClose">
      <avue-crud :data="userData" @search-change="searchChange" @row-del="rowDel" @search-reset="searchReset"
        :page="userPage" :option="userOption"></avue-crud>
      <div id="" v-if="!editFlag">
        <avue-crud :table-loading="loading" :option="optionList" :data="data" v-model="form" ref="crud"
          @row-update="rowUpdate" @row-del="rowDel">
          <template slot="menuLeft" v-if="!editFlag">
            <el-button type="primary" size="small" plain icon="el-icon-circle-plus-outline" @click="add()">添加
            </el-button>
          </template>
          <template #icon="scope">
            <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="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>
          </template>
        </avue-crud>
      </div>
    </el-dialog>
    <el-dialog title="" append-to-body :visible.sync="popupTableUserShow" width="50%" :before-close="userHandleClose">
      <avue-crud :data="userData" :page="userPage" :option="userOption"></avue-crud>
    </el-dialog>
  </div>
</template>
@@ -29,12 +56,8 @@
  } from "@/api/discuss/publicDiscuss"
  import {
    getPage,
    remove
    getPage
  } from "@/api/discuss/userTopics"
  import website from '@/config/website'
  import {
@@ -43,6 +66,7 @@
    getDetail,
    add,
    update,
    remove
  } from "@/api/discuss/topics"
  export default {
@@ -50,56 +74,135 @@
      return {
        popupTableShow: false,
        popupTableUserShow: false,
        loading: true,
        ontitle: '编辑议题',
        editFlag: false,
        disCussFrom: {
          discussContent: '',
          optionRange: 0,
          sort: 1,
          optionContent: '',
          optionDetail: '',
          number: '',
          createTime: '',
          updateTime: '',
          deleteFlag: '',
          articleId: '',
          parentId: '',
          level: '',
          children: [{
            optionContent: '',
            optionDetail: '',
            number: '',
            createTime: '',
            updateTime: '',
            deleteFlag: '',
            articleId: '',
            parentId: '',
            level: '',
          }]
        },
        optionDiscuss: {
          emptyText: '取消',
          column: [{
              label: '议题',
              prop: 'discussContent',
              type: 'input',
              row: true,
            },
            {
              label: '选项范围',
              prop: 'optionRange',
              type: 'radio',
              button: true,
              row: true,
              dicData: [{
                label: '多选',
                value: 1
              }, {
                label: '单选',
                value: 0
              }]
            },
            {
              label: '排序',
              prop: 'sort',
              controlsPosition: '',
              type: 'number'
            },
            {
              label: '选项内容',
              prop: 'children',
              type: 'dynamic',
              span: 24,
              children: {
                column: [{
                  label: '选项标题',
                  prop: 'optionContent',
                  type: 'input',
                  rules: [{
                    required: true,
                    message: '请输入选项标题',
                    trigger: 'blur'
                  }]
                }, {
                  label: '选项说明',
                  prop: 'optionDetail',
                  type: 'input',
                }]
              }
            },
          ]
        },
        // 表单数据
        form: {},
        data: [],
        optionList: {
          headerAlign: 'center',
          align: 'center',
          border: true,
          addBtn: false,
          editBtn: false,
          delBtn: false,
          defaultExpandAll: true,
          rowKey: 'id',
          rowParentKey: 'parentId',
          column: [{
              label: '标题',
              prop: 'discussContent',
            },
            {
              label: '选项内容',
              prop: 'optionContent',
            }
          ]
        },
        articleId: '',
        userData: [],
        userOption: {
          labelWidth: 96,
          searchLabelWidth: 96,
          searchShow: true,
          searchMenuSpan: 3,
          // menuWidth: 500,
          height: "auto",
          calcHeight: 54,
          dialogWidth: 950,
          tip: false,
          border: false,
          //stripe:true,
          index: true,
          editBtn: false,
          addBtn: false,
          viewBtn: false,
          selection: true,
          excelBtn: true,
          dialogClickModal: false,
          menu: false,
          column: [{
            label: '姓名',
            prop: 'name',
            searchSpan: 4,
            search: true,
            prop: 'name'
          }, {
            label: '头像',
            prop: 'avatar'
          }, {
            label: '手机',
            prop: 'phone',
            searchSpan: 4,
            search: true,
            prop: 'phone'
          }, {
            label: '小区',
            prop: 'aoiName'
          }, {
            label: '地址',
            prop: 'addressName'
          }, {
            label: '签名',
            type: 'upload',
            listType: "picture-img",
            prop: 'signaturePath'
          }, {
            label: '时间',
            prop: 'createTime'
@@ -118,31 +221,12 @@
    watch: {},
    methods: {
      userHandleClose() {
        this.popupTableUserShow = false
      },
      searchReset() {
        this.query = {}
        this.getUserPage(this.userPage)
      },
      searchChange(params, done) {
        this.query = params
        this.userPage.currentPage = 1
        this.getUserPage(this.userPage, params)
        done()
      },
      initData(newData) {
        this.editFlag = false
        this.popupTableShow = true
        this.articleId = newData.id
        this.query.level = 1
        this.query.articleId = this.articleId
        this.onLoad(this.userPage, this.query)
        this.onLoad()
      },
      handleClose() {
@@ -217,7 +301,8 @@
            return remove(row.id)
          })
          .then(() => {
            this.getUserPage(this.userPage)
            this.onLoad()
            this.$message({
              type: "success",
              message: "操作成功!"
@@ -234,10 +319,28 @@
        this.editFlag = true
      },
      deletes(row) {
        this.$confirm("确定将选择数据删除?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          })
          .then(() => {
            return remove(row.id)
          })
          .then(() => {
            this.onLoad()
            this.$message({
              type: "success",
              message: "操作成功!"
            })
          })
      },
      openUser(row, type = 0) {
        this.popupTableUserShow = true
        this.query = {}
        if (type == 0) {
          this.userParams = {
            articleId: row.id
@@ -259,17 +362,19 @@
            if (item.avatar.length > 0) {
              item.avatar = website.minioUrl + item.avatar
            }
            if (item.signaturePath && item.signaturePath.length > 0) {
              item.signaturePath = website.minioUrl + item.signaturePath
              // console.log("=====>", item.signaturePath)
            }
          })
        })
      },
      onLoad(page, params = {}) {
      onLoad() {
        this.loading = true
        getLists(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
        let params = {
          level: 1,
          articleId: this.articleId
        }
        getLists(1, 100, Object.assign(params, this.query)).then(res => {
          const data = res.data.data
          this.data = data
          this.loading = false
src/views/property/propertyCompany.vue
@@ -2,19 +2,23 @@
<template>
    <basic-container>
        <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
            @refresh-change="refreshChange" @on-load="onLoad">
      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
            <template slot="menuLeft">
                <el-button size="small" icon="el-icon-delete" plain v-if="permission.propertyCompany_delete"
                    @click="handleDelete">删 除
                </el-button>
            </template>
            <template slot-scope="{row, size, index}" slot="menu">
                <el-button :size="size" v-if="permission.payInfo" type="text" icon="el-icon-circle-plus-outline"
                    @click="openPayConfig(row)">商户配置
        </el-button>
        <el-button :size="size" icon="el-icon-circle-plus-outline" type="text" @click="addProperty()">新 增
                </el-button>
            </template>
        </avue-crud>
@@ -38,6 +42,10 @@
            <!--      </div>-->
        </el-dialog>
    <propertyEdit ref="propertyEdit"></propertyEdit>
    </basic-container>
</template>
@@ -49,14 +57,22 @@
    add,
    getPropertyCompany,
    getPayConfig,
    saveOrUpdateWx, saveOrUpdateAli
    saveOrUpdateWx,
    saveOrUpdateAli
} from "@/api/property/propertyCompany"
import { mapGetters } from "vuex"
  import {
    mapGetters
  } from "vuex"
import website from '@/config/website'
import func from "@/util/func"
  import propertyEdit from './components/propertyEdit.vue'
const labelWidth = 120
export default {
    components: {
      propertyEdit
    },
    data () {
        return {
            currentTab: "wxInfo",
@@ -87,11 +103,11 @@
                border: true,
                //stripe:true,
                index: true,
                viewBtn: true,
          // viewBtn: true,
          delBtn: false,
                selection: true,
                dialogClickModal: false,
                column: [
                    {
          column: [{
                        overHidden: true,
                        label: "物业公司名称",
                        prop: "name",
@@ -101,13 +117,11 @@
                        span: 18,
                        row: true,
                        width: 260,
                        rules: [
                            {
              rules: [{
                                required: true,
                                message: "请输入物业公司名称",
                                trigger: "blur",
                            },
                        ],
              }, ],
                    },
                    {
                        label: '省份',
@@ -121,13 +135,11 @@
                        span: 6,
                        cascader: ['city'],
                        dicUrl: `/api/blade-system/region/select`,
                        rules: [
                            {
              rules: [{
                                required: true,
                                message: '请选择省份',
                                trigger: 'blur'
                            }
                        ]
              }]
                    },
                    {
                        label: '城市',
@@ -142,13 +154,11 @@
                        },
                        hide: true,
                        dicUrl: `/api/blade-system/region/select?code={{key}}`,
                        rules: [
                            {
              rules: [{
                                required: true,
                                message: '请选择城市',
                                trigger: 'blur'
                            }
                        ]
              }]
                    },
                    {
                        label: '地区',
@@ -162,13 +172,11 @@
                        },
                        hide: true,
                        dicUrl: `/api/blade-system/region/select?code={{key}}`,
                        rules: [
                            {
              rules: [{
                                required: true,
                                message: '请选择地区',
                                trigger: 'blur'
                            }
                        ]
              }]
                    },
                    {
                        overHidden: true,
@@ -207,8 +215,7 @@
                height: "auto",
                calcHeight: 180,
                //stripe:true,
                column: [
                    {
          column: [{
                        label: "appId",
                        labelWidth: labelWidth,
                        prop: "appId",
@@ -282,8 +289,7 @@
                height: "auto",
                calcHeight: 180,
                //stripe:true,
                column: [
                    {
          column: [{
                        label: "appId",
                        labelWidth: labelWidth,
                        prop: "appId",
@@ -340,9 +346,13 @@
            return ids.join(",")
        },
    },
    created () {
    },
    created() {},
    methods: {
      addProperty() {
        this.$refs.propertyEdit.init();
      },
        aliSubmit (form, done) {
@@ -502,7 +512,9 @@
            this.onLoad(this.page, this.query)
        },
        onLoad (page, params = {}) {
            const { dateTime } = this.query
        const {
          dateTime
        } = this.query
            let values = {
                ...params,
            }