2.点位管理开发(续)及设计思路——帝可得后台管理系统

目录

  • 前言
  • 一、页面原型
  • 二、修改
    • 1、页面展示
    • 2、新增
  • 3 、总结思路

前言

提示:本篇继续点位管理的改造

一、页面原型

  1. 页面展示页面原型
  2. 新增
    在这里插入图片描述

二、修改

1、页面展示

页面修改:修改标签换行、顺序顺序、地址过长时换行问题;

<el-table v-loading="loading" :data="nodeList" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55" align="center" /><el-table-column label="序号" type="index" align="center" prop="id" width="50" /><el-table-column label="点位名称" align="center" prop="nodeName" /><el-table-column label="所在区域" align="center" prop="regionId" /><el-table-column label="商圈类型" align="center" prop="businessType"><template #default="scope"><dict-tag :options="business_type" :value="scope.row.businessType" /></template></el-table-column><el-table-column label="合作商ID" align="center" prop="partnerId" /><el-table-column label="详细地址" align="left" prop="address"  show-overflow-tooltip /><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:node:edit']">修改</el-button><el-button link type="primary" @click="handleDelete(scope.row)"v-hasPermi="['manage:node:remove']">删除</el-button></template></el-table-column></el-table>

新增表单修改:

  <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"><el-form-item label="点位名称" prop="nodeName"><el-input v-model="queryParams.nodeName" placeholder="请输入点位名称" clearable @keyup.enter="handleQuery" /></el-form-item><el-form-item label="区域搜索" prop="regionId"><el-select v-model="queryParams.regionId" placeholder="请选择区域" clearable @change="handleQuery"><el-option v-for="item in regionOptions" :key="item.id" :label="item.regionName" :value="item.id" /></el-select></el-form-item>  <!-- <el-form-item label="合作商" prop="partnerId"><el-inputv-model="queryParams.partnerId"placeholder="请输入合作商ID"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-row :gutter="10" class="mb8"><el-col :span="1.5"><el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['manage:node:add']">新增</el-button></el-col><el-col :span="1.5"><el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"v-hasPermi="['manage:node:edit']">修改</el-button></el-col><el-col :span="1.5"><el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"v-hasPermi="['manage:node:remove']">删除</el-button></el-col><el-col :span="1.5"><el-button type="warning" plain icon="Download" @click="handleExport"v-hasPermi="['manage:node:export']">导出</el-button></el-col><right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar></el-row><el-table v-loading="loading" :data="nodeList" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55" align="center" /><el-table-column label="序号" type="index" align="center" prop="id" width="50" /><el-table-column label="点位名称" align="center" prop="nodeName" /><el-table-column label="所在区域" align="center" prop="regionId" /><el-table-column label="商圈类型" align="center" prop="businessType"><template #default="scope"><dict-tag :options="business_type" :value="scope.row.businessType" /></template></el-table-column><el-table-column label="合作商ID" align="center" prop="partnerId" /><el-table-column label="详细地址" align="center" prop="address" /><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:node:edit']">修改</el-button><el-button link type="primary" @click="handleDelete(scope.row)"v-hasPermi="['manage:node:remove']">删除</el-button></template></el-table-column></el-table>

2、新增

  1. 修改标签名称
 <!-- 添加或修改点位管理对话框 --><el-dialog :title="title" v-model="open" width="500px" append-to-body><el-form ref="nodeRef" :model="form" :rules="rules" label-width="80px"><el-form-item label="点位名称" prop="nodeName"><el-input v-model="form.nodeName" placeholder="请输入点位名称" /></el-form-item><el-form-item label="所在区域" prop="regionId"><el-select v-model="form.regionId" placeholder="请选择区域"><el-option v-for="item in regionOptions" :key="item.id" :label="item.regionName" :value="item.id" /></el-select></el-form-item><el-form-item label="商圈类型" prop="businessType"><el-select v-model="form.businessType" placeholder="请选择商圈类型"><el-option v-for="dict in business_type" :key="dict.value" :label="dict.label":value="parseInt(dict.value)"></el-option></el-select></el-form-item><el-form-item label="合作商" prop="partnerId"><el-select v-model="form.partnerId" placeholder="请选择合作商" filterable><el-optionv-for="item in partnerOptions":key="item.id":label="item.partnerName":value="item.id"/></el-select></el-form-item><el-form-item label="详细地址" prop="address"><el-input v-model="form.address" placeholder="请输入详细地址" /></el-form-item><el-form-item label="备注" prop="remark"><el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /></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>
  1. 将新增表单中所在区域改为下拉框
