lanan-system-vue/src/views/company/staff/index.vue
2024-08-07 10:07:48 +08:00

232 lines
9.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="工号" prop="workNo">
<el-input v-model="queryParams.workNo" placeholder="请输入工号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="手机号" prop="tel">
<el-input v-model="queryParams.tel" placeholder="请输入手机号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select v-model="queryParams.sex" placeholder="请选择性别" clearable size="small">
<el-option label="请选择字典生成" value=""/>
</el-select>
</el-form-item>
<el-form-item label="家庭住址" prop="address">
<el-input v-model="queryParams.address" placeholder="请输入家庭住址" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="工作日期" prop="workDate">
<el-date-picker v-model="queryParams.workDate" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
/>
</el-form-item>
<el-form-item label="工龄" prop="workYear">
<el-input v-model="queryParams.workYear" placeholder="请输入工龄" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="入职日期" prop="joinedDate">
<el-date-picker v-model="queryParams.joinedDate" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
/>
</el-form-item>
<el-form-item label="司龄" prop="joinedYear">
<el-input v-model="queryParams.joinedYear" placeholder="请输入司龄" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="学历" prop="education">
<el-input v-model="queryParams.education" placeholder="请输入学历" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="唯一推广码" prop="uniqueCode">
<el-input v-model="queryParams.uniqueCode" placeholder="请输入唯一推广码" clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="openForm(undefined)"
v-hasPermi="['company:staff:create']"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
:loading="exportLoading"
v-hasPermi="['company:staff:export']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="主键标识" align="center" prop="id"/>
<el-table-column label="企业idbase_company表中的id" align="center" prop="corpId"/>
<el-table-column label="用户idsystem_users表的id" align="center" prop="userId"/>
<el-table-column label="部门id(system_dept表中的id)" align="center" prop="deptId"/>
<el-table-column label="工号" align="center" prop="workNo"/>
<el-table-column label="姓名" align="center" prop="name"/>
<el-table-column label="手机号" align="center" prop="tel"/>
<el-table-column label="性别" align="center" prop="sex"/>
<el-table-column label="家庭住址" align="center" prop="address"/>
<el-table-column label="工作日期" align="center" prop="workDate"/>
<el-table-column label="工龄" align="center" prop="workYear"/>
<el-table-column label="入职日期" align="center" prop="joinedDate"/>
<el-table-column label="司龄" align="center" prop="joinedYear"/>
<el-table-column label="学历" align="center" prop="education"/>
<el-table-column label="个人简介" align="center" prop="content"/>
<el-table-column label="唯一推广码(须保证全平台唯一,规则:字母+数字;字母全大写)" align="center" prop="uniqueCode"/>
<el-table-column label="附件idsinfra_file表中的id多个英文逗号拼接" align="center" prop="fileIds"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template v-slot="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="openForm(scope.row.id)"
v-hasPermi="['company:staff:update']"
>修改
</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['company:staff:delete']"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 对话框(添加 / 修改) -->
<StaffForm ref="formRef" @success="getList"/>
</div>
</template>
<script>
import * as StaffApi from '@/api/company/staff'
import StaffForm from './StaffForm.vue'
export default {
name: 'Staff',
components: {
StaffForm
},
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 企业管理-员工信息列表
list: [],
// 是否展开,默认全部展开
isExpandAll: true,
// 重新渲染表格状态
refreshTable: true,
// 选中行
currentRow: {},
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10,
corpId: null,
userId: null,
deptId: null,
workNo: null,
name: null,
tel: null,
sex: null,
address: null,
workDate: [],
workYear: null,
joinedDate: [],
joinedYear: null,
education: null,
content: null,
uniqueCode: null,
fileIds: null,
createTime: []
}
}
},
created() {
this.getList()
},
methods: {
/** 查询列表 */
async getList() {
try {
this.loading = true
const res = await StaffApi.getStaffPage(this.queryParams)
this.list = res.data.list
this.total = res.data.total
} finally {
this.loading = false
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.handleQuery()
},
/** 添加/修改操作 */
openForm(id) {
this.$refs['formRef'].open(id)
},
/** 删除按钮操作 */
async handleDelete(row) {
const id = row.id
await this.$modal.confirm('是否确认删除企业管理-员工信息编号为"' + id + '"的数据项?')
try {
await StaffApi.deleteStaff(id)
await this.getList()
this.$modal.msgSuccess('删除成功')
} catch {
}
},
/** 导出按钮操作 */
async handleExport() {
await this.$modal.confirm('是否确认导出所有企业管理-员工信息数据项?')
try {
this.exportLoading = true
const data = await StaffApi.exportStaffExcel(this.queryParams)
this.$download.excel(data, '企业管理-员工信息.xls')
} catch {
} finally {
this.exportLoading = false
}
}
}
}
</script>