【若依】若依字典管理页面中列表按钮功能的实现

news2024/11/27 16:26:02

0. 功能实现描述

在这里插入图片描述
在这里插入图片描述

1. 代码实现

ScStfController.java

/**
 * 查询员工证书
 * @param stfId
 * @param modelMap
 * @return
 */
@RequiresPermissions("sc:stf:cert")
@GetMapping("/cert/{stfId}")
public String detail(@PathVariable("stfId") Long stfId, ModelMap modelMap)
{
    modelMap.put("certs", scStfCertService.selectScStfCertListByStfId(stfId));
    return "sc/cert/cert-simplified";
}

stf.html

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <th:block th:include="include :: header('员工列表')" />
</head>
<body class="gray-bg">
     <div class="container-div">
        <div class="row">
            <div class="col-sm-12 search-collapse">
                <form id="formId">
                    <div class="select-list">
                        <ul>
                            <li>
                                <label>员工编号:</label>
                                <input type="text" name="id"/>
                            </li>
                            <li>
                                <label>姓名:</label>
                                <input type="text" name="xm"/>
                            </li>
                            <li>
                                <label>所属公司:</label>
                                <input type="text" name="ssgsMc"/>
                            </li>
                            <li>
                                <label>所属部门:</label>
                                <select name="ssbm" th:with="type=${@dict.getType('sc_stf_ssbm')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <label>岗位:</label>
                                <select name="gw" th:with="type=${@dict.getType('sc_stf_gw')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <label>移动电话:</label>
                                <input type="text" name="yddh"/>
                            </li>
                            <li>
                                <label>微信号:</label>
                                <input type="text" name="wxh"/>
                            </li>
                            <li>
                                <label>电子邮箱:</label>
                                <input type="text" name="dzyx"/>
                            </li>
                            <li>
                                <label>银行卡号:</label>
                                <input type="text" name="yhkh"/>
                            </li>
                            <li>
                                <label>健康状况:</label>
                                <select name="jkzk" th:with="type=${@dict.getType('sc_stf_jkzk')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <label>身份证号:</label>
                                <input type="text" name="sfzh"/>
                            </li>
                            <li>
                                <label>最高学历:</label>
                                <select name="zgxl" th:with="type=${@dict.getType('sc_stf_xl')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <label>专业:</label>
                                <input type="text" name="zy"/>
                            </li>
                            <li>
                                <label>政治面貌:</label>
                                <select name="zzmm" th:with="type=${@dict.getType('sc_stf_zzmm')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <label>婚姻状况:</label>
                                <select name="hyzk" th:with="type=${@dict.getType('sc_stf_hyzk')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <label>在职状态:</label>
                                <select name="zzzt" th:with="type=${@dict.getType('sc_stf_zzzt')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
                            </li>
                        </ul>
                    </div>
                </form>
            </div>

            <div class="btn-group-sm" id="toolbar" role="group">
                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="sc:stf:add">
                    <i class="fa fa-plus"></i> 添加
                </a>
                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="sc:stf:edit">
                    <i class="fa fa-edit"></i> 修改
                </a>
                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="sc:stf:remove">
                    <i class="fa fa-remove"></i> 删除
                </a>
                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="sc:stf:export">
                    <i class="fa fa-download"></i> 导出
                </a>
            </div>
            <div class="col-sm-12 select-table table-striped">
                <table id="bootstrap-table"></table>
            </div>
        </div>
    </div>
    <th:block th:include="include :: footer" />
    <script th:inline="javascript">
        var editFlag = [[${@permission.hasPermi('sc:stf:edit')}]];
        var removeFlag = [[${@permission.hasPermi('sc:stf:remove')}]];
        var certFlag = [[${@permission.hasPermi('sc:stf:cert')}]];
        var ssbmDatas = [[${@dict.getType('sc_stf_ssbm')}]];
        var gwDatas = [[${@dict.getType('sc_stf_gw')}]];
        var jkzkDatas = [[${@dict.getType('sc_stf_jkzk')}]];
        var zjlxDatas = [[${@dict.getType('sc_stf_zjlx')}]];
        var xbDatas = [[${@dict.getType('sys_user_sex')}]];
        var mzDatas = [[${@dict.getType('sc_stf_mz')}]];
        var zgxlDatas = [[${@dict.getType('sc_stf_xl')}]];
        var zzmmDatas = [[${@dict.getType('sc_stf_zzmm')}]];
        var hyzkDatas = [[${@dict.getType('sc_stf_hyzk')}]];
        var zzztDatas = [[${@dict.getType('sc_stf_zzzt')}]];
        var prefix = ctx + "sc/stf";

        $(function() {
            var options = {
                url: prefix + "/list",
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
                exportUrl: prefix + "/export",
                modalName: "员工",
                columns: [{
                    checkbox: true
                },
                {
                    field: 'id',
                    title: '员工编号',
                    visible: false
                },
                {
                    field: 'zjz',
                    title: '证件照'
                },
                {
                    field: 'xm',
                    title: '姓名'
                },
                {
                    field: 'ssgsMc',
                    title: '所属公司'
                },
                {
                    field: 'ssbm',
                    title: '所属部门',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(ssbmDatas, value);
                    }
                },
                {
                    field: 'gw',
                    title: '岗位',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(gwDatas, value);
                    }
                },
                {
                    field: 'gzdzz',
                    title: '工作地住址'
                },
                {
                    field: 'yddh',
                    title: '移动电话'
                },
                {
                    field: 'dzyx',
                    title: '电子邮箱'
                },
                {
                    field: 'jkzk',
                    title: '健康状况',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(jkzkDatas, value);
                    }
                },
                {
                    field: 'sfzh',
                    title: '身份证号'
                },
                {
                    field: 'xb',
                    title: '性别',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(xbDatas, value);
                    }
                },
                {
                    field: 'zzzt',
                    title: '在职状态',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(zzztDatas, value);
                    }
                },
                {
                    title: '操作',
                    align: 'center',
                    formatter: function(value, row, index) {
                        var actions = [];
                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" οnclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                        actions.push('<a class="btn btn-info btn-xs ' + certFlag + '" href="javascript:void(0)" οnclick="cert(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>证书</a> ');
                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" οnclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
                        return actions.join('');
                    }
                }]
            };
            $.table.init(options);
        });

        function cert(id) {
            var url = prefix + '/cert/' + id;
            $.modal.openTab("证书数据", url);
        }
    </script>
