双屏消费机

This commit is contained in:
zzyuan 2025-03-07 11:20:46 +08:00
parent 68614ae0d6
commit 5302ef1e08
3 changed files with 127 additions and 30 deletions

View File

@ -360,8 +360,8 @@
<el-form-item label="" prop="keyWord"> <el-form-item label="" prop="keyWord">
<el-input v-model="dialogQueryParams.keyWord" placeholder="请输入姓名,编号,手机号" clearable style="width: 240px"/> <el-input v-model="dialogQueryParams.keyWord" placeholder="请输入姓名,编号,手机号" clearable style="width: 240px"/>
</el-form-item> </el-form-item>
<el-form-item label="" prop="stallName"> <el-form-item label="" prop="jobName">
<el-select v-model="baseForm.labelName" placeholder="请选择职位" style="width: 100%;"> <el-select v-model="dialogQueryParams.jobName" placeholder="请选择职位" style="width: 100%;">
<el-option v-for="item in jobOptions" <el-option v-for="item in jobOptions"
:key="item.jobId" :key="item.jobId"
:label="item.jobName" :label="item.jobName"

View File

@ -68,17 +68,23 @@
<el-table v-loading="loading" :data="tableListData" height="800"> <el-table v-loading="loading" :data="tableListData" height="800">
<el-table-column label="设备编号" align="center" prop="deviceNum" :show-overflow-tooltip="true" width="120" fixed="left"/> <el-table-column label="设备编号" align="center" prop="deviceNum" :show-overflow-tooltip="true" width="120" fixed="left"/>
<el-table-column label="设备名称" align="center" prop="deviceName" :show-overflow-tooltip="true" width="180" fixed="left"/> <el-table-column label="设备名称" align="center" prop="deviceName" :show-overflow-tooltip="true" width="180" fixed="left"/>
<el-table-column label="当前菜谱" align="center" prop="firstRecipeName" :show-overflow-tooltip="true" width="180"/> <el-table-column label="当前菜谱" align="center" prop="firstRecipeName" :show-overflow-tooltip="true" width="180">
<template slot-scope="scope">
<span style="color: #4b80fd;cursor: pointer;" @click="openMenuDialog(scope.row)">{{scope.row.firstRecipeName}}</span>
</template>
</el-table-column>
<el-table-column label="通讯状态" align="center" prop="onlineState" :show-overflow-tooltip="true" width="100"> <el-table-column label="通讯状态" align="center" prop="onlineState" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.onlineState==1">在线</span> <dict-tag :options="dict.type.dev_comm_status" :value="scope.row.onlineState"/>
<span v-if="scope.row.onlineState==2">离线</span> <!-- <span v-if="scope.row.onlineState==1">在线</span>
<span v-if="scope.row.onlineState==2">离线</span> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="设备状态" align="center" prop="deviceState" :show-overflow-tooltip="true" width="100"> <el-table-column label="设备状态" align="center" prop="deviceState" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.deviceState==1">正常</span> <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/>
<span v-if="scope.row.deviceState==2">异常</span> <!-- <span v-if="scope.row.deviceState==1">正常</span>
<span v-if="scope.row.deviceState==2">异常</span> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属区域" align="center" :show-overflow-tooltip="true"> <el-table-column label="所属区域" align="center" :show-overflow-tooltip="true">
@ -402,7 +408,55 @@
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="查看 - 菜谱" :visible.sync="openMenu" width="800px" append-to-body>
<el-form :model="dialogMenuParams" ref="dialogQueryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="" prop="keyWord">
<el-select v-model="dialogMenuParams.keyWord" placeholder="请选择" style="width: 100%;" @change="queryMenuData">
<el-option label="早餐" value="早餐"></el-option>
<el-option label="午餐" value="午餐"></el-option>
<el-option label="下午茶" value="下午茶"></el-option>
<el-option label="晚餐" value="晚餐"></el-option>
<el-option label="夜宵" value="夜宵"></el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="applyDate">
<el-date-picker
v-model="dialogMenuParams.applyDate"
type="date" @change="queryMenuData"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="queryMenuData">搜索</el-button>
</el-form-item>
</el-form>
<el-table :data="menuSubData" height="500">
<el-table-column label="序号" align="center" type="index" :show-overflow-tooltip="true" width="80"/>
<el-table-column label="菜品名称" align="center" prop="dishesName" :show-overflow-tooltip="true"/>
<el-table-column label="规格" align="center" prop="" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>标准</span>
</template>
</el-table-column>
<el-table-column label="价格" align="center" prop="salePrice" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="优惠价" align="center" prop="salePrice" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column label="供应数量" align="center" prop="supplyNum" :show-overflow-tooltip="true"/>
<el-table-column label="限购数量" align="center" prop="restrictNum" :show-overflow-tooltip="true"/>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="openMenu=false"> </el-button>
<el-button @click="openMenu=false"> </el-button>
</div>
</el-dialog>
@ -415,11 +469,11 @@
<script> <script>
import { systemAreaTreeApi } from "@/api/base/area"; import { systemAreaTreeApi } from "@/api/base/area";
import { getCanteenByAreaApi,getStallByCanteenApi } from "@/api/base/stall"; import { getCanteenByAreaApi,getStallByCanteenApi } from "@/api/base/stall";
import { getDeviceListPageApi,addDeviceApi, updateDeviceApi, deleteDeviceApi, getDeviceStateLogApi } from "@/api/device/index"; import { getDeviceListPageApi,addDeviceApi, updateDeviceApi, deleteDeviceApi, getDeviceStateLogApi,getMenuRecipeDetailApi } from "@/api/device/index";
import base64 from 'base-64'; import base64 from 'base-64';
export default { export default {
name: "", name: "",
dicts: [], dicts: ["dev_comm_status","dev_status"],
data() { data() {
return { return {
// //
@ -440,6 +494,7 @@
title: "", title: "",
// //
open: false, open: false,
checked: false,
treeOptions:[],// treeOptions:[],//
treeProps:{ treeProps:{
multiple: true, multiple: true,
@ -513,13 +568,22 @@
"identityFace": "1" "identityFace": "1"
}, },
openLog:false, openLog:false,
dialogQueryParams:{// dialogQueryParams:{//
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}, },
logTableData:[],// logTableData:[],//
// //
dialogTotal: 0, dialogTotal: 0,
//
openMenu:false,
dialogMenuParams:{
keyWord:"早餐",
applyDate:new Date().toISOString().substr(0, 10)
},
recipeId:"",
menuData:[],
menuSubData:[],
}; };
}, },
created() { created() {
@ -702,24 +766,55 @@
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => {});
}, },
/** 异常按钮操作-打开弹窗 */
openLogDialog(row){ openLogDialog(row){
this.openLog=true this.openLog=true
this.queryLogPage(row) this.queryLogPage(row)
}, },
//- //-
queryLogPage(row) { queryLogPage(row) {
let param = {"page":{"current":this.dialogQueryParams.pageNum,"size":this.dialogQueryParams.pageSize},"object":{"deviceSn":row.deviceSn}} let param = {"page":{"current":this.dialogQueryParams.pageNum,"size":this.dialogQueryParams.pageSize},"object":{"deviceSn":row.deviceSn}}
let str = base64.encode(JSON.stringify(param)) let str = base64.encode(JSON.stringify(param))
getDeviceStateLogApi({"content":str}).then((response) => { getDeviceStateLogApi({"content":str}).then((response) => {
this.logTableData = response.records this.logTableData = response.records
this.dialogTotal = Number(response.total); this.dialogTotal = Number(response.total);
console.log(response) console.log(response)
}); });
}, },
/** 今日菜谱按钮操作-打开弹窗 */
openMenuDialog(row){
this.openMenu=true
this.recipeId = row.firstRecipeId
this.queryMenuData()
},
handleMenuQuery(){
this.queryMenuData()
},
//-
queryMenuData() {
console.log(this.dialogMenuParams.applyDate)
let param = {
"applyDate": this.dialogMenuParams.applyDate,
"recipeId": this.recipeId
}
getMenuRecipeDetailApi(param).then((response) => {
console.log(response)
this.menuData = response;
this.menuSubData=[]
console.log(this.dialogMenuParams.keyWord)
this.menuData.forEach(item => {
if(item.mealtimeName == this.dialogMenuParams.keyWord){
this.menuSubData = this.menuSubData.concat(item.dishesList)
}
});
});
},
} }
}; };
</script> </script>

