This commit is contained in:
shijing 2022-10-27 16:34:52 +08:00
commit b86083b3de
3 changed files with 69 additions and 111 deletions

View File

@ -7,13 +7,8 @@ VUE_APP_TITLE = '曲阳金隅安全智能管控平台'
# 接口地址 # 接口地址
#VUE_APP_API_BASEURL = http://1.203.161.103:2800/api #VUE_APP_API_BASEURL = http://1.203.161.103:2800/api
#VUE_APP_WS_API = 'ws://localhost:8000' #VUE_APP_WS_API = 'ws://localhost:8000'
<<<<<<< HEAD
#VUE_APP_API_BASEURL = http://222.222.144.147:6013/api
VUE_APP_API_BASEURL = http://10.99.5.79:20309/api
=======
VUE_APP_API_BASEURL = http://222.222.144.147:6013/api VUE_APP_API_BASEURL = http://222.222.144.147:6013/api
#VUE_APP_API_BASEURL = http://10.99.5.79:20309/api #VUE_APP_API_BASEURL = http://10.99.5.79:20309/api
>>>>>>> 4322fb11086b4b90803c346a57bc2007dd984e5b
#VUE_APP_API_BASEURL = http://127.0.0.1:8000/api #VUE_APP_API_BASEURL = http://127.0.0.1:8000/api
#VUE_APP_BASEURL = http://127.0.0.1:8000 #VUE_APP_BASEURL = http://127.0.0.1:8000

View File

