shuishen
2024-04-18 4522ab3fe8bd45ee753ef187448c1e884bbc601f
src/views/cGovernance/taskECall.vue
@@ -1,580 +1,662 @@
<!-- e 呼即办 -->
<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">
            <template slot="menuLeft">
                <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
                    除
                </el-button>
            </template>
        </avue-crud>
    </basic-container>
  <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">
      <template slot="menuLeft">
        <el-button size="small" icon="el-icon-delete" plain v-if="permission.article_delete" @click="handleDelete">删
          除
        </el-button>
      </template>
      <template slot="menu" slot-scope="{row, size, index}">
        <el-button size="small" type="text" icon="el-icon-share" plain @click="share(row)">分享
        </el-button>
      </template>
      <template slot-scope="{row, size}" slot="phone">
        <el-button :size="size" type="text" @click="showStringDispose(row, 'phoneflag')"
          v-text="textDispose(row, 'phoneflag', 'phone')">
        </el-button>
      </template>
    </avue-crud>
    <el-dialog title="分享" append-to-body :visible.sync="sharePopup" center @close="popupClose">
      <div style="display: flex; justify-content: center; ">
        <el-radio-group v-model="circleRadio">
          <el-radio :label="0">邻里圈</el-radio>
          <el-radio :label="1">协同圈</el-radio>
        </el-radio-group>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="sharePopup = false">取 消</el-button>
        <el-button type="primary" @click="shareCircle()">确 定</el-button>
      </span>
    </el-dialog>
  </basic-container>