</body>
</html>

cert-simplified.html

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <th:block th:include="include :: header('证书列表')" />
</head>
<body class="gray-bg">
     <div class="container-div">
        <div class="row">
            <div class="col-sm-12 search-collapse">
                <form id="formId">
                    <div class="select-list">
                        <ul>
                            <li>
                                <label>证书名称:</label>
                                <input type="text" name="zsmc"/>
                            </li>
                            <li>
                                <label>证书类型:</label>
                                <select name="zslx" th:with="type=${@dict.getType('sc_stf_cert_zslx')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <label>复审预警:</label>
                                <select name="fzsj" th:with="type=${@dict.getType('sc_stf_cert_fsyj')}">
                                    <option value="">所有</option>
                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
                                </select>
                            </li>
                            <li>
                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
                            </li>
                        </ul>
                    </div>
                </form>
            </div>

            <div class="btn-group-sm" id="toolbar" role="group">
                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="sc:cert:add">
                    <i class="fa fa-plus"></i> 添加
                </a>
                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="sc:cert:edit">
                    <i class="fa fa-edit"></i> 修改
                </a>
                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="sc:cert:remove">
                    <i class="fa fa-remove"></i> 删除
                </a>
                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="sc:cert:export">
                    <i class="fa fa-download"></i> 导出
                </a>
                <a class="btn btn-danger" onclick="closeItem()">
                    <i class="fa fa-reply-all"></i> 关闭
                </a>
            </div>
            <div class="col-sm-12 select-table table-striped">
                <table id="bootstrap-table"></table>
            </div>
        </div>
    </div>
    <th:block th:include="include :: footer" />
    <script th:inline="javascript">
        var editFlag = [[${@permission.hasPermi('sc:cert:edit')}]];
        var removeFlag = [[${@permission.hasPermi('sc:cert:remove')}]];
        var zslxDatas = [[${@dict.getType('sc_stf_cert_zslx')}]];
        var fzsjDatas = [[${@dict.getType('sc_stf_cert_fsyj')}]];
        var prefix = ctx + "sc/cert";

        $(function() {
            var options = {
                data: [[${certs}]],
                sidePagination: "client",
                showSearch: false,
                showRefresh: false,
                showToggle: false,
                showColumns: false,


                /*url: prefix + "/list",*/
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
                exportUrl: prefix + "/export",
                modalName: "证书",
                columns: [{
                    checkbox: true
                },
                {
                    field: 'id',
                    title: '系统证书编号',
                    visible: false
                },
                {
                    field: 'stfId',
                    title: '员工编号',
                    visible: false
                },
                {
                    field: 'zsmc',
                    title: '证书名称'
                },
                {
                    field: 'zslx',
                    title: '证书类型',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(zslxDatas, value);
                    }
                },
                {
                    field: 'zsbh',
                    title: '证书编号'
                },
                {
                    field: 'yxq',
                    title: '有效期'
                },
                {
                    field: 'clrq',
                    title: '初领日期'
                },
                {
                    field: 'fsrq',
                    title: '复审日期'
                },
                {
                    field: 'fzsj',
                    title: '复审预警',
                    formatter: function(value, row, index) {
                       return $.table.selectDictLabel(fzsjDatas, value);
                    }
                },
                {
                    field: 'fzjg',
                    title: '发证机构'
                },
                {
                    field: 'zsms',
                    title: '证书描述'
                },
                {
                    field: 'bz',
                    title: '备注'
                },
                {
                    field: 'zstx',
                    title: '证书图像'
                },
                {
                    title: '操作',
                    align: 'center',
                    formatter: function(value, row, index) {
                        var actions = [];
                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" οnclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" οnclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
                        return actions.join('');
                    }
                }]
            };
            $.table.init(options);
        });
    </script>
