Flex 开发入门 详解 实例---->perfect!!

开始之前开始之前开始之前开始之前

Flex 作为富 Internet 应用(RIA)时代的新技术代表,自从 2007 年 Adobe 公司将其开源以来,Flex 就以前所未有的速度在成长。很多公司,包括 IBM 都纷纷加入了 Flex 开发的阵营当中。很多开发人员也按捺不住 Flex 的“诱惑”而准备从事 Flex 开发。本文主要讲述 Flex 开发的基础知识,主要是关于开发环境的搭建,以及介绍简单的 Flex 项目创建、编码、调试以及部署的过程和 Flex 编程的基本知识。通过本文的学习,您将会学习如何搭建 Flex 基本的开发环境以及开发、调试和部署方面的基础知识。为您以后深入系统的学习 Flex 打下良好的基础。

要学习本文,您需要有一定的 Web 编程经验和 Eclipse FireFox 使用经验。

代码示例和安装要求

本文所有示例均在 Windows XP SP3 系统中测试完成。您需要一台能流畅运行 Windows XP 系统的机器,除此之外您还需要一些工具才能试用本文中的代码。所有这些工具都可以免费下载(参见 参考资源):

  • Java SDK 1.5 或更高版本
  • Tomcat 6.0 或更高版本
  • Eclipse 3.3 或更高版本
  • Flex Builder 3.0 或更高版本
  • FireFox2.0 或更高版本

安装配置开发环境

接下来我们便迫不及待的开始吧!首先搭建我们的开发环境,为了减少因为环境不一致而引起的问题,建议读者使用与本文相同的软件版本:

  • 下载 并安装 JDK( 本文使用版本为 Sun JDK 6) ;
  • 下载 并解压 Eclipse( 本文使用版本为 Eclipse Ganymede J2EE 版本,含 WTP 插件 );
  • 下载 并安装 Flex Builder Eclipse 插件版 ( 本文使用的 Flex Builder 版本为 3.0.1);
  • 下载 并安装 Tomcat( 本文使用版本为 Tomcat6.0.18);
  • 下载 并安装 FireFox( 由于 Flex3.0 和一些插件的兼容性问题,本文使用 FireFox2.0.0.17)

小提示

Flex Builder 提供两个版本,一个是 All in one 的版本,另外一个是 Eclipse 的插件版,All in one 的版本内置了一个 Eclipse 的基本核心,插件不全。所以我们采用单独下载 Eclipse 和安装 Flex Builder 插件版的方式。另外在安装过程中不要安装 FlashPlayer 到 IE 或者 FireFox 上。我们在接下来的步骤中将单独安装 debug 版本的 Flash Player 。

大家知道 Flex 代码编译后是一个 SWF 文件,运行在 Flash Player 中,要想看到 SWF 文件在运行时输出的一些调试信息是比较困难的。所以在安装好基本的软件之后,我们要安装一些便于我们调试 Flex 的 FireFox 插件:

下载 并安装 debug 版本的 FireFox Flash Player 插件 ( 本文使用的版本为 Flash Player10)

打开 FireFox,到 FireFox 的 扩展组件站点 上搜索并安装 HttpFox,FlashTracer,Cache Status 三个插件,如图 1 所示。


图 1:开发调试需要的 FireFox 插件
图 1:开发调试需要的 FireFox 插件  

小提示

在 Debug 版本的 Flash player 和 FlashTracer 插件完成好之后,我们发现 FlashTracer 并不能正常的显示用 trace 语句输出的调试信息。为了使其能够工作,还需要先点击图 1 中的 FlashTracer 设置按钮来设置日志文件的输出路径。并且输出的日志文件路径对于 Windows XP 来说必须是 C:\Documents and Settings\Administrator\Application Data\Macromedia\Flash Player\Logs\flashlog.txt 。

在安装了 Debug 版本的 Flash Player 之后,Flash Tracer 能显示您在程序中用 trace() 语句输出的调试信息,HttpFox 插件不仅能查看 HTTP 通信的过程和数据,还能看到哪些内容是从 Cache 里面读取的。另外,Cache Status 插件可以让我们方便的管理缓存。在 Flex 开发过程中,往往需要先清除掉缓存中的内容,才能看到新改动的效果。

接下来我们打开 Flex Builder, 在菜单Window>Preferences>Server>Runtime Environment中设置我们的 Tomcat6 以及在菜单Window>Preferences>General>Web Browser中设置浏览器为外部浏览器 FireFox,如图 2 和图 3 所示:


图 2:配置 Tomcat
图 2:配置 Tomcat  

图 3:设置默认浏览器
图 3:设置默认浏览器  

到此为止,我们的开发环境算是彻底搭建完毕,可以看出这个过程并不算是特别简单。别急,先苦后甜,小憩一下,让我们来享受一下 Flex 开发带来的乐趣吧!

Flex 的 Hello World !

创建项目

打开 Flex Builder, 如图 4 所示,新建一个 Flex 项目:


图 4:新建 Flex 项目
图 4:新建 Flex 项目  

