jiangping
2024-05-14 6461a670fb8b3c7db3a74e0159727b5940808348
最新版本
已添加3个文件
已修改6个文件
167 ■■■■ 文件已修改
admin/public/template/member.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
admin/public/template/traintime.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/member.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/style/style.scss 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberImportWindow.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberWindow.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/internalMember.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/relativeMember.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/userAction.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/public/template/member.xlsx
Binary files differ
admin/public/template/traintime.xlsx
Binary files differ
admin/src/api/business/member.js
@@ -45,6 +45,9 @@
export function updateCanVisit (data) {
  return request.post('/visitsAdmin/cloudService/business/member/updateCanVisitById', data)
}
export function importExcel (data) {
  return request.post('/visitsAdmin/cloudService/business/member/importExcel', data)
}
export function batchRoleAuth (data) {
  return request.post('/visitsAdmin/cloudService/business/member/batchRoleAuth', data)
}
admin/src/assets/style/style.scss
@@ -93,4 +93,34 @@
}
  .apply-status5,.change-status7,.settle-status7,.tax-status1,.du-status1,.settle-status4  {
  color: #00BA92  !important;
}
::v-deep  .el-dialog{
    margin-top: 300px;
  }
.center-title .el-dialog__title {
  text-align: center;
  width: 100%;
  font-size: 18px;
  font-weight: bold;
}
.tip {
  em {
    font-style: normal;
    color: $primary-color;
    font-weight: bold;
  }
}
.tip-warn {
  margin: 4px 0 12px 0;
  font-size: 12px;
  color: #999;
  i {
    color: orange;
    margin-right: 4px;
    font-size: 14px;
    position: relative;
    top: 1px;
  }
}
admin/src/components/business/OperaMemberImportWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
<template>
  <el-dialog
      class="center-title"
      :title="title"
      width="500px"
      top="30vh"
      :visible.sync="visible"
      :confirm-working="isWorking"
      @confirm="confirm"
  >
    <p class="tip-warn"><i class="el-icon-warning"></i>导入说明:<br>
      1.请先下载文件模板,并按照模板要去填写表格内容;<br>
    </p>
    <el-form class="demo-form-inline" >
      <el-form-item label="人员名单" required>
        <div style="width: 100%;display: flex;align-items: center;">
          <el-button type="primary" @click="clickRef">点击上传</el-button>
          <el-button type="text" @click="exportTemplate">点击下载模版.EXCEL</el-button>
        </div>
        <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div>
      </el-form-item>
    </el-form>
    <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
    <template   v-slot:footer>
      <el-button @click="visible=false">返回</el-button>
    </template>
  </el-dialog>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { importExcel } from '@/api/business/member'
export default {
  name: 'OperaMemberImportWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
    return {
      fileName: '',
      companyType: 0
    }
  },
  methods: {
    open (title, companyType) {
      this.title = title
      this.fileName = ''
      this.visible = true
      this.companyType = companyType
    },
    // å¯¼å‡ºæ¨¡æ¿
    exportTemplate () {
      // æŠ•保申请
      window.open('/template/member.xlsx')
    },
    clickRef () {
      this.$refs.fileExcel.click()
    },
    result (e) {
      const data = new FormData()
      data.append('file', e.target.files[0])
      importExcel(data)
        .then(res => {
          this.$message.success('导入成功')
          this.$emit('success')
          this.visible = false
        })
        .catch(err => {
          this.$message.error(err)
          this.fileName = ''
        })
        .finally(() => {
          this.$refs.fileExcel.value = null
        })
    }
  }
}
</script>
<style lang="scss" scoped>
</style>
admin/src/components/business/OperaMemberWindow.vue
@@ -17,12 +17,16 @@
                  @change="handleChangeCompany"
                  :show-all-levels="false"
                  clearable
                  filterable
                  :props="departprops"
              ></el-cascader>
              <div style="font-size: 12px;color: #F56C6C"  >
                æ³¨ï¼šä»…支持选择 ã€{{companyType ===0?'相关方组织':'内部组织'}}】
              </div>
            </el-form-item>
            <el-form-item label="手机号" prop="phone">
                <el-input v-model="form.phone" placeholder="请输入手机号" v-trim/>
              <div style="color: #F56C6C;font-size: 12px">(注:员工手机号将作为平台登录账号,初始密码为系统默认密码配置项)</div>
              <div style="color: #F56C6C;font-size: 12px">注:员工手机号将作为平台登录账号,初始密码为系统默认密码配置项</div>
            </el-form-item>
            <el-form-item label="身份证号" prop="idcardNo" v-if="form.id ==null">
                <el-input v-model="form.idcardNo" placeholder="请输入身份证号" v-trim/>