View File

@ -477,7 +477,7 @@
</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="APP用户"> <el-form-item label="APP用户">
<el-radio-group v-model="form.isCustomer"> <el-radio-group v-model="form.isCustomer">
<el-radio <el-radio
@ -488,9 +488,7 @@
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位"> <el-form-item label="岗位">
<el-select <el-select
@ -508,6 +506,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="角色" prop="roleIds"> <el-form-item label="角色" prop="roleIds">
<el-select <el-select
@ -790,13 +791,13 @@ export default {
}, },
{ validator: validateNewPassword, trigger: 'blur' }, { validator: validateNewPassword, trigger: 'blur' },
], ],
roleIds: [ // roleIds: [
{ // {
required: true, // required: true,
message: '请选择角色', // message: '',
trigger: 'change', // trigger: 'change',
}, // },
], // ],
}, },
} }
}, },
@ -1000,7 +1001,8 @@ export default {
this.postOptions = response.posts this.postOptions = response.posts
this.roleOptions = response.roles this.roleOptions = response.roles
this.$set(this.form, 'postIds', response.postIds) this.$set(this.form, 'postIds', response.postIds)
this.$set(this.form, 'roleIds', response.roleIds) // this.$set(this.form, 'roleIds', response.roleIds)
this.$set(this.form, 'roleIds', response.roleIds.map(item=>{ return item+'' }))
this.open = true this.open = true
this.title = '修改用户' this.title = '修改用户'
this.form.password = '' this.form.password = ''