厨房人员管理修改

This commit is contained in:
zzyuan 2025-06-23 16:09:03 +08:00
parent 236490d4db
commit f4e3ec78a3
7 changed files with 263 additions and 123 deletions

View File

@ -55,6 +55,15 @@ export function delStaffApi(staffId) {
method: 'post', method: 'post',
}) })
} }
//更新员工人脸
export function editStaffFaceStateApi(data) {
return request({
url: '/kitchen_staff_info/edit/face-state',
method: 'post',
data: data
})
}
// 查询厨房员工晨检记录列表 // 查询厨房员工晨检记录列表

View File

@ -69,12 +69,20 @@
<el-table-column label="日期" align="center" prop="sampleSaveTime" :show-overflow-tooltip="true" width="150"/> <el-table-column label="日期" align="center" prop="sampleSaveTime" :show-overflow-tooltip="true" width="150"/>
<el-table-column label="关联食堂" align="center" prop="canteenName" :show-overflow-tooltip="true" /> <el-table-column label="关联食堂" align="center" prop="canteenName" :show-overflow-tooltip="true" />
<el-table-column label="档口名称" align="center" prop="stallName" :show-overflow-tooltip="true" /> <el-table-column label="档口名称" align="center" prop="stallName" :show-overflow-tooltip="true" />
<el-table-column label="餐次" align="center" prop="mealtimeType" :show-overflow-tooltip="true" /> <el-table-column label="餐次" align="center" prop="mealtimeType" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.mealtimeType==1">早餐</span>
<span v-if="scope.row.mealtimeType==2">午餐</span>
<span v-if="scope.row.mealtimeType==3">下午茶</span>
<span v-if="scope.row.mealtimeType==4">晚餐</span>
<span v-if="scope.row.mealtimeType==5">夜宵</span>
</template>
</el-table-column>
<el-table-column label="菜品编号" align="center" prop="dishesId" :show-overflow-tooltip="true" /> <el-table-column label="菜品编号" align="center" prop="dishesId" :show-overflow-tooltip="true" />
<el-table-column label="菜品名称" align="center" prop="dishesName" :show-overflow-tooltip="true" /> <el-table-column label="菜品名称" align="center" prop="dishesName" :show-overflow-tooltip="true" />
<el-table-column label="留样重量(g)" align="center" prop="sampleWeight" :show-overflow-tooltip="true" /> <el-table-column label="留样重量(g)" align="center" prop="sampleWeight" :show-overflow-tooltip="true" />
<el-table-column label="所在留样柜" align="center" prop="deviceName" :show-overflow-tooltip="true" /> <el-table-column label="所在留样柜" align="center" prop="deviceName" :show-overflow-tooltip="true" />
<el-table-column label="留样人" align="center" prop="userName" :show-overflow-tooltip="true" /> <el-table-column label="留样人" align="center" prop="staffName" :show-overflow-tooltip="true" />
<el-table-column label="样品图片" align="center" prop="imageUrl" :show-overflow-tooltip="true"> <el-table-column label="样品图片" align="center" prop="imageUrl" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<img :src="scope.row.imageUrl" v-if="scope.row.imageUrl" alt="" style="width: 80px;height: 40px;" @click="openImg(scope.row)"> <img :src="scope.row.imageUrl" v-if="scope.row.imageUrl" alt="" style="width: 80px;height: 40px;" @click="openImg(scope.row)">

View File