@@ -30,7 +34,7 @@
            <el-form-item label="修改身份证号" prop="idcardNoNew" v-if="form.id !=null">
                <el-input v-model="form.idcardNoNew" placeholder="可修改身份证号" v-trim/>
              <div style="font-size: 12px" v-if="form.id !=null">
                ï¼ˆæ³¨ï¼šå½“前身份证号为<span style="color: #F56C6C">【{{form.idcardDecode}}】</span>,如需修改,请在输入栏填写新的身份证号!)
                æ³¨ï¼šå½“前身份证号为<span style="color: #F56C6C">【{{form.idcardDecode}}】</span>,如需修改,请在输入栏填写新的身份证号!
              </div>
            </el-form-item>
            <el-form-item label="工号" prop="code">
@@ -68,6 +72,7 @@
        value: 'id',
        checkStrictly: true
      },
      companyType:0,
      department: [],
      // è¡¨å•数据
      form: {
@@ -113,10 +118,11 @@
     * @title çª—口标题
     * @target ç¼–辑的对象
     */
    open (title, target, depart) {
    open (title, target, depart,companyType) {
      this.title = title
      this.department = depart
      this.visible = true
      this.companyType = companyType
      // æ–°å»º
      if (target == null) {
        this.$nextTick(() => {
@@ -142,7 +148,6 @@
            }
          })
        }
        console.log(that.form.company)
      })
    },
    // ä¸Šä¼ å›¾ç‰‡
admin/src/views/business/internalMember.vue
@@ -51,7 +51,8 @@
<!--
                <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">同步</el-button></li>
-->
                <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('新建员工',null,department,1)"  icon="el-icon-plus" v-permissions="['business:member:create']">新建员工</el-button></li>
                <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('新建员工',null,department,searchForm.companyType)"  icon="el-icon-plus" v-permissions="['business:member:create']">新建员工</el-button></li>
                <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('人员导入',department,searchForm.companyType)"  icon="el-icon-plus" v-permissions="['business:member:create']">人员导入</el-button></li>
                <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">批量删除</el-button></li>
                <li><el-button type="primary" v-permissions="['business:empower:create']"  @click="startEmpowerBatch()"  icon="el-icon-plus">下发授权</el-button></li>
            </ul>
admin/src/views/business/relativeMember.vue
@@ -47,12 +47,14 @@
        </template>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:member:delete','business:member:create,business:empower:create']">
            <ul class="toolbar" v-permissions="['business:member:delete','business:member:create,business:empower:create','business:traintime:create']">
<!--
                <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">同步</el-button></li>
-->
                <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('新建员工',null,department,0)"  icon="el-icon-plus" v-permissions="['business:member:create']">新建员工</el-button></li>
                <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">批量删除</el-button></li>
              <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('新建员工',null,department,searchForm.companyType)"  icon="el-icon-plus" v-permissions="['business:member:create']">新建员工</el-button></li>
              <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('人员导入',department,searchForm.companyType)"  icon="el-icon-plus" v-permissions="['business:member:create']">人员导入</el-button></li>
              <li><el-button type="primary" @click="$refs.OperaTrainTimeImportWindow.open('培训期导入',department,searchForm.companyType)"  icon="el-icon-plus" v-permissions="['business:traintime:create']">培训期导入</el-button></li>
              <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">批量删除</el-button></li>
                <li><el-button type="primary" v-permissions="['business:empower:create']"  @click="startEmpowerBatch()"  icon="el-icon-plus">下发授权</el-button></li>
            </ul>
            <el-table
