k94314517
2025-07-15 9d7979a2933632bc2083c7f0b3e4a793b0dc3f3e
Merge remote-tracking branch 'origin/master'
已修改8个文件
145 ■■■■ 文件已修改
admin/src/api/business/identityInfo.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/base/BaseOpera.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaIdentityDetailWindow.vue 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberDetailWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/identityInfo.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/member.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/model/IdentityInfo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/identityInfo.js
@@ -16,6 +16,9 @@
export function create (data) {
  return request.post('/business/identityInfo/create', data)
}
export function audit (data) {
  return request.post('/business/identityInfo/audit', data)
}
// 修改
export function updateById (data) {
admin/src/components/base/BaseOpera.vue
@@ -1,4 +1,6 @@
<script>
import {mapState} from "vuex";
export default {
  name: 'BaseOpera',
  data () {
@@ -13,6 +15,9 @@
        'field.id': 'id'
      }
    }
  },
  computed: {
    ...mapState(['userInfo']),
  },
  methods: {
    /**
@@ -125,6 +130,29 @@
            this.isWorking = false
          })
      })
    },
    /**
     * 是否包含指定权限
     *
     * @param permissions 目标权限数组
     * @returns {boolean}
     */
    containPermissions (permissions) {
      if (permissions == null) {
        return true
      }
      if (this.userInfo == null) {
        return false
      }
      if (this.userInfo.permissions == null || this.userInfo.permissions.length === 0) {
        return false
      }
      for (const code of permissions) {
        if (this.userInfo.permissions.findIndex(p => p === code) > -1) {
          return true
        }
      }
      return false
    }
  }
}
admin/src/components/business/OperaIdentityDetailWindow.vue
@@ -7,7 +7,7 @@
    :confirm-working="isWorking"
    @close="close"
    @confirm="confirm">
    <div style="width: 100%; position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white">
    <div style="width: calc(100% - 32px); position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white">
      <div style="display: flex;background: #e4ecfe;padding: 20px">
        <div style="width: 60px;">
          <div class="home_title" v-if="info">
@@ -21,8 +21,7 @@
        <div style="width: calc(100% - 60px);">
          <div class="home_title" v-if="info">
            <div class="left">
              <span class="m10">昵称:{{info.nickName }}</span>
              <span class="mr10 bluebtn" :title="'姓名:'+(info.name||'未设置姓名')"  >({{(info.name||'未设置姓名') }})</span>
              <span class="m10">昵称:{{info.nickName }}  <span class="ml10 bluebtn" :title="'姓名:'+(info.name||'未设置姓名')"  >({{(info.name||'未设置姓名') }})</span></span>
              <el-tag type="primary" class="mr10 tag1">发单方</el-tag>
              <el-tag type="success" class="mr10 tag1" v-if="info.workerIdentity == 2 || info.driverIdentity == 2 || info.chefIdentity == 2">接单方</el-tag>
            </div>
@@ -41,7 +40,7 @@
              <span class="m10" v-if="item.type ==0">用工认证</span>
              <span class="m10" v-if="item.type ==1">货运认证</span>
              <span class="m10" v-if="item.type ==2">供餐认证</span>
              <el-tag type="primary" class="ml10 tag2" v-if="item.auditStatus == 1">认证中</el-tag>
              <el-tag type="primary" class="ml10 tag2" v-if="item.auditStatus == 1">申请中</el-tag>
              <el-tag type="success" class="ml10 tag2" v-if="item.auditStatus == 2">认证通过</el-tag>
              <el-tag type="danger" class="ml10 tag2" v-if="item.auditStatus == 3">认证失败</el-tag>
          </div>
@@ -50,6 +49,7 @@
              <span class="label"> 认证类型:</span> <span class="txt">{{item.authType == 0? '个人':'企业' }}</span>
              <span class="label"> 联系人:</span> <span class="txt">{{item.linkName || '' }}</span>
              <span class="label"> 联系方式:</span> <span class="txt">{{item.telephone || '' }}</span>
              <span class="label"> 申请时间:</span> <span class="txt">{{item.createTime || '' }}</span>
            </div>
            <template v-if="item.authType ==1">
              <div class="line">
@@ -74,6 +74,15 @@
          </div>
          </div>
        </div>
      <div class="line bottom"  v-if="tableData2&& tableData2.length>0 && tableData2[0].auditStatus == 1 && containPermissions(['business:identityinfo:audit'])"   >
        <el-form :model="form" ref="formCheck" :rules="rules">
          <el-form-item label="认证审核说明" style="font-size: 14px" prop="auditRemark">
            <el-input  type="textarea" rows="5" v-model="form.auditRemark" placeholder="请输入认证审核备注" v-trim/>
          </el-form-item>
        </el-form>
        <el-button @click="checkDo(2)" type="primary" class="status-red">同意</el-button>
        <el-button  @click="checkDo(3)" type="danger" >拒绝</el-button>
      </div>
    </div>
  </GlobalWindow>
