zhongrj
2024-01-06 bbff46e35d4314b95af6f0019773bc23f0e25c4b
Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_web
14 files modified
889 ■■■■■ changed files
src/views/article/components/discussionManageChild.vue 53 ●●●● patch | view | raw | blame | history
src/views/cGovernance/gridWorkLog.vue 18 ●●●● patch | view | raw | blame | history
src/views/community/index.vue 28 ●●●●● patch | view | raw | blame | history
src/views/district/index.vue 26 ●●●●● patch | view | raw | blame | history
src/views/grid/index.vue 47 ●●●●● patch | view | raw | blame | history
src/views/place/index.vue 105 ●●●●● patch | view | raw | blame | history
src/views/property/inviteTenders.vue 20 ●●●● patch | view | raw | blame | history
src/views/property/oiae.vue 269 ●●●● patch | view | raw | blame | history
src/views/task/reportForRepairs.vue 4 ●●●● patch | view | raw | blame | history
src/views/userHouse/components/householdManager.vue 37 ●●●●● patch | view | raw | blame | history
src/views/userHouse/hireInfoList.vue 79 ●●●●● patch | view | raw | blame | history
src/views/userHouse/houseHoldList.vue 62 ●●●●● patch | view | raw | blame | history
src/views/userHouse/houseList.vue 108 ●●●●● patch | view | raw | blame | history
src/views/work/start.vue 33 ●●●●● patch | view | raw | blame | history
src/views/article/components/discussionManageChild.vue
@@ -1,11 +1,9 @@
<template>
  <div>
    <el-dialog title="" append-to-body :visible.sync="dialogVisibles" width="60%" :before-close="handleClose">
      <avue-form ref="DisCussFrom" :option="option" v-model="disCussFrom" @submit="handleSubmit"></avue-form>
    </el-dialog>
  </div>
</template>
<script>
@@ -178,7 +176,7 @@
              label: "选择用户",
              prop: "userIds",
              hide: true,
              // type: "table",
              type: "table",
              display: false,
              span: 6,
              // labelWidth: 120,
