Ai+若依(智能售货机运营管理系统---帝可得)-设备管理-策略管理-商品管理---【08篇---0002:中】
设备管理
需求说明
业务场景:管理员在系统录入设备信息后,员工将负责设备(智能售货机)的投放和商品补货工作
设备管理主要涉及到三个功能模块,业务流程如下:
点位管理主要涉及到三个功能模块,业务流程如下:
-
新增设备类型: 允许管理员定义新的售货机型号,包括其规格和容量。
-
新增设备: 在新的设备类型定义后,系统应允许添加新的售货机实例,并将它们分配到特定的点位。
-
新增货道: 对于每个新添加的设备,系统应支持定义新的货道,后期用于关联相应的商品SKU。
对于设备和其他管理数据,下面是示意图:
-
关系字段:vm_type_id、node_id、vm_id
-
数据字典:vm_status(0未投放、1运营、3撤机)
-
冗余字段:addr、business_type、region_id、partner_id(简化查询接口、提高查询效率)
生成基础代码
需求
使用若依代码生成器,生成设备类型、设备、货道前后端基础代码,并导入到项目中:
步骤
①创建目录菜单
创建设备管理目录菜单
②添加数据字典
先创建设备状态
的字典类型
③配置代码生成信息
导入三张表
配置设备类型表(参考原型)
配置设备表(参考原型)
配置货道表(无原型)
④下载代码并导入项目
选中三张表生成下载
解压ruoyi.zip
得到前后端代码和动态菜单sql
注意:货道动态菜单sql和前端不需要导入
调整二级菜单显示顺序(设备状态稍后完成)
设备类型改造
基础页面
需求
参考页面原型,完成基础布局展示改造
代码实现
在vmType/index.vue视图组件中修改
<!-- 查询条件 -->
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"><el-form-item label="型号名称" prop="name"><el-input v-model="queryParams.name" placeholder="请输入型号名称" clearable @keyup.enter="handleQuery"/></el-form-item><el-form-item><el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button><el-button icon="Refresh" @click="resetQuery">重置</el-button></el-form-item>
</el-form><!-- 列表展示 -->
<el-table v-loading="loading" :data="vmTypeList" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55" align="center" /><el-table-column label="型号名称" align="center" prop="name" /><el-table-column label="型号编码" align="center" prop="model" /><el-table-column label="设备图片" align="center" prop="image" width="100"><template #default="scope">
<image-preview :src="scope.row.image" :width="50" :height="50"/></template></el-table-column><el-table-column label="货道行" align="center" prop="vmRow" /><el-table-column label="货道列" align="center" prop="vmCol" /><el-table-column label="设备容量" align="center" prop="channelMaxCapacity" /><el-table-column label="操作" align="center" class-name="small-padding fixed-width"><template #default="scope"><el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['manage:vmType:edit']">修改</el-button><el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['manage:vmType:remove']">删除</el-button></template></el-table-column>
</el-table><!-- 添加或修改设备类型管理对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body><el-form ref="vmTypeRef" :model="form" :rules="rules" label-width="80px"><el-form-item label="型号名称" prop="name"><el-input v-model="form.name" placeholder="请输入型号名称" /></el-form-item><el-form-item label="型号编码" prop="model"><el-input v-model="form.model" placeholder="请输入型号编码" /></el-form-item><el-form-item label="货道数" prop="vmRow"><el-input-number v-model="form.vmRow" placeholder="请输入" :min="1" :max="10"/>行 <el-input-number v-model="form.vmCol" placeholder="请输入" :min="1" :max="10"/>列</el-form-item><el-form-item label="货道容量" prop="channelMaxCapacity"><el-input-number v-model="form.channelMaxCapacity" placeholder="请输入" :min="1" :max="10"/>个</el-form-item><el-form-item label="设备图片" prop="image"><image-upload v-model="form.image"/></el-form-item></el-form><template #footer><div class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></template>
</el-dialog>
设备管理改造
基础页面
需求
参考页面原型,完成基础布局展示改造
代码实现
刷新设备表数据
update tb_vending_machine set partner_id=2 where id=80;
update tb_vending_machine set addr=(select address from tb_node where id = 1) where node_id=1;
update tb_vending_machine set addr=(select address from tb_node where id = 2) where node_id=2;
在vm/index.vue视图组件中修改
<!-- 查询条件 -->
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"><el-form-item label="设备编号" prop="innerCode"><el-input v-model="queryParams.innerCode" placeholder="请输入设备编号" clearable @keyup.enter="handleQuery" /></el-form-item><el-form-item><el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button><el-button icon="Refresh" @click="resetQuery">重置</el-button></el-form-item>
</el-form><!-- 列表展示 -->
<el-table v-loading="loading" :data="vmList" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55" align="center" /><el-table-column label="设备编号" align="center" prop="innerCode" /><el-table-column label="设备型号" align="center" prop="vmTypeId" ><template #default="scope"><div v-for="item in vmTypeList" :key="item.id"><span v-if="item.id==scope.row.vmTypeId">{{ item.name }}</span></div></template></el-table-column><el-table-column label="详细地址" align="center" prop="addr" /><el-table-column label="合作商" align="center" prop="partnerId" ><template #default="scope"><div v-for="item in partnerList" :key="item.id"><span v-if="item.id==scope.row.partnerId">{{ item.partnerName }}</span></div></template></el-table-column><el-table-column label="设备状态" align="center" prop="vmStatus"><template #default="scope"><dict-tag :options="vm_status" :value="scope.row.vmSt