import { listRegion } from "@/api/manage/region";const regionOptions = ref([]);/** 获取区域列表 */
function getRegionList() {listRegion({pageNum: 1,pageSize: 10000}).then(response => {regionOptions.value = response.rows});
}// 在组件挂载时获取区域列表
onMounted(() => {getRegionList();
});
     <el-form-item label="所在区域" prop="regionId"><el-select v-model="form.regionId" placeholder="请选择区域"><el-option v-for="item in regionOptions" :key="item.id" :label="item.regionName" :value="item.id" /></el-select></el-form-item>
  1. 将新增表单中归属合作商改为下拉框
import{listPartner}from"@/api/manage/partner";
const partnerOptions = ref([]);/** 获取合作商列表 */
function getPartnerList() {listPartner({pageNum: 1,pageSize: 10000}).then(response => {partnerOptions.value = response.rows;});
}// 在组件挂载时获取合作商列表
onMounted(() => {getPartnerList();
});
   <el-form-item label="合作商" prop="partnerId"><el-select v-model="form.partnerId" placeholder="请选择合作商" filterable><el-optionv-for="item in partnerOptions":key="item.id":label="item.partnerName":value="item.id"/></el-select></el-form-item>
  1. 将搜索栏修改为区域搜索,并使用下拉框展示
    标签改为下拉框
    <el-form-item label="区域搜索" prop="regionId"><el-select v-model="queryParams.regionId" placeholder="请选择区域" clearable @change="handleQuery"><el-option v-for="item in regionOptions" :key="item.id" :label="item.regionName" :value="item.id" /></el-select></el-form-item>

调用API、JS

import { listRegion } from "@/api/manage/region";const regionOptions = ref([]);/** 获取区域列表 */
function getRegionList() {listRegion({pageNum: 1,pageSize: 10000}).then(response => {regionOptions.value = response.rows});
}// 在组件挂载时获取区域列表
onMounted(() => {getRegionList();
});

3 、总结思路

通过本篇,我们学会将修改表单、输入框改为下拉框的通用思路
思路:
0. 所涉及的文件:通常是api中所在模块的js文件和view中所在模块vue文件(包含了页面显示的组件和JS函数)
在这里插入图片描述

我们以合作商的下拉框为例:

  1. 调用前端API
    想要将输入框变为下拉框并展示数据,我们就要考虑如何从后端获取数据;
    在合作商的JS文件中,我们看到有一个可以查询合作商列表的函数,该函数使用get向后端 /manage/partner/list发起请求;
    在这里插入图片描述
    后端 /manage/partner/list 收到请求后会查询合作商列表,并发起响应
    在这里插入图片描述

  2. 创建调用函数
    设置partnerOPptions用来接收整个后端传来的数据;
    listPartner是刚刚API函数,想像它已经获得了后端传来的数据,接着拿到10000条数据(本质是想获得所有数据),并将其中rows数据交给刚刚创建的partnerOptions,用来稍后使用;
    在这里插入图片描述

/** 获取合作商列表 */
function getPartnerList() {listPartner({pageNum: 1,pageSize: 10000}).then(response => {partnerOptions.value = response.rows;});
}// 在组件挂载时获取合作商列表
onMounted(() => {getPartnerList();
});
  1. 修改表单