@ -34,7 +34,7 @@
<el-table-column label="所属食堂" align="center" prop="canteenName" :show-overflow-tooltip="true"/> <el-table-column label="所属食堂" align="center" prop="canteenName" :show-overflow-tooltip="true"/>
<el-table-column label="开柜温度°C" align="center" prop="openCabinetTemp" :show-overflow-tooltip="true"/> <el-table-column label="开柜温度°C" align="center" prop="openCabinetTemp" :show-overflow-tooltip="true"/>
<el-table-column label="关柜温度°C" align="center" prop="closeCabinetTemp" :show-overflow-tooltip="true"/> <el-table-column label="关柜温度°C" align="center" prop="closeCabinetTemp" :show-overflow-tooltip="true"/>
<el-table-column label="使用人" align="center" prop="nickName" :show-overflow-tooltip="true"/> <el-table-column label="使用人" align="center" prop="staffName" :show-overflow-tooltip="true"/>
<el-table-column label="开柜时间" align="center" prop="openCabinetTime" :show-overflow-tooltip="true" width="160"/> <el-table-column label="开柜时间" align="center" prop="openCabinetTime" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="关柜时间" align="center" prop="closeCabinetTime" :show-overflow-tooltip="true" width="160"/> <el-table-column label="关柜时间" align="center" prop="closeCabinetTime" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="操作事项" align="center" prop="actionTypeName" :show-overflow-tooltip="true"/> <el-table-column label="操作事项" align="center" prop="actionTypeName" :show-overflow-tooltip="true"/>

View File

@ -38,8 +38,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="员工编号" align="center" prop="staffNo" :show-overflow-tooltip="true" /> <el-table-column label="员工编号" align="center" prop="staffNo" :show-overflow-tooltip="true" />
<el-table-column label="员工名称" align="center" prop="nickName" :show-overflow-tooltip="true" /> <el-table-column label="员工名称" align="center" prop="staffName" :show-overflow-tooltip="true" />
<el-table-column label="手机号" align="center" prop="phonenumber" :show-overflow-tooltip="true" /> <el-table-column label="手机号" align="center" prop="mobile" :show-overflow-tooltip="true" />
<el-table-column label="岗位名称" align="center" prop="postName" :show-overflow-tooltip="true" /> <el-table-column label="岗位名称" align="center" prop="postName" :show-overflow-tooltip="true" />
<el-table-column label="晨检视频" align="center" prop="checkVideoUrl" :show-overflow-tooltip="true"> <el-table-column label="晨检视频" align="center" prop="checkVideoUrl" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">

View File