</template>
@@ -82,7 +91,7 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import BaseOpera from '@/components/base/BaseOpera'
import { getById } from '@/api/business/member'
import { fetchList as renzhengList} from '@/api/business/identityInfo'
import { fetchList as renzhengList,audit } from '@/api/business/identityInfo'
export default {
  components: {
    GlobalWindow
@@ -90,6 +99,11 @@
  extends: BaseOpera,
  data () {
    return {
      form: {
        id: null,
        auditRemark: null
      },
      rules: { auditRemark: [{ required: true, message: '请输入认证审核备注' }] },
      id: '',
      memberId: '',
      visible: false,
@@ -101,7 +115,7 @@
      total: 0,
      tableData: {},
      tableData1: {},
      tableData2:[],
      tableData2: [],
      page0: 1,
      page1: 1,
      loading: false,
@@ -129,6 +143,7 @@
      this.tableData1 = {}
      this.tableData2 = []
      this.id = row.id
      this.form.id = this.id
      this.memberId = row.memberId
      this.searchForm = {
        type: 0,
@@ -152,12 +167,37 @@
    close () {
    },
    checkDo (status) {
      console.log( this.$refs.formCheck.length)
      this.$refs.formCheck.validate((valid) => {
        if (!valid) {
          return
        }
        this.$dialog.actionConfirm('您确认【' + (status === 3 ? '拒绝' : '同意') + '】该申请吗?','操作确认')
          .then(() => {
            this.dealing = true
            audit({
              id: this.id,
              auditStatus: status,
              auditRemark: this.form.auditRemark
            })
              .then(res => {
                this.$tip.apiSuccess('处理成功')
                this.getData()
                this.isShowProblem = false
              })
              .finally(() => {
                this.dealing = false
              })
          })
      })
    },
    getRenzhengList () {
      this.loading = true
      renzhengList({
        page: 1,
        capacity: 1000000,
        model:{
        model: {
          memberId: this.memberId || -1,
          id: this.id || -1
        }
@@ -176,6 +216,15 @@
<style lang="scss" scoped>
@import '@/assets/style/variables.scss';
.bottom{
  text-align: center;
  display: block;
  height: auto;
  background-color: #e4ecfe;
  width: calc(100% - 32px);
  z-index: 999;
  padding: 16px;
}
.renzheng{
  margin: 0px 0px 50px 20px;
  width: calc(100% - 60px);
admin/src/components/business/OperaMemberDetailWindow.vue
@@ -7,7 +7,7 @@
    :confirm-working="isWorking"
    @close="close"
    @confirm="confirm">
    <div style="width: 100%; position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white">
    <div style="width: calc(100% - 32px); position: sticky;padding: 12px 16px; top: 0px; left: 0; z-index: 999; background-color: white">
      <div style="display: flex;background: #e4ecfe;padding: 20px">
        <div style="width: 60px;">
          <div class="home_title" v-if="info">
@@ -21,8 +21,7 @@
        <div style="width: calc(100% - 60px);">
          <div class="home_title" v-if="info">
            <div class="left">
              <span class="m10">昵称:{{info.nickName }}</span>
              <span class="mr10 bluebtn" :title="'姓名:'+(info.name||'未设置姓名')"  >({{(info.name||'未设置姓名') }})</span>
              <span class="m10">昵称:{{info.nickName }}  <span class="ml10 bluebtn" :title="'姓名:'+(info.name||'未设置姓名')"  >({{(info.name||'未设置姓名') }})</span></span>
              <el-tag type="primary" class="mr10 tag1">发单方</el-tag>
              <el-tag type="success" class="mr10 tag1" v-if="info.workerIdentity == 2 || info.driverIdentity == 2 || info.chefIdentity == 2">接单方</el-tag>
            </div>
@@ -141,7 +140,7 @@
              <span class="m10" v-if="item.type ==0">用工认证</span>
              <span class="m10" v-if="item.type ==1">货运认证</span>
              <span class="m10" v-if="item.type ==2">供餐认证</span>
              <el-tag type="primary" class="ml10 tag2" v-if="item.auditStatus == 1">认证中</el-tag>
              <el-tag type="primary" class="ml10 tag2" v-if="item.auditStatus == 1">申请中</el-tag>
              <el-tag type="success" class="ml10 tag2" v-if="item.auditStatus == 2">认证通过</el-tag>
              <el-tag type="danger" class="ml10 tag2" v-if="item.auditStatus == 3">认证失败</el-tag>
          </div>
@@ -150,6 +149,7 @@
              <span class="label"> 认证类型:</span> <span class="txt">{{item.authType == 0? '个人':'企业' }}</span>
              <span class="label"> 联系人:</span> <span class="txt">{{item.linkName || '' }}</span>
              <span class="label"> 联系方式:</span> <span class="txt">{{item.telephone || '' }}</span>
              <span class="label"> 申请时间:</span> <span class="txt">{{item.createTime || '' }}</span>
            </div>
            <template v-if="item.authType ==1">
              <div class="line">
admin/src/views/business/identityInfo.vue
@@ -46,7 +46,13 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="auditStatus" label="审核状态" min-width="100px" fixed="left">
          <template slot-scope="{row}">
            <span class="bluestate" v-if="row.auditStatus ==1">申请中</span>
            <span class="greenstate" v-if="row.auditStatus ==2">已通过</span>
            <span class="redstate" v-if="row.auditStatus ==3">未通过</span>
          </template>
        </el-table-column>
        <el-table-column prop="openid" label="openid" min-width="100px"></el-table-column>
        <el-table-column prop="memberName" label="会员昵称" min-width="100px"></el-table-column>
        <el-table-column prop="type" label="类型" min-width="100px">
@@ -54,13 +60,6 @@
           <span v-if="row.type ==0">用工身份</span>
           <span v-if="row.type ==1">货运身份</span>
           <span v-if="row.type ==2">供餐身份</span>
          </template>
        </el-table-column>
        <el-table-column prop="auditStatus" label="审核状态" min-width="100px">
          <template slot-scope="{row}">
            <span class="bluestate" v-if="row.auditStatus ==1">申请中</span>
            <span class="greenstate" v-if="row.auditStatus ==2">已通过</span>
            <span class="redstate" v-if="row.auditStatus ==3">未通过</span>
          </template>
        </el-table-column>
        <el-table-column prop="authType" label="认证类型" min-width="100px">
admin/src/views/business/member.vue
@@ -77,7 +77,7 @@
            </el-switch>
          </template>
        </el-table-column>
<!--       <el-table-column
      <el-table-column
              v-if="containPermissions(['business:member:update', 'business:member:delete'])"
              label="操作"
              min-width="120"
@@ -87,7 +87,7 @@
            <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>
          </template>
        </el-table-column>-->
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
server/services/src/main/java/com/doumee/dao/business/model/IdentityInfo.java
@@ -37,7 +37,6 @@
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
    @ApiModelProperty(value = "更新人编码", example = "1")
@@ -46,7 +45,6 @@
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;
    @ApiModelProperty(value = "备注")
@@ -111,7 +109,6 @@
    @ApiModelProperty(value = "认证审批时间")
    @ExcelColumn(name="认证审批时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date auditTime;
    @ApiModelProperty(value = "认证审批备注")
server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
@@ -286,7 +286,7 @@
            queryWrapper.le(IdentityInfo::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.eq(IdentityInfo::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.like(IdentityInfo::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.eq(IdentityInfo::getType, pageWrap.getModel().getType());
@@ -298,16 +298,16 @@
            queryWrapper.eq(IdentityInfo::getAuthType, pageWrap.getModel().getAuthType());
        }
        if (pageWrap.getModel().getLinkName() != null) {
            queryWrapper.eq(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName());
            queryWrapper.like(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName());
        }
        if (pageWrap.getModel().getTelephone() != null) {
            queryWrapper.eq(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone());
            queryWrapper.like(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone());
        }
        if (pageWrap.getModel().getLocation() != null) {
            queryWrapper.eq(IdentityInfo::getLocation, pageWrap.getModel().getLocation());
            queryWrapper.like(IdentityInfo::getLocation, pageWrap.getModel().getLocation());
        }
        if (pageWrap.getModel().getCompanyName() != null) {
            queryWrapper.eq(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName());
            queryWrapper.like(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName());
        }
        if (pageWrap.getModel().getLat() != null) {
            queryWrapper.eq(IdentityInfo::getLat, pageWrap.getModel().getLat());
@@ -323,15 +323,10 @@
            queryWrapper.le(IdentityInfo::getAuditTime, Utils.Date.getEnd(pageWrap.getModel().getAuditTime()));
        }
        if (pageWrap.getModel().getAuditRemark() != null) {
            queryWrapper.eq(IdentityInfo::getAuditRemark, pageWrap.getModel().getAuditRemark());
            queryWrapper.like(IdentityInfo::getAuditRemark, pageWrap.getModel().getAuditRemark());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        queryWrapper.orderByAsc(IdentityInfo::getAuditStatus );
        queryWrapper.orderByDesc(IdentityInfo::getCreateTime );
        PageData<IdentityInfo> result = PageData.from(identityInfoMapper.selectJoinPage(page,IdentityInfo.class, queryWrapper));
        if(result!=null && result.getRecords()!=null){
            String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()