@@ -190,7 +188,13 @@
                searchShow: true,
                searchMenuSpan: 6,
                submitText: "确定",
                selection: true,
                column: [{
                    label: "社区",
                    prop: "neiName",
                    search: true,
                    searchSpan: 4,
                  }, {
                    label: "姓名",
                    prop: "name",
                    search: true,
@@ -202,15 +206,43 @@
                    }, ],
                  },
                  {
                    label: "联系方式",
                    prop: "phoneNumber",
                    label: "小区",
                    prop: "aoiCode",
                    searchSpan: 5,
                    type: 'tree',
                    search: true,
                    searchSpan: 4,
                    parent: false,
                    dicUrl: `/api/blade-district/district/getDistrictTree`,
                    props: {
                      label: "name",
                      value: "aoiCode"
                    },
                    // defaultExpandedKeys: ["361102003"],
                    span: 12,
                    labelWidth: 120,
                    width: 220,
                    // overHidden: true,
                    rules: [{
                      required: true,
                      message: "请输入联系方式",
                      message: "请选择小区",
                      trigger: "blur",
                    }, ],
                    // disabled: true
                    display: true,
                    hide: true,
                  },
                  {
                    label: "楼栋",
                    prop: "building",
                    search: true,
                    searchSpan: 4,
                  },
                  {
                    label: "单元",
                    prop: "unit",
                    search: true,
                    searchSpan: 4,
                  },
                  {
                    label: "地址",
@@ -227,7 +259,7 @@
                total: 0
              },
              formatter: (row) => {
                this.form.phoneNumber = row.phoneNumber
                // this.form.phoneNumber =  row.phoneNumber
                return row.name
              },
              onLoad: ({
@@ -248,14 +280,13 @@
                  this.loading = true
                  var params = {
                    ...data,
                    townStreetCode: "361102005"
                    // townStreetCode: "361102005"
                  }
                  getHouseholdList(page.currentPage, page.pageSize, Object.assign(params)).then(res => {
                    const resData = res.data.data
                    var total = resData.total
                    var data = resData.records
                    this.loading = false
                    this.selectionClear()
                    //分页查询信息
                    callback({
                      total: total,
@@ -299,7 +330,7 @@
    watch: {
      'disCussFrom.appointUser': {
        handler(newData) {
          const column = this.findObject(this.option.column, "userIds");
          const column = this.findObject(this.option.column, "userIds")
          if (newData == 1) {
            column.display = true
          } else {
src/views/cGovernance/gridWorkLog.vue
@@ -204,7 +204,14 @@
                        props: {
                            label: 'name',
                            value: 'id'
                        }
                        },
                        rules: [
                            {
                                required: true,
                                message: "请选择被访人姓名",
                                trigger: "blur",
                            },
                        ],
                    },
                    {
                        width: 120,
@@ -262,7 +269,9 @@
                        label: "走访取证",
                        prop: "url",
                        type: "upload",
                        listType: "picture-img",
                        listType: "picture-card",
                        dataType: "string",
                        multiple: true,
                        action: "/api/blade-resource/oss/endpoint/put-file",
                        propsHttp: {
                            res: "data",
@@ -275,6 +284,7 @@
                    {
                        width: 110,
                        label: "录入人",
                        display: false,
                        prop: "createUserName",
                    },
@@ -316,9 +326,9 @@
            data: [],
        }
    },
    watch: {
    },
    watch: {},
    computed: {
        ...mapGetters(["permission", "userInfo"]),
        permissionList () {
src/views/community/index.vue
@@ -33,13 +33,15 @@
            selectionList: [],
            option: {
                labelWidth: 120,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 210,
                height: "auto",
                calcHeight: 54,
                dialogWidth: 950,
                tip: false,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
                border: true,
                //stripe:true,
                index: true,
@@ -52,7 +54,7 @@
                        overHidden: true,
                        label: "社区名称",
                        prop: "name",
                        searchSpan: 5,
                        searchSpan: 4,
                        search: true,
                        span: 12,
                        rules: [
@@ -68,7 +70,7 @@
                        overHidden: true,
                        label: "社区编号",
                        prop: "code",
                        searchSpan: 5,
                        searchSpan: 4,
                        search: true,
                        span: 12,
                        rules: [
@@ -333,21 +335,9 @@
            this.onLoad(this.page, this.query)
        },
        onLoad (page, params = {}) {
            const { dateTime } = this.query
            let values = {
                ...params,
            }
            if (dateTime) {
                values = {
                    ...params,
                    startTime: dateTime[0],
                    endTime: dateTime[1],
                    ...this.query,
                }
                values.dateTime = null
            }
            this.loading = true
            getList(page.currentPage, page.pageSize, values).then((res) => {
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
src/views/district/index.vue
@@ -33,13 +33,15 @@
            selectionList: [],
            option: {
                labelWidth: 120,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 210,
                height: "auto",
                calcHeight: 54,
                dialogWidth: 950,
                tip: false,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
                border: true,
                //stripe:true,
                index: true,
@@ -314,20 +316,11 @@
            this.onLoad(this.page, this.query)
        },
        onLoad (page, params = {}) {
            const { dateTime, communityCode } = this.query
            let values = {
                ...params,
            }
            this.loading = true
            if (dateTime) {
                values = {
                    ...params,
                    startTime: dateTime[0],
                    endTime: dateTime[1],
                    ...this.query,
                }
                values.dateTime = null
            }
            let values = Object.assign(params, this.query)
            const { communityCode } = this.query
            if (communityCode) {
                values = {
@@ -338,7 +331,6 @@
                delete values.communityCode
            }
            this.loading = true
            getList(page.currentPage, page.pageSize, values).then((res) => {
                const data = res.data.data
                this.page.total = data.total
src/views/grid/index.vue
@@ -19,6 +19,18 @@
// import website from '@/config/website'
export default {
    data () {
        //手机号格式校验
        let validatorPhone = function (rule, value, callback) {
            if (value) {
                if (!/^1[3456789]\d{9}$/.test(value)) {
                    callback(new Error('手机号格式有误!'))
                } else {
                    callback()
                }
            }
            callback()
        }
        return {
            form: {},
            query: {},
@@ -31,13 +43,16 @@
            datetime: "",
            selectionList: [],
            option: {
                labelWidth: 96,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 210,
                height: "auto",
                calcHeight: 54,
                dialogWidth: 950,
                tip: false,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
                border: true,
                //stripe:true,
                index: true,
@@ -46,7 +61,6 @@
                dialogClickModal: false,
                column: [
                    {
                        width: 156,
                        overHidden: true,
                        label: "所属社区",
                        addDisplay: false,
@@ -84,7 +98,6 @@
                    },
                    {
                        width: 110,
                        overHidden: true,
                        label: "网格名称",
                        prop: "gridName",
@@ -98,7 +111,9 @@
                            },
                        ],
                    },
                    {
                        width: 110,
                        label: "负责人",
                        prop: "principal",
                        searchSpan: 4,
@@ -112,6 +127,7 @@
                        ],
                    },
                    {
                        width: 120,
                        label: "联系电话",
                        prop: "principalPhone",
                        searchSpan: 4,
@@ -122,6 +138,11 @@
                                message: "请输入联系电话",
                                trigger: "blur",
                            },
                            {
                                validator: validatorPhone,
                                trigger: 'blur'
                            }
                        ],
                    },
                    {
@@ -301,21 +322,9 @@
            this.onLoad(this.page, this.query)
        },
        onLoad (page, params = {}) {
            const { dateTime } = this.query
            let values = {
                ...params,
            }
            if (dateTime) {
                values = {
                    ...params,
                    startTime: dateTime[0],
                    endTime: dateTime[1],
                    ...this.query,
                }
                values.dateTime = null
            }
            this.loading = true
            getList(page.currentPage, page.pageSize, values).then((res) => {
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
src/views/place/index.vue
@@ -17,8 +17,18 @@
                <span v-text="decimalProcessing(row.lat)"></span>
            </template>
            <template slot-scope="{row}" slot="confirmFlag">
                <el-tag size="small" :type="showConfirmFlag(row.confirmFlag).type">{{ showConfirmFlag(row.confirmFlag).text
            <template slot-scope="{row, size}" slot="confirmFlag">
                <el-tag :size="size" :type="showConfirmFlag(row.confirmFlag).type">{{ showConfirmFlag(row.confirmFlag).text
                }}</el-tag>
            </template>
            <template slot-scope="{row, size}" slot="confirmFlag">
                <el-tag :size="size" :type="showConfirmFlag(row.confirmFlag).type">{{ showConfirmFlag(row.confirmFlag).text
                }}</el-tag>
            </template>
            <template slot-scope="{row, size}" slot="source">
                <el-tag :size="size" :type="showSource(row.source).type">{{ showSource(row.source).text
                }}</el-tag>
            </template>
@@ -27,13 +37,13 @@
                </el-button>
            </template>
            <template slot-scope="scope" slot="menu">
                <el-button type="text" :disabled="scope.row.confirmFlag == 2 || scope.row.confirmFlag != 4"
                    icon="el-icon-s-check" size="small" v-if="permission.place_audit_cur" @click="auditCur(scope.row)">审核
            <template slot-scope="{row, size}" slot="menu">
                <el-button :size="size" type="text" :disabled="row.confirmFlag == 2 || row.confirmFlag == 4"
                    icon="el-icon-s-check" v-if="permission.place_audit_cur" @click="auditCur(row)">审核
                </el-button>
                <el-button type="text" icon="el-icon-edit" size="small" v-if="permission.place_manage_tenants"
                    @click="ManageTenants(scope.row)">场所维护
                <el-button :size="size" type="text" icon="el-icon-edit" v-if="permission.place_manage_tenants"
                    @click="ManageTenants(row)">场所维护
                </el-button>
            </template>
        </avue-crud>
@@ -98,13 +108,16 @@
            datetime: "",
            selectionList: [],
            option: {
                labelWidth: 120,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
                height: "auto",
                calcHeight: 54,
                dialogWidth: 950,
                tip: false,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
                border: true,
                //stripe:true,
                index: true,
@@ -113,16 +126,15 @@
                selection: true,
                dialogClickModal: false,
                menuFixed: 'right',
                labelWidth: 120,
                column: [
                    {
                        width: 160,
                        span: 12,
                        width: 156,
                        overHidden: true,
                        label: "场所名称",
                        span: 12,
                        prop: "placeName",
                        searchSpan: 5,
                        search: true,
                        overHidden: true,
                        rules: [{
                            required: true,
                            message: "请输入场所名称",
@@ -166,11 +178,11 @@
                    },
                    {
                        width: 96,
                        searchLabelWidth: 120,
                        width: 110,
                        label: "场所负责人",
                        prop: "principal",
                        searchSpan: 5,
                        searchLabelWidth: 110,
                        search: true,
                        rules: [{
                            required: false,
@@ -180,13 +192,13 @@
                    },
                    {
                        width: 96,
                        width: 120,
                        overHidden: true,
                        label: "手机号码",
                        prop: "principalPhone",
                        search: true,
                        searchSpan: 4,
                        slot: true,
                        overHidden: true,
                        rules: [
                            {
                                validator: validatorPhone,
@@ -283,9 +295,9 @@
                        ],
                    },
                    {
                        width: 110,
                        label: "场所照片",
                        prop: "imageUrls",
                        width: 80,
                        type: "upload",
                        listType: "picture-card",
                        dataType: "string",
@@ -300,7 +312,7 @@
                    },
                    {
                        width: 160,
                        width: 156,
                        overHidden: true,
                        slot: true,
                        label: "位置",
@@ -339,6 +351,7 @@
                    },
                    {
                        width: 100,
                        addDisplay: false,
                        editDisplay: false,
                        viewDisplay: false,
@@ -346,7 +359,8 @@
                        prop: 'confirmFlag',
                        type: 'radio',
                        slot: true,
                        dicData: [{
                        dicData: [
                            {
                            label: '待审核',
                            value: 1
                        }, {
@@ -355,7 +369,8 @@
                        }, {
                            label: '未通过',
                            value: 3
                        }]
                            }
                        ]
                    },
                    {
                        width: 120,
@@ -366,13 +381,16 @@
                        type: "select",
                        search: true,
                        searchSpan: 5,
                        dicData: [{
                        slot: true,
                        dicData: [
                            {
                            label: '是',
                            value: 1
                        }, {
                            label: '否',
                            value: 2
                        }]
                            }
                        ]
                    }
                ],
            },
@@ -434,6 +452,29 @@
                } else if (data == 4) {
                    tags = {
                        text: '待完善',
                        type: 'info'
                    }
                }
                return tags
            }
        },
        showSource () {
            return (data) => {
                let tags = {
                    text: '',
                    type: ''
                }
                if (data == 1) {
                    tags = {
                        text: '是',
                        type: 'success'
                    }
                } else if (data == 2) {
                    tags = {
                        text: '否',
                        type: 'info'
                    }
                }
@@ -670,23 +711,9 @@
            this.onLoad(this.page, this.query)
        },
        onLoad (page, params = {}) {
            const { dateTime } = this.query
            let values = {
                ...params,
            }
            if (dateTime) {
                values = {
                    ...params,
                    startTime: dateTime[0],
                    endTime: dateTime[1],
                    ...this.query,
                }
                values.dateTime = null
            }
            this.loading = true
            getList(page.currentPage, page.pageSize, values).then((res) => {
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then((res) => {
                const data = res.data.data
                this.page.total = data.total
src/views/property/inviteTenders.vue
@@ -143,7 +143,7 @@
          excelBtn: true,
          dialogClickModal: false,
          column: [{
              label: "资讯标题",
              label: "招标标题",
              prop: "title",
              span: 24,
              row: true,
@@ -151,12 +151,12 @@
              search: true,
              rules: [{
                required: true,
                message: "请输入资讯标题",
                message: "请输入招标标题",
                trigger: "blur",
              }, ],
            },
            {
              label: "资讯封面",
              label: "招标封面",
              prop: "url",
              // align:'center',
              width: 80,
@@ -171,19 +171,19 @@
              span: 24,
            },
            // {
            //   label: "资讯来源",
            //   label: "招标来源",
            //   prop: "sourceName",
            //   search: true,
            //   searchSpan: 4,
            //   span: 24,
            //   rules: [{
            //     required: true,
            //     message: "请输入资讯类型",
            //     message: "请输入招标类型",
            //     trigger: "blur",
            //   }, ],
            // },
            {
              label: "资讯范围",
              label: "招标范围",
              prop: "articleList",
              span: 12,
              minRows: 2,
@@ -193,7 +193,7 @@
              dicData: [],
              rules: [{
                required: true,
                message: "请选择资讯范围",
                message: "请选择招标范围",
                trigger: "blur",
              }, ],
              props: {
@@ -203,7 +203,7 @@
              hide: true,
            },
            {
              label: "资讯类型",
              label: "招标类型",
              prop: "type",
              searchSpan: 3,
              width: 80,
@@ -213,7 +213,7 @@
              type: "select",
              rules: [{
                required: true,
                message: "请选择资讯类型",
                message: "请选择招标类型",
                trigger: "blur",
              }, ],
              dicData: [{
@@ -302,7 +302,7 @@
              },
            },
            {
              label: "资讯内容",
              label: "招标内容",
              prop: "content",
              component: "AvueUeditor",
              options: {
src/views/property/oiae.vue
@@ -1,11 +1,13 @@
<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.article_delete" @click="handleDelete">删 除
                <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
                    除
        </el-button>
        <!-- <el-button size="small" icon="el-icon-s-order" plain @click="kqcomment">开启评论
        </el-button>
@@ -20,10 +22,12 @@
        <el-button icon="el-icon-circle-plus-outline" :size="size" :type="type" @click.stop="openDilog(row,1)">
          创建议题
        </el-button> -->
        <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type" @click.stop="updateFb(row)">
                <el-button v-if="row.publish == '1'" icon="el-icon-close" :size="size" :type="type"
                    @click.stop="updateFb(row)">
          撤销
        </el-button>
        <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type" @click.stop="updateFb(row)">
                <el-button v-if="row.publish == '0'" icon="el-icon-check" :size="size" :type="type"
                    @click.stop="updateFb(row)">
          发布
        </el-button>
      </template>
@@ -73,7 +77,7 @@
    add,
    getNotice,
    upcomment
  } from "@/api/article/article";
} from "@/api/article/article"
  import {
    getListPd,
@@ -82,18 +86,18 @@
    addPd,
    getNoticePd,
    upcommentPd
  } from "@/api/discuss/publicDiscuss";
} from "@/api/discuss/publicDiscuss"
  import website from '@/config/website';
import website from '@/config/website'
  import {
    getDistrictTree
  } from "@/api/district/index";
} from "@/api/district/index"
  import {
    mapGetters
  } from "vuex";
} from "vuex"
  export default {
    data() {
@@ -142,8 +146,9 @@
          selection: true,
          excelBtn: true,
          dialogClickModal: false,
          column: [{
              label: "资讯标题",
                column: [
                    {
                        label: "收支标题",
              prop: "title",
              span: 24,
              row: true,
@@ -151,12 +156,13 @@
              search: true,
              rules: [{
                required: true,
                message: "请输入资讯标题",
                            message: "请输入收支标题",
                trigger: "blur",
              }, ],
                        }],
            },
            {
              label: "资讯封面",
                        label: "缩略图",
              prop: "url",
              // align:'center',
              width: 80,
@@ -170,20 +176,21 @@
              // hide: true,
              span: 24,
            },
            // {
            //   label: "资讯来源",
                    //   label: "收支来源",
            //   prop: "sourceName",
            //   search: true,
            //   searchSpan: 4,
            //   span: 24,
            //   rules: [{
            //     required: true,
            //     message: "请输入资讯类型",
                    //     message: "请输入收支类型",
            //     trigger: "blur",
            //   }, ],
            // },
            {
              label: "资讯范围",
                        label: "收支范围",
              prop: "articleList",
              span: 12,
              minRows: 2,
@@ -193,7 +200,7 @@
              dicData: [],
              rules: [{
                required: true,
                message: "请选择资讯范围",
                            message: "请选择收支范围",
                trigger: "blur",
              }, ],
              props: {
@@ -203,7 +210,7 @@
              hide: true,
            },
            {
              label: "资讯类型",
                        label: "收支类型",
              prop: "type",
              searchSpan: 3,
              width: 80,
@@ -213,7 +220,7 @@
              type: "select",
              rules: [{
                required: true,
                message: "请选择资讯类型",
                            message: "请选择收支类型",
                trigger: "blur",
              }, ],
              dicData: [{
@@ -302,7 +309,7 @@
              },
            },
            {
              label: "资讯内容",
                        label: "收支内容",
              prop: "content",
              component: "AvueUeditor",
              options: {
@@ -415,26 +422,26 @@
          ]
        },
        districtTree: [],
      };
        }
    },
    watch: {
      "form.articleType": {
        handler(val) {
          if (val) {
            var videoUrl = this.findObject(this.option.column, "videoUrl");
            var content = this.findObject(this.option.column, "content");
                    var videoUrl = this.findObject(this.option.column, "videoUrl")
                    var content = this.findObject(this.option.column, "content")
            if (val.indexOf('ksp') != -1) {
              videoUrl.display = true;
              content.display = false;
                        videoUrl.display = true
                        content.display = false
              videoUrl.rules = [{
                required: false,
                message: "请选择视频",
                trigger: "blur",
              }, ];
                        },]
            } else {
              videoUrl.display = false;
              content.display = true;
              videoUrl.rules = "";
                        videoUrl.display = false
                        content.display = true
                        videoUrl.rules = ""
            }
          }
        },
@@ -449,14 +456,14 @@
          viewBtn: this.vaildData(this.permission.article_view, true),
          delBtn: this.vaildData(this.permission.article_delete, true),
          editBtn: this.vaildData(this.permission.article_edit, true),
        };
            }
      },
      ids() {
        let ids = [];
            let ids = []
        this.selectionList.forEach((ele) => {
          ids.push(ele.id);
        });
        return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
      },
    },
    methods: {
@@ -474,25 +481,25 @@
      },
      handleSubmit(form, done) {
        done();
            done()
        addPd(form).then(
          () => {
            this.$message({
              type: "success",
              message: "操作成功!",
            });
                    })
            this.dialogVisibles = false
            done();
                    done()
          },
          (error) => {
            window.console.log(error);
                    window.console.log(error)
            // loading();
          }
        );
            )
      },
      handleClose(done) {
        done();
            done()
        // this.$confirm('确认关闭?')
        //   .then(_ => {
        //     done();
@@ -501,41 +508,41 @@
      },
      rowSave(row, done, loading) {
        if (row.videoUrl.length == 0) {
          row.videoUrl = "";
                row.videoUrl = ""
        }
        row.userid = this.userInfo.user_id;
            row.userid = this.userInfo.user_id
        row.articleRange = JSON.stringify(row.articleList)
        if (row.url.length > 0) {
          var urls = []
          var split = row.url.split(",");
                var split = row.url.split(",")
          split.forEach(url => {
            var names = url.split("jczz/");
                    var names = url.split("jczz/")
            urls.push(names[1])
          })
          row.url = urls.join(",")
        }
        add(row).then(
          () => {
            this.onLoad(this.page);
                    this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            done();
                    })
                    done()
          },
          (error) => {
            window.console.log(error);
            loading();
                    window.console.log(error)
                    loading()
          }
        );
            )
      },
      rowUpdate(row, index, done, loading) {
        row.articleRange = JSON.stringify(row.articleList)
        if (row.url.length > 0) {
          var urls = []
          var split = row.url.split(",");
                var split = row.url.split(",")
          split.forEach(url => {
            var names = url.split("jczz/");
                    var names = url.split("jczz/")
            urls.push(names[1])
          })
          row.url = urls.join(",")
@@ -543,18 +550,18 @@
        update(row).then(
          () => {
            this.onLoad(this.page);
                    this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            done();
                    })
                    done()
          },
          (error) => {
            window.console.log(error);
            loading();
                    window.console.log(error)
                    loading()
          }
        );
            )
      },
      rowDel(row) {
        this.$confirm("确定将选择数据删除?", {
@@ -563,37 +570,37 @@
            type: "warning",
          })
          .then(() => {
            return remove(row.id);
                    return remove(row.id)
          })
          .then(() => {
            this.onLoad(this.page);
                    this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            });
          });
                    })
                })
      },
      searchReset() {
        this.query = {};
        this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
      },
      searchChange(params, done) {
        this.query = params;
        this.page.currentPage = 1;
        this.onLoad(this.page, params);
        done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
      },
      selectionChange(list) {
        this.selectionList = list;
            this.selectionList = list
      },
      selectionClear() {
        this.selectionList = [];
        this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
      },
      handleDelete() {
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
                this.$message.warning("请选择至少一条数据")
                return
        }
        this.$confirm("确定将选择数据删除?", {
            confirmButtonText: "确定",
@@ -601,16 +608,16 @@
            type: "warning",
          })
          .then(() => {
            return remove(this.ids);
                    return remove(this.ids)
          })
          .then(() => {
            this.onLoad(this.page);
                    this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            this.$refs.crud.toggleSelection();
          });
                    })
                    this.$refs.crud.toggleSelection()
                })
      },
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
@@ -618,145 +625,145 @@
            let data = res.data.data
            if (data.url.length > 0) {
              var urls = []
              var names = data.url.split(",");
                        var names = data.url.split(",")
              names.forEach(name => {
                urls.push(website.minioUrl + name)
              })
              data.url = urls.join(",")
            }
            data.articleList = JSON.parse(data.articleRange)
            this.form = data;
          });
                    this.form = data
                })
        }
        // con
        done();
            done()
      },
      currentChange(currentPage) {
        this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
      },
      sizeChange(pageSize) {
        this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
      },
      refreshChange() {
        this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
      },
      onLoad(page, params = {}) {
        const {
          dateTime
        } = this.query;
            } = this.query
        let values = {
          ...params,
        };
            }
        if (dateTime) {
          values = {
            ...params,
            startTime: dateTime[0],
            endTime: dateTime[1],
            ...this.query,
          };
          values.dateTime = null;
                }
                values.dateTime = null
        }
        values.type = 1
        this.loading = true;
            this.loading = true
        getList(page.currentPage, page.pageSize, values).then((res) => {
          const data = res.data.data;
          this.page.total = data.total;
          this.data = data.records;
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
          this.data.forEach(item => {
            if (item.url.length > 0) {
              var urls = []
              var names = item.url.split(",");
                        var names = item.url.split(",")
              names.forEach(name => {
                urls.push(website.minioUrl + name)
              })
              item.url = urls.join(",")
            }
          })
          this.loading = false;
          this.selectionClear();
        });
                this.loading = false
                this.selectionClear()
            })
        getDistrictTree(params = {}).then((res) => {
          const data = res.data.data;
          this.districtTree = data;
          const column = this.findObject(this.option.column, "articleList");
          column.dicData = res.data.data;
          this.loading = false;
        });
                const data = res.data.data
                this.districtTree = data
                const column = this.findObject(this.option.column, "articleList")
                column.dicData = res.data.data
                this.loading = false
            })
      },
      updateFb(row) {
        if (row.publish == "0") {
          row.publish = "1";
                row.publish = "1"
        } else {
          row.publish = "0";
                row.publish = "0"
        }
        if (row.url.length > 0) {
          var urls = []
          var split = row.url.split(",");
                var split = row.url.split(",")
          split.forEach(url => {
            var names = url.split("jczz/");
                    var names = url.split("jczz/")
            urls.push(names[1])
          })
          row.url = urls.join(",")
        }
        update(row).then(
          () => {
            this.onLoad(this.page);
                    this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            done();
                    })
                    done()
          },
          (error) => {
            window.console.log(error);
            loading();
                    window.console.log(error)
                    loading()
          }
        );
            )
      },
      kqcomment() {
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
                this.$message.warning("请选择至少一条数据")
                return
        }
        this.$confirm("确定将选择数据开启评论?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          }).then(() => {
            return upcomment(this.ids, "1");
                return upcomment(this.ids, "1")
          })
          .then(() => {
            this.onLoad(this.page);
                    this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            this.$refs.crud.toggleSelection();
          });
                    })
                    this.$refs.crud.toggleSelection()
                })
      },
      gbcomment() {
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
                this.$message.warning("请选择至少一条数据")
                return
        }
        this.$confirm("确定将选择数据开启评论?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          }).then(() => {
            return upcomment(this.ids, "0");
                return upcomment(this.ids, "0")
          })
          .then(() => {
            this.onLoad(this.page);
                    this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            this.$refs.crud.toggleSelection();
          });
                    })
                    this.$refs.crud.toggleSelection()
                })
      }
    },
  };
}
</script>
<style>
src/views/task/reportForRepairs.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-12-14 17:10:00
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-01-05 18:00:15
 * @LastEditTime: 2024-01-06 15:01:25
 * @FilePath: \jczz_web\src\views\task\reportForRepairs.vue
 * @Description:
 *