@ -10,25 +10,17 @@
<el-option label="女" value="1"></el-option> <el-option label="女" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="岗位" prop="postIds"> <el-form-item label="岗位" prop="postName">
<el-select v-model="queryParams.postIds" multiple style="width: 100%;" placeholder="请选择岗位"> <el-input v-model="queryParams.postName" placeholder="请输入员工岗位" maxlength="20" clearable style="width: 240px"/>
<el-option
v-for="item in postOptions"
:key="item.postId"
:label="item.postName"
:value="item.postId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="人脸状态" prop="faceStatus"> <el-form-item label="人脸状态" prop="faceState">
<el-select v-model="queryParams.faceStatus" style="width: 240px" clearable> <el-select v-model="queryParams.faceState" style="width: 240px" clearable>
<el-option label="开启" value="0"></el-option> <el-option label="开启" value="0"></el-option>
<el-option label="停用" value="1"></el-option> <el-option label="停用" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="健康证" prop="healthCertificate"> <el-form-item label="健康证" prop="healthCertStatus">
<el-select v-model="queryParams.healthCertificate" placeholder="健康证状态" style="width: 240px" clearable> <el-select v-model="queryParams.healthCertStatus" placeholder="健康证状态" style="width: 240px" clearable>
<el-option label="正常" value="0"></el-option> <el-option label="正常" value="0"></el-option>
<el-option label="过期" value="1"></el-option> <el-option label="过期" value="1"></el-option>
<el-option label="缺失" value="2"></el-option> <el-option label="缺失" value="2"></el-option>
@ -60,43 +52,51 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span> <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="员工编号" align="center" prop="staffNo" :show-overflow-tooltip="true" width="100" /> <el-table-column label="员工编号" align="center" prop="staffNo" :show-overflow-tooltip="true"/>
<el-table-column label="员工名称" align="center" prop="nickName" :show-overflow-tooltip="true" width="150" /> <el-table-column label="员工名称" align="center" prop="staffName" :show-overflow-tooltip="true" />
<el-table-column label="手机号" align="center" prop="phonenumber" :show-overflow-tooltip="true" width="150" /> <el-table-column label="手机号" align="center" prop="mobile" :show-overflow-tooltip="true"/>
<el-table-column label="性别" align="center" prop="sex" :show-overflow-tooltip="true" width="100" > <el-table-column label="性别" align="center" prop="sex" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.sex==0"></span> <span v-if="scope.row.sex==0"></span>
<span v-if="scope.row.sex==1"></span> <span v-if="scope.row.sex==1"></span>
<span v-if="scope.row.sex==2">未知</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="岗位名称" align="center" prop="postName" :show-overflow-tooltip="true" width="150" /> <el-table-column label="岗位名称" align="center" prop="postName" :show-overflow-tooltip="true"/>
<el-table-column label="员工照片" align="center" prop="photoUrl" :show-overflow-tooltip="true" width="150"> <el-table-column label="员工照片" align="center" prop="faceUrl" :show-overflow-tooltip="true" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<img :src="scope.row.photoUrl" v-if="scope.row.photoUrl" alt="" style="width: 80px;height: 40px;" @click="openImg2(scope.row)"> <img :src="scope.row.faceUrl" v-if="scope.row.faceUrl" alt="" style="width: 80px;height: 40px;" @click="openImg2(scope.row)">
<span v-else></span> <span v-else></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="人脸状态" align="center" prop="faceStatus" :show-overflow-tooltip="true" width="150"> <el-table-column label="人脸状态" align="center" prop="faceState" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.faceStatus==0">开启</span> <!-- <span v-if="scope.row.faceState==0">开启</span>
<span v-if="scope.row.faceStatus==1">关闭</span> <span v-if="scope.row.faceState==1">关闭</span> -->
<el-switch @change="changeSwitch(scope.row)"
v-model="scope.row.faceState"
:active-value="1" active-text="开启"
:inactive-value="2" inactive-text="关闭">
</el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="健康证照片" align="center" prop="healthCertFrontImg" :show-overflow-tooltip="true" width="150"> <el-table-column label="健康证照片" align="center" prop="healthCertFrontImg" :show-overflow-tooltip="true" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<img :src="scope.row.healthCertFrontImg" v-if="scope.row.healthCertFrontImg" alt="" style="width: 80px;height: 40px;" @click="openImg(scope.row)"> <img :src="scope.row.healthCertFrontImg" v-if="scope.row.healthCertFrontImg" alt="" style="width: 80px;height: 40px;" @click="openImg(scope.row)">
<span v-else></span> <span v-else></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="出入权限" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150" /> <el-table-column label="出入权限" align="center" prop="" :show-overflow-tooltip="true" width="150">
<el-table-column label="健康证状态" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150"> <template slot-scope="scope">
<span style="color: #1890ff;" @click="openAccessAuth(scope.row)">查看</span>
</template>
</el-table-column>
<el-table-column label="健康证状态" align="center" prop="healthCertStatusName" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.healthCertStatusName }}</div> <div>{{ scope.row.healthCertStatusName }}</div>
<div>有效期至{{ scope.row.healthCertExpire }}</div> <div>有效期至{{ scope.row.healthCertExpire }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@ -133,17 +133,11 @@
</div> </div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="员工名称:" prop="userId"> <el-form-item label="员工名称:" prop="staffName">
<el-cascader v-model="form.userId" <el-input v-model="form.staffName"
:options="userTreeOptions" :filterable="true" style="width: 100%" placeholder="请输入员工名称"
ref="userCascader" maxlength="30"
:props="{ />
multiple: false,
emitPath: false,// falseid
checkStrictly: false,//
value:'nodeId',label:'label'
}" clearable @change="handleUserChange">
</el-cascader>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -156,18 +150,15 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="员工性别:" prop="sex"> <el-form-item label="员工性别:" prop="sex">
<el-select v-model="form.sex" disabled clearable style="width: 100%;"> <el-select v-model="form.sex" clearable style="width: 100%;">
<el-option label="男" value="0"></el-option> <el-option label="男" :value="0"></el-option>
<el-option label="女" value="1"></el-option> <el-option label="女" :value="1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="手机号:" prop="phonenumber"> <el-form-item label="手机号:" prop="mobile">
<el-input v-model="form.phonenumber" <el-input v-model="form.mobile" placeholder="请输入手机号" maxlength="11"/>
placeholder="请输入手机号" disabled
maxlength="11"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -183,16 +174,36 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位名称:" prop="postIds"> <el-form-item label="岗位名称:" prop="postName">
<el-select v-model="form.postIds" multiple disabled style="width: 100%;" placeholder="请选择岗位"> <el-input v-model="form.postName" placeholder="请输入岗位名称" maxlength="20" />
<el-option </el-form-item>
v-for="item in postOptions" </el-col>
:key="item.postId" <el-col :span="24">
:label="item.postName" <div style="font-size: 18px;font-weight: bold;border-left: 4px solid #1890FF;padding-left: 4px;margin-bottom: 20px;">
:value="item.postId" 人脸信息
:disabled="item.status == 1" </div>
></el-option> </el-col>
</el-select> <el-col :span="12">
<el-form-item label="人脸照片:" prop="faceUrl">
<el-upload
:http-request="
(obj) => imgUpLoad0(obj, 'fileUrl')
"
action="#"
:limit="1"
:file-list="fileList0"
:show-file-list="true"
list-type="picture-card"
accept=".png, .jpg, .jpeg"
:class="{ disabled: uploadDisabled0 }"
:before-upload="handleBeforeUpload"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove0"
>
<i
class="el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -200,6 +211,7 @@
健康证信息 健康证信息
</div> </div>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="健康证到期:" prop="healthCertExpire"> <el-form-item label="健康证到期:" prop="healthCertExpire">
<el-date-picker v-model="form.healthCertExpire" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 45%;"> <el-date-picker v-model="form.healthCertExpire" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 45%;">
@ -210,18 +222,18 @@
<el-form-item label="健康证正面照片:" prop="healthCertFrontImg"> <el-form-item label="健康证正面照片:" prop="healthCertFrontImg">
<el-upload <el-upload
:http-request=" :http-request="
(obj) => imgUpLoad(obj, 'fileUrl') (obj) => imgUpLoad1(obj, 'fileUrl')
" "
action="#" action="#"
:limit="1" :limit="1"
:file-list="fileList" :file-list="fileList1"
:show-file-list="true" :show-file-list="true"
list-type="picture-card" list-type="picture-card"
accept=".png, .jpg, .jpeg" accept=".png, .jpg, .jpeg"
:class="{ disabled: uploadDisabled }" :class="{ disabled: uploadDisabled1 }"
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
:on-preview="handlePictureCardPreview" :on-preview="handlePictureCardPreview"
:on-remove="handleRemove" :on-remove="handleRemove1"
> >
<i <i
class="el-icon-plus avatar-uploader-icon" class="el-icon-plus avatar-uploader-icon"
@ -318,6 +330,62 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog :title="title" :visible.sync="open2" width="900px" append-to-body>
<div style="width: 100%;height: 300px;overflow-y: auto;">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="24">
<div style="font-size: 18px;font-weight: bold;border-left: 4px solid #1890FF;padding-left: 4px;margin-bottom: 20px;">
出入权限
</div>
</el-col>
</el-row>
<el-row :span="24" v-for="(item,index) in accessAuthorityList" :key="index">
<el-col :span="8">
<el-form-item label="关联门禁设备:" prop="deviceId">
<el-select v-model="item.deviceId" style="width: 100%;" placeholder="请选择关联门禁设备" disabled @change="chosenDevice">
<el-option
v-for="items in devicesOptions"
:disabled="items.disabled"
:key="items.deviceId"
:label="items.deviceName"
:value="items.deviceId"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="设备位置:" prop="location">
<el-input v-model="item.location"
placeholder="设备位置"
maxlength="30" disabled
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div style="font-size: 18px;font-weight: bold;border-left: 4px solid #1890FF;padding-left: 4px;margin-bottom: 20px;">
留样柜权限
</div>
</el-col>
<el-col :span="12">
<el-form-item label="留样柜权限:" prop="simpleCabinetStatus">
<el-switch v-model="simpleCabinetStatus" disabled
active-text="开启" inactive-text="关闭"
:active-value="1" :inactive-value="2">
</el-switch>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="open2=false"> </el-button>
<el-button @click="open2=false"> </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisible" width="700px"> <el-dialog :visible.sync="dialogVisible" width="700px">
<img style="width: 100%;height: 100%;" :src="dialogImageUrl" alt=""> <img style="width: 100%;height: 100%;" :src="dialogImageUrl" alt="">
</el-dialog> </el-dialog>
@ -327,7 +395,7 @@
<script> <script>
import { getCanteenByAreaApi } from "@/api/base/stall"; import { getCanteenByAreaApi } from "@/api/base/stall";
import { getKitchenDeviceSelectApi } from "@/api/kitchen/devices"; import { getKitchenDeviceSelectApi } from "@/api/kitchen/devices";
import { deptUserTreeApi,getUserInfoApi,getStaffListApi,getStaffInfoApi,addKitchenStaffApi,editKitchenStaffApi,delStaffApi} from '@/api/kitchen/staff'; import { getStaffListApi,getStaffInfoApi,addKitchenStaffApi,editKitchenStaffApi,delStaffApi,editStaffFaceStateApi} from '@/api/kitchen/staff';
import { imgUpLoadTwo } from '@/api/system/upload'; import { imgUpLoadTwo } from '@/api/system/upload';
export default { export default {
name: "", name: "",
@ -348,10 +416,6 @@ export default {
total: 0, total: 0,
// //
tableListData: [], tableListData: [],
//
postOptions: [],
//
userTreeOptions:[],
// //
canteenOptions:[], canteenOptions:[],
// //
@ -362,6 +426,7 @@ export default {
title: "", title: "",
// //
open: false, open: false,
open2: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -381,18 +446,38 @@ export default {
simpleCabinetStatus:1, simpleCabinetStatus:1,
// //
rules: { rules: {
userId: [ staffName: [
{ required: true, message: "员工不能为空", trigger: "change" } { required: true, message: "员工名称不能为空", trigger: "blur" }
],
staffNo: [
{ required: true, message: "员工编号不能为空", trigger: "blur" }
],
sex: [
{ required: true, message: "员工性别不能为空", trigger: "change" }
],
mobile: [
{
required: true,
message: '手机号不能为空',
trigger: 'blur',
},
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
], ],
canteenId: [ canteenId: [
{ required: true, message: "关联食堂不能为空", trigger: "change" } { required: true, message: "关联食堂不能为空", trigger: "change" }
], ],
staffNo: [ postName: [
{ required: true, message: "员工编号不能为空", trigger: "blur" } { required: true, message: "员工岗位名称不能为空", trigger: "blur" }
] ],
}, },
fileList: [],// fileList0: [],//
checkUrlList: [],// checkUrlList0: [],//
fileList1: [],//
checkUrlList1: [],//
fileList2: [],// fileList2: [],//
checkUrlList2: [],// checkUrlList2: [],//
dialogVisible:false,// dialogVisible:false,//
@ -400,31 +485,21 @@ export default {
}; };
}, },
created() { created() {
this.getPostList();
this.getList(); this.getList();
}, },
computed: { computed: {
//1 //1
uploadDisabled() { uploadDisabled0() {
return this.checkUrlList.length > 0 return this.checkUrlList0.length > 0
},
uploadDisabled1() {
return this.checkUrlList1.length > 0
}, },
uploadDisabled2() { uploadDisabled2() {
return this.checkUrlList2.length > 0 return this.checkUrlList2.length > 0
}, },
}, },
methods: { methods: {
//
getPostList(){
getUserInfoApi().then((response) => {
this.postOptions = response.posts
})
},
//
deptUserTree(){
deptUserTreeApi({}).then((response) => {
this.userTreeOptions = response.data
})
},
// //
getCanteenList(){ getCanteenList(){
getCanteenByAreaApi({}).then((response) => { getCanteenByAreaApi({}).then((response) => {
@ -453,14 +528,12 @@ export default {
let param = { let param = {
"searchValue":this.queryParams.searchValue, "searchValue":this.queryParams.searchValue,
"sex":this.queryParams.sex, "sex":this.queryParams.sex,
"faceStatus":this.queryParams.faceStatus, "faceState":this.queryParams.faceState,
"healthCertificate":this.queryParams.healthCertificate, "postName":this.queryParams.postName,
"healthCertStatus":this.queryParams.healthCertStatus,
"pageNum": this.queryParams.pageNum, "pageNum": this.queryParams.pageNum,
"pageSize": this.queryParams.pageSize "pageSize": this.queryParams.pageSize
} }
if(this.queryParams.postIds&&this.queryParams.postIds.length>0){
param.postIds = this.queryParams.postIds
}
getStaffListApi(param).then(response => { getStaffListApi(param).then(response => {
this.tableListData = response.rows; this.tableListData = response.rows;
this.total = Number(response.total); this.total = Number(response.total);
@ -478,14 +551,19 @@ export default {
this.reset(); this.reset();
getStaffInfoApi(row.staffId).then(response => { getStaffInfoApi(row.staffId).then(response => {
this.form = response.data; this.form = response.data;
this.$set(this.form,"userId",Number(response.data.userId))
this.handleUserChange(response.data.userId)
if(response.data.healthCertFrontImg){ if(response.data.healthCertFrontImg){
this.fileList=[{url:response.data.healthCertFrontImg}] this.fileList0=[{url:response.data.faceUrl}]
this.checkUrlList=[response.data.healthCertFrontImg] this.checkUrlList0=[response.data.faceUrl]
}else{ }else{
this.fileList=[] this.fileList0=[]
this.checkUrlList=[] this.checkUrlList0=[]
}
if(response.data.healthCertFrontImg){
this.fileList1=[{url:response.data.healthCertFrontImg}]
this.checkUrlList1=[response.data.healthCertFrontImg]
}else{
this.fileList1=[]
this.checkUrlList1=[]
} }
if(response.data.healthCertBackImg){ if(response.data.healthCertBackImg){
this.fileList2=[{url:response.data.healthCertBackImg}] this.fileList2=[{url:response.data.healthCertBackImg}]
@ -519,7 +597,6 @@ export default {
}, },
// //
reset() { reset() {
this.deptUserTree();
this.getCanteenList(); this.getCanteenList();
this.getKitchenDeviceSelect(); this.getKitchenDeviceSelect();
this.fileList = []// this.fileList = []//
@ -534,14 +611,36 @@ export default {
this.form = {}; this.form = {};
this.resetForm("form"); this.resetForm("form");
}, },
// changeSwitch(row){
handleUserChange(e){ console.log(row.faceState)
getUserInfoApi(e).then((response) => { let param = {
let userInfo = response.data staffId:row.staffId,
// this.$set(this.form,"sex",userInfo.sex) faceState:row.faceState
this.$set(this.form,"phonenumber",userInfo.phonenumber) }
this.$set(this.form,"postIds",response.postIds) editStaffFaceStateApi(param).then(response => {
this.$modal.msgSuccess("修改成功");
this.getList();
});
},
openAccessAuth(row){
this.getKitchenDeviceSelect();
if(row.accessAuthorityList&&row.accessAuthorityList.length>0){
console.log(row.accessAuthorityList)
this.accessAuthorityList = []
row.accessAuthorityList.forEach(item=>{
if(item.deviceType==3){
this.accessAuthorityList.push(item)
this.$forceUpdate()
}
if(item.deviceType==7){
this.simpleCabinetStatus = Number(item.privilegeValue)
}
}) })
}
console.log(this.accessAuthorityList)
this.open2=true
this.title = "出入权限";
}, },
// //
addDevice(){ addDevice(){
@ -617,11 +716,25 @@ export default {
}).catch(() => {}); }).catch(() => {});
}, },
// //
imgUpLoad(param, name, index) { imgUpLoad0(param, name, index) {
param.type = 'canteen' param.type = 'canteen'
imgUpLoadTwo(param).then((res) => { imgUpLoadTwo(param).then((res) => {
if (res.code == 200) { if (res.code == 200) {
this.checkUrlList.push(res.data.url) this.checkUrlList0.push(res.data.url)
this.$set(this.form,"faceUrl",res.data.url)
} else {
this.$modal.msgError(res.msg)
}
})
.catch((error) => {
this.$modal.msgError(error)
})
},
imgUpLoad1(param, name, index) {
param.type = 'canteen'
imgUpLoadTwo(param).then((res) => {
if (res.code == 200) {
this.checkUrlList1.push(res.data.url)
this.$set(this.form,"healthCertFrontImg",res.data.url) this.$set(this.form,"healthCertFrontImg",res.data.url)
} else { } else {
this.$modal.msgError(res.msg) this.$modal.msgError(res.msg)
@ -656,14 +769,24 @@ export default {
handleExceed(files, fileList) { handleExceed(files, fileList) {
this.$message.warning('最多只可以上传一张图片') this.$message.warning('最多只可以上传一张图片')
}, },
handleRemove(file, fileList) { handleRemove0(file, fileList) {
let sum = 0 let sum = 0
this.checkUrlList.forEach((item, index) => { this.checkUrlList.forEach((item, index) => {
if (item == file.url) { if (item == file.url) {
sum = index sum = index
} }
}) })
this.checkUrlList.splice(sum, 1) this.checkUrlList0.splice(sum, 1)
this.$set(this.form,"faceUrl","")
},
handleRemove1(file, fileList) {
let sum = 0
this.checkUrlList.forEach((item, index) => {
if (item == file.url) {
sum = index
}
})
this.checkUrlList1.splice(sum, 1)
this.$set(this.form,"healthCertFrontImg","") this.$set(this.form,"healthCertFrontImg","")
}, },
handleRemove2(file, fileList) { handleRemove2(file, fileList) {
@ -687,7 +810,7 @@ export default {
this.dialogVisible = true; this.dialogVisible = true;
}, },
openImg2(row) { openImg2(row) {
this.dialogImageUrl = row.photoUrl; this.dialogImageUrl = row.faceUrl;
this.dialogVisible = true; this.dialogVisible = true;
} }
} }

View File

@ -36,7 +36,7 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span> <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="违规人员" align="center" prop="nickName" :show-overflow-tooltip="true"/> <el-table-column label="违规人员" align="center" prop="staffName" :show-overflow-tooltip="true"/>
<el-table-column label="违规内容" align="center" prop="recordDesc" :show-overflow-tooltip="true"/> <el-table-column label="违规内容" align="center" prop="recordDesc" :show-overflow-tooltip="true"/>
<el-table-column label="违规图片" align="center" prop="imgUrl" :show-overflow-tooltip="true"> <el-table-column label="违规图片" align="center" prop="imgUrl" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">