@ -2,89 +2,64 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-select <el-select v-model="query.type" placeholder="人员类型" @change="handleQuery" clearable style="margin-left: 2px">
v-model="query.type" <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
placeholder="人员类型" </el-select>
@change="handleQuery" <el-cascader v-model="query.belong_dept" :options="deptData" clearable placeholder="部门/单位" @change="handleQuery" :show-all-levels="false" :props="{emitPath:false,checkStrictly: true}" style="margin-left:4px"/>
clearable
style="margin-left: 2px"
>
<el-option
v-for="item in typeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<div class="right-panel-search"> <div class="right-panel-search">
<el-input <el-input v-model="query.search" placeholder="姓名/手机号" clearable @keyup.enter="handleQuery"></el-input>
v-model="query.search" <el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
placeholder="姓名/手机号"
clearable
@keyup.enter="handleQuery"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable <scTable ref="table" :apiObj="apiObj" row-key="id" @selection-change="selectionChange" stripe
ref="table" @resetQuery="resetQuery">
:apiObj="apiObj"
row-key="id"
@selection-change="selectionChange"
stripe
@resetQuery="resetQuery"
>
<!-- <el-table-column type="selection" width="50"></el-table-column> --> <!-- <el-table-column type="selection" width="50"></el-table-column> -->
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="人员类型" prop="type"> <el-table-column label="人员类型" prop="type" width="160">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.type=='employee'||scope.row.type=='remployee'">[{{jobOptions[scope.row.job_state]}}] </span> <span v-if="scope.row.type == 'employee' || scope.row.type == 'remployee'">[{{ jobOptions[scope.row.job_state] }}]
</span>
<span>{{ userTypeOptions[scope.row.type] }}</span> <span>{{ userTypeOptions[scope.row.type] }}</span>
<span v-if="scope.row.type=='employee' && scope.row.is_atwork" style="color:green;font-weight:bold"> <span v-if="scope.row.type == 'employee' && scope.row.is_atwork" style="color:green;font-weight:bold">
在岗 在岗
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="姓名" prop="name"> <el-table-column label="姓名" prop="name" width="120">
</el-table-column> </el-table-column>
<el-table-column label="证件照" prop="photo"> <el-table-column label="性别" prop="gender" width="60">
</el-table-column>
<el-table-column label="证件照" prop="photo" width="120">
<template #default="scope"> <template #default="scope">
<el-avatar :size="50" :src="scope.row.photo" shape="square"/> <el-avatar :size="50" :src="scope.row.photo" shape="square" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="手机号" prop="phone" width="120"></el-table-column>
label="手机号" <el-table-column label="部门" prop="belong_dept" width="280">
prop="phone"
width="120"
></el-table-column>
<el-table-column label="部门" prop="belong_dept" width="180">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.belong_dept_">{{ <span v-if="scope.row.belong_dept_">{{
scope.row.belong_dept_.name scope.row.belong_dept_.name
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="定位卡号" prop="blt_"> <el-table-column label="身份证号" prop="id_number" width="180"></el-table-column>
<el-table-column label="系统账号" prop="user" width="180"><template #default="scope">
<span v-if="scope.row.user">{{
scope.row.user_.username
}}</span>
</template></el-table-column>
<el-table-column label="定位卡号" prop="blt_" width="180">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.blt_">{{ <span v-if="scope.row.blt_">{{
scope.row.blt_.code scope.row.blt_.code
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="创建时间" prop="create_time"></el-table-column>
label="创建时间"
prop="create_time"
width="180"
></el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="170"> <el-table-column label="操作" fixed="right" align="left" width="170">
<template #default="scope"> <template #default="scope">
<!-- <el-button <!-- <el-button
@ -95,50 +70,25 @@
v-auth="'employee.update'" v-auth="'employee.update'"
>证书 >证书
</el-button> --> </el-button> -->
<el-button <el-button link type="success" size="small" @click="handleForm('show', scope.row)">查看
link
type="success"
size="small"
@click="handleForm('show', scope.row)"
>查看
</el-button> </el-button>
<el-button <el-button link type="warning" size="small" v-auth="'employee.update'"
link @click="handleForm('edit', scope.row)">编辑
type="warning"
size="small"
v-auth="'employee.update'"
@click="handleForm('edit', scope.row)"
>编辑
</el-button> </el-button>
<el-button <el-button v-if="scope.row.blt_" link type="danger" size="small" @click="handleBindBlt(20, scope.row)">解绑
v-if="scope.row.blt_"
link
type="danger"
size="small"
@click="handleBindBlt(20, scope.row)"
>解绑
</el-button> </el-button>
<el-button <el-button v-else link type="primary" size="small" @click="handleBindBlt(10, scope.row)">绑卡
v-else
link
type="primary"
size="small"
@click="handleBindBlt(10, scope.row)"
>绑卡
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog <save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" @closed="dialog.save = false">
v-if="dialog.save" </save-dialog>
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<ScBind v-if="showBindBlt" :bindBtl="bindBtl" :bindType="bindType" :bindName="bindName" :bindEmployee="bindEmployee" @closed="closed"></ScBind> <ScBind v-if="showBindBlt" :bindBtl="bindBtl" :bindType="bindType" :bindName="bindName" :bindEmployee="bindEmployee"
@closed="closed"></ScBind>
<!-- <el-Dialog <!-- <el-Dialog
title="绑定定位卡" title="绑定定位卡"
v-model="showBindBlt" v-model="showBindBlt"
@ -174,19 +124,21 @@
<script> <script>
import saveDialog from "./ep_form.vue"; import saveDialog from "./ep_form.vue";
import ScBind from "@/components/scBind/index.vue"; import ScBind from "@/components/scBind/index.vue";
import { genTree } from "@/utils/verificate";
export default { export default {
name: "employee", name: "employee",
components: { components: {
saveDialog, saveDialog,
ScBind ScBind
}, },
data() { data() {
return { return {
dialog: { dialog: {
save: false, save: false,
permission: false, permission: false,
}, },
deptData:[],
apiObj: this.$API.hrm.employee.list, apiObj: this.$API.hrm.employee.list,
query: {}, query: {},
tdevice: [], tdevice: [],
@ -198,9 +150,9 @@ export default {
showBindBlt: false, showBindBlt: false,
bltList: [], bltList: [],
bindName: "", bindName: "",
bindType:10, bindType: 10,
bindBtl:null, bindBtl: null,
bindEmployee:'', bindEmployee: '',
form: { form: {
type: 10, type: 10,
blt: "", blt: "",
@ -217,17 +169,22 @@ export default {
20: "离职", 20: "离职",
}, },
typeOptions: [ typeOptions: [
{label:"正式员工", value:"employee"}, { label: "正式员工", value: "employee" },
{label:"相关方", value:"remployee"}, { label: "相关方", value: "remployee" },
{label:"访客", value:"visitor"}, { label: "访客", value: "visitor" },
{label:"货车司机", value:"driver"} { label: "货车司机", value: "driver" }
] ]
}; };
}, },
mounted() { mounted() {
// this.getBltList(); // this.getBltList();
this.getDept();
}, },
methods: { methods: {
async getDept() {
let res = await this.$API.system.dept.list.req({ page: 0, type__in: 'dept,rparty' });
this.deptData = genTree(res);
},
// //
// Addcertificate(row) { // Addcertificate(row) {
// this.$router.push({ // this.$router.push({
@ -303,7 +260,7 @@ export default {
loading.close(); loading.close();
this.$message.success("操作成功"); this.$message.success("操作成功");
}) })
.catch(() => {}); .catch(() => { });
}, },
// //
selectionChange(selection) { selectionChange(selection) {
@ -352,13 +309,13 @@ export default {
resetQuery() { resetQuery() {
this.query = {}; this.query = {};
}, },
closed(data){ closed(data) {
this.showBindBlt = false; this.showBindBlt = false;
}, },
getBltList() { getBltList() {
let that = this; let that = this;
that.$API.third.tdevice.list.req({ type: 30, page: 0, state: 'unused'}).then((res) => { that.$API.third.tdevice.list.req({ type: 30, page: 0, state: 'unused' }).then((res) => {
that.tdevice = res; that.tdevice = res;
that.bltList = res.filter((item) => { that.bltList = res.filter((item) => {
return item.employee_ === null; return item.employee_ === null;

View File

@ -17,7 +17,7 @@
> >
<el-row> <el-row>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="名称" required> <el-form-item label="名称" prop="name">
<el-input <el-input
v-model="form.name" v-model="form.name"
type="text" type="text"
@ -27,7 +27,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="项目类型" required> <el-form-item label="项目类型" prop="type">
<el-select v-model="form.type" style="width: 100%"> <el-select v-model="form.type" style="width: 100%">
<el-option <el-option
v-for="item in typeOptions" v-for="item in typeOptions"
@ -39,7 +39,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="合同编号"> <el-form-item label="合同编号" prop="contract_number">
<el-input <el-input
v-model="form.contract_number" v-model="form.contract_number"
type="text" type="text"
@ -48,7 +48,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="进厂时间" required> <el-form-item label="进厂时间" prop="come_time">
<el-date-picker <el-date-picker
v-model="form.come_time" v-model="form.come_time"
type="datetime" type="datetime"
@ -57,7 +57,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24"> <el-col :md="24" :sm="12" :xs="24">
<el-form-item label="离厂时间" required> <el-form-item label="离厂时间" prop="leave_time">
<el-date-picker <el-date-picker
v-model="form.leave_time" v-model="form.leave_time"
type="datetime" type="datetime"
@ -85,7 +85,7 @@
</el-col> </el-col>
<el-col :md="24" :sm="12" :xs="24" v-if="rparty_show"> <el-col :md="24" :sm="12" :xs="24" v-if="rparty_show">
<el-form-item label="相关方" required> <el-form-item label="相关方" prop="rparty">
<el-select v-model="form.rparty" style="width: 100%"> <el-select v-model="form.rparty" style="width: 100%">
<el-option <el-option
v-for="item in rpartyOptions" v-for="item in rpartyOptions"
@ -125,7 +125,13 @@
show: "查看", show: "查看",
}, },
form: {}, form: {},
rules: {}, rules: {
name: [{required: true, message: "请输入"}],
type: [{required: true, message: " 请选择"}],
contract_number: [{required: true, message: "请输入"}],
come_time: [{required: true, message: "请选择"}],
leave_time: [{required: true, message: "请选择"}],
},
visible: false, visible: false,
isSaveing: false, isSaveing: false,
selectionFilters: [], selectionFilters: [],