2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
määritelmä
Vue on käyttöliittymäkehys, joka voi poistaa DOM-toiminnot alkuperäisessä JavaScriptissä ja yksinkertaistaa kirjoittamista.
Aiemmin oppimaani MyBatis-kehystä käytetään yksinkertaistamaan JDBC-koodin kirjoittamista, kun taas Vue on käyttöliittymäkehys, jota käytetään JavaScript-koodin kirjoittamisen yksinkertaistamiseen.
Kattavien tapausten lisääminen Axiosiin ja JSONiinOhjelmassa on suuri määrä DOM-toimintoja, esimerkkejä ovat seuraavat:
let brandName = document.getElementById("brandName").value;
let companyName = document.getElementById("companyName").value;
let ordered = document.getElementById("ordered").value;
let description = document.getElementById("description").value;
// 获取单选框数组
let status = document.getElementsByName("status");
//2.3 给JS对象设置数据
formData.brandName = brandName;
formData.companyName = companyName;
formData.ordered = ordered;
formData.description = description;
Se perustuu MVVM:n (Model-View-ViewModel) ideaan ja voi toteuttaa dataaKaksisuuntainen sidonta , keskity ohjelmointiin dataan
Voidaan tehdä itseVirallinen nettisivuopiskella
Luo uusi HTML-sivu ja tuo seVue.js
asiakirja
Jos esittelet paikallisia Vue-tiedostoja (bloggaaja käyttää VUE2:n viimeisintä versiota:Vue2.7.16开发环境
, voit siirtyä viralliselle verkkosivustolle ladataksesi vastaavanjs
asiakirja)
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
Jos esittelet etä-npm-paketin tarjoaman Vue-palvelun
kehitysympäristö
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
Tuotantoympäristö
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
JS-koodialueella (in<Script>
tag body), luo Vue-ydinobjekteja tiedon sitomista varten
Kun luot Vue-objektia, sinun on välitettävä js-objekti, ja objektissa vaaditaan seuraavat ominaisuudet:
Attribuutit | selittää |
---|---|
el | Määritä, mitä tunnisteita Vue hallitsee. Tämän määritteen arvo#app keskelläapp Vuen hallinnoimille tunnisteilleid attribuutin arvo |
data | käytetään tietotyyppien määrittämiseen |
methods | Määrittelyyn käytetty funktio, funktion arvo voidaan palauttaa returnin kautta |
new Vue({
el:"#app",
data() {
return {
username : ""
}
}
});
Näkymien kirjoittaminen (HTML-koodi)
div
Merkittyid
Sovellusta varten luodaan vastaava Vue-objekti.el
attribuutin arvo<input>
Label luo syöttöruudun, jossa onv-model
Ominaisuudet, jotka sitovat syöttölaatikon kaksisuuntaisesti Vue-malliin v-model
Attribuutin arvo vastaa luotua Vue-objektia.return
Suluissa olevat mallien nimet ovat yhdenmukaisia{{}}
Se määritellään Vuessa interpolaatiolauseke , jota käytetään mallin tietojen hakemiseen<div id="app">
<input name="username" v-model="username">
{{username}}
</div>
Täydellinen vueDemo1.html-tiedostokoodi on seuraava
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<input name="username" v-model="username">
{{username}}
</div>
<!--引入vue.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
// 创建Vue核心对象
new Vue({
el:"#app",
//data() 是 ECMAScript 6 版本的新的写法
data() {
return {
username : ""
}
}
/*等同于
data: function () {
return {
username : ""
}
}这个是老版本
*/
});
</script>
</body>
</html>
Kun selain avaa html-sivun, käynnissä oleva kuvakaappaus on seuraava
ohje | vaikutus |
---|---|
v-bind | Sido attribuuttiarvot HTML-tunnisteisiin, kuten asetuksiin href , css tyyli jne. |
v-model | Luo kaksisuuntainen tiedonsidonta lomakeelementeille |
v-on | Sido tapahtumat HTML-tageihin |
v-if | Ehdollisesti renderöi elementti määritettynä muodossatrue Renderöi tarvittaessa, muuten älä renderöi |
v-else | Ehdollisesti renderöi elementti määritettynä muodossatrue Renderöi tarvittaessa, muuten älä renderöi |
v-else-if | Ehdollisesti renderöi elementti määritettynä muodossatrue Renderöi tarvittaessa, muuten älä renderöi |
v-show | Näytä elementti olosuhteiden mukaan. Erona on, että kytkin ondisplay attribuutin arvo |
v-for | Listan renderöinti, joka kulkee säilön elementtien tai objektin ominaisuuksien läpi |
Html
Merkittyv-
Etuliitteen erityisominaisuuksilla, eri ohjeilla on eri merkitys.v-bind
、v-model
v-bind
: Sido attribuuttiarvot HTML-tunnisteisiin, kuten asetuksiin href
, css
tyyli jne.
Esimerkkejä ovat seuraavat:
<a v-bind:href="url">百度一下</a>
voidaan lyhentää nimellä
<a :href="url">百度一下</a>
Jatkossa, niin kauan kuin URL-osoite muuttuu, vastaavav-bind
Myös attribuuttien arvot muuttuvat välittömästi.
v-model
:Luo kaksisuuntainen tiedonsidonta lomakeelementeille
Esimerkkejä ovat seuraavat
<input name="username" v-model="username">
Täydellinen esimerkki on seuraava
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<input name="urlname" v-model="url">
{{url}}
<br>
<a :href="url">点击一下跳转</a>
</div>
<!--引入vue.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
// 创建Vue核心对象
new Vue({
el:"#app",
//data() 是 ECMAScript 6 版本的新的写法
data() {
return {
url : ""
}
}
/*等同于
data: function () {
return {
url : ""
}
}这个是老版本
*/
});
</script>
</body>
</html>
v-on
v-on
: Sido tapahtumat HTML-tunnisteisiin
Esimerkki: Tapahtuma on sidottu painikkeen napsautukseen ja tapahtuma suoritetaanshow()
menetelmä, joka on kirjoitettumethods
in vivo
<input type="button" value="按钮" v-on:click="show()">
<!--等同于如下形式-->
<input type="button" value="按钮" v-on:click="show">
<input type="button" value="按钮" @click="show()">
<!--等同于如下形式-->
<input type="button" value="按钮" @click="show">
Täydellinen koodiesimerkki on seuraava:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<input type="button" value="按钮" v-on:click="show()">
<!--简略形式-->
<input type="button" value="按钮" @click="sunShow">
</div>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el:"#app",
methods:{
show() {
alert("第一个按钮被点击");
},
sunShow() {
alert("第二个按钮被点击")
}
}
});
</script>
</body>
</html>
Kun html-sivu on avattu selaimen kautta, käynnissä oleva kuvakaappaus on seuraava:
v-if
、v-show
v-if
、v-else
、v-else-if
: Renderöi elementin ehdollisesti, renderöi se, kun se on määritetty tosi, muuten älä hahmonna sitä.
if-else if-else
<div v-if="count == 3">count==3</div>
<div v-else-if="count == 2">count==2</div>
<div v-else>count !=2 && count != 3</div>
Täydellinen koodiesimerkki on seuraava
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
请输入count的值:<br>
<input type="text" v-model="count">
<br>
count值为:
<br>
<div v-if="count == 3">count==3</div>
<div v-else-if="count == 2">count==2</div>
<div v-else>还未输入,请输入count值</div>
</div>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el:"#app",
data() {
return {
count:""
}
}
});
</script>
</body>
</html>
Kun selain on avannut html-sivun, kuvakaappaus on seuraava:
v-show
: Näytä elementti olosuhteiden perusteella
v-show
jav-if
Vaikutus on sama, mutta toteutusperiaate on erilainen:v-show
Periaate jättää näyttämättä on lisätä vastaava tunnistedisplay
css-attribuutti ja aseta määritteen arvoksinone
,jav-if
Se ei ole suoraandiv
Tunnisteet näkyvät lähdekoodissa vain, kun ehdot täyttyvät.div
Label.Katso lisätietoja täydellisen koodiesimerkin kuvakaappauksesta.<div v-show="count == 3">div4</div>
Täydellinen koodiesimerkki on seuraava
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
请输入count的值:<br>
<input type="text" v-model="count">
<br>
count值为:
<br>
<div v-if="count == 3">count==3</div>
<div v-else-if="count == 2">count==2</div>
<div v-else>还未输入,请输入count值</div>
<hr>
<div v-show="count == 3">v-show:当count==3时展示</div>
</div>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el:"#app",
data() {
return {
count:""
}
}
});
</script>
</body>
</html>
Selain avaa html-tiedoston ja käynnissä oleva kuvakaappaus on seuraava:
v-for
v-for
: Listan renderöinti, joka kulkee säilön elementtien tai objektin ominaisuuksien läpi
Kävele taulukko normaalisti
<div v-for="addr in addrs">
{{addr}}<br>
</div>
Kävele taulukko indeksin mukaan
<div v-for="(addr,i) in addrs">
{{i+1}}:{{addr}}<br>
</div>
koodiesimerkki
Kävele taulukko normaalisti
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!--遍历数组-->
<div v-for="addr in addrs">
{{addr}}<br>
</div>
</div>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el:"#app",
data() {
return {
addrs:["北京", "上海", "天津"]
}
}
});
</script>
</body>
</html>
Kävele taulukko indeksin mukaan
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!--索引方式遍历数组-->
<div v-for="(addr,i) in addrs">
{{i+1}}:{{addr}}<br>
</div>
</div>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el:"#app",
data() {
return {
addrs:["北京", "上海", "天津"]
}
}
});
</script>
</body>
</html>
osavaltio | vaiheen sykli |
---|---|
beforeCreate | Ennen luomista |
created | Luomisen jälkeen |
beforeMount | ennen lataamista |
mounted | Asennus valmis |
beforeUpdate | Ennen päivitystä |
updated | Päivitetty |
beforeDestroy | ennen tuhoa |
destroyed | Tuhojen jälkeen |
Vuen elinkaaressa on kahdeksan vaihetta
Seuraavassa on kunkin elinkaaren sijainti
mounted
: Asennus valmis, Vue-alustus onnistui, HTML-sivun renderöinti onnistui
Voimme lähettää tällä menetelmällä asynkronisen pyynnön tietojen lataamiseksi
Yksinkertainen esimerkki
new Vue({
el:"#app",
mounted() {
alert("Vue挂载完毕,发送异步请求")
}
});
Täydellinen koodiesimerkki
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!--普通方式遍历数组-->
<div v-for="addr in addrs">
{{addr}}<br>
</div>
<!--索引方式遍历数组-->
<div v-for="(addr,i) in addrs">
{{i+1}}:{{addr}}<br>
</div>
</div>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el:"#app",
data() {
return {
addrs:["北京", "上海", "天津"]
}
},
//简略版本
mounted() {
alert("Vue挂载完毕,发送异步请求")
}
/*老版本
mounted:function () {
}*/
});
</script>
</body>
</html>
VueDemo
, on ladattu Giteen, ja voiLataa itsebrand.html
Tehdyt muutokset ovat seuraavat
brand.html
Koodimuutokset ovat seuraavat:
mounted
Menetelmä lähettää asynkronisen pyynnön ja kyselee tietoja sivun latauksen jälkeen.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<table border="1" cellspacing="0">
<tr>
<th>序号</th>
<th>品牌名称</th>
<th>企业名称</th>
<th>排序</th>
<th>品牌介绍</th>
<th>状态</th>
<th>操作</th>
</tr>
<!--使用v-for循环遍历-->
<tr v-for="(brand,i) in brands" align="center">
<td>{{i + 1}}</td>
<td>{{brand.brandName}}</td>
<td>{{brand.companyName}}</td>
<td>{{brand.ordered}}</td>
<td>{{brand.description}}</td>
<td>{{brand.status == 1 ? "启用" : "禁用"}}</td>
<td><a href="#">修改</a><a href="#">删除</a></td>
</tr>
</table>
</div>
<script src="js/axios-0.18.0.js"></script>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el: "#app",
data() {
return {
brands:[]
}
},
// 页面加载完成后利用mounted方法发送异步请求并查询数据
mounted() {
// 发送异步请求并查询数据
// 在Vue的实例方法中,this指向Vue实例本身
var _this = this;
axios({
method:"get",
url:"http://localhost:8080/VueDemo/selectAllServlet"
}).then(function (resp) {
// 获取响应数据,并将数据赋给brands
// 错误写法:this.brands = resp.data;
/* 在Axios的then方法的回调函数中,this可能指向其他对象,通常是全局对象(在浏览器中是 window 对象)
所以需要提前将代指Vue示例本身的this赋给_this
*/
//axios会自动将获取的JSON字符串数据转为js对象数组
_this.brands = resp.data;
})
}
})
</script>
</body>
</html>
Kuvakaappaus sen jälkeen, kun Tomcat suorittaa verkkoprojektin, on seuraava
kysymys
miksivar _this = this
, miksei suoraanthis.brands=resp.data
JavaScriptissä
this
Avainsanan käyttäytyminen riippuu kontekstista, jossa sitä kutsutaan. Vuen esimerkkimenetelmässäthis
Osoittaa itse Vue-instanssiin.Mutta Axioksessathen
Menetelmän takaisinsoittotoiminnossathis
Saattaa viitata muihin objekteihin, yleensä globaaliin objektiin (selaimissa tämä onwindow
esine). Tämä aiheuttaa sen, että et voi käyttää oikein Vue-ilmentymän ominaisuuksia ja menetelmiä.määritelmän mukaan
var _this = this
, tulet Vue-instanssiinthis
säästä klo_this
muuttuja ja käytä sitä sitten takaisinsoittotoiminnossa_this
viittaamaan oikein Vue-esiintymään.
addbrand.html
Tehdyt muutokset ovat seuraavat
brand.html
Koodimuutokset ovat seuraavat:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!--给新增按钮绑定单击事件-->
<input type="button" value="新增" v-on:click="addBrand()"><br>
<hr>
<table border="1" cellspacing="0">
<tr>
<th>序号</th>
<th>品牌名称</th>
<th>企业名称</th>
<th>排序</th>
<th>品牌介绍</th>
<th>状态</th>
<th>操作</th>
</tr>
<!--使用v-for循环遍历-->
<tr v-for="(brand,i) in brands" align="center">
<td>{{i + 1}}</td>
<td>{{brand.brandName}}</td>
<td>{{brand.companyName}}</td>
<td>{{brand.ordered}}</td>
<td>{{brand.description}}</td>
<td>{{brand.status == 1 ? "启用" : "禁用"}}</td>
<td><a href="#">修改</a><a href="#">删除</a></td>
</tr>
</table>
</div>
<script src="js/axios-0.18.0.js"></script>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el: "#app",
data() {
return {
brands:[]
}
},
methods:{
addBrand() {
location.href = "/VueDemo/addBrand.html";
}
},
// 页面加载完成后利用mounted方法发送异步请求并查询数据
mounted() {
// 发送异步请求并查询数据
// 在Vue的实例方法中,this指向Vue实例本身
var _this = this;
axios({
method:"get",
url:"http://localhost:8080/VueDemo/selectAllServlet"
}).then(function (resp) {
// 获取响应数据,并将数据赋给brands
// 错误写法:this.brands = resp.data;
/* 在Axios的then方法的回调函数中,this可能指向其他对象,通常是全局对象(在浏览器中是 window 对象)
所以需要提前将代指Vue示例本身的this赋给_this
*/
//axios会自动将获取的JSON字符串数据转为js对象数组
_this.brands = resp.data;
})
}
})
</script>
</body>
</html>
addBrand.html
Koodia muutetaan seuraavasti:
vue.js
asiakirjav-model
Attribuutit tehdään lomakeelementeilleKaksisuuntainen tietojen sidonta<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加品牌</title>
</head>
<body>
<h3>添加品牌</h3>
<div id="app">
<!--表单直接提交属于同步请求方式提交表单,为了使用异步方式以及AJAX+JSON异步方式提交所以要将action属性值设为空并将提交按钮的type属性值设为button-->
<!--action的属性值为浏览器提交到服务器的资源路径-->
<!--将action属性值由具体的url改为空-->
<form action="" method="post">
品牌名称:<input id="brandName" name="brandName" v-model="brand.brandName"><br>
企业名称:<input id="companyName" name="companyName" v-model="brand.companyName"><br>
排序:<input id="ordered" name="ordered" v-model="brand.ordered"><br>
描述信息:<textarea rows="5" cols="20" id="description" name="description" v-model="brand.description"></textarea><br>
状态:
<input type="radio" name="status" value="0" v-model="brand.status">禁用
<input type="radio" name="status" value="1" v-model="brand.status">启用<br>
<!--将提交按钮的type属性由submit改为button-->
<input type="button" v-on:click="submitForm()" value="提交">
</form>
</div>
<script src="js/axios-0.18.0.js"></script>
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<script>
new Vue({
el: "#app",
data() {
return {
/*
由于数据最终要封装为对象,所以直接创建一个对象即可
注意:不需要给该对象属性,是因为 Vue.js 的双向数据绑定机制和响应式系统会自动处理,
即v-model 自动创建对象属性并追踪它们,只要用户填写输入框,就会自动将其作为brand对象的属性封装起来
*/
brand:{}
}
},
methods:{
submitForm() {
var _this = this;
// 发送axios请求并添加数据
axios({
method:"post",
url:"http://localhost:8080/VueDemo/addServlet",
//3 JSON数据格式发送请求
// formData为JS对象,Axios会自动将JS对象转为JSON字符串然后在传给服务端
data:_this.brand
}).then(function (resp) {
//4 获取响应数据并判断响应数据是否为success
if(resp.data == "success"){
location.href = "http://localhost:8080/VueDemo/brand.html";
}
})
}
}
})
</script>
</body>
</html>
Kun Tomcat suorittaa verkkoprojektin, käynnissä oleva kuvakaappaus on seuraava
määritelmä
Ilmoitus:
element-ui
Lataa virallinen verkkosivustoLataaminen ei onnistu, voit ladata sen itse seuraavalla koodilla (voit muuttaa latauspolun ja vastaavan version URL-osoitteen itse)import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
/**
* 下载element-ui
*/
public class Main {
//本地保存目录
static String fileP = "F:/insert/java/element-ui/";
//url
static String urlP = "https://unpkg.com/browse/[email protected]/";
static String urlF = "https://unpkg.com/[email protected]/";
public static void main(String[] args){
try {
GetPage("");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("done ......");
}
static void GetPage(String after) throws Exception {
System.out.println(urlP + after);
new File(fileP + after).mkdir();
HttpURLConnection http = (HttpURLConnection) (new URL(urlP + after)).openConnection();
http.setRequestMethod("GET");
http.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3562.0 Safari/537.36");
http.connect();
if(http.getResponseCode() == 200) {
InputStream inputStream = http.getInputStream();
byte [] buffer = new byte[10240];
ArrayList<byte []> byteList = new ArrayList<>();
ArrayList<Integer> byteLength = new ArrayList<>();
int length;
int totalLength = 0;
while( (length = inputStream.read(buffer)) != -1 ) {
byteList.add(buffer);
byteLength.add(length);
totalLength += length;
buffer = new byte[10240];
}
http.disconnect();
byte [] all;
all = new byte[totalLength];
totalLength = 0;
while(byteList.size() != 0) {
System.arraycopy(byteList.get(0), 0, all, totalLength, byteLength.get(0));
totalLength += byteLength.get(0);
byteList.remove(0);
byteLength.remove(0);
}
String content = new String(all, StandardCharsets.UTF_8);
all = null;
content = content.split("tbody")[1];
String [] us = content.split("href="");
for(int i = 1; i < us.length; i ++) {
String href = us[i].split(""", 2)[0];
if(href.equals("../")) {
continue;
}
if(href.charAt(href.length() - 1) == '/') {
GetPage(after + href);
} else {
//下载文件,失败重试,大部分是网络原因
try {
GetFile(after + href);
}catch (Exception e){
System.out.println(after + href + " 下载失败,重试");
GetFile(after + href);
}
}
}
} else {
GetPage(after);
}
}
static void GetFile(String url) throws Exception{
System.out.println(url);
HttpURLConnection http;
http = (HttpURLConnection) (new URL(urlF + url)).openConnection();
http.setRequestMethod("GET");
http.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3562.0 Safari/537.36");
http.connect();
if(http.getResponseCode() == 200) {
InputStream inputStream = http.getInputStream();
byte [] buffer = new byte[10240];
ArrayList<byte []> byteList = new ArrayList<>();
ArrayList<Integer> byteLength = new ArrayList<>();
int length;
int totalLength = 0;
while( (length = inputStream.read(buffer)) != -1 ) {
byteList.add(buffer);
byteLength.add(length);
totalLength += length;
buffer = new byte[10240];
}
http.disconnect();
byte [] all;
all = new byte[totalLength];
totalLength = 0;
while(byteList.size() != 0) {
System.arraycopy(byteList.get(0), 0, all, totalLength, byteLength.get(0));
totalLength += byteLength.get(0);
byteList.remove(0);
byteLength.remove(0);
}
File f = new File(fileP + url.replaceAll("/", "\\"));
//文件存在,不重复下载
if(f.exists()){
System.out.println(f.getAbsoluteFile() + " 存在");
return;
}
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f, false);
fos.write(all);
fos.flush();
fos.close();
} else {
GetFile(url);
}
}
}
Vaihe 1: Esittele Vue.js-tiedosto
Vaihe 2: Tahtoaelement-ui
Hakemisto sijoitetaan verkkoprojektin ydinhakemistoon (eli webappiin) ja tuodaan sittenelement-ui
css, js tiedostot
Esittele paikalliset Element css- ja js-tiedostot
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
Esittele etäelementin css- ja js-tiedostot
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
Vaihe 3: Luo Vue-ydinobjekteja (katso lisätietoja Vue-osiosta)
Vaihe 4: ElementtiVirallinen nettisivuKopioi elementin komponenttikoodi
Html-sivun perusrakennekoodi on seuraava:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码并做对应设计更改-->
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app"
})
</script>
</body>
</html>
Täydellinen koodiesimerkki on seuraava
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码 : 以button按钮为例-->
<el-row>
<el-button round>圆角按钮</el-button>
<el-button type="primary" round>主要按钮</el-button>
<el-button type="success" round>成功按钮</el-button>
<el-button type="info" round>信息按钮</el-button>
<el-button type="warning" round>警告按钮</el-button>
<el-button type="danger" round>危险按钮</el-button>
</el-row>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app"
})
</script>
</body>
</html>
Kun selain avaa html-tiedoston, sivu näyttää seuraavalta
Määritelmä: Luo asetteluja nopeasti ja helposti 24-sarakkeen perusasettelulla
Selitys: Se tarjoaa useita rivejä, jokaisella rivillä on 24 perusruudukkoa
vaihe:
Vaihe 1: Ota käyttöön vue.js-tiedosto, elementin index.css-tiedosto ja index.js-tiedosto
Vaihe 2: Luo Vue-ydinobjekti
Vaihe 3: Kopioi haluamasi komponenttikoodi viralliselta verkkosivustolta
<style>
Tunnisteen runko on css-tyylinen koodi, jonka voimme lisätä ulkoisesti tai kirjoittaa suoraan html-sivulle.<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col>
</el-row>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>
<el-row>
<el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="8"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
</el-row>
<el-row>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>
<el-row>
<el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>
<style>
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.row-bg {
padding: 10px 0;
background-color: #f9fafc;
}
</style>
Täydellinen koodiesimerkki
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--head标签体内放入css样式代码-->
<style>
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.row-bg {
padding: 10px 0;
background-color: #f9fafc;
}
</style>
</head>
<body>
<div id="app">
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col>
</el-row>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>
<el-row>
<el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="8"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
</el-row>
<el-row>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>
<el-row>
<el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app"
})
</script>
</body>
</html>
Avaa html-sivu selaimen kautta, kuvakaappaus on seuraava
Määritelmä: Säiliökomponentti, jota käytetään asettelussa helpottamaan sivun perusrakenteen nopeaa rakentamista
Selitys: Kuten yllä olevassa kuvassa näkyy, se on asettelu, jossa on vasen navigointipalkki
vaihe:
Vaihe 1: Ota käyttöön vue.js-tiedosto, elementin index.css-tiedosto ja index.js-tiedosto
Vaihe 2: Luo Vue-ydinobjekti
Vaihe 3: Kopioi haluamasi komponenttikoodi viralliselta verkkosivustolta
Otetaan ensimmäinen esimerkki esimerkkinä, kuten virallisen verkkosivuston kuvassa näkyy
Tässä esimerkissä on html- ja css-koodin lisäksi myös Vue-objektin attribuutteja seuraavasti:
<script>
//export default为自己创建的Vue对象
export default {
data() {
const item = {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
};
return {
tableData: Array(20).fill(item)
}
}
};
</script>
Voimme kopioida Vuen ominaisuudet virallisessa verkkosivustossa omaan Vue-ydinobjektiimme seuraavasti
<script>
new Vue({
el : "#app",
data() {
const item = {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
};
return {
tableData: Array(20).fill(item)
}
}
})
</script>
Täydellinen koodiesimerkki
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--head标签体内放入css样式代码-->
<style>
.el-header {
background-color: #B3C0D1;
color: #333;
line-height: 60px;
}
.el-aside {
color: #333;
}
</style>
</head>
<body>
<div id="app">
<el-container style="height: 500px; border: 1px solid #eee">
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
<el-menu :default-openeds="['1', '3']">
<el-submenu index="1">
<template slot="title"><i class="el-icon-message"></i>导航一</template>
<el-menu-item-group>
<template slot="title">分组一</template>
<el-menu-item index="1-1">选项1</el-menu-item>
<el-menu-item index="1-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="1-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="1-4">
<template slot="title">选项4</template>
<el-menu-item index="1-4-1">选项4-1</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu index="2">
<template slot="title"><i class="el-icon-menu"></i>导航二</template>
<el-menu-item-group>
<template slot="title">分组一</template>
<el-menu-item index="2-1">选项1</el-menu-item>
<el-menu-item index="2-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="2-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="2-4">
<template slot="title">选项4</template>
<el-menu-item index="2-4-1">选项4-1</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu index="3">
<template slot="title"><i class="el-icon-setting"></i>导航三</template>
<el-menu-item-group>
<template slot="title">分组一</template>
<el-menu-item index="3-1">选项1</el-menu-item>
<el-menu-item index="3-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="3-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="3-4">
<template slot="title">选项4</template>
<el-menu-item index="3-4-1">选项4-1</el-menu-item>
</el-submenu>
</el-submenu>
</el-menu>
</el-aside>
<el-container>
<el-header style="text-align: right; font-size: 12px">
<el-dropdown>
<i class="el-icon-setting" style="margin-right: 15px"></i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>查看</el-dropdown-item>
<el-dropdown-item>新增</el-dropdown-item>
<el-dropdown-item>删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<span>王小虎</span>
</el-header>
<el-main>
<el-table :data="tableData">
<el-table-column prop="date" label="日期" width="140">
</el-table-column>
<el-table-column prop="name" label="姓名" width="120">
</el-table-column>
<el-table-column prop="address" label="地址">
</el-table-column>
</el-table>
</el-main>
</el-container>
</el-container>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
data() {
const item = {
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
};
return {
tableData: Array(20).fill(item)
}
}
})
</script>
</body>
</html>
Avaa html-sivu selaimen kautta, kuvakaappaus on seuraava
Tee vaikutus alla olevan kuvan mukaisesti
Vaihe 1: Siirry viralliselle verkkosivustolle ja kopioi vastaava esimerkki lomakkeesta (jaVirallinen verkkosivusto tilalomakkeellaEsimerkiksi), koodi on seuraava:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName">
<el-table-column
prop="date"
label="日期"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="address"
label="地址">
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}]
}
}
})
</script>
</body>
</html>
Kun selain on avannut html-sivun kuvan osoittamalla tavalla, aloita säätöjen tekeminen saatuasi karkean kuvan.
Vaihe 2: Lisää sarakkeita ja tietoja vaiheessa 1 saatuun taulukkoon ja muokkaa sarakkeiden nimiä
poistaawidth
Jokainen sarake säätää automaattisesti leveytensä määritteen jälkeen.
Keskitä taulukon sisältö: Vieritä alas virallisen verkkosivuston vastaavaa taulukkokomponenttiosaa löytääksesi vastaavat menetelmät ja ominaisuudet, kuten kuvassa.Aseta ominaisuudetalign="center"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName">
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Vaihe 3: Lisää taulukkoon toimintosarake
修改
ja删除
-painiketta, siirry viralliselle verkkosivustolle löytääksesi vastaava painikekoodi, kopioi ja liitä se<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName">
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Vaihe 4: Sarjanumeron lisääminen taulukkoon: Etsi sarjanumerolla varustettu taulukko viralliselta verkkosivustolta ja kopioi sarjanumeron lisäämiskoodi.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName">
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Vaihe 5: Lisää valintaruutu taulukkoon: Etsi taulukko, jossa on valintaruutu, ja kopioi valintaruudun koodi
Koska tietoriville voidaan tehdä eräoperaatioita tapauskaavion valintaruudun valinnan jälkeen, taulukolla on oltava menetelmä, joten kun kopioimme valintaruudun koodia, meidän on kopioitava myös taulukko Kopioi-valintaruudulla. vastaava menetelmä (älä unohda kirjoittaa tätä menetelmää Vue-ydinobjektiin), menetelmä on seuraava
handleSelectionChange(val) {
this.multipleSelection = val;
}
Tällä menetelmällä on ominaisuusmultipleSelection
, joten meidän on kopioitava tämä attribuutti omaan koodiimme. Lopullinen täydellinen koodi on seuraava:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"><!--给表格添加handleSelectionChange方法-->
<!--给表格添加复选框-->
<el-table-column
type="selection">
</el-table-column>
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
}
},
data() {
return {
multipleSelection: [],
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Lisää tulos valintaruutuun ja testaa, onko se onnistunut
handleSelectionChange(val) {
this.multipleSelection = val;
console.log(this.multipleSelection)
}
Kun olet avannut sivun selaimessa, avaa kehittäjätyökalut → valitse konsoliohjain nähdäksesi tulosteen kuvan osoittamalla tavalla
Vaihe 6: Lisää lomake: Tapauskaavion lomake on vaakasuora, joten löydämme samanlaisen lomakkeen (eli rivin lomakkeen) viralliselta verkkosivustolta ja kopioimme koodin seuraavasti
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表单代码-->
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="审批人">
<el-input v-model="formInline.user" placeholder="审批人"></el-input>
</el-form-item>
<el-form-item label="活动区域">
<el-select v-model="formInline.region" placeholder="活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"><!--给表格添加handleSelectionChange方法-->
<!--给表格添加复选框-->
<el-table-column
type="selection">
</el-table-column>
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
// 表单方法
onSubmit() {
console.log('submit!');
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
//测试与复选框关联的方法是否成功,测试完成后自行删除即可
console.log(this.multipleSelection)
},
// 表格方法
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
// 表单数据
formInline: {
user: '',
region: ''
},
// 复选框数据
multipleSelection: [],
// 表格数据
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Vaihe 7: Muokkaa muotoa tapauskaavion mukaiseksi, koodi on seuraava
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表单代码-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="1" value="启用"></el-option>
<el-option label="0" value="禁用"></el-option>
</el-select>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"><!--给表格添加handleSelectionChange方法-->
<!--给表格添加复选框-->
<el-table-column
type="selection">
</el-table-column>
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
// 表单方法
onSubmit() {
console.log(this.brand);
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
//测试与复选框关联的方法是否成功,测试完成后自行删除即可
console.log(this.multipleSelection)
},
// 表格方法
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
// 表单数据
brand: {
status: '',
companyName: '',
brandName: ''
},
// 复选框数据
multipleSelection: [],
// 表格数据
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Valintaikkunat ja lomakkeet avautuvat napsauttamalla Lisää-painiketta, joten meidän on lisättävä ne ennen valintaikkunoiden ja lomakkeiden tekemistä.批量删除
ja新增
kaksi painiketta
Vaihe 8: Lisätä批量删除
ja新增
-painiketta, lisää valintaikkuna
Etsi valintaikkunan komponentti viralliselta verkkosivustolta Tässä otamme esimerkkinä valintaikkunan peruskäytön ja kopioimme sen koodin.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表单代码-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="1" value="启用"></el-option>
<el-option label="0" value="禁用"></el-option>
</el-select>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--批量删除和新增按钮-->
<el-row>
<el-button type="danger" plain>批量删除</el-button>
<el-button type="primary">新增</el-button>
</el-row>
<!--要弹出的对话框-->
<el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"><!--before-close是为右上角x绑定方法用的属性-->
<!--对话框中的表单-->
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span>
</el-dialog>
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"><!--给表格添加handleSelectionChange方法-->
<!--给表格添加复选框-->
<el-table-column
type="selection">
</el-table-column>
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
// 表单方法
onSubmit() {
// 测试是否绑定成功:输出到浏览器控制台测试是否将表单数据封装到brand对象中
console.log(this.brand);
},
// 单击对话框右上角x时会弹出的确认关闭框,若不想要将其删除即可
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
//测试与复选框关联的方法是否成功,测试完成后自行删除即可
console.log(this.multipleSelection)
},
// 表格方法
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
// 表单数据
brand: {
status: '',
companyName: '',
brandName: ''
},
// 添加数据的对话康初始状态太是否展示
dialogVisible: false,
// 复选框数据
multipleSelection: [],
// 表格数据
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Vaihe 9: Lisää lomake valintaikkunaan, koodi on seuraava
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表单代码-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="1" value="启用"></el-option>
<el-option label="0" value="禁用"></el-option>
</el-select>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--批量删除和新增按钮-->
<el-row>
<el-button type="danger" plain>批量删除</el-button>
<el-button type="primary">新增</el-button>
</el-row>
<!--要弹出的对话框-->
<!--单击事件发生后会将dialogVisible属性值设置为true,此时对话框就会打开-->
<el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
<el-dialog
title="编辑品牌"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"><!--before-close是为右上角x绑定方法用的属性-->
<!--对话框中的表单-->
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="品牌名称">
<el-input v-model="form.brandName"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="form.companyName"></el-input>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="form.ordered"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="form.description"></el-input>
</el-form-item>
<el-form-item label="状态">
<el-switch v-model="form.status"></el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addBrand">提交</el-button>
<el-button>取消</el-button>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span>
</el-dialog>
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"><!--给表格添加handleSelectionChange方法-->
<!--给表格添加复选框-->
<el-table-column
type="selection">
</el-table-column>
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
// 表单方法
onSubmit() {
// 测试是否绑定成功:输出到浏览器控制台测试是否将表单数据封装到brand对象中
console.log(this.brand);
},
// 单击对话框右上角x时会弹出的确认关闭框,若不想要将其删除即可
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
//弹出的对话康中表单的添加方法
addBrand() {
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
//测试与复选框关联的方法是否成功,测试完成后自行删除即可
console.log(this.multipleSelection)
},
// 表格方法
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
// 表单数据
brand: {
status: '',
companyName: '',
brandName: ''
},
// 新增按钮弹出的对话框初始状态是否展示的标记,默认为false
dialogVisible: false,
form: {
brandName: '',
companyName: '',
ordered: '',
description: '',
status: false
},
// 复选框数据
multipleSelection: [],
// 表格数据
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Vaihe 10: Vaiheet ovat seuraavat ja koodi on seuraava
新增
Painikkeen sitova napsautustapahtuma, kunhan vain yksi napsautus新增
Painike avaa valintaikkunan提交
Painikkeeseen sidottua klikkaustapahtumaa vastaava menetelmä: Muuta menetelmäksiaddBrand
, niin kauan kuin painiketta napsautetaan, valintaikkuna lähetetään automaattisesti.确定
、取消
painikkeen poistaminen取消
Painike on sidottu napsautustapahtumaan Niin kauan kuin painiketta napsautetaan, valintaikkuna katoaa.form
(Juuri nytmodel="form"
), muuta sen määritteen arvoksibrand
ja täydennä tiedot brändiobjektissa<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表单代码-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="1" value="启用"></el-option>
<el-option label="0" value="禁用"></el-option>
</el-select>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--批量删除和新增按钮-->
<el-row>
<el-button type="danger" plain>批量删除</el-button>
<!--新增按钮绑定单击事件:只要一单击`新增`按钮就弹出对话框表单-->
<el-button type="primary" plain @click="dialogVisible = true">新增</el-button>
</el-row>
<!--要弹出的对话框-->
<!--单击事件发生后会将dialogVisible属性值设置为true,此时对话框就会打开-->
<el-dialog
title="编辑品牌"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"><!--before-close是为右上角x绑定方法用的属性-->
<!--对话框中的表单-->
<el-form ref="form" :model="brand" label-width="80px">
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName"></el-input>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="brand.ordered"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="brand.description"></el-input>
</el-form-item>
<el-form-item label="状态">
<!--将状态开关值设为1、0-->
<el-switch v-model="brand.status" active-value="1" inactive-value="0"></el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addBrand">提交</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"><!--给表格添加handleSelectionChange方法-->
<!--给表格添加复选框-->
<el-table-column
type="selection">
</el-table-column>
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
// 表单方法
onSubmit() {
// 测试是否绑定成功:输出到浏览器控制台测试是否将表单数据封装到brand对象中
console.log(this.brand);
},
// 单击对话框右上角x时会弹出的确认关闭框,若不想要将其删除即可
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
//弹出的对话框中单击提交按钮后表单的添加方法
addBrand() {
console.log(this.brand);
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
//测试与复选框关联的方法是否成功,测试完成后自行删除即可
console.log(this.multipleSelection)
},
// 表格方法
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
// 品牌模型数据
brand: {
id: '',
brandName: '',
companyName: '',
status: '',
ordered: '',
description: ''
},
// 新增按钮弹出的对话框初始状态是否展示的标记,默认为false
dialogVisible: false,
form: {
brandName: '',
companyName: '',
ordered: '',
description: '',
status: false
},
// 复选框数据
multipleSelection: [],
// 表格数据
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}]
}
}
})
</script>
</body>
</html>
Vaihe 11: Siirry viralliselle verkkosivustolle löytääksesi sivutuskomponentin, kopioi vastaava koodi ja tee vastaavat muutokset.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--表格css样式-->
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<div id="app">
<!--3 从官网复制自己想要的组件代码-->
<!--表单代码-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="1" value="启用"></el-option>
<el-option label="0" value="禁用"></el-option>
</el-select>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--批量删除和新增按钮-->
<el-row>
<el-button type="danger" plain>批量删除</el-button>
<!--新增按钮绑定单击事件:只要一单击`新增`按钮就弹出对话框表单-->
<el-button type="primary" plain @click="dialogVisible = true">新增</el-button>
</el-row>
<!--要弹出的对话框-->
<!--单击事件发生后会将dialogVisible属性值设置为true,此时对话框就会打开-->
<el-dialog
title="编辑品牌"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"><!--before-close是为右上角x绑定方法用的属性-->
<!--对话框中的表单-->
<el-form ref="form" :model="brand" label-width="80px">
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName"></el-input>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="brand.ordered"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="brand.description"></el-input>
</el-form-item>
<el-form-item label="状态">
<!--将状态开关值设为1、0-->
<el-switch v-model="brand.status" active-value="1" inactive-value="0"></el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addBrand">提交</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
<!--表格代码-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"><!--给表格添加handleSelectionChange方法-->
<!--给表格添加复选框-->
<el-table-column
type="selection">
</el-table-column>
<!--给表格添加序号-->
<el-table-column
type="index">
</el-table-column>
<el-table-column
prop="brandName"
label="品牌名称"
align="center">
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center">
</el-table-column>
<el-table-column
prop="ordered"
label="排序"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="当前状态"
align="center">
</el-table-column>
<el-table-column
label="操作"
align="center">
<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>
<!--分页代码-->
<template>
<div class="block">
<!--
current-page 当前所在页
page-sizes 定义选择每页显示的条数
page-size 每页显示的条目数
total 设置总共的页面数
background 添加背景色
-->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
background
layout="total, sizes, prev, pager, next, jumper"
:total="1000">
</el-pagination>
</div>
</template>
</div>
<!--1 引入vue.js文件、element的index.css文件和index.js文件-->
<script src="js/vue.js" type="text/javascript" charset="UTF-8"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="element-ui/lib/index.js"></script>
<!--2 创建Vue核心对象-->
<script>
new Vue({
el : "#app",
//表格属性
methods: {
// 表单方法
onSubmit() {
// 测试是否绑定成功:输出到浏览器控制台测试是否将表单数据封装到brand对象中
console.log(this.brand);
},
// 单击对话框右上角x时会弹出的确认关闭框,若不想要将其删除即可
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
//弹出的对话框中单击提交按钮后表单的添加方法
addBrand() {
console.log(this.brand);
},
// 复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;
//测试与复选框关联的方法是否成功,测试完成后自行删除即可
console.log(this.multipleSelection)
},
// 表格方法
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
},
// 分页方法
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
// 分页方法
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
}
},
data() {
return {
// 品牌模型数据
brand: {
id: '',
brandName: '',
companyName: '',
status: '',
ordered: '',
description: ''
},
// 新增按钮弹出的对话框初始状态是否展示的标记,默认为false
dialogVisible: false,
form: {
brandName: '',
companyName: '',
ordered: '',
description: '',
status: false
},
// 复选框数据
multipleSelection: [],
// 表格数据
tableData: [{
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}, {
brandName: '小米',
companyName: '小米科技有限公司',
ordered: '10',
status: '启用'
}],
// 分页数据:当前所在页
currentPage: 4
}
}
})
</script>
</body>
</html>