</template>
<script>
import {
  import {
    getList,
    remove,
    update,
    add,
    getECallEvent
} from "@/api/task/eCall"
import {
  } from "@/api/task/eCall"
  import {
    add as circleAdd,
  } from "@/api/circle/circle"
  import {
    getList as getHouseList,
    getDetatil as getHouseDetail
} from "@/api/doorplateAddress/doorplateAddress.js"
import {
  } from "@/api/doorplateAddress/doorplateAddress.js"
  import {
    mapGetters
} from "vuex"
import website from '@/config/website'
//   import AvueMap from "avue-plugin-map";
export default {
    data () {
  } from "vuex"
  import website from '@/config/website'
  //   import AvueMap from "avue-plugin-map";
  export default {
    data() {
        //手机号格式校验
        let validatorPhone = function (rule, value, callback) {
            if (value) {
                if (!/^1[3456789]\d{9}$/.test(value)) {
                    callback(new Error('手机号格式有误!'))
                } else {
                    callback()
                }
            }
      //手机号格式校验
      let validatorPhone = function(rule, value, callback) {
        if (value) {
          if (!/^1[3456789]\d{9}$/.test(value)) {
            callback(new Error('手机号格式有误!'))
          } else {
            callback()
          }
        }
        callback()
      }
        return {
            form: {},
            query: {},
            loading: true,
            page: {
      return {
        form: {},
        query: {},
        loading: true,
        page: {
          pageSize: 10,
          currentPage: 1,
          total: 0,
        },
        datetime: "",
        selectionList: [],
        sharePopup: false,
        circleRadio: 0,
        shareCircleRow: {},
        option: {
          labelWidth: 96,
          // searchLabelWidth: 96,
          searchShow: true,
          searchMenuSpan: 3,
          menuWidth: 310,
          height: "auto",
          calcHeight: 54,
          dialogWidth: 950,
          tip: false,
          border: true,
          //stripe:true,
          index: true,
          viewBtn: true,
          selection: true,
          // excelBtn: true,
          dialogClickModal: false,
          column: [{
              label: "事件名称",
              prop: "name",
              span: 12,
              searchSpan: 4,
              width: 100,
              search: true,
              searchLabelWidth: 76,
              rules: [{
                required: true,
                message: "请输入事件名称",
                trigger: "blur",
              }, ],
            },
            {
              width: 100,
              label: "事件类型",
              prop: "type",
              span: 12,
              searchSpan: 4,
              dataType: "number",
              type: "select",
              dicUrl: "/api/blade-system/dict-biz/dictionary?code=eCallEventType",
              props: {
                label: "dictValue",
                value: "dictKey",
              },
              rules: [{
                required: true,
                message: "请选择事件类型",
                trigger: "blur",
              }, ],
              // search: true,
            },
            {
              width: 156,
              overHidden: true,
              label: "所属社区",
              addDisplay: false,
              editDisplay: false,
              viewDisplay: false,
              prop: "communityName",
              search: true,
              searchSpan: 4,
              rules: [{
                required: true,
                message: "请选择所属社区",
                trigger: "blur",
              }],
            },
            {
              label: "所属社区",
              hide: true,
              parent: false,
              prop: "communityCode",
              search: false,
              type: "tree",
              dicUrl: "/api/blade-system/region/tree",
              props: {
                label: "name",
                value: "id",
              },
              rules: [{
                required: true,
                message: "请选择所属社区",
                trigger: "blur",
              }, ],
            },
            {
              label: "数据来源",
              prop: "source",
              span: 12,
              searchSpan: 4,
              width: 100,
              hide: true,
              // search: true,
            },
            {
              width: 110,
              label: "姓名",
              prop: "realName",
              span: 12,
              searchSpan: 4,
              searchLabelWidth: 66,
              search: true,
              rules: [{
                required: false,
                message: "请输入姓名",
                trigger: "blur",
              }, ],
            },
            {
              width: 120,
              label: "联系方式",
              prop: "phone",
              span: 12,
              searchSpan: 4,
              search: true,
              rules: [{
                  required: false,
                  message: "请输入联系方式",
                  trigger: "blur",
                },
                {
                  validator: validatorPhone,
                  trigger: 'blur'
                }
              ],
              slot: true
            },
            {
              label: "事发地点",
              prop: "scene",
              overHidden: true,
              rules: [{
                required: true,
                message: "请输入事发地点",
                trigger: "blur",
              }, ],
            },
            {
              width: 100,
              label: "事发时间",
              prop: "occurrenceTime",
              type: "date",
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd",
              rules: [{
                required: true,
                message: "请选择事发时间",
                trigger: "blur",
              }, ],
            },
            {
              label: "事发位置",
              prop: "location",
              submitBtn: "保存",
              hide: true,
              type: 'map',
              dataType: "string",
              span: 24,
              value: [117.966460, 28.431002, ""]
            },
            {
              label: "标准地址",
              prop: "addressCode",
              hide: true,
              type: "table",
              span: 24,
              row: true,
              children: {
                border: true,
                height: 400,
                searchShow: true,
                searchMenuSpan: 6,
                submitText: "确定",
                column: [
                  // {
                  //   label: "小区",
                  //   prop: "aoiName",
                  //   search: true,
                  //   searchSpan: 4,
                  //   rules: [
                  //     {
                  //       required: true,
                  //       message: "请选择小区",
                  //       trigger: "blur",
                  //     },
                  //   ],
                  // },
                  {
                    label: "标准地址",
                    search: true,
                    searchSpan: 8,
                    prop: "addressName",
                    display: false
                  },
                ],
              },
              page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
                total: 0
              },
              formatter: (row) => {
                return row.addressName
                // if (!row.districtName) return ''
                // return row.districtName + '-' + row.unit  + row.building  + row.room
              },
              onLoad: ({
                page,
                value,
                data
              }, callback) => {
                //首次加载去查询对应的值
                if (value) {
                  getHouseDetail({
                    addressCode: value
                  }).then(res => {
                    var resData = res.data.data
                    // 查询对应行数据
                    callback(resData)
                    return
                  })
                }
                if (page) {
                  this.loading = true
                  var params = {
                    ...data,
                    townStreetCode: "361102005"
                  }
                  getHouseList(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,
                      data: data
                    })
                  })
                }
              },
              props: {
                label: 'addressName',
                value: 'addressCode'
              }
            },
            datetime: "",
            selectionList: [],
            option: {
                labelWidth: 96,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 210,
                height: "auto",
                calcHeight: 54,
                dialogWidth: 950,
                tip: false,
                border: true,
                //stripe:true,
                index: true,
                viewBtn: true,
                selection: true,
                // excelBtn: true,
                dialogClickModal: false,
                column: [{
                    label: "事件名称",
                    prop: "name",
                    span: 12,
                    searchSpan: 4,
                    width: 100,
                    search: true,
                    searchLabelWidth: 76,
                    rules: [{
                        required: true,
                        message: "请输入事件名称",
                        trigger: "blur",
                    },],
                },
                {
                    width: 100,
                    label: "事件类型",
                    prop: "type",
                    span: 12,
                    searchSpan: 4,
                    dataType: "number",
                    type: "select",
                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=eCallEventType",
                    props: {
                        label: "dictValue",
                        value: "dictKey",
                    },
                    rules: [{
                        required: true,
                        message: "请选择事件类型",
                        trigger: "blur",
                    },],
                    // search: true,
                },
                {
                    width: 156,
                    overHidden: true,
                    label: "所属社区",
                    addDisplay: false,
                    editDisplay: false,
                    viewDisplay: false,
                    prop: "communityName",
                    search: true,
                    searchSpan: 4,
                    rules: [{
                        required: true,
                        message: "请选择所属社区",
                        trigger: "blur",
                    }],
                },
                {
                    label: "所属社区",
                    hide: true,
                    parent: false,
                    prop: "communityCode",
                    search: false,
                    type: "tree",
                    dicUrl: "/api/blade-system/region/tree",
                    props: {
                        label: "name",
                        value: "id",
                    },
                    rules: [
                        {
                            required: true,
                            message: "请选择所属社区",
                            trigger: "blur",
                        },
                    ],
                },
                {
                    label: "数据来源",
                    prop: "source",
                    span: 12,
                    searchSpan: 4,
                    width: 100,
                    hide: true,
                    // search: true,
                },
                {
                    width: 110,
                    label: "姓名",
                    prop: "realName",
                    span: 12,
                    searchSpan: 4,
                    searchLabelWidth: 66,
                    search: true,
                    rules: [{
                        required: false,
                        message: "请输入姓名",
                        trigger: "blur",
                    },],
                },
                {
                    width: 120,
                    label: "联系方式",
                    prop: "phone",
                    span: 12,
                    searchSpan: 4,
                    search: true,
                    rules: [{
                        required: false,
                        message: "请输入联系方式",
                        trigger: "blur",
                    },
                    {
                        validator: validatorPhone,
                        trigger: 'blur'
                    }],
                },
                {
                    label: "事发地点",
                    prop: "scene",
                    overHidden: true,
                    rules: [{
                        required: true,
                        message: "请输入事发地点",
                        trigger: "blur",
                    },],
                },
                {
                    width: 100,
                    label: "事发时间",
                    prop: "occurrenceTime",
                    type: "date",
                    format: "yyyy-MM-dd",
                    valueFormat: "yyyy-MM-dd",
                    rules: [{
                        required: true,
                        message: "请选择事发时间",
                        trigger: "blur",
                    },],
                },
                {
                    label: "事发位置",
                    prop: "location",
                    submitBtn: "保存",
                    hide: true,
                    type: 'map',
                    dataType: "string",
                    span: 24,
                    value: [117.966460, 28.431002, ""]
                },
                {
                    label: "标准地址",
                    prop: "addressCode",
                    hide: true,
                    type: "table",
                    span: 24,
                    row: true,
                    children: {
                        border: true,
                        height: 400,
                        searchShow: true,
                        searchMenuSpan: 6,
                        submitText: "确定",
                        column: [
                            // {
                            //   label: "小区",
                            //   prop: "aoiName",
                            //   search: true,
                            //   searchSpan: 4,
                            //   rules: [
                            //     {
                            //       required: true,
                            //       message: "请选择小区",
                            //       trigger: "blur",
                            //     },
                            //   ],
                            // },
                            {
                                label: "标准地址",
                                search: true,
                                searchSpan: 8,
                                prop: "addressName",
                                display: false
                            },
                        ],
                    },
                    page: {
                        pageSize: 10,
                        currentPage: 1,
                        total: 0
                    },
                    formatter: (row) => {
                        return row.addressName
                        // if (!row.districtName) return ''
                        // return row.districtName + '-' + row.unit  + row.building  + row.room
                    },
                    onLoad: ({
                        page,
                        value,
                        data
                    }, callback) => {
                        //首次加载去查询对应的值
                        if (value) {
                            getHouseDetail({
                                addressCode: value
                            }).then(res => {
                                var resData = res.data.data
                                // 查询对应行数据
                                callback(resData)
                                return
                            })
                        }
                        if (page) {
                            this.loading = true
                            var params = {
                                ...data,
                                townStreetCode: "361102005"
                            }
                            getHouseList(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,
                                    data: data
                                })
                            })
                        }
                    },
                    props: {
                        label: 'addressName',
                        value: 'addressCode'
                    }
                },
                {
                    width: 110,
                    label: "现场图片",
                    prop: "imageUrls",
                    type: "upload",
                    listType: "picture-card",
                    dataType: "string",
                    multiple: true,
                    row: true,
                    action: "/api/blade-resource/oss/endpoint/put-file-attach",
                    propsHttp: {
                        res: "data",
                        name: 'name',
                        url: "link",
                    },
                    span: 24,
                },
                {
                    label: "事件简述",
                    prop: "remark",
                    type: "textarea",
                    span: 24,
                },
                // {
                //   label: "处置情况",
                //   prop: "disSit",
                //   type:"textarea",
                //   hide:true,
                //   span: 24,
                // },
                {
                    label: "处理结果",
                    prop: "disRes",
                    type: "textarea",
                    hide: true,
                    span: 24,
                },
                {
                    label: "回访情况",
                    prop: "retVis",
                    type: "textarea",
                    hide: true,
                    span: 24,
                },
                    // {
                    //   label: "处置状态",
                    //   prop: "dis_status",
                    //   type:"select",
                    //   hide:true,
                    // }
                ],
            {
              width: 110,
              label: "现场图片",
              prop: "imageUrls",
              type: "upload",
              listType: "picture-card",
              dataType: "string",
              multiple: true,
              row: true,
              action: "/api/blade-resource/oss/endpoint/put-file-attach",
              propsHttp: {
                res: "data",
                name: 'name',
                url: "link",
              },
              span: 24,
            },
            data: [],
        }
            {
              label: "事件简述",
              prop: "remark",
              type: "textarea",
              span: 24,
            },
            // {
            //   label: "处置情况",
            //   prop: "disSit",
            //   type:"textarea",
            //   hide:true,
            //   span: 24,
            // },
            {
              label: "处理结果",
              prop: "disRes",
              type: "textarea",
              hide: true,
              span: 24,
            },
            {
              label: "回访情况",
              prop: "retVis",
              type: "textarea",
              hide: true,
              span: 24,
            },
            // {
            //   label: "处置状态",
            //   prop: "dis_status",
            //   type:"select",
            //   hide:true,
            // }
          ],
        },
        data: [],
      }
    },
    watch: {
        "form.location": {
            // form是表单或者表格绑定的数据集,v-model='form'
            handler (val) {
                if (typeof val == "string") {
                    var arr = val.split(",")
                    //经纬度替换
                    this.form.lat = arr[1]
                    this.form.lng = arr[0]
                    this.form.address = arr[2]
                }
            },
            immediate: true,
      "form.location": {
        // form是表单或者表格绑定的数据集,v-model='form'
        handler(val) {
          if (typeof val == "string") {
            var arr = val.split(",")
            //经纬度替换
            this.form.lat = arr[1]
            this.form.lng = arr[0]
            this.form.address = arr[2]
          }
        },
        immediate: true,
      },
    },
    computed: {
        ...mapGetters(["permission", "userInfo"]),
        permissionList () {
            return {
                addBtn: this.vaildData(this.permission.eCallEvent_add, true),
                viewBtn: this.vaildData(this.permission.eCallEvent_view, true),
                delBtn: this.vaildData(this.permission.eCallEvent_delete, true),
                editBtn: this.vaildData(this.permission.eCallEvent_edit, true),
      ...mapGetters(["permission", "userInfo"]),
      permissionList() {
        return {
          addBtn: this.vaildData(this.permission.eCallEvent_add, true),
          viewBtn: this.vaildData(this.permission.eCallEvent_view, true),
          delBtn: this.vaildData(this.permission.eCallEvent_delete, true),
          editBtn: this.vaildData(this.permission.eCallEvent_edit, true),
        }
      },
      ids() {
        let ids = []
        this.selectionList.forEach((ele) => {
          ids.push(ele.id)
        })
        return ids.join(",")
      },
      textDispose() {
        return (row, flag, type) => {
          if (row[flag] || row[type] == null) {
            return row[type]
          } else {
            if (type == 'principalIdCard') {
              return row[type].replace(/^(.{6})(?:\d+)(.{4})$/, "$1******$2")
            } else {
              return row[type].replace(/^(.{3})(?:\d+)(.{4})$/, "$1****$2")
            }
        },
        ids () {
            let ids = []
            this.selectionList.forEach((ele) => {
                ids.push(ele.id)
            })
            return ids.join(",")
        },
          }
        }
      }
    },
    methods: {
        rowSave (row, done, loading) {
            if (row.imageUrls.length > 0) {
                var urls = []
                var split = row.imageUrls.split(",")
                split.forEach(url => {
                    var names = url.split("jczz/")
                    urls.push(names[1])
                })
                row.imageUrls = urls.join(",")
            }
            add(row).then(
                () => {
                    this.onLoad(this.page)
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    })
                    done()
                },
                (error) => {
                    window.console.log(error)
                    loading()
                }
            )
        },
        rowUpdate (row, index, done, loading) {
            if (row.imageUrls.length > 0) {
                var urls = []
                var split = row.imageUrls.split(",")
                split.forEach(url => {
                    var names = url.split("jczz/")
                    urls.push(names[1])
                })
                row.imageUrls = urls.join(",")
            }
            update(row).then(
                () => {
                    this.onLoad(this.page)
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    })
                    done()
                },
                (error) => {
                    window.console.log(error)
                    loading()
                }
            )
        },
        rowDel (row) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(row.id)
                })
                .then(() => {
                    this.onLoad(this.page)
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    })
                })
        },
        searchReset () {
            this.query = {}
            this.onLoad(this.page)
        },
        searchChange (params, done) {
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
        },
        selectionChange (list) {
            this.selectionList = list
        },
        selectionClear () {
            this.selectionList = []
            this.$refs.crud.toggleSelection()
        },
        handleDelete () {
            if (this.selectionList.length === 0) {
                this.$message.warning("请选择至少一条数据")
                return
            }
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
            })
                .then(() => {
                    return remove(this.ids)
                })
                .then(() => {
                    this.onLoad(this.page)
                    this.$message({
                        type: "success",
                        message: "操作成功!",
                    })
                    this.$refs.crud.toggleSelection()
                })
        },
        beforeOpen (done, type) {
            if (["edit", "view"].includes(type)) {
                getECallEvent(this.form.id).then((res) => {
                    this.form = res.data.data
                    if (this.form.imageUrls.length > 0) {
                        var urls = []
                        var names = this.form.imageUrls.split(",")
                        names.forEach(name => {
                            urls.push(website.minioUrl + name)
                        })
                        this.form.imageUrls = urls.join(",")
                    }
                })
            }
            // con
            done()
        },
        currentChange (currentPage) {
            this.page.currentPage = currentPage
        },
        sizeChange (pageSize) {
            this.page.pageSize = pageSize
        },
        refreshChange () {
            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) => {
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.data.forEach(item => {
                    if (item.imageUrls) {
                        if (item.imageUrls.length > 0) {
                            var urls = []
                            var names = item.imageUrls.split(",")
                            names.forEach(name => {
                                urls.push(website.minioUrl + name)
                            })
                            item.imageUrls = urls.join(",")
                        }
                    }
                })
                this.loading = false
                this.selectionClear()
            })
      showStringDispose(row, type) {
        row[type] = !row[type]
      },
      rowSave(row, done, loading) {
        if (row.imageUrls.length > 0) {
          var urls = []
          var split = row.imageUrls.split(",")
          split.forEach(url => {
            var names = url.split("jczz/")
            urls.push(names[1])
          })
          row.imageUrls = urls.join(",")
        }
        add(row).then(
          () => {
            this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            })
            done()
          },
          (error) => {
            window.console.log(error)
            loading()
          }
        )
      },
      rowUpdate(row, index, done, loading) {
        if (row.imageUrls.length > 0) {
          var urls = []
          var split = row.imageUrls.split(",")
          split.forEach(url => {
            var names = url.split("jczz/")
            urls.push(names[1])
          })
          row.imageUrls = urls.join(",")
        }
        update(row).then(
          () => {
            this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            })
            done()
          },
          (error) => {
            window.console.log(error)
            loading()
          }
        )
      },
      rowDel(row) {
        this.$confirm("确定将选择数据删除?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          })
          .then(() => {
            return remove(row.id)
          })
          .then(() => {
            this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            })
          })
      },
      searchReset() {
        this.query = {}
        this.onLoad(this.page)
      },
      searchChange(params, done) {
        this.query = params
        this.page.currentPage = 1
        this.onLoad(this.page, params)
        done()
      },
      selectionChange(list) {
        this.selectionList = list
      },
      selectionClear() {
        this.selectionList = []
        this.$refs.crud.toggleSelection()
      },
      share(row) {
        console.table(row)
        this.shareCircleRow = row
        this.sharePopup = true
      },
      // 分享圈子
      shareCircle() {
        this.sharePopup = false
        let param = {}
        param.circleType = this.circleRadio
        param.houseCode = this.shareCircleRow.addressCode
        param.circleImages = this.shareCircleRow.imageUrls
        param.communityCode = this.shareCircleRow.communityCode
        param.circleText = this.shareCircleRow.remark
        param.evenType = 2
        param.eventId = this.shareCircleRow.id
        circleAdd(param).then(
          () => {
            this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            })
            done()
          },
          (error) => {
            window.console.log(error)
            loading()
          }
        )
      },
      popupClose() {
        this.sharePopup = false
      },
      handleDelete() {
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据")
          return
        }
        this.$confirm("确定将选择数据删除?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          })
          .then(() => {
            return remove(this.ids)
          })
          .then(() => {
            this.onLoad(this.page)
            this.$message({
              type: "success",
              message: "操作成功!",
            })
            this.$refs.crud.toggleSelection()
          })
      },
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
          getECallEvent(this.form.id).then((res) => {
            this.form = res.data.data
            if (this.form.imageUrls.length > 0) {
              var urls = []
              var names = this.form.imageUrls.split(",")
              names.forEach(name => {
                urls.push(website.minioUrl + name)
              })
              this.form.imageUrls = urls.join(",")
            }
          })
        }
        // con
        done()
      },
      currentChange(currentPage) {
        this.page.currentPage = currentPage
      },
      sizeChange(pageSize) {
        this.page.pageSize = pageSize
      },
      refreshChange() {
        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) => {
          const data = res.data.data
          this.page.total = data.total
          this.data = data.records
          this.data.forEach(item => {
            this.$set(item, 'phoneflag', false)
            if (item.imageUrls) {
              if (item.imageUrls.length > 0) {
                var urls = []
                var names = item.imageUrls.split(",")
                names.forEach(name => {
                  urls.push(website.minioUrl + name)
                })
                item.imageUrls = urls.join(",")
              }
            }
          })
          this.loading = false
          this.selectionClear()
        })
      }
    },
}
  }
</script>
<style>
.avue-upload__icon {
  .avue-upload__icon {
    line-height: 6;
}
</style>
  }
</style>