luoyb
2021-02-17 ee36a9c0c594c2a7eb955444b5d390e8fcd0ef2c
Merge remote-tracking branch 'origin/master'
1个文件已添加
1个文件已修改
1301 ■■■■■ 已修改文件
src/views/yunpan/fujian.vue 683 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/yunpan/uploadfj.vue 618 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/yunpan/fujian.vue
@@ -7,8 +7,8 @@
            <div class="zs-title">附件管理</div>
          </el-col>
          <el-col :span="6" class="search">
            <el-input v-model="input" size="medium" style="width:200px">
              <i slot="suffix" class="el-input__icon el-icon-search" />
            <el-input v-model="empName" class="input-empName" maxlength="10" size="medium" style="width:220px">
              <el-button slot="append" icon="el-icon-search" @click.native="findEmpAccessory()" />
            </el-input>
            <el-button
              type="danger"
@@ -18,46 +18,37 @@
            >高级查询</el-button>
          </el-col>
        </el-row>
        <form v-show="advancedQueryShow">
        <el-form v-show="advancedQueryShow" ref="queryform" :model="queryform">
          <el-row>
            <el-col
              :span="3"
            >员工编号:
              <el-input v-model="input" size="small" style="width:90px" />
            <el-col :span="3">员工编号:
              <el-input v-model="queryform.empNumb" size="small" maxlength="20" style="width:85px" />
            </el-col>
            <el-col
              :span="3"
            >姓名:
              <el-input v-model="input" size="small" style="width:110px" />
            <el-col :span="3">姓名:
              <el-input v-model="queryform.empName" size="small" maxlength="10" style="width:110px" />
            </el-col>
            <el-col
              :span="4"
            >身份证号:
              <el-input v-model="input" size="small" style="width:140px" />
            <el-col :span="4">身份证号:
              <el-input v-model="queryform.certificateNumb" size="small" maxlength="18" style="width:140px" />
            </el-col>
            <el-col
              :span="3"
            >护卫点:
              <el-input v-model="input" size="small" style="width:100px" />
            <el-col :span="3">护卫点:
              <el-input v-model="queryform.deptName" size="small" maxlength="20" style="width:100px" />
            </el-col>
            <el-col
              :span="8"
            >入职日期:
            <el-col :span="8">入职日期:
              <el-date-picker
                v-model="value2"
                v-model="queryform.entryDate"
                size="small"
                type="daterange"
                align="right"
                unlink-panels
                range-separator="至"
                value-format="yyyy-MM-dd"
                start-placeholder="开始日期"
                end-placeholder="结束日期"
                :picker-options="pickerOptions"
              />
            </el-col>
            <el-col :span="3">
              <el-button size="mini" class="hr-but-all" type="primary">查询</el-button>
              <el-button size="mini" class="hr-but" type="danger">重置</el-button>
              <el-button size="mini" class="hr-but-all" type="primary" @click="findEmpAccessoryAll()">查询</el-button>
              <el-button size="mini" class="hr-but" type="danger" @click="resetQueryform()">重置</el-button>
            </el-col>
          </el-row>
          <el-row>