</body>
</html>

2. 若依官方代码参考

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
	<th:block th:include="include :: header('加载data数据')" />
</head>
<body class="gray-bg">
     <div class="container-div">
		<div class="row">
			<div class="col-sm-12 select-table table-striped">
				<table id="bootstrap-table"></table>
			</div>
		</div>
	</div>
    <div th:include="include :: footer"></div>
    <script th:inline="javascript">
        var datas = [[${@dict.getType('sys_normal_disable')}]];

        $(function() {
            var options = {
                data: [[${users}]],
                sidePagination: "client",
		        showSearch: false,
		        showRefresh: false,
		        showToggle: false,
		        showColumns: false,
                columns: [{
		            checkbox: true
		        },
				{
					field : 'userId', 
					title : '用户ID'
				},
				{
					field : 'userCode', 
					title : '用户编号'
				},
				{
					field : 'userName', 
					title : '用户姓名'
				},
				{
					field : 'userPhone', 
					title : '用户手机'
				},
				{
					field : 'userEmail', 
					title : '用户邮箱'
				},
				{
				    field : 'userBalance',
				    title : '用户余额'
				},
				{
                    field: 'status',
                    title: '用户状态',
                    align: 'center',
                    formatter: function(value, row, index) {
                    	return $.table.selectDictLabel(datas, value);
                    }
                },
		        {
		            title: '操作',
		            align: 'center',
		            formatter: function(value, row, index) {
		            	var actions = [];
		            	actions.push('<a class="btn btn-success btn-xs" href="#"><i class="fa fa-edit"></i>编辑</a> ');
                        actions.push('<a class="btn btn-danger btn-xs" href="#"><i class="fa fa-remove"></i>删除</a>');
						return actions.join('');
		            }
		        }]
            };
            $.table.init(options);
        });
    </script>
</body>
</html>

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

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

相关文章

结构型模式-组合模式

1.概述 对于这个图片肯定会非常熟悉&#xff0c;上图我们可以看做是一个文件系统&#xff0c;对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树&#xff0c;当我们找到某个叶子节点后&#xff0c;就可以对叶子节点进行相关的操作。可以将这颗树…

谷粒学院——Day19【项目部署】

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

Java中的hashCode,真的很容易弄懂

写这篇文章是因为在看hashMap源码时遇到有什么hashcode值&#xff0c;然后就去查&#xff0c;脑袋里面是有印象的&#xff0c;不就是在Object中有equals和hashcode方法嘛&#xff0c;这在学java基础的时候就遇到过&#xff0c;不过那时候无所谓&#xff0c;囫囵吞枣&#xff0c…

三、python基础语法进阶篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 一、文件操作 一、 文件的读取 1. 打开文件open() 2. 读取文件10个字节read(10) 3. 读取文件全部信息read() 4. 读取文件readLines() 5. 读取文件readLine() 6. for循环读取…

Nginx与LUA(7)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客。值此新春佳节&#xff0c;我给您拜年啦&#xff5e;祝您在新的一年中所求皆所愿&#xff0c;所行皆坦途&#xff0c;展宏“兔”&#xff0c;有钱“兔”&#xff0c;多喜乐&#xff0c;常安宁&#xff01;软件开发中&…

使用小程序+网页简易实现多客户端实时弹幕

此文主要通过小程序网页模拟多客户端通过轮询、WebSockets、订阅推送等方式简易实现实时弹幕。 实现流程1、服务端1.1、创建项目2.2、接口定义2、客户端2.1、小程序端2.2、web端3、实现方式3.1、轮询3.2、WebSocket3.3、订阅推送实现流程 1、服务端 1.1、创建项目 打开Visual…

【docker概念和实践 5】容器命令和案例(1)

一、说明 docker的四个要素是&#xff1a;本地的Docker-engine、网上&#xff08;本地&#xff09;的仓库、镜像images、容器&#xff1b;初学者必须了解这是个概念的关系。但是&#xff0c;真正重要的概念是容器&#xff0c;因为&#xff0c;只有掌握了容器&#xff0c;才能具…

SpringBoot整合SSM

添加pom依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.18</version><scope>provided</scope></dependency><dependency><groupId>org.mybati…