@@ -182,6 +184,7 @@
            <!--    æŸ¥çœ‹äººå‘˜å¼€å¡è®°å½•    -->
            <cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" />
            <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" />
            <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" />
            <OperaMemberRoleWindow ref="OperaMemberRoleWindow" @success="handlePageChange" />
        </template>
    </TableLayout1>
@@ -194,13 +197,14 @@
import cardOpeningRecord from '@/components/business/cardOpeningRecord'
import Tree from '@/components/common/Tree'
import OperaMemberWindow from '@/components/business/OperaMemberWindow'
import OperaMemberImportWindow from '@/components/business/OperaMemberImportWindow'
import OperaMemberRoleWindow from '@/components/business/OperaMemberRoleWindow'
import { fetchList } from '@/api/business/company'
import { memberSync, roleAuth, updateCanVisit, updateHead, updateWorkStatus } from '@/api/business/member'
export default {
  name: 'internalMember',
  extends: BaseTable,
  components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow, OperaMemberRoleWindow },
  components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow, OperaMemberRoleWindow ,OperaMemberImportWindow},
  data () {
    return {
      TreeList: [],
admin/src/views/business/userAction.vue
@@ -21,7 +21,7 @@
            <el-form-item label="手机号" prop="mobile">
                <el-input v-model="searchForm.mobile" placeholder="请输入手机号" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="历史账号状态" prop="beforeStatus">
<!--            <el-form-item label="历史账号状态" prop="beforeStatus">
                <el-select v-model="searchForm.beforeStatus" placeholder="请选择">
                    <el-option label="解冻" :value="0"></el-option>
                    <el-option label="冻结" :value="1"></el-option>
@@ -34,7 +34,7 @@
                    <el-option label="手动离场" :value="8"></el-option>
                    <el-option label="删除" :value="9"></el-option>
                </el-select>
            </el-form-item>
            </el-form-item>-->
            <el-form-item label="操作类型" prop="type">
                <el-select v-model="searchForm.type" placeholder="请选择">
                    <el-option label="解冻" :value="0"></el-option>
@@ -77,7 +77,7 @@
                    </template>
                </el-table-column>
                <el-table-column prop="mobile" label="手机号"></el-table-column>
                <el-table-column label="历史状态">
<!--                <el-table-column label="历史状态">
                    <template slot-scope="{row}">
                        <span v-if="row.beforeStatus === 0">解冻</span>
                        <span v-else-if="row.beforeStatus === 1">冻结</span>
@@ -91,21 +91,9 @@
                        <span v-else-if="row.beforeStatus === 9">删除</span>
                        <span v-else>正常</span>
                    </template>
                </el-table-column>
                <el-table-column label="操作">
                    <template slot-scope="{row}">
                        <span v-if="row.type === 0">解冻</span>
                        <span v-if="row.type === 1">冻结</span>
                        <span v-if="row.type === 2">拉黑</span>
                        <span v-if="row.type === 3">恢复</span>
                        <span v-if="row.type === 4">设为拜访人</span>
                        <span v-if="row.type === 5">取消拜访人</span>
                        <span v-if="row.type === 6">设为高级审批人</span>
                        <span v-if="row.type === 7">取消高级审批人</span>
                        <span v-if="row.type === 8">手动离场</span>
                        <span v-if="row.type === 9">删除</span>
                    </template>
                </el-table-column>
                </el-table-column>-->
              <el-table-column  prop="typeName" label="操作类型" />
              <el-table-column  prop="remark" label="操作内容" width="350"/>
                <el-table-column prop="createDate" label="操作时间"></el-table-column>
            </el-table>
            <pagination