@@ -66,83 +57,93 @@
                <tr>
                  <td class="td">性别</td>
                  <td class="td-group">
                    <el-radio-group v-model="radio" class="fj-radio">
                      <el-radio :label="3">全部</el-radio>
                      <el-radio :label="6">男性</el-radio>
                      <el-radio :label="9">女性</el-radio>
                    <el-radio-group v-model="queryform.sex" class="fj-radio">
                      <el-radio :label="-1">全部</el-radio>
                      <el-radio :label="1">男性</el-radio>
                      <el-radio :label="2">女性</el-radio>
                    </el-radio-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">最高学历</td>
                  <td class="td-group">
                    <el-radio-group v-model="radio" class="fj-radio">
                      <el-radio :label="3">全部</el-radio>
                      <el-radio :label="6">初中</el-radio>
                      <el-radio :label="9">高中</el-radio>
                      <el-radio :label="9">大专</el-radio>
                      <el-radio :label="9">本科</el-radio>
                      <el-radio :label="9">硕士</el-radio>
                      <el-radio :label="9">博士</el-radio>
                    <el-radio-group v-model="queryform.education" class="fj-radio">
                      <el-radio :label="-1">全部</el-radio>
                      <el-radio :label="91">无学历</el-radio>
                      <el-radio :label="81">小学</el-radio>
                      <el-radio :label="71">初中</el-radio>
                      <el-radio :label="61">高中</el-radio>
                      <el-radio :label="42">中技</el-radio>
                      <el-radio :label="41">中专</el-radio>
                      <el-radio :label="31">大学专科</el-radio>
                      <el-radio :label="21">大学本科</el-radio>
                      <el-radio :label="11">硕士</el-radio>
                      <el-radio :label="10">博士</el-radio>
                    </el-radio-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">政治面貌</td>
                  <td class="td-group">
                    <el-radio-group v-model="radio" class="fj-radio">
                      <el-radio :label="3">全部</el-radio>
                      <el-radio :label="6">党员</el-radio>
                      <el-radio :label="9">团员</el-radio>
                      <el-radio :label="9">群众</el-radio>
                    </el-radio-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">入职日期</td>
                  <td class="td-group">
                    <el-radio-group v-model="radio" class="fj-radio">
                      <el-radio :label="3">全部</el-radio>
                    <el-radio-group v-model="queryform.politics" class="fj-radio">
                      <el-radio :label="-1">全部</el-radio>
                      <el-radio label="01">党员</el-radio>
                      <el-radio label="02">预备</el-radio>
                      <el-radio label="03">共青</el-radio>
                      <el-radio label="04">民革</el-radio>
                      <el-radio label="05">民盟</el-radio>
                      <el-radio label="06">民建</el-radio>
                      <el-radio label="07">民进</el-radio>
                      <el-radio label="08">农工</el-radio>
                      <el-radio label="09">致公</el-radio>
                      <el-radio label="10">九三</el-radio>
                      <el-radio label="11">台盟</el-radio>
                      <el-radio label="12">民主</el-radio>
                      <el-radio label="12">群众</el-radio>
                    </el-radio-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">年龄</td>
                  <td class="td-group">
                    <el-radio-group v-model="radio" class="fj-radio">
                      <el-radio :label="3">全部</el-radio>
                      <el-radio :label="6">18-29</el-radio>
                      <el-radio :label="9">30-39</el-radio>
                      <el-radio :label="9">40-49</el-radio>
                      <el-radio :label="9">50-59</el-radio>
                      <el-radio :label="9">60-69</el-radio>
                      <el-radio :label="9">69及以上</el-radio>
                    <el-radio-group v-model="queryform.age" class="fj-radio">
                      <el-radio :label="-1">全部</el-radio>
                      <el-radio :label="1">18-29</el-radio>
                      <el-radio :label="2">30-39</el-radio>
                      <el-radio :label="3">40-49</el-radio>
                      <el-radio :label="4">50-59</el-radio>
                      <el-radio :label="5">60-69</el-radio>
                      <el-radio :label="6">69及以上</el-radio>
                    </el-radio-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">档案情况</td>
                  <td class="td-group">
                    <el-radio-group v-model="radio" class="fj-radio">
                      <el-radio :label="3">全部</el-radio>
                      <el-radio :label="6">已移交</el-radio>
                      <el-radio :label="9">未移交</el-radio>
                    <el-radio-group v-model="queryform.archivesStatus" class="fj-radio">
                      <el-radio :label="-1">全部</el-radio>
                      <el-radio :label="1">已移交</el-radio>
                      <el-radio :label="0">未移交</el-radio>
                    </el-radio-group>
                  </td>
                </tr>
                <tr>
                  <td class="td">保险类型</td>
                  <td class="td-group">
                    <el-radio-group v-model="radio" class="fj-radio">
                      <el-radio :label="3">全部</el-radio>
                      <el-radio :label="6">深户(五险一档)</el-radio>
                    <el-radio-group v-model="queryform.insuranceType" class="fj-radio">
                      <el-radio :label="-1">全部</el-radio>
                      <el-radio :label="1">(深户)五险一档</el-radio>
                      <el-radio :label="2">(非深户)五险一档</el-radio>
                      <el-radio :label="3">(非深户)五险二档</el-radio>
                      <el-radio :label="4">(非深户)五险三档)</el-radio>
                      <el-radio :label="5">(非深户)四险一档</el-radio>
                    </el-radio-group>
                  </td>
                </tr>
              </table>
            </el-col>
          </el-row>
        </form>
        </el-form>
        <el-row style="margin: 10px;">
          <el-col :span="24">
            <el-button class="hr-but-all" type="danger">新建标签</el-button>
@@ -154,7 +155,7 @@
      </el-header>
      <el-container>
        <el-main>
          <el-table :data="tableData" class="fj-table" style="width: 100%;height: 500px;color: #000;">
          <el-table :data="tableData" class="fj-table" style="width: 100%;height: 480px;color: #000;">
            <el-table-column label="操作" width="120">
              <template slot-scope="scope">
                <el-button