macOS Monterey 12.6.3 (21G419) Boot ISO 原版可引导镜像

macOS Monterey 12.6&#xff0c;皆为安全更新&#xff0c;不再赘述。 macOS Monterey 12.6&#xff0c;发布于 2022 年 9 月 12 日&#xff08;北京时间今日凌晨&#xff09;&#xff0c;本次为安全更新。 今日&#xff08;2022-07-21&#xff09;凌晨&#xff0c;Apple 终于…

【Hadoop】HDFS高可用与高扩展原理分析(HA架构与Federation机制)

文章目录一、HDFS的高可用性&#xff08;HA架构&#xff09;二、HDFS的高扩展性&#xff08;Federation机制&#xff09;三、HA架构 Federation机制一、HDFS的高可用性&#xff08;HA架构&#xff09; 为保证HDFS的高可用性&#xff0c;即当NameNode节点机器出现故障而导致宕机…

【操作系统】—— Windows常用快捷键(带你快速了解)

&#x1f4dc; “作者 久绊A” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴。 &#x1f341; 操作系统【带你快速了解】对于电脑来说&#xff0c;如果说…

【JavaEE】定时器的简单实现

目录 定时器 实现定时器 描述任务 保存任务 扫描任务 执行任务 定时器 在实现定时器之前&#xff0c;先来简单的了解一下什么是定时器。 定时器是软件开发中一个重要的组件。比如到了什么时候&#xff0c;干一件什么样的事情&#xff1b;多少秒之后干什么。本篇文章介绍…

活动星投票最美养生师展网络评选微信的投票方式线上免费投票

“最美养生师”网络评选投票_用户同什么方法挑选投票小程序_最好的投票小程序用户在使用微信投票的时候&#xff0c;需要功能齐全&#xff0c;又快捷方便的投票小程序。而“活动星投票”这款软件使用非常的方便&#xff0c;用户可以随时使用手机微信小程序获得线上投票服务&…

Hive函数大全–完整版(三)

官网参考地址&#xff1a; 官网UDF - Apache Hive 1. 基本数据类型 2. 基础运算符与函数 SQL结果A IS NULL 空A IS NOT NULL 非空 A LIKE B 模糊匹配A RLIKE B 正则表达式匹配A REGEXP B 正则表达式匹配 3. 类型转换 cast(expr as <type>)…

园区网典型组网架构及案例实践

什么是园区网园区网络是限定区域内&#xff0c;连接人与物的局域网络&#xff1b;园区网络通常只有一个管理主体&#xff1b;如果有多个管理主体&#xff0c;通常被认为为多个园区网络。园区网络典型架构小型园区网络典型架构小型园区网络应用于接入用户数量较少的场景&#xf…

SpringBoot 统一功能处理

SpringBoot 统一功能处理前言一、用户登录权限效验1.1 最初的用户登录验证1.2 Spring AOP 用户统一登录验证的问题1.3 Spring 拦截器1.3.1 准备工作1.3.2 自定义拦截器1.3.3 将自定义拦截器加入到系统配置1.4 拦截器实现原理1.4.1 实现原理源码分析1.4.2 拦截器小结1.5 扩展&am…

CBC模式的3DES加解密(课程设计报告)

目录一、实验内容二、实验原理2.1 DES加解密原理2.1.1 DES加解密的基本原理2.1.2 DES加解密的关键步骤2.2 3DES加解密原理2.3 分组密码CBC加解密模式原理2.4 填充原理三、实验过程3.1 变量说明3.1.1 主函数变量说明3.1.2 其他重要变量说明3.2 函数功能说明3.2.1主函数说明3.2.2…

并行训练方法-单机多卡

一、简单方便的 nn.DataParallel DataParallel 可以帮助我们&#xff08;使用单进程控&#xff09;将模型和数据加载到多个 GPU 中&#xff0c;控制数据在 GPU 之间的流动&#xff0c;协同不同 GPU 上的模型进行并行训练&#xff08;细粒度的方法有 scatter&#xff0c;gather …

学习记录670@项目管理之变更管理

变更的分类 按变更性质分为重大变更、重要变更和一般变更&#xff0c;可通过不同审批权限控制。按变更的迫切性分为紧急变更和非紧急变更&#xff0c;可通过不同的变更处理流程进行控制。按变更所发生的领域和阶段&#xff0c;可分为进度变更、成本变更、质量变更、设计变更、…

3小时精通opencv(四) 透视变换与图像拼接

3小时精通opencv(四) 透视变换与图像拼接 参考视频资源:3h精通Opencv-Python 文章目录3小时精通opencv(四) 透视变换与图像拼接透视变换图像拼接全部代码透视变换 透视变换建立两平面场之间的对应关系&#xff0c; 将原始图片投影到一个新的视平面上 # Author : JokerTon…