员工管理,设备管理

This commit is contained in:
zzyuan 2025-06-19 16:09:31 +08:00
parent 6885c5ccbb
commit fabe70289b
10 changed files with 327 additions and 129 deletions

View File

@ -1,13 +1,10 @@
import request from '@/utils/request'
// 查询设备-下拉框
// 查询设备类型-下拉框
export function getKitchenDeviceTypeApi(data) {
return request({
url: '/smart-canteen/kitchen_device_info/deviceType',
method: 'get',
headers: {
"merchant-id":"378915229716713472",
},
params: data
})
}
@ -16,9 +13,6 @@ export function getKitchenDeviceSelectApi(data) {
return request({
url: '/smart-canteen/kitchen_device_info/select',
method: 'get',
headers: {
"merchant-id":"378915229716713472",
},
params: data
})
}

View File

@ -0,0 +1,30 @@
import request from '@/utils/request'
// 查询留样机留样清单列表
export function getKitchenSampleRecordListApi(data) {
return request({
url: '/smart-canteen/kitchen_sample_dishes_record/list',
method: 'post',
data: data,
params:{
pageNum:data.pageNum,
pageSize:data.pageSize
}
})
}
// 查询留样柜操作记录列表
export function getKitchenSampleCabinetRecordListApi(data) {
return request({
url: '/smart-canteen/kitchen_sample_cabinet_record/list',
method: 'post',
data: data,
params:{
pageNum:data.pageNum,
pageSize:data.pageSize
}
})
}

View File