@@ -166,125 +167,156 @@
                </el-button>
              </template>
            </el-table-column>
            <el-table-column prop="prop2" label="姓名" width="100" />
            <el-table-column prop="prop3" label="身份证号" width="180" />
            <el-table-column prop="prop4" label="所属部门" width="180" />
            <el-table-column prop="prop5" label="岗位" width="100" />
            <el-table-column prop="prop6" label="记录截图">
            <el-table-column prop="empName" label="姓名" width="100" />
            <el-table-column prop="certificateNumb" label="身份证号" width="180" />
            <el-table-column prop="deptName" label="护卫点(部门)" width="180" />
            <el-table-column prop="jobName" label="岗位" width="100" />
            <el-table-column prop="jljt" label="记录截图">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop6 }}</el-link>
                <el-link type="primary"> {{ scope.row.jljt }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop7" label="照片">
            <el-table-column prop="zp" label="照片">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop7 }}</el-link>
                <el-link type="primary"> {{ scope.row.zp }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop8" label="劳动合同">
            <el-table-column prop="ldht" label="劳动合同">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop8 }}</el-link>
                <el-link type="primary"> {{ scope.row.ldht }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop9" label="身份证">
            <el-table-column prop="sfz" label="身份证">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop9 }}</el-link>
                <el-link type="primary"> {{ scope.row.sfz }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop10" label="入职表">
            <el-table-column prop="rzb" label="入职表">
              <template slot-scope="scope">
                <el-link type="primary">
                  {{ scope.row.prop10 }}</el-link>
                  {{ scope.row.rzb }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop11" label="体检表">
            <el-table-column prop="tjb" label="体检表">
              <template slot-scope="scope">
                <el-link type="primary">
                  {{ scope.row.prop11 }}</el-link>
                  {{ scope.row.tjb }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop12" label="回执">
            <el-table-column prop="hz" label="回执">
              <template slot-scope="scope">
                <el-link type="primary">
                  {{ scope.row.prop12 }}</el-link>
                  {{ scope.row.hz }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop13" label="银行卡">
            <el-table-column prop="yhk" label="银行卡">
              <template slot-scope="scope">
                <el-link type="primary">
                  {{ scope.row.prop13 }}</el-link>
                  {{ scope.row.yhk }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop14" label="证件">
            <el-table-column prop="xgzj" label="相关证件">
              <template slot-scope="scope">
                <el-link type="primary">
                  {{ scope.row.prop14 }}</el-link>
                  {{ scope.row.xgzj }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop15" label="合同相关">
            <el-table-column prop="xght" label="相关合同">
              <template slot-scope="scope">
                <el-link type="primary">{{ scope.row.prop15 }}</el-link>
                <el-link type="primary">{{ scope.row.xght }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop16" label="请假">
            <el-table-column prop="qj" label="请假">
              <template slot-scope="scope">
                <el-link type="primary">{{ scope.row.prop16 }}</el-link>
                <el-link type="primary">{{ scope.row.qj }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop17" label="处罚">
            <el-table-column prop="cf" label="处罚">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop17 }}</el-link>
                <el-link type="primary"> {{ scope.row.cf }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop18" label="辞职申请">
            <el-table-column prop="czsq" label="辞职申请">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop18 }}</el-link>
                <el-link type="primary"> {{ scope.row.czsq }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop19" label="离职手续">
            <el-table-column prop="lzsx" label="离职手续">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop19 }}</el-link>
                <el-link type="primary"> {{ scope.row.lzsx }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop20" label="自离">
            <el-table-column prop="zl" label="自离">
              <template slot-scope="scope">
                <el-link type="primary">   {{ scope.row.prop20 }}</el-link>
                <el-link type="primary">   {{ scope.row.zl }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop21" label="社保">
            <el-table-column prop="sb" label="社保">
              <template slot-scope="scope">
                <el-link type="primary">{{ scope.row.prop21 }}</el-link>
                <el-link type="primary">{{ scope.row.sb }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop22" label="失业金">
            <el-table-column prop="syj" label="失业金">
              <template slot-scope="scope">
                <el-link type="primary">  {{ scope.row.prop22 }}</el-link>
                <el-link type="primary">  {{ scope.row.syj }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop23" label="意外险">
            <el-table-column prop="ywx" label="意外险">
              <template slot-scope="scope">
                <el-link type="primary">{{ scope.row.prop23 }}</el-link>
                <el-link type="primary">{{ scope.row.ywx }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop24" label="工伤">
            <el-table-column prop="gs" label="工伤">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop24 }}</el-link>
                <el-link type="primary"> {{ scope.row.gs }}</el-link>
              </template>
            </el-table-column>
            <el-table-column prop="prop25" label="劳资">
            <el-table-column prop="lz" label="劳资">
              <template slot-scope="scope">
                <el-link type="primary"> {{ scope.row.prop25 }}</el-link>
                <el-link type="primary"> {{ scope.row.lz }}</el-link>
              </template>
            </el-table-column></el-table>
          <pagination
            v-show="total>0"
            :total="total"
            :page.sync="pagination.num"
            :limit.sync="pagination.size"
            @pagination="search"
          />
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>
<script>
import Pagination from '@/components/Pagination'
export default {
  components: {
    Pagination
  },
  data() {
    return {
      empName: '',
      queryform: {
        empNumb: '',
        empName: '',
        certificateNumb: '',
        deptName: '',
        entryDate: '',
        sex: -1,
        education: -1,
        politics: -1,
        age: -1,
        archivesStatus: -1,
        insuranceType: -1
      },
      total: 0, // 总数量
      pagination: { // 分页参数
        size: 5,
        num: 1
      },
      headerHeight: '70px',
      advancedQueryShow: false,
      dialogTableVisible: false,
@@ -319,388 +351,69 @@
          }
        ]
      },
      tableData: [
        {
          prop0: '',
          prop1: '上传',
          prop2: '赵建国',
          prop3: '510304197402225813',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '5',
          prop9: '1',
          prop10: '5',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '5',
          prop15: '1',
          prop16: '5',
          prop17: '1',
          prop18: '5',
          prop19: '5',
          prop20: '1',
          prop21: '5',
          prop22: '1',
          prop23: '5',
          prop24: '1',
          prop25: '5'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '罗启艳',
          prop3: '41272619740120543X',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '4',
          prop9: '1',
          prop10: '4',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '4',
          prop15: '1',
          prop16: '4',
          prop17: '1',
          prop18: '4',
          prop19: '4',
          prop20: '1',
          prop21: '4',
          prop22: '1',
          prop23: '4',
          prop24: '1',
          prop25: '4'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '毛玉平',
          prop3: '522528198202071629',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '3',
          prop9: '1',
          prop10: '3',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '3',
          prop15: '1',
          prop16: '3',
          prop17: '1',
          prop18: '3',
          prop19: '3',
          prop20: '1',
          prop21: '3',
          prop22: '1',
          prop23: '3',
          prop24: '1',
          prop25: '3'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '梅均均',
          prop3: '510504198704260927',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '3',
          prop9: '1',
          prop10: '3',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '3',
          prop15: '1',
          prop16: '3',
          prop17: '1',
          prop18: '3',
          prop19: '3',
          prop20: '1',
          prop21: '3',
          prop22: '1',
          prop23: '3',
          prop24: '1',
          prop25: '3'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '王香妮',
          prop3: '433122199508091511',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '2',
          prop8: '3',
          prop9: '1',
          prop10: '3',
          prop11: '1',
          prop12: '1',
          prop13: '2',
          prop14: '3',
          prop15: '1',
          prop16: '3',
          prop17: '1',
          prop18: '3',
          prop19: '3',
          prop20: '1',
          prop21: '3',
          prop22: '1',
          prop23: '3',
          prop24: '1',
          prop25: '3'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '易金洪',
          prop3: '610424198306152860',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '4',
          prop9: '1',
          prop10: '4',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '4',
          prop15: '1',
          prop16: '4',
          prop17: '1',
          prop18: '4',
          prop19: '4',
          prop20: '1',
          prop21: '4',
          prop22: '1',
          prop23: '4',
          prop24: '1',
          prop25: '4'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '李忠敏',
          prop3: '511123198602016016',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '5',
          prop9: '1',
          prop10: '5',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '5',
          prop15: '1',
          prop16: '5',
          prop17: '1',
          prop18: '5',
          prop19: '5',
          prop20: '1',
          prop21: '5',
          prop22: '1',
          prop23: '5',
          prop24: '1',
          prop25: '5'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '徐健',
          prop3: '512927197202166053',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '6',
          prop9: '1',
          prop10: '6',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '6',
          prop15: '1',
          prop16: '6',
          prop17: '1',
          prop18: '6',
          prop19: '6',
          prop20: '1',
          prop21: '6',
          prop22: '1',
          prop23: '6',
          prop24: '1',
          prop25: '6'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '曾昌玖',
          prop3: '510322197606103351',
          prop4: '一分公司',
          prop5: '经理',
          prop6: '1',
          prop7: '1',
          prop8: '3',
          prop9: '1',
          prop10: '3',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '3',
          prop15: '1',
          prop16: '3',
          prop17: '1',
          prop18: '3',
          prop19: '3',
          prop20: '1',
          prop21: '3',
          prop22: '1',
          prop23: '3',
          prop24: '1',
          prop25: '3'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '赵高',
          prop3: '511123197510263074',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '2',
          prop9: '1',
          prop10: '2',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '2',
          prop15: '1',
          prop16: '2',
          prop17: '1',
          prop18: '2',
          prop19: '2',
          prop20: '1',
          prop21: '2',
          prop22: '1',
          prop23: '2',
          prop24: '1',
          prop25: '2'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '王忠山',
          prop3: '522426199904290419',
          prop4: '一分公司',
          prop5: '主管',
          prop6: '1',
          prop7: '1',
          prop8: '1',
          prop9: '1',
          prop10: '1',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '1',
          prop15: '1',
          prop16: '1',
          prop17: '1',
          prop18: '1',
          prop19: '1',
          prop20: '1',
          prop21: '1',
          prop22: '1',
          prop23: '1',
          prop24: '1',
          prop25: '1'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '严福林',
          prop3: '433130197205180710',
          prop4: '一分公司',
          prop5: '经理',
          prop6: '1',
          prop7: '1',
          prop8: '2',
          prop9: '1',
          prop10: '2',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '2',
          prop15: '1',
          prop16: '2',
          prop17: '1',
          prop18: '2',
          prop19: '2',
          prop20: '1',
          prop21: '2',
          prop22: '1',
          prop23: '2',
          prop24: '1',
          prop25: '2'
        },
        {
          prop0: '',
          prop1: '上传',
          prop2: '叶金云',
          prop3: '512923197703020639',
          prop4: '一分公司',
          prop5: '保安员',
          prop6: '1',
          prop7: '1',
          prop8: '2',
          prop9: '1',
          prop10: '2',
          prop11: '1',
          prop12: '1',
          prop13: '1',
          prop14: '2',
          prop15: '1',
          prop16: '2',
          prop17: '1',
          prop18: '2',
          prop19: '2',
          prop20: '1',
          prop21: '2',
          prop22: '1',
          prop23: '2',
          prop24: '1',
          prop25: '2'
        }
      ],
      tableData: [],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    }
  },
  mounted() {
    this.fetch()
  },
  methods: {
    resetQueryform() {
      this.queryform = {
        empNumb: '',
        empName: '',
        certificateNumb: '',
        deptName: '',
        entryDate: '',
        sex: -1,
        education: -1,
        politics: -1,
        age: -1,
        archivesStatus: -1,
        insuranceType: -1
      }
    },
    findEmpAccessoryAll() {
      this.fetch({
        ...this.queryform
      })
    },
    findEmpAccessory() {
      var params = { empName: this.empName }
      this.fetch({
        ...params
      })
    },
    // 翻页方法
    search() {
      this.fetch({
        ...this.queryform
      })
    },
    handleNodeClick(data) {
      console.log(data)
    },
    fetch(params = {}) {
      params.pageSize = this.pagination.size
      params.pageNum = this.pagination.num
      this.$get('hr/empAccessory/list', {
        ...params
      }).then((r) => {
        const data = r.data.data
        this.total = data.total
        this.tableData = data.rows
      })
    },
    advancedQueryShowMethods() {
      if (this.advancedQueryShow) {
        this.headerHeight = '70px'
        this.advancedQueryShow = false
      } else {
        this.headerHeight = '420px'
        this.headerHeight = '380px'
        this.advancedQueryShow = true
      }
    },
@@ -718,18 +431,26 @@
    margin-top: 10px;
    height: 600px;
}
</style>
<style lang="scss">
.input-empName .el-input-group__append{
      padding: 0 15px 0 0;
}
.fj-table thead {
    color: #000;
}
.fj-radio .el-radio__label {
.fj-radio{
.el-radio__input.is-checked .el-radio__inner {
    border-color: #a32c30;;
    background: #a32c30;;
}
.el-radio__label {
    color: #000 !important;
}
}
.td {
    background-color: #dddcdc !important;
    width: 180px;
    width: 160px;
    text-align: center;
}
.td-group {
src/views/yunpan/uploadfj.vue
New file
@@ -0,0 +1,618 @@
<template>
  <div class="zs-main">
    <el-row class="search-title">
      <el-col :span="18" class="title">
        <div class="zs-title">附件管理</div>
      </el-col>
      <el-col :span="6" class="search">
        <el-input
          v-model="fileName"
          maxlength="20"
          minlength="1"
          clearable
          placeholder="请输入文件名"
          show-word-limit
          style="width:200px"
        />
        <el-button type="primary" @click="findFileByFileName()">查询</el-button>
      </el-col>
    </el-row>
    <el-container style="background-color: #fff;">
      <el-aside width="210px" style="background-color: #fff;text-align: center;">
        <el-button class="add-folder-but" @click="dialogFormVisible = true">新增</el-button>
        <el-button class="add-folder-but" @click="dialogDelVisible = true">删除</el-button>
        <el-dialog
          title="提示"
          :visible.sync="dialogDelVisible"
          width="20%"
        >
          <span>是否删除此目录?</span>
          <span slot="footer" class="dialog-footer">
            <el-button @click="dialogDelVisible = false">取 消</el-button>
            <el-button type="primary" @click="delFolder()">确 定</el-button>
          </span>
        </el-dialog>
        <el-dialog
          title="新增文件夹"
          :visible.sync="dialogFormVisible"
          width="25%"
          class="add-folder"
        >
          <el-form ref="folderform" :model="folderform" :rules="rules">
            <el-form-item
              label="文件夹名称:"
              :label-width="formLabelWidth"
              prop="foldername"
            >
              <el-input v-model="folderform.foldername" autocomplete="off" />
            </el-form-item>
            <el-form-item label="文件夹排序:" :label-width="formLabelWidth" prop="sort">
              <el-input-number
                v-model="folderform.sort"
                :min="0"
                :max="100"
                label="排序"
              />
            </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footer">
            <el-button @click="dialogFormVisible = false">取 消</el-button>
            <el-button
              type="primary"
              @click="addFolderForm('folderform')"
            >确 定</el-button>
          </div>
        </el-dialog>
        <el-timeline>
          <el-timeline-item
            v-for="(activity, index) in activities"
            :key="index"
            :icon="activity.icon"
            :type="activity.type"
            :color="activity.color"
            :size="activity.size"
            placement="bottom"
          >
            <span
              style="position: relative; top: -5px;"
              @click="clickTimeline(index, activity.id)"
            >
              {{ activity.timestamp }}</span>
          </el-timeline-item>
        </el-timeline>
      </el-aside>
      <el-container>
        <el-header class="text-header">
          <el-row><el-col :span="24">
            <i
              class="el-icon-bell"
              style=" color: #a32c30; margin-right: 10px;"
            />提示:文件不要超过10个,单个文件大小不超过50M,单击或者拖动文件到下面区域,支持单个或批量文件的上传。</el-col>
          </el-row>
          <el-row style="background-color: rgba(0,0,0,0.2);">
            <el-col :span="19">
              <el-checkbox
                v-model="checkAll"
                class="myRedCheckBox"
                style="color: #000; margin-left: 20px;"
                @change="checkAllMethods()"
              >全选</el-checkbox></el-col>
            <el-col :span="5">
              <el-button
                type="primary"
                icon="el-icon-download"
                size="mini"
                @click="download()"
              >下载</el-button>
              <el-button
                type="primary"
                icon="el-icon-search"
                size="mini"
                @click="delFile()"
              >删除</el-button>
            </el-col>
          </el-row>
        </el-header>
        <el-main style="background-color: #fff;">
          <el-row v-for="(data, index) in filesUploadData" :key="index">
            <template v-for="(node, nodeIndex) in data.node">
              <el-col v-if="node.isUpload === false" :key="node.filesid" :span="3">
                <el-card
                  shadow="never"
                  @click.native="clickCard(index * 8 + nodeIndex)"
                >
                  <img
                    :src="showFileImg(node.filesformat)"
                    class="uploading-image"
                  >
                  <div style="padding-top: 14px;">
                    <el-checkbox v-model="checkedArr[index * 8 + nodeIndex].isChecked" class="myRedCheckBox">{{ node.filesname }}</el-checkbox>
                  </div>
                </el-card>
              </el-col>
              <el-col v-if="node.isUpload" :key="node.filesid" :span="3">
                <el-card shadow="never">
                  <el-upload
                    class="avatar-uploader"
                    :action="filesUploadUrl"
                    :show-file-list="false"
                    :before-upload="beforeAvatarUpload"
                    :headers="headers()"
                    :data="fileDate"
                    :on-success="handleAvatarSuccess"
                    :on-error="handleAvatarError"
                    :multiple="true"
                    :limit="10"
                    drag
                  >
                    <i class="el-icon-upload" />
                  </el-upload>
                </el-card>
              </el-col>
            </template>
          </el-row>
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>
<script>
import { getToken } from '@/utils/auth'
import { pages } from '@/settings'
export default {
  data() {
    return {
      filesUploadUrl: pages.filesUploadUrl,
      fileDate: {
        folderid: 0
      },
      dialogDelVisible: false,
      dialogFormVisible: false,
      folderform: {
        foldername: '',
        sort: 0
      },
      rules: {
        foldername: [
          { required: true, message: '请输入文件夹名称', trigger: 'blur' },
          { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
        ],
        sort: [{ required: true, message: '请输入排序', type: 'number', trigger: 'blur' }]
      },
      formLabelWidth: '100px',
      beforeIndex: 0,
      fileName: '',
      checkedArr: [],
      checkAll: false,
      activities: [],
      filesUploadData: [],
      updateNum: 0
    }
  },
  mounted() {
    // 初始加载
    this.initFolder()
  },
  methods: {
    async initFolder() {
      await this.$get('hr/folder').then(r => {
        this.activities = []
        this.beforeIndex = 0
        r.data.data.forEach((v, i) => {
          if (i === 0) {
            this.activities.push({
              timestamp: v.foldername,
              id: v.folderid,
              color: '#a32c30'
            })
          } else {
            this.activities.push({ timestamp: v.foldername, id: v.folderid })
          }
        })
      })
      var params = { folderid: this.activities[0].id }
      this.initFile(params)
    },
    initFile(params) {
      var node = { node: [] }
      // 文件列表置为空
      this.filesUploadData = []
      this.checkedArr = []
      this.$get('hr/filesUpload', { ...params }).then(r => {
        r.data.data.forEach((v, i) => {
          this.checkedArr.push({ isChecked: false, filesid: v.filesid })
          // 一行8个 等于8就换行
          if (i % 8 === 0 && i !== 0) {
            this.filesUploadData.push(node)
            node = { node: [] }
          }
          // 添加一个新的元素判断是否是上传用的
          this.$set(v, 'isUpload', false)
          // 添加
          node.node.push(v)
          // 如果是最后一个元素,需要手动丢到列表里面去
          if (i === r.data.data.length - 1) {
            this.filesUploadData.push(node)
          }
        })
        // 如果列表为空,增加一个上传的
        if (this.filesUploadData.length === 0) {
          this.filesUploadData.push({ node: [{ isUpload: true }] })
        } else {
          // 如果不为空,但是这一行刚好满8个了,就将数组,新增一个对象
          if (this.filesUploadData[this.filesUploadData.length - 1].node.length === 8) {
            this.filesUploadData.push({ node: [{ isUpload: true }] })
          } else {
            // 新增一个上传
            this.filesUploadData[this.filesUploadData.length - 1].node.push({
              isUpload: true
            })
          }
        }
      })
    },
    clickTimeline(index, id) {
      // 不这样操作的不会响应式更新
      // 赋值到新的列表
      var list = this.activities
      // 将之前的数组置为空
      this.activities = []
      // 删除之前下标的颜色
      delete list[this.beforeIndex].color
      // 将新下标存储起来
      this.beforeIndex = index
      // 将新下标修改颜色
      list[index]['color'] = '#a32c30'
      // 将修改好的数组放回去
      this.activities = list
      this.checkAll = false
      var params
      if (this.fileName === '') {
        // 生成查询文件的条件
        params = { folderid: this.activities[index].id }
      } else {
        // 生成查询文件的条件
        params = {
          folderid: this.activities[this.beforeIndex].id,
          filesname: this.fileName
        }
      }
      this.initFile(params)
    },
    clickCard(index) {
      if (this.checkedArr[index].isChecked) {
        this.$set(this.checkedArr[index], 'isChecked', false)
      } else {
        this.$set(this.checkedArr[index], 'isChecked', true)
      }
    },
    checkAllMethods() {
      if (this.checkAll) {
        this.checkedArr.forEach((v, i) => {
          this.$set(v, 'isChecked', true)
        })
      } else {
        this.checkedArr.forEach((v, i) => {
          this.$set(v, 'isChecked', false)
        })
      }
    },
    findFileByFileName() {
      // 生成查询文件的条件
      var params = {
        folderid: this.activities[this.beforeIndex].id,
        filesname: this.fileName
      }
      this.initFile(params)
    },
    addFolderForm(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          this.$post('hr/folder', { ...this.folderform }).then(() => {
            this.dialogFormVisible = false
            this.$message({
              message: this.$t('tips.createSuccess'),
              type: 'success'
            })
            this.folderform.fileName = ''
            this.folderform.sort = 0
            // 初始加载
            this.initFolder()
          })
        }
      })
    },
    delFolder() {
      // 生成查询文件的条件
      var params = { folderid: this.activities[this.beforeIndex].id }
      this.$delete('hr/folder', { ...params }).then(() => {
        this.dialogFormVisible = false
        this.$message({
          message: this.$t('tips.deleteSuccess'),
          type: 'success'
        })
        this.dialogDelVisible = false
        // 初始加载
        this.initFolder()
      })
    },
    showFileImg(type) {
      switch (type) {
        case 'txt':
          return require('../../assets/uploading/txt.png')
        case 'apk':
          return require('../../assets/uploading/apk.png')
        case 'csv':
          return require('../../assets/uploading/csv.png')
        case 'excel':
          return require('../../assets/uploading/excel.png')
        case 'exe':
          return require('../../assets/uploading/exe.png')
        case 'folder':
          return require('../../assets/uploading/folder.png')
        case 'gif':
          return require('../../assets/uploading/gif.png')
        case 'html':
          return require('../../assets/uploading/html.png')
        case 'json':
          return require('../../assets/uploading/json.png')
        case 'mp3':
          return require('../../assets/uploading/mp3.png')
        case 'mp4':
          return require('../../assets/uploading/mp4.png')
        case 'pdf':
          return require('../../assets/uploading/pdf.png')
        case 'pic':
          return require('../../assets/uploading/pic.png')
        case 'ppt':
          return require('../../assets/uploading/ppt.png')
        case 'rar':
          return require('../../assets/uploading/rar.png')
        case 'svg':
          return require('../../assets/uploading/svg.png')
        case 'webpage':
          return require('../../assets/uploading/webpage.png')
        case 'word':
          return require('../../assets/uploading/word.png')
        case 'zip':
          return require('../../assets/uploading/zip.png')
        case 'jpg':
          return require('../../assets/uploading/jpg.png')
        case 'png':
          return require('../../assets/uploading/png.png')
        default:
          return require('../../assets/uploading/unknown.png')
      }
    },
    beforeAvatarUpload(file) {
      this.fileDate.folderid = this.activities[this.beforeIndex].id
      const isLt50M = file.size / 1024 / 1024 < 50
      if (!isLt50M) {
        this.$message.error('上传文件不能超过 50MB!')
      }
      return isLt50M
    },
    headers() {
      const token = getToken()
      if (token) {
        return {
          Authorization: 'bearer ' + token
        }
      } else {
        return null
      }
    },
    handleAvatarSuccess(response, file, fileList) {
      this.$notify({
        title: '成功',
        message: '上传成功!',
        type: 'success'
      })
      this.updateNum++
      if (this.updateNum === fileList.length) {
        this.updateNum = 0
        // 生成查询文件的条件
        var params = {
          folderid: this.activities[this.beforeIndex].id,
          filesname: this.fileName
        }
        this.initFile(params)
      }
    },
    handleAvatarError() {
      this.updateNum = 0
      this.$notify.error({
        title: '失败',
        message: '上传失败,请联系管理员!'
      })
    },
    download() {
      var checke = []
      this.checkedArr.forEach((v, i) => {
        if (v.isChecked) {
          checke.push(v.filesid)
        }
      })
      if (checke.length <= 0) {
        this.$message({
          message: '请选择需要下载的文件!',
          type: 'warning'
        })
      } else {
        // 生成查询文件的条件
        var params = { fileids: checke.join(',') }
        this.$download('hr/filesUpload/download', { ...params }, new Date().getTime() + '.zip').then(() => {
          this.$message({
            message: '下载成功!',
            type: 'success'
          })
        })
      }
    },
    delFile() {
      var checke = []
      this.checkedArr.forEach((v, i) => {
        if (v.isChecked) {
          checke.push(v.filesid)
        }
      })
      // 生成查询文件的条件
      var params = { fileids: checke.join(',') }
      this.$delete('hr/filesUpload', { ...params }).then(() => {
        this.$message({
          message: '删除成功!',
          type: 'success'
        })
        // 生成查询文件的条件
        var initFileParams = {
          folderid: this.activities[this.beforeIndex].id,
          filesname: this.fileName
        }
        this.initFile(initFileParams)
      })
    }
  }
}
</script>
<style lang="scss">
.clearfix:before,
.clearfix:after {
    display: table;
    content: '';
}
.clearfix:after {
    clear: both;
}
.add-folder {
    text-align: initial;
}
.zs-main {
    .search-title {
        height: 50px;
        .search {
            position: relative;
            top: 50%;
            transform: translateY(-50%);
        }
        .title {
            position: relative;
            top: 40%;
            transform: translateY(-50%);
        }
        .zs-title {
            border-left: 4px solid #a32c30;
            padding-left: 10px;
            font-size: 16px;
        }
    }
    .add-folder-but {
        background: #fff !important;
        color: #a32c30 !important;
        margin-bottom: 20px;
    }
    padding: 0 15px 0 15px;
    .text-header {
        line-height: 60px;
    }
    .uploading-image {
        width: 100%;
        height: 100%;
        display: block;
    }
}
.el-timeline-item__timestamp {
    font-size: 15px;
    color: #000;
}
/* 设置带边框的checkbox,选中后边框的颜色 */
.myRedCheckBox.is-bordered.is-checked {
    border-color: #a32c30;
}
/* 设置选中后的文字颜色 */
.myRedCheckBox .el-checkbox__input.is-checked + .el-checkbox__label {
    color: #a32c30;
}
/* 设置选中后对勾框的边框和背景颜色 */
.myRedCheckBox .el-checkbox__input.is-checked .el-checkbox__inner,
.myRedCheckBox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
    border-color: #a32c30;
    background-color: #a32c30;
}
/* 设置checkbox获得焦点后,对勾框的边框颜色 */
.myRedCheckBox .el-checkbox__input.is-focus .el-checkbox__inner {
    border-color: #a32c30;
}
/* 设置鼠标经过对勾框,对勾框边框的颜色 */
.myRedCheckBox .el-checkbox__inner:hover {
    border-color: #a32c30;
}
.avatar-uploader .el-upload {
    border: 1px dashed #d9d9d9;
    border-radius: 6px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}
.avatar-uploader .el-upload:hover {
    border-color: #409eff;
}
.avatar-uploader-icon {
    font-size: 28px;
    color: #8c939d;
    width: 178px;
    height: 178px;
    line-height: 178px;
    text-align: center;
}
.avatar {
    width: 178px;
    height: 178px;
    display: block;
}
.avatar-uploader .el-upload-dragger .el-icon-upload {
    margin: 20px 0 16px;
}
.avatar-uploader .el-upload-dragger {
    border: none;
    width: 100px;
    height: 100px;
}
</style>
<style lang="scss" scoped>
.el-main {
    margin-top: 2%;
}
.app-main {
    background-color: #ffffff;
}
.el-button,
.el-button--primary {
    background: #a32c30;
    border-color: #a32c30;
    color: #fff;
    outline: none;
}
.zs-main .text-header {
    line-height: 40px;
}
.el-card {
    border: none;
}
.el-input-number {
    width: 100%;
}
</style>