为了展示partnerOptions中的合作商名称数据,使用下拉框;value代表获取数据中的id字段值,key代表获取数据中的id字段作为标识,label代表最终展示的值为数据中的合作商名称;

   <el-form-item label="合作商" prop="partnerId"><el-select v-model="form.partnerId" placeholder="请选择合作商" filterable><el-optionv-for="item in partnerOptions":key="item.id":label="item.partnerName":value="item.id"/></el-select></el-form-item>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大厂笔试现已经禁用本地IDE怎么看

如果我说本来面试做题这种事情就是反人类你相信吗&#xff1f; 这个罪恶的源头就是 Google&#xff0c;说是为了选择高素质的计算机编程水平的人才&#xff0c;然后把面试就变成了考试&#xff0c;最大的受益者当然是印度人了。 当把一个考察过程变成标准化的考试过程&#x…

电脑失声,一招搞定

早已习惯了Edge浏览器的“大声朗读”功能&#xff0c;今天值班&#xff0c;值班室用的两台电脑只配有耳机&#xff0c;没有音箱&#xff0c;顿时感觉不适。 先找了一个带功放的老音箱&#xff0c;发现少了电箱到功放的音频线。 一顿搜索&#xff0c;在找到音频线的同时&#…

【案例】平面云

教程案例视频&#xff1a;Unity Shader Graph - 云教程 开发平台&#xff1a;Unity 2022 开发工具&#xff1a;Unity ShaderGraph   一、效果展示 二、ShaderGraph 路线图 三、案例分析 核心思路&#xff1a;使用 Noise&#xff08;噪声&#xff09;模拟云层状态   3.1 说明…

Chat登录时出现SSO信息出错的解决方法

目录 1. 问题所示2. 问题所示3. 解决方法 1. 问题所示 此贴主要是总结回顾&#xff0c;对此放置在运维专栏 出现如下问题&#xff0c;很懵&#xff0c;以为是节点挂了还是网址蹦了 一直刷新&#xff0c;登录之后就出现这个问题 2. 问题所示 对于SSO&#xff0c;也就是单点登…

负载均衡--相关面试题(六)

在负载均衡的面试中&#xff0c;可能会遇到一系列涉及概念、原理、实践应用以及技术细节的问题。以下是一些常见的负载均衡面试题及其详细解答&#xff1a; 一、什么是负载均衡&#xff1f; 回答&#xff1a;负载均衡是一种将网络请求或数据传输工作分配给多个服务器或网络资源…

详解JavaScript函数属性、方法和构造函数

函数属性、方法和构造函数 JS中&#xff0c;函数是值&#xff0c;对函数执行typeof运算会返回function&#xff0c;但是函数是JS中特殊的对象&#xff0c;也可以拥有属性和方法。 length属性 函数体里面&#xff0c;arguments.length表示传入函数的实参个数&#xff0c;而函…

2024年优化苹果免签封装APP H5站打包苹果APP 绿标-永不掉千(永久使用)

大家都知道苹果手机做APP签名很贵&#xff0c; 这个程序就是吧您的H5网站 一切网页可以打开的&#xff0c;封装成app 苹果手机上可以直接安装使用 永久可用&#xff01;&#xff01;很简单&#xff0c;可以看视频教程来安装使用&#xff0c; 视频教程&#xff1a; https://ww…

修改Anaconda虚拟环境默认安装路径(Linux系统)

文章目录 修改Anaconda虚拟环境默认安装路径(Linux系统)1.方法一&#xff1a;使用--prefix参数2.方法二&#xff1a;配置conda环境的默认安装位置 修改Anaconda虚拟环境默认安装路径(Linux系统) 1.方法一&#xff1a;使用--prefix参数 在创建虚拟环境时&#xff0c;使用--pre…

macOS编译和运行prometheus2.54

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文详述了在macOS(M2芯片)上编译和运行prometheus2.54版本的过程&#xff0c;以及安装node_exporter和grafana并使用prometheus指标进行展示 本地…