在图 5 所示设置页面中,我们选择项目类型是 Web application,关于 AIR 类型应用的基础知识可参考 developerWorks 上的另一篇文章《使用 Adobe AIR 和 Dojo 开发基于 Ajax 的 Mashup 应用》。 Application server type 我们以 J2EE 为例,并且不要钩选 Use remote object access service, 关于这些高级内容,我们将在后续的文章中陆续讨论。最后我们使用 Eclipse Ganymede J2EE 版本内置的 WTP(Web Tools Platform) 来创建一个后端使用 Java 前端使用 Flex 的 RIA 项目。在默认设置下,src 是 Java 代码的源代码文件夹。


图 5:设置 Flex 项目
图 5:设置 Flex 项目  

在后续的设置页面中,我们配置项目运行时的 J2EE server 为我们在安装配置开发环境部分中配置的 Tomcat6 如图 6 所示:


图 6:配置运行时 J2EE Server
图 6:配置运行时 J2EE Server  

点击 Next,在下一个页面中一切都按照默认设置即可。如图 7 所示,Main source folder 是设置默认的 flex 代码 ( 包括 mxml 和 Action script) 的源文件夹,Main application file 是项目默认的主应用。 Out folder URL 是项目运行在我们配置的 Tomcat 上时的 URL.


图 7:其他属性设置
图 7:其他属性设置  

一切完成之后,我们来看看项目的组成结构,如图 8 所示:flex_src 中是默认的 flex 源码位置,flex_libs 则是存放 flex 其他第三方包的默认路径。类似于 web 应用的 lib 文件夹。 src 是 java 代码位置。 WebContent 文件夹的结构和普通由 WTP 建立的 Web Project 的结构完全相同。在默认的输出路径 bin-debug 文件夹中,我们可以看出 Flex builder 自动生成的 FlexSample.mxml 文件已经被自动编译成 FlexSample.swf 文件。


图 8:Flex 项目结构
图 8:Flex 项目结构  

接下来,我们在新创建的项目上增加一点内容并让它运行起来:双击 FlexSample.mxml, 在其中添加一个最基本的 Flex 组件 :Label, 并且在该应用初始化的时候调用 init() 方法。我们在 init() 方法中用 trace() 语句输出调试信息。 代码如下清单 1 所示:


清单 1:FlexSample.mxml
				
<?xml version="1.0" encoding="utf-8"?>
<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute"
     initialize="init()">
     <mx:Script>
         <![CDATA[
             private function init():void
             {
                 var i:int = 0;
                 i++;
                 trace("i="+i);
             }
         ]]>
     </mx:Script>
    <mx:Label text="Hello World!" />
</mx:Application>
				

运行、调试以及部署

现在,终于到了让我们的项目运行的时候了 ! 右键点击项目 ->Run As->Run On Server 如图 9 所示:接下来的几个页面选择默认即可,这时大家我们可以看到项目会被部署到我们配置的 Tomcat6 上去。并且 Flex Builder 会自动打开一个我们刚才配置的外部 FireFox 窗口。


图 9:运行项目
图 9:运行项目  

但可能令您遗憾的是 Flex Builder 自动打开的 FireFox 窗口打开的 URL: http://localhost:8080/FlexSample/ 却什么也没有。别着急,还剩下最后一步:

如图 10 所示:右键点击我们要运行的 FlexSample.mxml > Run As > Flex Application


图 10:运行 mxml
图 10:运行 mxml  

如果不出意外的话,您应该会看到下面的界面,Flash Tracer 插件输出了我们用 trace() 语句输出的 debug 信息,标签的 Hello World !也被显示到了界面上。同样,打开 FireFox 的 HttpFox 插件,我们也可以看到在运行时 FlexSample.swf 被载入。


图 11:运行后的界面
图 11:运行后的界面  

如果我们希望像调试 Java 代码那样,在运行时观察变量的值怎么办呢?首先我们像在 Java 代码中设置断点一样给我们的 Action Script 代码增加断点。如图 12 所示:


图 12:在 Action Script 代码中设置断点
图 12:在 Action Script 代码中设置断点  

然后选择我们的 FlexSample.mxml 右键选择调试运行。如图 13 所示:


图 13:调试方式运行 flex
图 13:调试方式运行 flex  

然后我们随提示切换到 Flex 的调试视图,就会看到我们可以像 Java 调试模式那样轻松的调试 Flex 代码。如图 14 所示:


图 14:Flex Builder 调试视图
图 14:Flex Builder 调试视图  

利用 WTP,我们可以将项目 export 成一个标准的 war file. 将导出的 war 文件放到 Tomcat 的 webapps 目录或者其他 web 服务器的相应目录下就可以当作一个标准的 web 应用来部署运行。

到此为止,我们应该庆祝一下我们已经迈入了 Flex 的大门了!我们已经编译出了我们自己的 swf 文件,并且运行在服务器上了。熟悉了这个开发过程之后,让我们乘胜前进,结合一个小例子学习一下 Flex 的编程基础知识吧!

Flex 编程基础

面向对象的编程

在上面 Hello World 的例子中我们可以看出,就像在 HTML 中嵌入 JavaScript 那样,我们可以在 mxml 里面嵌入 Action Script 代码来实现业务逻辑。没错!如果您把 Flex 中 mxml 和 Action Script 的关系理解为 Html 和 JavaScript 的关系,您会忽然发现您对 Flex 变的如此熟悉!

Action Script 语言是面向对象的脚本语言,它连编写方式都和 JavaScript 非常的相似。除了可以嵌套在 mxml 里面之外,它还可以像 JavaScript 写在单独的 .js 文件里面那样写在单独的 .as 文件里面,然后在 mxml 里面引入它。