@@ -246,7 +246,7 @@
                        overHidden: true
                    },
                    {
                        width: 120,
                        width: 100,
                        addDisplay: false,
                        editDisplay: false,
                        slot: true,
src/views/userHouse/components/householdManager.vue
@@ -12,18 +12,6 @@
                            @click="handleDelete">删 除
                        </el-button>
                    </template>
                    <template slot-scope="{row}" slot="tenantName">
                        <el-tag>{{ row.tenantName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="roleName">
                        <el-tag>{{ row.roleName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="deptName">
                        <el-tag>{{ row.deptName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="userTypeName">
                        <el-tag>{{ row.userTypeName }}</el-tag>
                    </template>
                </avue-crud>
            </basic-container>
        </el-col>
@@ -129,12 +117,15 @@
                total: 0
            },
            option: {
                labelWidth: 144,
                labelWidth: 120,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 4,
                menuWidth: 210,
                height: 420,
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 6,
                border: true,
                index: true,
                selection: true,
@@ -164,11 +155,12 @@
                    },
                    {
                        width: 96,
                        width: 110,
                        label: "姓名",
                        prop: "name",
                        searchSpan: 4,
                        searchLabelWidth: 66,
                        search: true,
                        searchSpan: 3,
                        rules: [
                            {
                                required: true,
@@ -192,12 +184,12 @@
                    },
                    {
                        display: true,
                        width: 160,
                        display: true,
                        label: "身份证号",
                        prop: "idCard",
                        search: true,
                        searchSpan: 4,
                        searchSpan: 5,
                        slot: true,
                        rules: [
                            {
@@ -208,9 +200,9 @@
                    },
                    {
                        width: 160,
                        hide: true,
                        display: false,
                        width: 160,
                        label: "证件号码",
                        prop: "cardNo",
                    },
@@ -227,6 +219,7 @@
                    {
                        width: 60,
                        label: "性别",
                        prop: "gender",
                        type: "select",
@@ -251,7 +244,7 @@
                        label: "手机号码",
                        prop: "phoneNumber",
                        search: true,
                        searchSpan: 3,
                        searchSpan: 5,
                        slot: true,
                        rules: [
                            {
@@ -313,6 +306,7 @@
                    },
                    {
                        overHidden: true,
                        label: "地址",
                        prop: "address",
                        display: false
@@ -805,6 +799,7 @@
        onLoad (page, params = {}) {
            params['houseCode'] = this.houseCode
            this.loading = true
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
                const data = res.data.data
                this.page.total = data.total
src/views/userHouse/hireInfoList.vue
@@ -7,35 +7,28 @@
                    @row-save="rowSave" :before-open="beforeOpen" :page.sync="page" @search-change="searchChange"
                    @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
                    @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
                    <template slot-scope="{row, size}" slot="auditStatus">
                        <el-tag :size="size" :type="showConfirmFlag(row.auditStatus).type">
                            {{ showConfirmFlag(row.auditStatus).text }}
                        </el-tag>
                    </template>
                    <template slot="menuLeft">
                        <el-button type="danger" size="small" plain icon="el-icon-delete"
                        <el-button type="danger" :size="size" plain icon="el-icon-delete"
                            v-if="permission.houseRental_delete" @click="handleDelete">删 除
                        </el-button>
                    </template>
                    <template slot-scope="scope" slot="menu">
                        <el-button type="text" icon="el-icon-circle-plus-outline" size="small"
                            v-if="permission.househould_manager" @click="ManageTenants(scope.row)">管理租户
                    <template slot-scope="{row, size}" slot="menu">
                        <el-button :size="size" type="text" icon="el-icon-circle-plus-outline"
                            v-if="permission.househould_manager" @click="ManageTenants(row)">管理租户
                        </el-button>
                        <!--  <el-button type="success" size="small" plain icon="el-icon-upload2" @click="handleImport">导入
            </el-button>
            <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
            </el-button> -->
                    </template>
                    <template slot-scope="{row}" slot="tenantName">
                        <el-tag>{{ row.tenantName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="roleName">
                        <el-tag>{{ row.roleName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="deptName">
                        <el-tag>{{ row.deptName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="userTypeName">
                        <el-tag>{{ row.userTypeName }}</el-tag>
                    </template>
                </avue-crud>
                <el-dialog title="租户管理" append-to-body :visible.sync="roleBox">
                    <avue-crud :option="houseHoldOption" :search.sync="search" :table-loading="loading" :data="houseHold"
@@ -50,7 +43,6 @@
                        <el-button type="primary" @click="submitRole">确 定</el-button>
                    </span>
                </el-dialog>
                <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
                    <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
@@ -210,11 +202,15 @@
                ]
            },
            option: {
                labelWidth: 120,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
                height: 'auto',
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 6,
                border: true,
                index: true,
                selection: true,
@@ -222,8 +218,9 @@
                addBtn: true,
                dialogType: 'drawer',
                dialogClickModal: false,
                menuWidth: 280,
                column: [{
                column: [
                    {
                    label: "房屋",
                    prop: "address",
                    display: false
@@ -321,7 +318,8 @@
                    label: "关系",
                    prop: "tenantRelationship",
                    search: true,
                    searchSpan: 4,
                        searchSpan: 3,
                        searchLabelWidth: 66,
                    width: 100,
                    type: "select",
                    dicData: [{
@@ -365,8 +363,9 @@
                    label: "用途",
                    prop: "rentalUse",
                    type: "select",
                    search: true,
                    searchSpan: 3,
                        searchLabelWidth: 66,
                        search: true,
                    dataType: "number",
                    width: 100,
                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=rentalUseType",
@@ -381,12 +380,12 @@
                    },],
                },
                {
                        width: 100,
                    label: "租房时间",
                    prop: "rentalTime",
                    type: "date",
                    format: "yyyy-MM-dd",
                    valueFormat: "yyyy-MM-dd",
                    width: 100,
                    rules: [{
                        required: true,
                        message: "请选择租房时间",
@@ -413,7 +412,7 @@
                    width: 100,
                    display: false,
                    search: true,
                    searchSpan: 3,
                        searchSpan: 4,
                    type: "select",
                    dicData: [{
                        label: "长期",
@@ -430,14 +429,16 @@
                    ],
                },
                {
                        width: 80,
                    label: "审核状态",
                    prop: "auditStatus",
                    type: "select",
                    width: 80,
                    search: true,
                    searchSpan: 4,
                    display: false,
                    dicData: [{
                        slot: true,
                        dicData: [
                            {
                        label: "已确认",
                        value: 1
                    },
@@ -448,10 +449,10 @@
                    ],
                },
                {
                        width: 144,
                    label: "创建时间",
                    prop: "createTime",
                    display: false,
                    width: 160,
                },
                {
                    label: "合同",
@@ -531,6 +532,25 @@
                viewBtn: this.vaildData(this.permission.houseRental_view, true),
                delBtn: this.vaildData(this.permission.houseRental_delete, true),
                editBtn: this.vaildData(this.permission.houseRental_edit, true)
            }
        },
        showConfirmFlag () {
            return (data) => {
                let tags = {}
                if (data == 0) {
                    tags = {
                        type: 'warning',
                        text: '待处理'
                    }
                } else if (data == 1) {
                    tags = {
                        type: 'success',
                        text: '已处理'
                    }
                }
                return tags
            }
        }
    },
@@ -771,6 +791,7 @@
        },
        onLoad (page, params = {}) {
            this.loading = true
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
                const data = res.data.data
                this.page.total = data.total
src/views/userHouse/houseHoldList.vue
@@ -18,39 +18,24 @@
                            icon="el-icon-download" @click="handleExport">导出
                        </el-button>
                    </template>
                    <template slot-scope="scope" slot="menu">
                        <el-button type="text" icon="el-icon-circle-plus-outline" size="small"
                            v-if="permission.househould_manager" @click="manageLabel(scope.row)">标签
                    <template slot-scope="{row, size}" slot="menu">
                        <el-button :size="size" type="text" icon="el-icon-circle-plus-outline"
                            v-if="permission.househould_manager" @click="manageLabel(row)">标签
                        </el-button>
                    </template>
                    <template slot-scope="{row}" slot="phoneNumber">
                        <el-button type="text" @click="showStringDispose(row, 'phoneNumberflag')">
                    <template slot-scope="{row, size}" slot="phoneNumber">
                        <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneNumberflag')">
                            {{ textDispose(row, 'phoneNumberflag', 'phoneNumber') }}
                        </el-button>
                    </template>
                    <template slot-scope="{row}" slot="idCard">
                        <el-button type="text" @click="showStringDispose(row, 'idCardflag')"
                    <template slot-scope="{row, size}" slot="idCard">
                        <el-button :size="size" type="text" @click="showStringDispose(row, 'idCardflag')"
                            v-text="textDispose(row, 'idCardflag', 'idCard')"></el-button>
                    </template>
                    <template slot-scope="{row}" slot="householdLabelList">
                    <template slot-scope="{row, size}" slot="householdLabelList">
                        {{ labelDispose(row.householdLabelList) }}
                    </template>
                    <template slot-scope="{row}" slot="tenantName">
                        <el-tag>{{ row.tenantName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="roleName">
                        <el-tag>{{ row.roleName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="deptName">
                        <el-tag>{{ row.deptName }}</el-tag>
                    </template>
                    <template slot-scope="{row}" slot="userTypeName">
                        <el-tag>{{ row.userTypeName }}</el-tag>
                    </template>
                </avue-crud>
                <el-dialog title="用户角色配置" append-to-body :visible.sync="roleBox" width="345px" center>
@@ -59,8 +44,8 @@
                    </el-tree>
                    <span slot="footer" class="dialog-footer">
                        <el-button @click="roleBox = false">取 消</el-button>
                        <el-button type="primary" @click="submitRole">确 定</el-button>
                        <el-button size="small" @click="roleBox = false">取 消</el-button>
                        <el-button size="small" type="primary" @click="submitRole">确 定</el-button>
                    </span>
                </el-dialog>
@@ -92,16 +77,15 @@
                    <avue-form :option="labelOption" v-model="labelForm" :submit="onsubmit">
                    </avue-form>
                    <span slot="footer" class="dialog-footer">
                        <el-button @click="editLabelFlge = false">取 消</el-button>
                        <el-button type="primary" @click="onsubmit">确 定</el-button>
                        <el-button size="small" @click="editLabelFlge = false">取 消</el-button>
                        <el-button size="small" type="primary" @click="onsubmit">确 定</el-button>
                    </span>
                </el-dialog>
                <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
                    <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
                        <template slot="excelTemplate">
                            <el-button type="primary" @click="handleTemplate">
                            <el-button size="small" type="primary" @click="handleTemplate">
                                点击下载<i class="el-icon-download el-icon--right"></i>
                            </el-button>
                        </template>
@@ -224,11 +208,14 @@
            },
            option: {
                labelWidth: 144,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
                height: 'auto',
                calcHeight: 80,
                tip: false,
                searchShow: true,
                searchMenuSpan: 3,
                border: true,
                index: true,
                selection: true,
@@ -236,7 +223,6 @@
                addBtn: true,
                dialogType: 'drawer',
                dialogClickModal: false,
                menuWidth: 280,
                menuFixed: 'right',
                column: [
                    {
@@ -263,8 +249,9 @@
                        width: 110,
                        label: "姓名",
                        prop: "name",
                        search: true,
                        searchSpan: 3,
                        searchLabelWidth: 66,
                        search: true,
                        rules: [
                            {
                                required: true,
@@ -346,7 +333,7 @@
                        label: "手机号码",
                        prop: "phoneNumber",
                        search: true,
                        searchSpan: 3,
                        searchSpan: 4,
                        slot: true,
                        rules: [
                            {
@@ -455,7 +442,8 @@
                    },
                    {
                        width: 140,
                        width: 156,
                        overHidden: true,
                        label: "地址",
                        prop: "address",
                        display: false
@@ -543,6 +531,7 @@
                    {
                        width: 210,
                        overHidden: true,
                        label: "标签",
                        prop: "householdLabelList",
                        display: false
@@ -1083,6 +1072,7 @@
        onLoad (page, params = {}) {
            this.loading = true
            getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
                const data = {
                    ...res.data.data,
src/views/userHouse/houseList.vue
@@ -3,10 +3,10 @@
    <el-col :span="24">
      <basic-container>
        <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
          v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
          :before-open="beforeOpen" :page.sync="page" @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-del="rowDel" @row-update="rowUpdate"
                    @row-save="rowSave" :before-open="beforeOpen" :page.sync="page" @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 type="danger" size="small" plain icon="el-icon-delete" v-if="permission.user_delete"
              @click="handleDelete">删 除
@@ -18,30 +18,18 @@
              icon="el-icon-download" @click="handleExport">导出
            </el-button>
          </template>
          <template slot-scope="scope" slot="menu">
            <el-button type="text" icon="el-icon-circle-plus-outline" size="small" v-if="permission.househould_manager"
              @click="handleHouseholdManager(scope.row)">住户管理
                    <template slot-scope="{row, size}" slot="menu">
                        <el-button :size="size" type="text" icon="el-icon-circle-plus-outline"
                            v-if="permission.househould_manager" @click="handleHouseholdManager(row)">住户管理
            </el-button>
            <el-button type="text" icon="el-icon-circle-plus-outline" size="small" v-if="permission.househould_manager"
              @click="manageLabel(scope.row)">标签
                        <el-button :size="size" type="text" icon="el-icon-circle-plus-outline"
                            v-if="permission.househould_manager" @click="manageLabel(row)">标签
            </el-button>
          </template>
          <template slot-scope="{row}" slot="tenantName">
            <el-tag>{{ row.tenantName }}</el-tag>
          </template>
          <template slot-scope="{row}" slot="roleName">
            <el-tag>{{ row.roleName }}</el-tag>
          </template>
          <template slot-scope="{row}" slot="deptName">
            <el-tag>{{ row.deptName }}</el-tag>
          </template>
          <template slot-scope="{row}" slot="userTypeName">
            <el-tag>{{ row.userTypeName }}</el-tag>
          </template>
          <template slot-scope="{row}" slot="phone">
            <el-button type="text" @click="showStringDispose(row, 'phoneflag')">
                    <template slot-scope="{row, size}" slot="phone">
                        <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneflag')">
              {{ textDispose(row, 'phoneflag', 'phone') }}
            </el-button>
          </template>
@@ -52,13 +40,13 @@
        </avue-crud>
        <el-dialog title="用户角色配置" append-to-body :visible.sync="roleBox" width="345px">
          <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id" ref="treeRole"
            :default-checked-keys="roleTreeObj" :props="props">
                    <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id"
                        ref="treeRole" :default-checked-keys="roleTreeObj" :props="props">
          </el-tree>
          <span slot="footer" class="dialog-footer">
            <el-button @click="roleBox = false">取 消</el-button>
            <el-button type="primary" @click="submitRole">确 定</el-button>
                        <el-button size="small" @click="roleBox = false">取 消</el-button>
                        <el-button size="small" type="primary" @click="submitRole">确 定</el-button>
          </span>
        </el-dialog>
@@ -75,12 +63,13 @@
          </span> -->
        </el-dialog>
        <el-dialog :title="'编辑标签   ' + currentLabel.name" append-to-body :visible.sync="editLabelFlge" width="655px">
                <el-dialog :title="'编辑标签   ' + currentLabel.name" append-to-body :visible.sync="editLabelFlge"
                    width="655px">
          <avue-form :option="labelOption" v-model="labelForm" :submit="onsubmit">
          </avue-form>
          <span slot="footer" class="dialog-footer">
            <el-button @click="editLabelFlge = false">取 消</el-button>
            <el-button type="primary" @click="onsubmit">确 定</el-button>
                        <el-button size="small" @click="editLabelFlge = false">取 消</el-button>
                        <el-button size="small" type="primary" @click="onsubmit">确 定</el-button>
          </span>
        </el-dialog>
@@ -144,6 +133,19 @@
      householdManager
    },
    data() {
        //手机号格式校验
        let validatorPhone = function (rule, value, callback) {
            if (value) {
                if (!/^1[3456789]\d{9}$/.test(value)) {
                    callback(new Error('手机号格式有误!'))
                } else {
                    callback()
                }
            }
            callback()
        }
      return {
        labelData: [],
        labelForm: {},
@@ -198,19 +200,23 @@
          total: 0
        },
        option: {
                labelWidth: 120,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 350,
          height: 'auto',
          calcHeight: 80,
          tip: false,
          searchShow: true,
          searchMenuSpan: 3,
          border: true,
          index: true,
          selection: true,
          viewBtn: true,
          dialogType: 'drawer',
          dialogClickModal: false,
          menuWidth: 340,
          column: [{
                column: [
                    {
              label: "房屋编号",
              prop: "houseCode",
              width: 180,
@@ -218,9 +224,10 @@
              display: false
            },
            {
                        width: 156,
                        overHidden: true,
              label: "地址",
              prop: "address",
              width: 180,
              display: false
            },
@@ -293,11 +300,13 @@
                value: "id",
              },
              cascader: ["gridId"],
              rules: [{
                        rules: [
                            {
                required: true,
                message: "请选择所属社区",
                trigger: "blur",
              }, ],
                            },
                        ],
            },
            {
@@ -325,18 +334,21 @@
                label: "gridName",
                value: "id",
              },
              dicUrl: "/api/blade-grid/grid/getGridList?communityCode={{neiCode}}",
              rules: [{
                        dicUrl:
                            "/api/blade-grid/grid/getGridList?communityCode={{neiCode}}",
                        rules: [
                            {
                required: true,
                message: "请选择所属网格",
                trigger: "blur",
              }, ],
                            },
                        ],
            },
            {
              label: "房屋照片",
              prop: "imageUrls",
              width: 80,
                        width: 110,
              type: "upload",
              listType: "picture-card",
              dataType: "string",
@@ -350,12 +362,20 @@
              span: 24,
            },
            {
              width: 110,
                        width: 120,
              label: "电话",
              prop: "phone",
              slot: true,
                        rules: [
                            {
                                validator: validatorPhone,
                                trigger: 'blur'
                            }
                        ],
            },
            {
              label: "幢",
              prop: "building",
@@ -397,6 +417,7 @@
            },
            {
              width: 210,
                        overHidden: true,
              label: "标签",
              prop: "userHouseLabelVOList",
              display: false
@@ -739,6 +760,7 @@
      },
      onLoad(page, params = {}) {
        this.loading = true
        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
          const data = {
            ...res.data.data,
src/views/work/start.vue
@@ -17,17 +17,19 @@
          @click.stop="handleImage(scope.row, scope.index)">流程图
        </el-button>
      </template>
      <template slot-scope="{row}" slot="tenantId">
        <el-tag>{{ row.tenantId === '' ? '通用' : row.tenantId }}</el-tag>
            <template slot-scope="{row, size}" slot="tenantId">
                <el-tag :size="size">{{ row.tenantId === '' ? '通用' : row.tenantId }}</el-tag>
      </template>
      <template slot-scope="{row}" slot="version">
        <el-tag>v{{ row.version }}</el-tag>
            <template slot-scope="{row, size}" slot="version">
                <el-tag :size="size">v{{ row.version }}</el-tag>
      </template>
      <template slot-scope="{row}" slot="suspensionState">
        <el-tag>{{ row.suspensionState === 1 ? '激活' : '挂起' }}</el-tag>
            <template slot-scope="{row, size}" slot="suspensionState">
                <el-tag :size="size" :type="row.suspensionState === 1 ? 'success' : 'info'">{{ row.suspensionState === 1 ?
                    '激活' : '挂起'
                }}</el-tag>
      </template>
      <template slot-scope="{row}" slot="category">
        <el-tag>{{ row.categoryName }}</el-tag>
            <template slot-scope="{row, size}" slot="category">
                <el-tag :size="size">{{ row.categoryName }}</el-tag>
      </template>
    </avue-crud>
    <flow-design is-dialog :is-display.sync="flowBox" :process-definition-id="processDefinitionId"></flow-design>
@@ -64,11 +66,14 @@
        flowBox: false,
        workBox: false,
        option: {
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 140,
          height: 'auto',
          calcHeight: 30,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
          border: true,
          index: true,
          selection: true,
@@ -76,16 +81,17 @@
          addBtn: false,
          viewBtn: false,
          delBtn: false,
          menuWidth: 280,
          dialogWidth: 900,
          dialogClickModal: false,
          column: [{
                column: [
                    {
                        width: 120,
              label: '租户编号',
              prop: 'tenantId',
              slot: true,
              width: 120,
            },
            {
                        width: 120,
              label: "流程分类",
              type: "select",
              row: true,
@@ -98,7 +104,6 @@
              slot: true,
              prop: "category",
              search: true,
              width: 100,
            },
            {
              label: '流程标识',