openpnp - 底部相机高级校正的参数设置

文章目录 openpnp - 底部相机高级校正的参数设置概述笔记修改 “Radial Lines Per Calibration Z” 的方法不同 “Radial Lines Per Calibration Z”的校验结果不同 “Radial Lines Per Calibration Z”的设备校验动作的比较总结备注END openpnp - 底部相机高级校正的参数设置 …

根据给定的相机和镜头参数,估算相机的内参。

1. 相机分辨率和传感器尺寸 最高分辨率&#xff1a;6000 4000 像素传感器尺寸&#xff1a;22.3 mm 14.9 mm 2. 计算像素大小 需要计算每个像素对应的实际尺寸&#xff08;mm/pixel&#xff09;&#xff1a; 水平方向像素大小&#xff1a; 垂直方向像素大小&#xff1a; …

国外电商系统开发-运维系统批量添加服务器

您可以把您准备的txt文件&#xff0c;安装要求的格式&#xff0c;复制粘贴到里面就可以了。注意格式&#xff01; 如果是“#” 开头的&#xff0c;则表示注释&#xff01;

在掌控板中加载人教版信息科技教学指南中的educore库

掌控板中加载educore库 人教信息科技数字资源平台&#xff08;https://ebook.mypep.cn/free&#xff09;中的《信息科技教学指南硬件编程代码说明》文件中提到“本程序说明主要供教学参考。需要可编程主控板须支持运行MicroPython 脚本程序。希望有更多的主控板在固件中支持ed…

(JAVA)浅尝关于 “栈” 数据结构

1. 栈的概述&#xff1a; 1.1 生活中的栈 存储货物或供旅客住宿的地方&#xff0c;可引申为仓库、中转站。例如酒店&#xff0c;在古时候叫客栈&#xff0c;是供旅客休息的地方&#xff0c;旅客可以进客栈休息&#xff0c;休息完毕后就离开客栈 1.2计算机中的栈 将生活中的…

有些硬盘录像机接入视频汇聚平台EasyCVR后通道不显示/显示不全,该如何处理?

EasyCVR视频监控汇聚管理平台是一款针对大中型项目设计的跨区域网络化视频监控集中管理平台。该平台不仅具备视频资源管理、设备管理、用户管理、运维管理和安全管理等功能&#xff0c;还支持多种主流标准协议&#xff0c;如GB28181、RTSP/Onvif、RTMP、部标JT808、GA/T 1400协…

Pikachu-Sql Inject-数字型注入(GET)

一、、破解 SQL 查询语句中的字段数 ?id1 order by 3 -- // -- 是注释&#xff0c; 加号 在MySQL中会转成空格 order by 1 &#xff0c;by 数字几&#xff0c;就是按照第几列进行排序&#xff1b;如果没有这一行&#xff0c;则报错 如&#xff1a;以下语句&#xff0c;根据…

RabbitMQ(死信队列)

一、本文抒写背景 前面我也在延迟队列篇章提到过死信队列&#xff0c;也提到过一些应用场景&#xff01; 今天呢&#xff0c;这篇文章&#xff0c;主要就是实战一个业务场景的小Demo流程&#xff0c;哈哈&#xff0c;那就是延迟关闭订单。 二、开始啦&#xff01;letgo! 首…

Qt系统学习篇(6)-QMainWindow

QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget)&#xff0c;是许多应用程序的基础&#xff0c;如文本编辑器&#xff0c;图片编…

MyBatisPlus——学习笔记

MyBatisPlus 一、导入依赖 <!-- MyBatisPlus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version></dependency><!-- MySql --><de…

【AIGC】VoiceControl for ChatGPT指南:轻松开启ChatGPT语音对话模式

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;安装VoiceControl for ChatGPT插件&#x1f4af;如何使用VoiceControl for ChatGPT进行语音输入VoiceControl for ChatGPT快捷键注意点 &#x1f4af;VoiceControl for C…