下面我们新建一个 Action Script 的类 J2eeServer.as 如清单 2 所示:


清单 2:J2eeServer.as
				
package com.ibm.flex
{
    import flash.events.EventDispatcher;
    import mx.rpc.AsyncToken;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.http.HTTPService;
    
    public class J2eeServer extends EventDispatcher
    {
        public function J2eeServer()
        {
        }

        public function sendRequest(locale:String):void
        {
            var httpObject:HTTPService = new HTTPService();
            httpObject.resultFormat = "text";
            httpObject.url = 
                "http://localhost:8080/FlexSample/SampleServlet?locale="+locale;
            var responder:mx.rpc.Responder = new mx.rpc.Responder(onSuccess, onFault);
            var call:AsyncToken = httpObject.send();
            call.addResponder(responder);
        }
        private function onSuccess(event:ResultEvent):void
        {
            this.dispatchEvent(event);   
        }
        
		private function onFault(event:FaultEvent):void
        {
            trace("communication failed!");
            this.dispatchEvent(event); 
        } 
    }
}

在这个类定义里面,熟悉 Java 的开发人员可以看出其编码规范和 Java 非常类似。在其中我们定义了一个 sendRequest() 方法, 使用 HTTPService 对象发起一个 http 的 get 请求 , 并且对于不同的返回结果我们定义了 onSuccess() 和 onFault() 两个方法去处理。在这两个结果处理方法中,我们将事件 dispatch 出去。

与 Servlet 集成

在 J2eeServer.as 中,我们通过 Action Script 发出 http 请求,现在我们定义一个服务器端的 servlet 来处理该请求。如清单 3 所示:


清单 3:SampleServlet.java
				
package com.ibm.sample;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SampleServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public SampleServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String locale = request.getParameter("locale");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("The locale you selected is " + locale);
    }
}

和普通 web 应用一样配置 web.xml, 如清单 4


清单 4:web.xml
				
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>FlexSample</display-name>
    <servlet>
        <display-name>SampleServlet</display-name>
        <servlet-name>SampleServlet</servlet-name>
        <servlet-class>com.ibm.sample.SampleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>SampleServlet</servlet-name>
        <url-pattern>/SampleServlet</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>FlexSample.html</welcome-file>
    </welcome-file-list>
</web-app>				
				

事件驱动与数据绑定

从 J2eeServer.as 中我们依稀可以看出 Flex 事件驱动的影子。的确,Flex 的业务流程大多是靠事件来驱动的。某一个方法结束后,dispatch 出去一个事件。事件的监听者监听到这个事件后就会采取相应的动作来处理事件。如清单 5 所示:我们在 init() 方法中进行了事件绑定,绑定了两个监听方法 successHandler () 和 errorHandler () 到 J2eeServer 上。当 J2eeServer 完成和服务器端 servlet 通信 dispatch 出相应的事件后,两个监听方法便会监听到相应的事件并进行处理。

Flex 的另外一个重要的特点就是支持数据绑定,在另一篇文章《使用 Eclipse 和 JavaFX 开发 Mashup 应用》中我们曾介绍了 JavaFx 的数据绑定特性,同样 Flex 也支持数据绑定。当数据源被绑定到另外一个对象的某属性上时,数据源的数据如果发生变化,开发人员不需要写额外的代码该对象的属性值就可以相应的变化。如清单 5 中所示:如果要进行数据绑定,则要先定义一个可绑定的数据源,例如我们在变量 private var serverResponse:String = "" ;的上面设置 [Bindable] 属性,表示其为可绑定变量。然后我们在 resultLable 中使用花括号 {serverResponse} 将变量serverResponse绑定到 resultLable 的 text 属性上。


清单 5:FlexSample.mxml
				
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
     creationComplete="init()">
     <mx:Script>
         <![CDATA[
             import mx.rpc.events.ResultEvent;
             import mx.rpc.events.FaultEvent;
             import com.ibm.flex.J2eeServer;
             import mx.collections.ArrayCollection;
             
            private var jserver:J2eeServer = new J2eeServer();
            //可绑定变量
            [Bindable]
            private var serverResponse:String = "";
            //可绑定变量
            [Bindable]
            private var locales:ArrayCollection = new ArrayCollection(
                                                      [ {label:"en_us", data:"en_us"}, 
                                                         {label:"zh_cn", data:"zh_cn"}]); 
             
             private function init():void
             {
                 //事件绑定
                jserver.addEventListener(ResultEvent.RESULT, successHandler);
                jserver.addEventListener(FaultEvent.FAULT, errorHandler);
             }
             private function localeComboxChangeHandler(event:Event):void
             {
                 jserver.sendRequest(localeCombox.selectedItem.data);
             }
             
             private function successHandler(event:ResultEvent):void
             {
                 serverResponse = event.result.toString();
                 trace(event.result);
             }
             private function errorHandler(event:FaultEvent):void
             {
                 serverResponse = event.message.toString();
                 trace(event.message);
             }
         ]]>
     </mx:Script>
     <mx:VBox>
        <mx:Label text="Select your locale:" />
        <mx:ComboBox 
		    id="localeCombox" 
		    width="160" 
		    dataProvider="{locales}" 
		    change="localeComboxChangeHandler(event)"/>
        <mx:Label 
		    id="resultLabel"
		    text="The response from server is: {serverResponse}" />        
     </mx:VBox>
