jiangping
2025-07-14 996154fb8fab5468cdfc99efbab606605fb762e1
admin/src/views/business/member.vue
@@ -2,95 +2,30 @@
  <TableLayout :permissions="['business:member:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="主键" prop="id">
        <el-input v-model="searchForm.id" placeholder="请输入主键" @keypress.enter.native="search"></el-input>
      <el-form-item label="手机号" prop="telephone">
        <el-input v-model="searchForm.telephone" clearable placeholder="请输入手机号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="是否已删除 0未删除 1已删除" prop="deleted">
        <el-input v-model="searchForm.deleted" placeholder="请输入是否已删除 0未删除 1已删除" @keypress.enter.native="search"></el-input>
      <el-form-item label="真实姓名" prop="name">
        <el-input v-model="searchForm.name" clearable placeholder="请输入真实姓名" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="创建人编码" prop="createUser">
        <el-input v-model="searchForm.createUser" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="创建时间" prop="createTime">
        <el-date-picker v-model="searchForm.createTime" value-format="yyyy-MM-dd" placeholder="请输入创建时间" @change="search"/>
      </el-form-item>
      <el-form-item label="更新人编码" prop="updateUser">
        <el-input v-model="searchForm.updateUser" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="更新时间" prop="updateTime">
        <el-date-picker v-model="searchForm.updateTime" value-format="yyyy-MM-dd" placeholder="请输入更新时间" @change="search"/>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="searchForm.remark" placeholder="请输入备注" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="头像" prop="coverImage">
        <el-input v-model="searchForm.coverImage" placeholder="请输入头像" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="openid" prop="openid">
        <el-input v-model="searchForm.openid" placeholder="请输入openid" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="昵称" prop="nickName">
        <el-input v-model="searchForm.nickName" placeholder="请输入昵称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="联系电话" prop="telephone">
        <el-input v-model="searchForm.telephone" placeholder="请输入联系电话" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="姓名" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入姓名" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="用工身份:0=未申请;1=申请中;2=已通过;3=未通过;" prop="workerIdentity">
        <el-input v-model="searchForm.workerIdentity" placeholder="请输入用工身份:0=未申请;1=申请中;2=已通过;3=未通过;" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="货运身份:0=未申请;1=申请中;2=已通过;3=未通过;" prop="driverIdentity">
        <el-input v-model="searchForm.driverIdentity" placeholder="请输入货运身份:0=未申请;1=申请中;2=已通过;3=未通过;" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="供餐很粉:0=未申请;1=申请中;2=已通过;3=未通过;" prop="chefIdentity">
        <el-input v-model="searchForm.chefIdentity" placeholder="请输入供餐很粉:0=未申请;1=申请中;2=已通过;3=未通过;" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="当前余额(单位:分)" prop="amount">
        <el-input v-model="searchForm.amount" placeholder="请输入当前余额(单位:分)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="历史总金额(单位:分)" prop="totalAmount">
        <el-input v-model="searchForm.totalAmount" placeholder="请输入历史总金额(单位:分)" @keypress.enter.native="search"></el-input>
      <el-form-item label="类型" prop="type">
        <el-select v-model="searchForm.type" clearable placeholder="请选择类型" @change="search">
            <el-option :value="0" label="发单方"></el-option>
            <el-option :value="1" label="接单方"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-input v-model="searchForm.status" placeholder="请输入状态" @keypress.enter.native="search"></el-input>
        <el-select v-model="searchForm.status"  @keypress.enter.native="search" clearable placeholder="状态">
          <el-option label="启用" value="0"></el-option>
          <el-option label="禁用" value="1"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="最后登录时间" prop="loginTime">
        <el-date-picker v-model="searchForm.loginTime" value-format="yyyy-MM-dd" placeholder="请输入最后登录时间" @change="search"/>
      </el-form-item>
      <el-form-item label="总登录次数" prop="loginTimes">
        <el-input v-model="searchForm.loginTimes" placeholder="请输入总登录次数" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="总接单量" prop="reciveNum">
        <el-input v-model="searchForm.reciveNum" placeholder="请输入总接单量" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="总发单量" prop="publishNum">
        <el-input v-model="searchForm.publishNum" placeholder="请输入总发单量" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="评分" prop="score">
        <el-input v-model="searchForm.score" placeholder="请输入评分" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="定位地址" prop="localtion">
        <el-input v-model="searchForm.localtion" placeholder="请输入定位地址" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="纬度" prop="lat">
        <el-input v-model="searchForm.lat" placeholder="请输入纬度" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="经度" prop="lgt">
        <el-input v-model="searchForm.lgt" placeholder="请输入经度" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="省份" prop="province">
        <el-input v-model="searchForm.province" placeholder="请输入省份" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="城市" prop="city">
        <el-input v-model="searchForm.city" placeholder="请输入城市" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="区县" prop="area">
        <el-input v-model="searchForm.area" placeholder="请输入区县" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="是否接受自动派单:0=否;1=是;" prop="autoReciveStatus">
        <el-input v-model="searchForm.autoReciveStatus" placeholder="请输入是否接受自动派单:0=否;1=是;" @keypress.enter.native="search"></el-input>
      <el-form-item label="注册时间" prop="eventType">
        <el-date-picker type="datetime" v-model="searchForm.startTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
                        placeholder="请选择开始时间" />-
        <el-date-picker type="datetime" v-model="searchForm.endTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
                        placeholder="请选择结束时间" />
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -104,48 +39,50 @@
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">删除</el-button></li>
      </ul>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="id" label="主键" min-width="100px"></el-table-column>
        <el-table-column prop="deleted" label="是否已删除 0未删除 1已删除" min-width="100px"></el-table-column>
        <el-table-column prop="createUser" label="创建人编码" min-width="100px"></el-table-column>
        <el-table-column prop="createTime" label="创建时间" min-width="100px"></el-table-column>
        <el-table-column prop="updateUser" label="更新人编码" min-width="100px"></el-table-column>
        <el-table-column prop="updateTime" label="更新时间" min-width="100px"></el-table-column>
        <el-table-column prop="remark" label="备注" min-width="100px"></el-table-column>
        <el-table-column prop="coverImage" label="头像" min-width="100px"></el-table-column>
        <el-table-column prop="openid" label="openid" min-width="100px"></el-table-column>
        <el-table-column prop="openid" label="openid" min-width="100px">
          <template slot-scope="{row}">
           <span style="cursor: pointer;color: #2E68EC" @click="openDetail(row)">{{row.openid}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="telephone" label="手机号" min-width="100px"></el-table-column>
        <el-table-column prop="nickName" label="昵称" min-width="100px"></el-table-column>
        <el-table-column prop="telephone" label="联系电话" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="姓名" min-width="100px"></el-table-column>
        <el-table-column prop="workerIdentity" label="用工身份:0=未申请;1=申请中;2=已通过;3=未通过;" min-width="100px"></el-table-column>
        <el-table-column prop="driverIdentity" label="货运身份:0=未申请;1=申请中;2=已通过;3=未通过;" min-width="100px"></el-table-column>
        <el-table-column prop="chefIdentity" label="供餐很粉:0=未申请;1=申请中;2=已通过;3=未通过;" min-width="100px"></el-table-column>
        <el-table-column prop="amount" label="当前余额(单位:分)" min-width="100px"></el-table-column>
        <el-table-column prop="totalAmount" label="历史总金额(单位:分)" min-width="100px"></el-table-column>
        <el-table-column prop="status" label="状态" min-width="100px"></el-table-column>
        <el-table-column prop="loginTime" label="最后登录时间" min-width="100px"></el-table-column>
        <el-table-column prop="loginTimes" label="总登录次数" min-width="100px"></el-table-column>
        <el-table-column prop="reciveNum" label="总接单量" min-width="100px"></el-table-column>
        <el-table-column prop="publishNum" label="总发单量" min-width="100px"></el-table-column>
        <el-table-column prop="score" label="评分" min-width="100px"></el-table-column>
        <el-table-column prop="localtion" label="定位地址" min-width="100px"></el-table-column>
        <el-table-column prop="lat" label="纬度" min-width="100px"></el-table-column>
        <el-table-column prop="lgt" label="经度" min-width="100px"></el-table-column>
        <el-table-column prop="province" label="省份" min-width="100px"></el-table-column>
        <el-table-column prop="city" label="城市" min-width="100px"></el-table-column>
        <el-table-column prop="area" label="区县" min-width="100px"></el-table-column>
        <el-table-column prop="autoReciveStatus" label="是否接受自动派单:0=否;1=是;" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:member:update', 'business:member:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
        <el-table-column prop="name" label="真实姓名" min-width="100px"></el-table-column>
        <el-table-column prop="workerIdentity" label="身份" min-width="100px">
          <template slot-scope="{row}">
            发单方<span v-if="row.workerIdentity == 2 || row.driverIdentity == 2 || row.chefIdentity == 2">{{'  |  接单方'}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="amount" label="当前余额(元)" min-width="100px">
          <template slot-scope="{row}">
            {{((row.amount || 0)/100).toFixed(2)}}
          </template>
        </el-table-column>
        <el-table-column prop="createTime" label="注册时间" min-width="100px"></el-table-column>
        <el-table-column prop="autoReciveStatus" label="接受自动派单" min-width="100px">
            <template slot-scope="{row}">
              {{row.autoReciveStatus ==1?"是":"否"}}
            </template>
        </el-table-column>
        <el-table-column label="状态">
          <template slot-scope="{row}">
            <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
                       inactive-color="#ff4949" :active-value="0" :inactive-value="1">
            </el-switch>
          </template>
        </el-table-column>
       <el-table-column
              v-if="containPermissions(['business:member:update', 'business:member:delete'])"
              label="操作"
              min-width="120"
              fixed="right"
            >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaMemberWindow.open('编辑会员信息表', row)" icon="el-icon-edit" v-permissions="['business:member:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">删除</el-button>
@@ -160,6 +97,7 @@
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaMemberDetailWindow ref="OperaMemberDetailWindow" />
    <OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
@@ -169,44 +107,21 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaMemberWindow from '@/components/business/OperaMemberWindow'
import OperaMemberDetailWindow from '@/components/business/OperaMemberDetailWindow'
export default {
  name: 'Member',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaMemberWindow },
  components: { TableLayout, Pagination,OperaMemberDetailWindow, OperaMemberWindow },
  data () {
    return {
      // 搜索
      searchForm: {
        id: '',
        deleted: '',
        createUser: '',
        createTime: '',
        updateUser: '',
        updateTime: '',
        remark: '',
        coverImage: '',
        openid: '',
        nickName: '',
        type: 0,
        startTime: '',
        endTime: '',
        telephone: '',
        name: '',
        workerIdentity: '',
        driverIdentity: '',
        chefIdentity: '',
        amount: '',
        totalAmount: '',
        status: '',
        loginTime: '',
        loginTimes: '',
        reciveNum: '',
        publishNum: '',
        score: '',
        localtion: '',
        lat: '',
        lgt: '',
        province: '',
        city: '',
        area: '',
        autoReciveStatus: ''
        status: ''
      }
    }
  },
@@ -218,6 +133,26 @@
      'field.main': 'id'
    })
    this.search()
  },
  methods: {
    openDetail (row) {
      this.$refs.OperaMemberDetailWindow.open('用户详情', row.id)
    },
    changeStatus (e, row) {
      this.working = true
      this.api.updateStatus({ id: row.id, workStatus: e })
        .then(res => {
          this.$tip.apiSuccess(res || '操作成功')
          this.search()
        })
        .catch(e => {
          this.$tip.apiFailed(e)
        })
        .finally(() => {
          this.working = false
        })
        .catch(() => { })
    }
  }
}
</script>