@ -1,6 +1,6 @@
import request from '@/utils/request'
import { parseStrEmpty } from '@/utils/bonus'
// 树状下拉选择数据
// 系统人员树状下拉选择数据
export function deptUserTreeApi(query) {
return request({
url: '/system/user/deptUserTree',
@ -8,7 +8,7 @@ export function deptUserTreeApi(query) {
data: query
})
}
// 信息
// 系统人员信息详情
export function getUserInfoApi(userId) {
return request({
url: '/system/user/' + parseStrEmpty(userId),
@ -16,12 +16,16 @@ export function getUserInfoApi(userId) {
})
}
// 员工列表
export function getStaffListApi(query) {
// 厨房员工列表
export function getStaffListApi(data) {
return request({
url: '/smart-canteen/kitchen_staff_info/list',
method: 'post',
data: query
data: data,
params:{
pageNum:data.pageNum,
pageSize:data.pageSize
}
})
}
//详情
@ -54,19 +58,27 @@ export function delStaffApi(staffId) {
// 查询厨房员工晨检记录列表
export function getStaffMorningCheckApi(query) {
export function getStaffMorningCheckApi(data) {
return request({
url: '/smart-canteen/kitchen_staff_morning_check/list',
method: 'get',
params: query
method: 'post',
data: data,
params:{
pageNum:data.pageNum,
pageSize:data.pageSize
}
})
}
// 查询厨房员工违规报警列表
export function getStaffIllegalListApi(query) {
export function getStaffIllegalListApi(data) {
return request({
url: '/smart-canteen/kitchen_staff_illegal_warning/list',
method: 'get',
params: query
method: 'post',
data: data,
params:{
pageNum:data.pageNum,
pageSize:data.pageSize
}
})
}

View File

@ -23,7 +23,7 @@
</div>
<div style="width: 100%;margin: 10px auto;border: 1px solid #ccc;padding: 10px;border-radius: 10px;">
<div style="font-weight: bold;border-left: 4px solid #1890FF;padding-left: 4px;">存储设置</div>
<!-- <div class="item">
<div class="item">
<div>
<div>
<span class="item-label">晨检视频存储时长设置:</span>
@ -35,7 +35,7 @@
</div>
<div style="color: #999;font-size: 14px;margin-top: 10px">超过存储时长的员工晨检视频系统会自动清除</div>
</div>
</div> -->
</div>
<div class="item">
<div>
<div>

View File

@ -30,19 +30,19 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="设备名称" align="center" prop="deviceName" :show-overflow-tooltip="true" />
<el-table-column label="设备类型" align="center" prop="deviceType" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="deviceName" :show-overflow-tooltip="true"/>
<el-table-column label="设备类型" align="center" prop="deviceType" :show-overflow-tooltip="true"/>
<el-table-column label="所属食堂" align="center" prop="canteenName" :show-overflow-tooltip="true" />
<el-table-column label="位置" align="center" prop="subPlace" :show-overflow-tooltip="true" />
<el-table-column label="工作状态" align="center" prop="deviceNetworkState" :show-overflow-tooltip="true">
<el-table-column label="工作状态" align="center" prop="workState" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.deviceNetworkState==1">在线</span>
<span v-if="scope.row.deviceNetworkState==2">离线</span>
<span v-if="scope.row.workState==1">在线</span>
<span v-if="scope.row.workState==2">离线</span>
</template>
</el-table-column>
<el-table-column label="开始使用时间" align="center" prop="" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="结束使用时间" align="center" prop="" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="使用时长(h)" align="center" prop="" :show-overflow-tooltip="true" />
<el-table-column label="开始使用时间" align="center" prop="startUseTime" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="结束使用时间" align="center" prop="endUseTime" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="使用时长(h)" align="center" prop="useTime" :show-overflow-tooltip="true" />
<el-table-column label="离线时长(h)" align="center" prop="" :show-overflow-tooltip="true" />
</el-table>
<pagination

View File

@ -13,22 +13,22 @@
<el-form-item label="关键字" prop="searchValue">
<el-input v-model="queryParams.searchValue" placeholder="请输入菜品名称,编号" maxlength="20" clearable style="width: 240px"/>
</el-form-item>
<el-form-item label="所属档口" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入所属档口" maxlength="20" clearable style="width: 240px"/>
<el-form-item label="所属档口" prop="stallId">
<el-input v-model="queryParams.stallId" placeholder="请输入所属档口" maxlength="20" clearable style="width: 240px"/>
</el-form-item>
<el-form-item label="违规状态" prop="faceStatus">
<el-select v-model="queryParams.faceStatus" style="width: 240px" clearable>
<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-select>
</el-form-item>
<el-form-item label="存放状态" prop="saveStatus">
<el-select v-model="queryParams.saveStatus" style="width: 240px" clearable>
<el-option label="未入柜" value="0"></el-option>
<el-option label="在柜" value="1"></el-option>
<el-option label="离柜" value="2"></el-option>
<el-option label="超时自动离柜 " value="3"></el-option>
<el-option label="未入柜" value="1"></el-option>
<el-option label="在柜" value="2"></el-option>
<el-option label="离柜" value="3"></el-option>
<el-option label="超时自动离柜" value="4"></el-option>
</el-select>
</el-form-item>
<el-form-item>
@ -47,20 +47,25 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="日期" align="center" prop="canteenNum" :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="canteenName" :show-overflow-tooltip="true" />
<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="留样重量(g)" 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="canteenName" :show-overflow-tooltip="true" />
<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="canteenName" :show-overflow-tooltip="true" />
<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="mealtimeType" :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="留样重量(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="userName" :show-overflow-tooltip="true" />
<el-table-column label="样品图片" align="center" prop="imageUrl" :show-overflow-tooltip="true">
<template slot-scope="scope">
<img :src="scope.row.imageUrl" v-if="scope.row.imageUrl" alt="" style="width: 80px;height: 40px;" @click="openImg(scope.row)">
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="入柜时间" align="center" prop="enterCabinetTime" :show-overflow-tooltip="true" />
<el-table-column label="离柜时间" align="center" prop="leaveCabinetTime" :show-overflow-tooltip="true" />
<el-table-column label="存放状态" align="center" prop="saveStatusName" :show-overflow-tooltip="true" />
<el-table-column label="违规状态" align="center" prop="illegalStatusName" :show-overflow-tooltip="true" />
</el-table>
<pagination
v-show="total>0"
@ -79,11 +84,15 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisible" width="700px">
<img style="width: 100%;height: 100%;" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import { getPageCanteenApi } from "@/api/base/canteen";
import { getKitchenSampleRecordListApi } from "@/api/kitchen/foodSafety";
export default {
name: "",
@ -115,6 +124,7 @@ export default {
canteenName: undefined,
areaNameStr: undefined,
},
activeName:"1",
//
form: {},
//
@ -125,11 +135,13 @@ export default {
// dictType: [
// { required: true, message: "", trigger: "blur" }
// ]
}
},
dialogVisible:false,//
dialogImageUrl:"",//
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 搜索按钮操作 */
@ -149,12 +161,10 @@ export default {
/** 查询列表 */
getList() {
this.loading = true;
let param = {
"current": this.queryParams.pageNum,
"size": this.queryParams.pageSize,
}
getPageCanteenApi(param).then(response => {
this.tableListData = response.records;
let param = this.queryParams
param.searchType = this.activeName;
getKitchenSampleRecordListApi(param).then(response => {
this.tableListData = response.rows;
this.total = Number(response.total);
this.loading = false;
});
@ -215,6 +225,10 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
openImg(row) {
this.dialogImageUrl = row.imageUrl;
this.dialogVisible = true;
},
}
};
</script>

View File

@ -4,11 +4,15 @@
<el-form-item label="关键字" prop="searchValue">
<el-input v-model="queryParams.searchValue" placeholder="请输入设备名称,编号" maxlength="20" clearable style="width: 240px"/>
</el-form-item>
<el-form-item label="使用人" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入使用人" maxlength="20" clearable style="width: 240px"/>
<el-form-item label="使用人" prop="staffName">
<el-input v-model="queryParams.staffName" placeholder="请输入使用人" maxlength="20" clearable style="width: 240px"/>
</el-form-item>
<el-form-item label="操作事项" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入操作事项" maxlength="20" clearable style="width: 240px"/>
<el-form-item label="操作事项" prop="actionType">
<el-select v-model="queryParams.actionType" style="width: 240px" clearable>
<el-option label="留样" value="1"></el-option>
<el-option label="取样" value="2"></el-option>
<el-option label="无操作" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -26,14 +30,14 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="设备信息" align="center" prop="canteenNum" :show-overflow-tooltip="true" />
<el-table-column label="所属食堂" align="center" prop="canteenName" :show-overflow-tooltip="true" />
<el-table-column label="开柜温度°C" align="center" prop="canteenName" :show-overflow-tooltip="true" />
<el-table-column label="关柜温度°C" 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="canteenName" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="关柜时间" align="center" prop="canteenName" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="操作事项" align="center" prop="canteenName" :show-overflow-tooltip="true" />
<el-table-column label="设备信息" align="center" prop="deviceName" :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="closeCabinetTemp" :show-overflow-tooltip="true"/>
<el-table-column label="使用人" align="center" prop="nickName" :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="closeCabinetTime" :show-overflow-tooltip="true" width="160"/>
<el-table-column label="操作事项" align="center" prop="actionTypeName" :show-overflow-tooltip="true"/>
</el-table>
<pagination
v-show="total>0"
@ -56,7 +60,7 @@
</template>
<script>
import { getPageCanteenApi } from "@/api/base/canteen";
import { getKitchenSampleCabinetRecordListApi } from "@/api/kitchen/foodSafety";
export default {
name: "",
@ -102,7 +106,7 @@ export default {
};
},
created() {
// this.getList();
this.getList();
},
methods: {
/** 搜索按钮操作 */
@ -118,12 +122,9 @@ export default {
/** 查询列表 */
getList() {
this.loading = true;
let param = {
"current": this.queryParams.pageNum,
"size": this.queryParams.pageSize,
}
getPageCanteenApi(param).then(response => {
this.tableListData = response.records;
let param = this.queryParams
getKitchenSampleCabinetRecordListApi(param).then(response => {
this.tableListData = response.rows;
this.total = Number(response.total);
this.loading = false;
});

View File

@ -15,8 +15,8 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="身体状况" prop="faceStatus">
<el-select v-model="queryParams.faceStatus" style="width: 240px" clearable>
<el-form-item label="身体状况" prop="checkStatus">
<el-select v-model="queryParams.checkStatus" style="width: 240px" clearable>
<el-option label="良好" value="0"></el-option>
<el-option label="异常" value="1"></el-option>
</el-select>
@ -38,9 +38,9 @@
</template>
</el-table-column>
<el-table-column label="员工编号" align="center" prop="staffNo" :show-overflow-tooltip="true" />
<el-table-column label="员工名称" align="center" prop="staffName" :show-overflow-tooltip="true" />
<el-table-column label="手机号" align="center" prop="" :show-overflow-tooltip="true" />
<el-table-column label="岗位名称" align="center" prop="" :show-overflow-tooltip="true" />
<el-table-column label="员工名称" align="center" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="手机号" align="center" prop="phonenumber" :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">
<template slot-scope="scope">
<span v-if="scope.row.checkVideoUrl" style="" @click="openVideo(scope.row)">查看</span>
@ -52,7 +52,7 @@
{{ scope.row.temperatureValue }}
</template>
</el-table-column>
<el-table-column label="身体状况" align="center" prop="" :show-overflow-tooltip="true" />
<el-table-column label="身体状况" align="center" prop="checkStatus" :show-overflow-tooltip="true" />
<el-table-column label="晨检时间" align="center" prop="recordTime" :show-overflow-tooltip="true" width="160" />
</el-table>
<pagination
@ -80,7 +80,7 @@
</template>
<script>
import { getStaffMorningCheckApi } from "@/api/kitchen/staff";
import { getStaffMorningCheckApi,getUserInfoApi } from "@/api/kitchen/staff";
export default {
name: "",
@ -101,6 +101,7 @@ export default {
total: 0,
//
tableListData: [],
postOptions: [],
//
title: "",
//
@ -108,9 +109,7 @@ export default {
//
queryParams: {
pageNum: 1,
pageSize: 10,
canteenName: undefined,
areaNameStr: undefined,
pageSize: 10
},
//
form: {},
@ -128,9 +127,16 @@ export default {
};
},
created() {
this.getPostList();
this.getList();
},
methods: {
//
getPostList(){
getUserInfoApi().then((response) => {
this.postOptions = response.posts
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -145,11 +151,17 @@ export default {
getList() {
this.loading = true;
let param = {
"current": this.queryParams.pageNum,
"size": this.queryParams.pageSize,
"searchValue":this.queryParams.searchValue,
"checkStatus":this.queryParams.checkStatus,
"pageNum": this.queryParams.pageNum,
"pageSize": this.queryParams.pageSize,
}
console.log(this.queryParams)
if(this.queryParams.postIds&&this.queryParams.postIds.length>0){
param.postIds = this.queryParams.postIds
}
getStaffMorningCheckApi(param).then(response => {
this.tableListData = response.records;
this.tableListData = response.rows;
this.total = Number(response.total);
this.loading = false;
});

View File

@ -61,15 +61,41 @@
</template>
</el-table-column>
<el-table-column label="员工编号" align="center" prop="staffNo" :show-overflow-tooltip="true" width="100" />
<el-table-column label="员工名称" align="center" prop="userName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="员工名称" align="center" prop="nickName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="手机号" align="center" prop="phonenumber" :show-overflow-tooltip="true" width="150" />
<el-table-column label="性别" align="center" prop="sex" :show-overflow-tooltip="true" width="150" />
<el-table-column label="性别" align="center" prop="sex" :show-overflow-tooltip="true" width="100" >
<template slot-scope="scope">
<span v-if="scope.row.sex==0"></span>
<span v-if="scope.row.sex==1"></span>
<span v-if="scope.row.sex==2">未知</span>
</template>
</el-table-column>
<el-table-column label="岗位名称" align="center" prop="postName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="员工照片" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="人脸状态" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="健康证照片" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="员工照片" align="center" prop="photoUrl" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<img :src="scope.row.photoUrl" v-if="scope.row.photoUrl" alt="" style="width: 80px;height: 40px;" @click="openImg2(scope.row)">
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="人脸状态" align="center" prop="faceStatus" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<span v-if="scope.row.faceStatus==0">开启</span>
<span v-if="scope.row.faceStatus==1">关闭</span>
</template>
</el-table-column>
<el-table-column label="健康证照片" align="center" prop="healthCertFrontImg" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<img :src="scope.row.healthCertFrontImg" v-if="scope.row.healthCertFrontImg" alt="" style="width: 80px;height: 40px;" @click="openImg(scope.row)">
<span v-else></span>
</template>
</el-table-column>
<el-table-column label="出入权限" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="健康证状态" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="健康证状态" align="center" prop="canteenName" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<div>{{ scope.row.healthCertStatusName }}</div>
<div>有效期至{{ scope.row.healthCertExpire }}</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -115,7 +141,7 @@
multiple: false,
emitPath: false,// falseid
checkStrictly: false,//
value:'id',label:'label'
value:'nodeId',label:'label'
}" clearable @change="handleUserChange">
</el-cascader>
</el-form-item>
@ -234,20 +260,21 @@
</el-row>
<el-row :span="24" v-for="(item,index) in accessAuthorityList" :key="index">
<el-col :span="8">
<el-form-item label="关联门禁设备:" prop="devicesId">
<el-select v-model="item.devicesId" style="width: 100%;" placeholder="请选择关联门禁设备">
<el-form-item label="关联门禁设备:" prop="deviceId">
<el-select v-model="item.deviceId" style="width: 100%;" placeholder="请选择关联门禁设备" :loading="loading2" @change="chosenDevice">
<el-option
v-for="item in canteenOptions"
:key="item.canteenId"
:label="item.canteenName"
:value="item.canteenId"
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.staffNo"
<el-input v-model="item.location"
placeholder="设备位置"
maxlength="30" disabled
/>
@ -257,15 +284,15 @@
<el-button
type="primary"
plain
size="mini"
size="mini" v-if="index==accessAuthorityList.length-1"
@click="addDevice"
>新增</el-button>
<el-button
type="info"
plain
size="mini" v-if="index>0"
size="mini" v-if="accessAuthorityList.length>1"
@click="delDevice(index)"
>新增</el-button>
>删除</el-button>
</el-col>
</el-row>
<el-row>
@ -275,10 +302,10 @@
</div>
</el-col>
<el-col :span="12">
<el-form-item label="留样柜权限:" prop="accountStatus">
<el-switch v-model="form.accountStatus"
<el-form-item label="留样柜权限:" prop="simpleCabinetStatus">
<el-switch v-model="simpleCabinetStatus"
active-text="开启" inactive-text="关闭"
:active-value="0" :inactive-value="1">
:active-value="1" :inactive-value="2">
</el-switch>
</el-form-item>
</el-col>
@ -299,6 +326,7 @@
<script>
import { getCanteenByAreaApi } from "@/api/base/stall";
import { getKitchenDeviceSelectApi } from "@/api/kitchen/devices";
import { deptUserTreeApi,getUserInfoApi,getStaffListApi,getStaffInfoApi,addKitchenStaffApi,editKitchenStaffApi,delStaffApi} from '@/api/kitchen/staff';
import { imgUpLoadTwo } from '@/api/system/upload';
export default {
@ -326,13 +354,10 @@ export default {
userTreeOptions:[],
//
canteenOptions:[],
//
accessAuthorityList:[
{
devicesI:"",
locatio:""
}
],
//
devicesOptions:[],
loading2: false,
//
title: "",
//
@ -346,6 +371,14 @@ export default {
},
//
form: {},
//
accessAuthorityList:[
{
deviceId:"",
location:""
}
],
simpleCabinetStatus:1,
//
rules: {
userId: [
@ -398,6 +431,12 @@ export default {
this.canteenOptions = response.rows
})
},
//
getKitchenDeviceSelect(){
getKitchenDeviceSelectApi({deviceType:3}).then((response) => {
this.devicesOptions = response.data
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -432,6 +471,36 @@ export default {
this.reset();
getStaffInfoApi(row.staffId).then(response => {
this.form = response.data;
this.$set(this.form,"userId",Number(response.data.userId))
this.handleUserChange(response.data.userId)
if(response.data.healthCertFrontImg){
this.fileList=[{url:response.data.healthCertFrontImg}]
this.checkUrlList=[response.data.healthCertFrontImg]
}else{
this.fileList=[]
this.checkUrlList=[]
}
if(response.data.healthCertBackImg){
this.fileList2=[{url:response.data.healthCertBackImg}]
this.checkUrlList2=[response.data.healthCertBackImg]
}else{
this.fileList2=[]
this.checkUrlList2=[]
}
console.log(this.form)
if(this.form.accessAuthorityList&&this.form.accessAuthorityList.length>0){
console.log(this.form.accessAuthorityList)
this.form.accessAuthorityList.forEach(item=>{
if(item.deviceType==3){
this.accessAuthorityList.push(item)
this.$forceUpdate()
}
if(item.deviceType==7){
this.simpleCabinetStatus = item.privilegeValue
}
})
}
console.log(this.accessAuthorityList)
this.open = true;
this.title = "修改";
});
@ -439,40 +508,81 @@ export default {
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.deptUserTree();
this.getCanteenList();
this.getKitchenDeviceSelect();
this.fileList = []//
this.checkUrlList = []//
this.fileList2 = []//
this.checkUrlList2 = []//
this.accessAuthorityList = [{
deviceId:"",
location:""
}]
this.simpleCabinetStatus=1
this.form = {};
this.resetForm("form");
},
//
handleUserChange(e){
let arr = this.$refs['userCascader'].getCheckedNodes()
let data = arr[0].data
getUserInfoApi(data.nodeId).then((response) => {
console.log(response.data)
getUserInfoApi(e).then((response) => {
let userInfo = response.data
this.$set(this.form,"userId",userInfo.userId)
this.$set(this.form,"sex",userInfo.sex)
// this.$set(this.form,"sex",userInfo.sex)
this.$set(this.form,"phonenumber",userInfo.phonenumber)
this.$set(this.form,"postIds",response.postIds)
})
},
//
addDevice(){
if(this.accessAuthorityList.length<this.devicesOptions.length){
this.accessAuthorityList.push({
deviceId:"",
location:""
})
}
},
//
delDevice(index){
this.accessAuthorityList.splice(index,1)
},
chosenDevice(e){
let index = this.devicesOptions.findIndex(v=>v.deviceId==e)
let index2 = this.accessAuthorityList.findIndex(v=>v.deviceId==e)
this.accessAuthorityList[index2].deviceName = this.devicesOptions[index].deviceName;
this.accessAuthorityList[index2].deviceType = this.devicesOptions[index].deviceType;
this.accessAuthorityList[index2].privilegeValue = 1;
this.accessAuthorityList[index2].location = this.devicesOptions[index].subPlace;
this.loading2=true
this.setDisabled()
this.loading2=false
},
//
setDisabled(){
this.devicesOptions.forEach(item=>{
let index = this.accessAuthorityList.findIndex(v=>v.deviceId==item.deviceId)
if(index!=-1){
item.disabled = true
}else{
item.disabled = false
}
})
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (valid) {
let arr = [{
deviceId:"",
deviceName:"",
deviceType:7,
privilegeValue:this.simpleCabinetStatus,
location:""
}]
this.form.accessAuthorityList = this.accessAuthorityList.concat(arr)
console.log(this.form)
if (this.form.staffId != undefined) {
editKitchenStaffApi(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
@ -504,6 +614,21 @@ export default {
imgUpLoadTwo(param).then((res) => {
if (res.code == 200) {
this.checkUrlList.push(res.data.url)
this.$set(this.form,"healthCertFrontImg",res.data.url)
} else {
this.$modal.msgError(res.msg)
}
})
.catch((error) => {
this.$modal.msgError(error)
})
},
imgUpLoad2(param, name, index) {
param.type = 'canteen'
imgUpLoadTwo(param).then((res) => {
if (res.code == 200) {
this.checkUrlList2.push(res.data.url)
this.$set(this.form,"healthCertBackImg",res.data.url)
} else {
this.$modal.msgError(res.msg)
}
@ -531,6 +656,7 @@ export default {
}
})
this.checkUrlList.splice(sum, 1)
this.$set(this.form,"healthCertFrontImg","")
},
handleRemove2(file, fileList) {
let sum = 0
@ -539,13 +665,22 @@ export default {
sum = index
}
})
this.checkUrlList2.splice(sum, 1)
this.checkUrlList2.splice(sum,1)
this.$set(this.form,"healthCertBackImg","")
},
//
handlePictureCardPreview(file) {
console.log(file)
this.dialogImageUrl = file.url
this.dialogVisible = true
},
openImg(row) {
this.dialogImageUrl = row.healthCertFrontImg;
this.dialogVisible = true;
},
openImg2(row) {
this.dialogImageUrl = row.photoUrl;
this.dialogVisible = true;
}
}
};

View File

@ -35,7 +35,7 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="违规人员" align="center" prop="staffName" :show-overflow-tooltip="true"/>
<el-table-column label="违规人员" align="center" prop="nickName" :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">
<template slot-scope="scope">