</mx:Application>

最终项目的文件结构如图 15 所示:


图 15:项目文件结构图
图 15:项目文件结构图  

运行项目,我们可以看到当我们改变下拉框的值的时候,会触发 localeComboxChangeHandler() 函数调用 J2eeServer 的 sendRequest() 方法将选择的 locale 值发送给服务器端的 servlet,并且在结果返回后,将从服务器端得到的 response 显示在 resultLable 上。如图 16 所示:


图 16:项目运行结果
图 16:项目运行结果  

结束语

Flex 作为 RIA 的新技术,对传统 web 开发技术有继承也有发展。这篇文作为入门文,主要作用是帮助大家掌握 Flex 的开发环境、开发方式、开发调试部署的流程以及 Flex 的基本编程知识。但 Flex 除了国际化、Unit 测试、Ant 编译等传统问题之外,作为新技术 Flex 还有很多不同以往的地方,比如模块开发,RSL(Runtime Shared Libraries), Shared object、和 JavaScript 交互以及它的 MVC 框架 cairngorm,远程调用和消息传递框架 BlazeDS 等。所有这些问题都是值得我们进行后续讨论的。

致谢

在本文完成之际,特别感谢 IBM 中国软件开发中心 IM 开发团队我的同事们在工作和学习中给我的巨大帮助!


参考资料

学习

  • Flex 3 Developer's Guide”:很好的 Flex 基础知识入门材料。 

  • Flex Developer Center”:针对具体开发场景的大量示例代码和文章。 

  • Flex Ant Tasks”:介绍了如何结合 Ant 工具来编译 Flex。 

  • Flex RSL”:对Flex RSL开发的各方面进行详细介绍的官方文档。 

  • 集成 Flex 与 Ajax 应用程序”(developerWorks,2008 年 7 月):阅读完本文后,您将能够利用通过 Flash 资源获得的丰富功能。

  • 使用 Flex SDK 实现一个 Facebook 相册”(developerWorks,2008 年 12 月):在本篇教程中,将在 Adobe Flex 中开发一个 Facebook 应用程序,它可以以幻灯片的形式显示用户的 Facebook 相册。

  • Fluint 的官方站点”:Fluint 是 Flex Unit Test 的框架 Flex Unit 的升级版本。 

  • Cairngorm 框架的 Adobe 官方站点”:Cairngorm 是 Flex 开发最著名和最成熟的一个 MVC 框架。 

  • BlazeDS 框架的开源站点”:BlazeDS 是 Adobe 的一个开源项目。基于服务器的 Java 远程调用(remoting)和 Web 消息传递(messaging)技术,它能够使得后台的 Java 应用程序和运行在浏览器上的 Flex 应用程序或 AIR 应用程序相互通信。 

获得产品和技术

  • 下载 JRE 或 JDK。 

  • 下载 Eclipss Ganymede。 

  • 下载 Flex Builder Eclipse 插件版。 

  • 下载 Tomcat 6。 

  • 下载 FireFox 2.0。 

  • 下载 BDebug 版本的 FireFox Flash Player 插件。 

关于作者

刘庆,目前在 IBM 软件开发中心(IBM CSDL)IM 开发团队担任开发工程师,拥有 IBM DB2 DBA 专业认证,他在 J2EE 和 Web 开发领域有着多年开发经验,喜欢关注新技术。他毕业于中国科技大学,并拥有硕士学位。

<div class="ivu-card-body"><div data-v-3c1c8183="" class="ivu-row"><div data-v-3c1c8183="" class="ivu-col"><div data-v-3c1c8183="" class="btnHeight ivu-row"><span data-v-3c1c8183=""><!----> <!----> <div data-v-3c1c8183="" class="table_search_int ivu-input-wrapper ivu-input-wrapper-default ivu-input-type-text"><!----> <!----> <i class="ivu-icon ivu-icon-ios-loading ivu-load-loop ivu-input-icon ivu-input-icon-validate"></i> <input autocomplete="off" spellcheck="false" type="text" placeholder="考核目标" class="ivu-input ivu-input-default"> <!----></div></span><span data-v-3c1c8183=""><!----> <!----> <div data-v-3c1c8183="" class="table_search_int ivu-input-wrapper ivu-input-wrapper-default ivu-input-type-text"><!----> <!----> <i class="ivu-icon ivu-icon-ios-loading ivu-load-loop ivu-input-icon ivu-input-icon-validate"></i> <input autocomplete="off" spellcheck="false" type="text" placeholder="考核标准" class="ivu-input ivu-input-default"> <!----></div></span> <button data-v-3c1c8183="" type="button" class="btns ivu-btn ivu-btn-info" style="width: 56px;"><!----> <!----> <span><span data-v-3c1c8183=""> 查询 </span></span></button><button data-v-3c1c8183="" type="button" class="btns ivu-btn ivu-btn-primary"><!----> <!----> <span><span data-v-3c1c8183=""> 导入 </span></span></button><button data-v-3c1c8183="" type="button" class="btns ivu-btn ivu-btn-primary"><!----> <!----> <span><span data-v-3c1c8183=""> 导出 </span></span></button><button data-v-3c1c8183="" type="button" class="btns ivu-btn ivu-btn-warning"><!----> <!----> <span><span data-v-3c1c8183=""> 新增 </span></span></button><button data-v-3c1c8183="" type="button" class="btns ivu-btn ivu-btn-error"><!----> <!----> <span><span data-v-3c1c8183=""> 删除 </span></span></button></div> <div data-v-3c1c8183="" class="table-form ivu-row"><!----> <!----> <div data-v-3c1c8183="" class="ivu-table-wrapper" style="height: 200px;"><div class="ivu-table ivu-table-small ivu-table-stripe ivu-table-with-fixed-top"><!----> <div class="ivu-table-header"><table cellspacing="0" cellpadding="0" border="0" style="width: 1129px;"><colgroup><col width="60"><col width="100"><col width="100"><col width="100"><col width="340"><col width="340"><col width="80"> <col width="8"></colgroup> <thead><tr><th class="ivu-table-column-wZlaS8 ivu-table-column-center"><div class="ivu-table-cell ivu-table-cell-with-selection"><label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label></div> <!----></th><th class="ivu-table-column-04H7sV ivu-table-column-left"><div class="ivu-table-cell"><span class="">分类</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-g8LZ9i ivu-table-column-left"><div class="ivu-table-cell"><span class="">序号</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-p3XzY6 ivu-table-column-left"><div class="ivu-table-cell"><span class="">权重(%)</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-qODpHN ivu-table-column-left"><div class="ivu-table-cell"><span class="">考核目标</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-oYd3ep ivu-table-column-left"><div class="ivu-table-cell"><span class="">考核标准</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-Ig9Tbq ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-hidden"><span class="">操作</span> <!----> <!----></div> <!----></th> <th rowspan="1" class="ivu-table-hidden"></th></tr></thead></table></div> <div class="ivu-table-body ivu-table-overflowY" style="height: 163px;"><table cellspacing="0" cellpadding="0" border="0" style="width: 1121px;"><colgroup><col width="60"><col width="100"><col width="100"><col width="100"><col width="340"><col width="340"><col width="80"></colgroup><tbody class="ivu-table-tbody"><tr class="ivu-table-row"><td class="ivu-table-column-wZlaS8 ivu-table-column-center"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">1</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="position: absolute; will-change: top, left; display: none; top: 37px; left: 567px;" x-placement="top"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td><td class="ivu-table-column-Ig9Tbq ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-hidden"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-wZlaS8 ivu-table-column-center"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">2</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="position: absolute; will-change: top, left; display: none; top: 78px; left: 567px;" x-placement="top"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td><td class="ivu-table-column-Ig9Tbq ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-hidden"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-wZlaS8 ivu-table-column-center"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">3</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="position: absolute; will-change: top, left; display: none; top: 118px; left: 567px;" x-placement="top"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td><td class="ivu-table-column-Ig9Tbq ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-hidden"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-wZlaS8 ivu-table-column-center"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">4</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="position: absolute; will-change: top, left; display: none; top: 159px; left: 567px;" x-placement="top"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td><td class="ivu-table-column-Ig9Tbq ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-hidden"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-wZlaS8 ivu-table-column-center"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">价值观指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">5</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">10</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">试用期内进入XX项目,并通过客户考核</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">试用期内进入XX项目,并通过客户考核</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①通过则合格②未通过且未进入其他项目的为不合格,原则上不能转正。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">①通过则合格②未通过且未进入其他项目的为不合格,原则上不能转正。</div></div></div></div> <!----></div></td><td class="ivu-table-column-Ig9Tbq ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-hidden"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-wZlaS8 ivu-table-column-center"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">价值观指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">6</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">10</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">综合素质</span></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①积极主动,责任心强,严格自律,能自觉遵守公司各项规章制度; ②接受任务主动,责任心较强,能较准确接受上级指示,遵守公司的各项规章制度; ③接受任务不主动,责任心不强,有违纪现象。 ④能主动积极与本部门其他成员建立良好的协作关系,保持良好的团队合作气氛;与部门外、公司外人员,建立良好的人际关系,促进业务上的沟通; ⑤能与其他成员建立较好的协作关系,保持较好的团队合作气氛;与部门外、公司外人员,建立较好的人际关系,促进业务沟通; ⑥不能很好保持的团队合作气氛;与部门内、外、公司外人员,人际关系较弱,不能很好促进工作沟通。 ⑦为人礼貌、正直、豁达,能实事求是阐述问题,有良好的适应能力,能很快加入公司的团队,能主动更新业务知识; ⑧为人诚实,较能实事求是阐述问题,有较好的适应能力,融入公司的团队较快,更新业务知识较强; ⑨有一定性格问题,阐述问题有片面性,适应能力较弱,融入公司的团队较难,不能主动更新业务知识。</span></div></div> <!----></div></td><td class="ivu-table-column-Ig9Tbq ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-hidden"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td></tr></tbody></table></div> <!----> <div class="ivu-table-tip" style="height: 163px; display: none;"><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td style="width: 1130px; height: 163px;"><span>暂无筛选结果</span></td></tr></tbody></table></div> <!----> <div class="ivu-table-fixed-right" style="width: 80px; right: 8px;"><div class="ivu-table-fixed-header"><table cellspacing="0" cellpadding="0" border="0" style="width: 80px; right: 8px;"><colgroup><col width="80"><col width="60"><col width="100"><col width="100"><col width="100"><col width="340"><col width="340"> <col width="8"></colgroup> <thead><tr><th class="ivu-table-column-Ig9Tbq ivu-table-column-center"><div class="ivu-table-cell"><span class="">操作</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-wZlaS8 ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-cell-with-selection"><label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label></div> <!----></th><th class="ivu-table-column-04H7sV ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><span class="">分类</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-g8LZ9i ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><span class="">序号</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-p3XzY6 ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><span class="">权重(%)</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-qODpHN ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><span class="">考核目标</span> <!----> <!----></div> <!----></th><th class="ivu-table-column-oYd3ep ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><span class="">考核标准</span> <!----> <!----></div> <!----></th> <th rowspan="1" class="ivu-table-hidden"></th></tr></thead></table></div> <div class="ivu-table-fixed-body" style="height: 162px;"><table cellspacing="0" cellpadding="0" border="0" style="width: 80px; right: 8px;"><colgroup><col width="80"><col width="60"><col width="100"><col width="100"><col width="100"><col width="340"><col width="340"></colgroup><tbody class="ivu-table-tbody"><tr class="ivu-table-row"><td class="ivu-table-column-Ig9Tbq ivu-table-column-center"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td><td class="ivu-table-column-wZlaS8 ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">1</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-Ig9Tbq ivu-table-column-center"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td><td class="ivu-table-column-wZlaS8 ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">2</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-Ig9Tbq ivu-table-column-center"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td><td class="ivu-table-column-wZlaS8 ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">3</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-Ig9Tbq ivu-table-column-center"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td><td class="ivu-table-column-wZlaS8 ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">关键业务指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">4</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">20</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">考核目标需要SMART化;例如:在XX时间按XX标准完成XX项目交付。</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①在2024年X月X日前,完成包括考核目标内的其他模块开发交付,且无bug,为优秀;②在2024年X月X日前,完成考核目标要求的模块开发交付,且无bug,为合格;③2024年X月X日未完成考核目标要求的模块开发交付,或完成后出现bug,为不足</span></div></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-Ig9Tbq ivu-table-column-center"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td><td class="ivu-table-column-wZlaS8 ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">价值观指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">5</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">10</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">试用期内进入XX项目,并通过客户考核</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">试用期内进入XX项目,并通过客户考核</div></div></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div class="ivu-tooltip"><div class="ivu-tooltip-rel"><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①通过则合格②未通过且未进入其他项目的为不合格,原则上不能转正。</span></div></div> <div class="ivu-tooltip-popper ivu-tooltip-dark" style="display: none;"><div class="ivu-tooltip-content"><div class="ivu-tooltip-arrow"></div> <div class="ivu-tooltip-inner">①通过则合格②未通过且未进入其他项目的为不合格,原则上不能转正。</div></div></div></div> <!----></div></td></tr><tr class="ivu-table-row"><td class="ivu-table-column-Ig9Tbq ivu-table-column-center"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><button type="button" class="ivu-btn ivu-btn-success ivu-btn-small" style="display: inline-block;"><!----> <!----> <span>编辑</span></button></div> <!----></div></td><td class="ivu-table-column-wZlaS8 ivu-table-column-center ivu-table-hidden"><div class="ivu-table-cell ivu-table-cell-with-selection"><!----> <label class="ivu-checkbox-wrapper ivu-checkbox-default"><span class="ivu-checkbox"><span class="ivu-checkbox-inner"></span> <input type="checkbox" class="ivu-checkbox-input"></span> <!----></label> <!----> <!----> <!----> <!----> <!----> <!----> <!----></div></td><td class="ivu-table-column-04H7sV ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">价值观指标</span></div></div> <!----></div></td><td class="ivu-table-column-g8LZ9i ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">6</span></div></div> <!----></div></td><td class="ivu-table-column-p3XzY6 ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">10</span></div></div> <!----></div></td><td class="ivu-table-column-qODpHN ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">综合素质</span></div></div> <!----></div></td><td class="ivu-table-column-oYd3ep ivu-table-column-left ivu-table-hidden"><div class="ivu-table-cell"><!----> <!----> <!----> <!----> <!----> <!----> <!----> <div><div style="width: 100%; height: 40px; line-height: 40px; text-align: center; display: flex; align-items: center;"><span style="display: inline-block; font-size: 12px; vertical-align: middle;">①积极主动,责任心强,严格自律,能自觉遵守公司各项规章制度; ②接受任务主动,责任心较强,能较准确接受上级指示,遵守公司的各项规章制度; ③接受任务不主动,责任心不强,有违纪现象。 ④能主动积极与本部门其他成员建立良好的协作关系,保持良好的团队合作气氛;与部门外、公司外人员,建立良好的人际关系,促进业务上的沟通; ⑤能与其他成员建立较好的协作关系,保持较好的团队合作气氛;与部门外、公司外人员,建立较好的人际关系,促进业务沟通; ⑥不能很好保持的团队合作气氛;与部门内、外、公司外人员,人际关系较弱,不能很好促进工作沟通。 ⑦为人礼貌、正直、豁达,能实事求是阐述问题,有良好的适应能力,能很快加入公司的团队,能主动更新业务知识; ⑧为人诚实,较能实事求是阐述问题,有较好的适应能力,融入公司的团队较快,更新业务知识较强; ⑨有一定性格问题,阐述问题有片面性,适应能力较弱,融入公司的团队较难,不能主动更新业务知识。</span></div></div> <!----></div></td></tr></tbody></table></div> <!----></div> <div class="ivu-table-fixed-right-header" style="width: 8px; height: 38px;"></div> <!----></div> <div class="ivu-table-resize-line" style="display: none;"></div> <!----> <!----><object tabindex="-1" type="text/html" data="about:blank" style="display: block; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; border: none; padding: 0px; margin: 0px; opacity: 0; z-index: -1000; pointer-events: none;"></object></div></div> <div data-v-3c1c8183="" class="ivu-row-flex"><ul data-v-3c1c8183="" class="ivu-page mini"><!----> <li title="上一页" class="ivu-page-prev ivu-page-disabled"><a><i class="ivu-icon ivu-icon-ios-arrow-back"></i></a></li> <li title="1" class="ivu-page-item ivu-page-item-active"><a>1</a></li> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <!----> <li title="下一页" class="ivu-page-next ivu-page-disabled"><a><i class="ivu-icon ivu-icon-ios-arrow-forward"></i></a></li> <div class="ivu-page-options"><div class="ivu-page-options-sizer"><div class="ivu-select ivu-select-single ivu-select-small"><div tabindex="0" class="ivu-select-selection"><input type="hidden" value="10"> <div class=""><!----> <!----> <span class="ivu-select-selected-value">10 条/页</span> <!----> <!----> <i class="ivu-icon ivu-icon-ios-arrow-down ivu-select-arrow"></i></div></div> <div class="ivu-select-dropdown" style="display: none; min-width: 85px; position: absolute; will-change: top, left; transform-origin: center bottom; z-index: 10002; top: 242px; left: 132px;" x-placement="top"><ul class="ivu-select-not-found" style="display: none;"><li>无匹配数据</li></ul> <ul class="ivu-select-dropdown-list"><!----> <li class="ivu-select-item ivu-select-item-selected" style="text-align: center;">10 条/页</li><li class="ivu-select-item" style="text-align: center;">20 条/页</li><li class="ivu-select-item" style="text-align: center;">50 条/页</li><li class="ivu-select-item" style="text-align: center;">100 条/页</li></ul> <ul class="ivu-select-loading" style="display: none;">加载中</ul></div></div></div> <div class="ivu-page-options-elevator"> 跳至 <input type="text" autocomplete="off" spellcheck="false"> 页 </div></div></ul> <span data-v-3c1c8183="" style="margin-left: 10px; margin-top: 2px;"> 第 1 - 6 共 <span data-v-3c1c8183="">6</span></span> <button data-v-3c1c8183="" type="button" class="refresh ivu-btn ivu-btn-default ivu-btn-circle ivu-btn-small ivu-btn-icon-only"><!----> <i class="ivu-icon ivu-icon-md-refresh"></i> <!----></button></div></div></div></div> 1 document.querySelector("div.cover .dataContent .ivu-col .ivu-card-body "); 打印如上面的html 结构 2 完善查询 找到导入按钮
最新发布
08-26
<think>好的,用户现在的问题是关于如何使用CSS选择器来定位HTML中的特定元素,特别是导入按钮。之前他们已经讨论过如何获取某个层级下的第二个按钮,现在用户提供了具体的HTML结构,并希望完善查询以找到导入按钮。 首先,我需要仔细分析用户提供的HTML结构。导入按钮的文本是“导入”,对应的按钮元素有多个类名,比如btns、ivu-btn、ivu-btn-primary。用户之前尝试的选择器可能没有正确匹配到该按钮,所以需要调整选择器以更精确地定位。 接下来,我需要考虑用户当前的结构。HTML中有一个div覆盖着cover类,里面是dataContent,接着是ivu-col,然后是ivu-card-body。在card-body内部,有多个按钮,包括查询、导入、导出、新增、删除等。导入按钮的结构是<button type="button" class="btns ivu-btn ivu-btn-primary">导入</button>。 用户之前可能使用了类似div.cover .dataContent .ivu-col .ivu-card-body的选择器,但可能没有正确指定按钮的位置。因为用户现在需要找到“导入”按钮,所以需要确保选择器能够准确匹配该按钮的类名和文本内容。 可能的解决方案是使用CSS选择器结合类名和文本内容。然而,CSS选择器本身不支持直接通过文本内容选择元素,但可以通过属性选择器来匹配部分类名。例如,使用.btns.ivu-btn.ivu-btn-primary来定位导入按钮。不过,如果有多个按钮具有相同的类名,可能需要更精确的层级结构或者使用其他属性。 另外,考虑到用户提供的HTML结构中,导入按钮是card-body下的第三个按钮,但结构可能有变化,所以最好还是通过类名结合文本内容来定位。不过,由于CSS无法直接通过文本选择元素,可能需要使用XPath或者结合JavaScript代码来过滤。 用户可能需要使用XPath来根据文本内容定位按钮,例如://button[contains(text(), '导入')]。或者,在CSS选择器中,可能需要依赖类名的唯一性,比如ivu-btn-primary是否唯一标识导入按钮。 需要检查HTML结构中的其他按钮是否也使用相同的类名。例如,查询按钮的类名是ivu-btn-info,而导入和导出都是ivu-btn-primary。如果有多个primary按钮,那么仅靠类名可能不够,需要结合位置或其他属性。 用户可能希望使用document.querySelector来获取第一个匹配的元素,所以需要确保选择器足够具体。例如,div.cover .dataContent .ivu-col .ivu-card-body .btns.ivu-btn.ivu-btn-primary,或者更精确的路径。 另外,用户可能在之前的尝试中遇到了问题,比如层级关系不正确导致无法找到元素。需要确认HTML结构中的嵌套关系是否与选择器匹配,是否存在多余的嵌套或类名拼写错误。 总结下来,正确的CSS选择器应该是:div.cover > .dataContent > .ivu-col > .ivu-card-body > .btns.ivu-btn.ivu-btn-primary,或者使用更灵活的层级选择,避免直接子元素关系,因为如果中间有其他嵌套元素,使用>可能会失败。 或者,考虑到HTML结构中的导入按钮可能在card-body下的某个容器内,可能需要调整选择器,例如:div.cover .dataContent .ivu-col .ivu-card-body .ivu-btn.ivu-btn-primary,然后通过文本过滤,但CSS无法直接过滤文本,所以可能需要JavaScript代码来辅助。 如果用户必须使用CSS选择器,可能需要依赖类名的组合,或者检查是否有其他属性可以利用,比如style属性中的特定值。例如,导入按钮的style是width: 56px;,但这种内联样式可能不稳定。 最终,可能需要结合类名和位置关系,或者使用XPath来通过文本定位。用户可能需要根据实际情况选择最可靠的方法,同时考虑动态内容加载的问题,确保元素已经加载完成再执行查询。</think>### **1. 当前 HTML 结构分析** 根据提供的 HTML 结构,`.ivu-card-body` 下存在多个按钮,其中**导入按钮**的 HTML 代码如下: ```html <button data-v-3c1c8183="" type="button" class="btns ivu-btn ivu-btn-primary"> <!----> <!----> <span><span data-v-3c1c8183="">导入</span></span> </button> ``` --- ### **2. 定位“导入按钮”的 CSS 选择器** #### **方案 1:基于类名和层级关系** ```javascript const importButton = document.querySelector( "div.cover .dataContent .ivu-col .ivu-card-body .btns.ivu-btn.ivu-btn-primary" ); console.log(importButton ? "找到导入按钮" : "未找到"); ``` - **说明**: - `.btns.ivu-btn.ivu-btn-primary` 是导入按钮的唯一类名组合。 - 如果存在多个相同类名的按钮(如“导出”按钮),需进一步筛选。 #### **方案 2:结合文本内容(需 XPath)** ```javascript const xpath = "//button[contains(., '导入')]"; const result = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); console.log(result.singleNodeValue ? "找到导入按钮" : "未找到"); ``` --- ### **3. 验证 HTML 结构** 执行以下代码打印 `.ivu-card-body` 的 HTML 内容: ```javascript const cardBody = document.querySelector("div.cover .dataContent .ivu-col .ivu-card-body"); console.log(cardBody ? cardBody.innerHTML.trim() : "未找到 .ivu-card-body"); ``` - **输出结果**: 会显示包含按钮的完整 HTML 结构,确认是否存在 `btns ivu-btn ivu-btn-primary` 类名。 --- ### **4. 完善查询的优化建议** #### **问题 1:动态类名干扰** - **现象**:`data-v-3c1c8183` 是 Vue 的动态属性,不影响类名匹配。 - **修复**:忽略动态属性,直接使用静态类名 `.btns.ivu-btn.ivu-btn-primary`。 #### **问题 2:多个相同类名的按钮** - **场景**:如果“导出”按钮也使用 `.ivu-btn-primary` 类名。 - **修复**:通过位置索引或文本内容精确匹配: ```javascript // 方法 1:CSS 选择器 + 位置索引 const importButton = document.querySelectorAll( "div.cover .dataContent .ivu-col .ivu-card-body .ivu-btn-primary" )[1]; // 假设“导入”是第二个 primary 按钮 // 方法 2:XPath + 文本匹配 const xpath = "//button[contains(., '导入')]"; ``` #### **问题 3:元素未加载完成** - **现象**:如果按钮是动态渲染的,`querySelector` 可能找不到元素。 - **修复**:使用 `MutationObserver` 或等待特定事件: ```javascript const observer = new MutationObserver(() => { const btn = document.querySelector(".btns.ivu-btn.ivu-btn-primary"); if (btn) { console.log("导入按钮已加载:", btn); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); ``` --- ### **5. 替代方案** #### **方案 1:使用 `filter` 遍历按钮** ```javascript const buttons = document.querySelectorAll(".ivu-card-body button"); const importButton = Array.from(buttons).find(btn => btn.textContent.trim() === "导入" ); console.log(importButton ? "找到导入按钮" : "未找到"); ``` #### **方案 2:结合 `closest` 和父级容器** ```javascript const importButton = document.querySelector(".ivu-card-body").querySelector("button span span"); if (importButton?.textContent.trim() === "导入") { console.log("导入按钮:", importButton.closest("button")); } ``` --- ### **相关问题** 1. 如何通过 CSS 选择器匹配文本内容为“导入”的按钮? 2. 如果按钮的类名(如 `ivu-btn-primary`)被其他模块复用,如何确保唯一性? 3. 如何通过 JavaScript 等待动态加载的按钮出现后再执行点击操作? 4. 如果 HTML 结构中存在多个 `.ivu-card-body`,如何确保选择器定位到正确的模块?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值