国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue2 +Element-ui實現(xiàn)前端頁面

這篇具有很好參考價值的文章主要介紹了Vue2 +Element-ui實現(xiàn)前端頁面。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.頁面項目

以一個簡單的前端頁面為例。主要是利用vue和element-ui實現(xiàn)。

里面涉及的主要包括:新建vue項目、一行多個輸入框、頁面實現(xiàn)等。

?

使用vue2項目寫一個頁面,VUE,vue.js,前端,ui

2.項目流程

(1)新建項目

①首先安裝nodejs,這部分在此就不講啦。

②然后安裝vue-cli:

npm install -g @vue/cli

查看是否安裝成功:

vue-V

安裝成功之后就輸出vue的版本

③在cmd窗口新建一個vue2腳手架項目(目前用idea創(chuàng)建的話是默認vue3項目)。

使用vue2項目寫一個頁面,VUE,vue.js,前端,ui

?(2)用idea打開項目

項目文件是這樣:router主要是用來實現(xiàn)路由(頁面跳轉(zhuǎn))、views文件夾下就是寫頁面的地方。

使用vue2項目寫一個頁面,VUE,vue.js,前端,ui

?(3)vue各部分基本介紹

①data

data中主要存放數(shù)據(jù),在UI層面中的數(shù)據(jù)都是放在data中

data() {
? ? return {
? ? ? searchIndex: '',
? ? ? select: '',
? ? ? searchUnit: {
? ? ? ? pageIndex: 0
? ? ? },
? ? ? tableData: [],
? ? ? loading: false,
? ? ? totalpage: 0,
? ? ? currentPage: 1
? ? }
? },

②methods

所有的方法都是放在methods

使用vue2項目寫一個頁面,VUE,vue.js,前端,ui

?

③mounted

**模板渲染成html后調(diào)用**,通常是初始化頁面完成后,再對html的dom節(jié)點進行一些需要的操作。**通常在里面執(zhí)行dom操作**。

DOM操作:dom是一種文檔對象模型,同時也是用于html編程的接口,**通過dom來操作頁面中的元素**

與created的區(qū)別:

這里:通過id什么的去查找頁面元素是**找得到的**

④created

在**模板渲染成html前調(diào)用**,即通常初始化某些屬性值,然后再渲染成視圖。這里:通過id什么的去查找頁面元素是**找不到的**,created里面主要是**進行網(wǎng)絡(luò)請求**

這里就會執(zhí)行g(shù)etLogs方法

?created(){
? ? ? this.getLogs()
? ? },

⑤watched

監(jiān)聽數(shù)據(jù)變化

⑥v-model數(shù)據(jù)雙向綁定

當數(shù)據(jù)刷新時,UI視圖刷新;當UI視圖刷新時,數(shù)據(jù)可隨之刷新。

在這里選擇框select綁定了data中的selectWho,當UI中select選擇框中更改時,selectWho也更更改了

使用vue2項目寫一個頁面,VUE,vue.js,前端,ui

?

(4)Element-UI介紹

主要是運用了其中的表單元素、下拉框元素、Layout布局(一行兩個、一行三個)

①一行兩個

利用el-row和el-col進行控制

 <el-row>
        <el-col span="12">
          <el-form-item label="課程學(xué)時" >
            <el-input v-model="form.classHour" autocomplete="off" />
          </el-form-item>
        </el-col>
        <el-col span="12">
          <el-form-item label="課程學(xué)分" >
            <el-input v-model="form.credit" autocomplete="off" />
          </el-form-item>
        </el-col>
      </el-row>

②一行三個

<el-row>
        <el-col span="8">
          <el-form-item label="學(xué)校"  >
            <el-select v-model="form.school" placeholder="請選擇學(xué)校" @change="getBottomSchools" >
              <el-option v-for="item in schoolsFormData"
                         :label="item.name"
                         :value="item.name"
                         :key="item.id"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col span="8">
          <el-form-item label="學(xué)院"  >
            <el-select v-model="form.organization" placeholder="請先選擇學(xué)校,后選擇學(xué)院" @change="getBottomOrgs">
              <el-option v-for="item in organizationsFormData"
                         :label="item.name"
                         :value="item.name"
                         :key="item.id"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col span="8">
          <el-form-item label="系所"  >
            <el-select v-model="form.departmentName" placeholder="請先選擇學(xué)院,后選擇系所">
              <el-option v-for="item in departmentData"
                         :label="item.name"
                         :value="item.name"
                         :key="item.id"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>

③下拉框

普通:其中l(wèi)abel是顯示在前端、vaule是傳給后端的值

<el-select v-model="form.isOpen"  placeholder="選擇是否公開" size="medium">
              <el-option label="公開" value="2" />
              <el-option label="不公開" value="1" />
            </el-select>

從數(shù)組中循環(huán)獲得:

 <el-select v-model="form.school" placeholder="請選擇學(xué)校" @change="getBottomSchools" >
              <el-option v-for="item in schoolsFormData"
                         :label="item.name"
                         :value="item.name"
                         :key="item.id"></el-option>
            </el-select>

3.項目代碼

<template>
  <div class="app-container">
    <el-form ref="form" style="width:80%" :model="form" label-width="120px" :rules="rules">
      <el-form-item label="課程名" >
        <el-input v-model="form.name" />
      </el-form-item>
      <el-row>
        <el-col span="12">
          <el-form-item label="課程開始時間" >
            <el-date-picker
                v-model="form.startDate"
                type="date"
                size="small"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                :picker-options="pickerOptionsBegin"
                placeholder="選擇課程開始日期">
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col span="12">
          <el-form-item label="課程結(jié)束時間" >
            <el-date-picker
                v-model="form.endDate"
                type="date"
                size="small"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                :picker-options="pickerOptionsEnd"
                placeholder="選擇課程結(jié)束日期">
            </el-date-picker>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col span="12">
          <el-form-item label="是否為公開課" >
            <el-select v-model="form.isOpen"  placeholder="選擇是否公開" size="medium">
              <el-option label="公開" value="2" />
              <el-option label="不公開" value="1" />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col span="12">
          <el-form-item label="是否發(fā)布" >
            <el-select v-model="form.isPublish"  placeholder="選擇是否發(fā)布">
              <el-option label="發(fā)布" value="1" />
              <el-option label="不發(fā)布" value="0" />
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col span="12">
          <el-form-item label="課程學(xué)時" >
            <el-input v-model="form.classHour" autocomplete="off" />
          </el-form-item>
        </el-col>
        <el-col span="12">
          <el-form-item label="課程學(xué)分" >
            <el-input v-model="form.credit" autocomplete="off" />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col span="8">
          <el-form-item label="學(xué)校"  >
            <el-select v-model="form.school" placeholder="請選擇學(xué)校" @change="getBottomSchools" >
              <el-option v-for="item in schoolsFormData"
                         :label="item.name"
                         :value="item.name"
                         :key="item.id"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col span="8">
          <el-form-item label="學(xué)院"  >
            <el-select v-model="form.organization" placeholder="請先選擇學(xué)校,后選擇學(xué)院" @change="getBottomOrgs">
              <el-option v-for="item in organizationsFormData"
                         :label="item.name"
                         :value="item.name"
                         :key="item.id"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col span="8">
          <el-form-item label="系所"  >
            <el-select v-model="form.departmentName" placeholder="請先選擇學(xué)院,后選擇系所">
              <el-option v-for="item in departmentData"
                         :label="item.name"
                         :value="item.name"
                         :key="item.id"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-form-item label="課程簡介" >
        <el-input type="textarea" :rows="4" v-model="form.introduction" autocomplete="off" />
      </el-form-item>
      <el-form-item>
        <el-button
          :loading="loading"
          type="primary"
          @click="onSubmit"
        >創(chuàng)建課程</el-button>
        <el-button @click="onCancel">清空信息</el-button>
      </el-form-item>
    </el-form>
  </div>



</template>

<script>
    export default {
        name: "index",
        data(){
            return {
                defalutForm: {},
                form: {
                    id:'',
                    name: '',
                    startDate: '',
                    endDate: '',
                    isOpen: '',
                    classHour: '',
                    credit:'',
                    introduction: '',
                    isPublish:'',
                    school:'',
                    organization: '',
                    departmentName: '', //系名稱
                    department:''  //系組織id 后端需要
                },
                schoolsFormData:[],
                organizationsFormData:[],
                departmentData:[],
                loading: false, // skeleton的loading
                rules: {
                    name: [{ required: true, message: '請輸入課程名', trigger: 'blur' }],
                },
            }
        },
        created(){
            this.getAllParentOrganizations()
        },
        computed: {
            pickerOptionsBegin() {
                return {
                    disabledDate: (time) => {
                        if (this.form.endDate) {
                            return   time.getTime() < Date.now() || time.getTime() > new Date(this.form.endDate).getTime();
                        }else{
                            return time.getTime() < Date.now() - 8.64e7
                        }
                    }
                }
            },
            pickerOptionsEnd() {
                return {
                    disabledDate: (time) => {
                        if(this.form.startDate){
                            return time.getTime() < new Date(this.form.startDate).getTime()
                        }else {
                            return time.getTime() < Date.now() - 8.64e7
                        }
                    }
                }
            },
        },
        methods:{
            getBottomSchools(item){
                //  console.log(item+"item")
                for (let i = 0; i < this.schoolsFormData.length; i++) {
                    if(item==this.schoolsFormData[i].name){
                        //  console.log("id"+this.organizationsFormData[i].id)
                        this.getAllBottomOrganizations(this.schoolsFormData[i].id)
                    }
                }
            },
            getBottomOrgs(item) {
                //  console.log(item+"item")
                for (let i = 0; i < this.organizationsFormData.length; i++) {
                    if(item==this.organizationsFormData[i].name){
                        //  console.log("id"+this.organizationsFormData[i].id)
                        this.getAllBottomDeps(this.organizationsFormData[i].id)
                    }
                }

            },
            getAllParentOrganizations(){
                this.$store.dispatch('organizationctrl/getAllParentOrganizations').then((res) => {
                    this.schoolsFormData = []
                    for (let i = 0; i < res.length; i++) {
                        const schoolFormObj = {}
                        schoolFormObj.id = res[i].id
                        schoolFormObj.name = res[i].name
                        schoolFormObj.parentId = res[i].parentId
                        schoolFormObj.introduction=res[i].introduction
                        this.schoolsFormData[i] = schoolFormObj
                    }
                })
            },
            getAllBottomOrganizations(parentID){
                this.$store.dispatch('organizationctrl/getAllBottomOrganizations',parentID).then((res) => {
                    this.organizationsFormData = []
                    for (let i = 0; i < res.length; i++) {
                        const organizationDataObj = {}
                        organizationDataObj.id = res[i].id
                        organizationDataObj.name = res[i].name
                        organizationDataObj.parentId = res[i].parentId
                        organizationDataObj.introduction=res[i].introduction
                        this.organizationsFormData[i] = organizationDataObj
                    }
                })
            },
            getAllBottomDeps(parentID){
                this.$store.dispatch('organizationctrl/getAllBottomOrganizations',parentID).then((res) => {
                    this.departmentData = []
                    for (let i = 0; i < res.length; i++) {
                        const departmentDataObj = {}
                        departmentDataObj.id = res[i].id
                        departmentDataObj.name = res[i].name
                        departmentDataObj.parentId = res[i].parentId
                        departmentDataObj.introduction=res[i].introduction
                        this.departmentData[i] =departmentDataObj
                    }
                })
            },
            onSubmit() {
                this.loading = true
                this.$store
                    .dispatch('coursectrl/addCourse',this.form)
                    .then(() => {
                        this.$message({
                            message: '已成功創(chuàng)建',
                            type: 'success'
                        })
                        this.loading = false
                    })
                    .catch((error) => {
                        this.loading = false
                        this.$message.error(error)
                    })
            },
            onCancel() {
                this.$confirm('確定要清空所有信息嗎?', '提示', {
                    confirmButtonText: '確定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    this.form = JSON.parse(JSON.stringify(this.defalutForm))
                    this.$refs.form.clearValidate()
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '已取消'
                    })
                })
            }
        }
    }

</script>

?文章來源地址http://www.zghlxwxcb.cn/news/detail-602595.html

到了這里,關(guān)于Vue2 +Element-ui實現(xiàn)前端頁面的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 菜鳥級:Vue Element-UI 前端 + Flask 后端 的登錄頁面驗證碼

    菜鳥級:Vue Element-UI 前端 + Flask 后端 的登錄頁面驗證碼

    這里記錄登錄頁面驗證碼的做法,采取的是前后端分離的做法,前端用Vue,后端用Flask 首先是GIF效果圖: 后端返回的數(shù)據(jù)結(jié)構(gòu)(base64字符串,response.data.img): ? 1、Vue前端頁面基本采用Ruoyi Ui里面的登錄頁面代碼,里面的一些方法進行重寫; 首先是單個vue文件里網(wǎng)頁內(nèi)容

    2023年04月08日
    瀏覽(36)
  • Vue2.0+element-ui實現(xiàn)表格的增刪查改

    Vue2.0+element-ui實現(xiàn)表格的增刪查改

    vue2做了個表格的demo,有增刪改查的功能,記錄一下,喜歡就點個贊收藏一下吧~ 效果: 1.主文件list-page.vue 列表頁 2.彈窗頁面(新增/編輯公用一個彈窗頁面)

    2024年02月10日
    瀏覽(31)
  • 【Vue框架】Vue2中element-ui/mint-ui組件庫——element-ui引入組件以及使用案例、mint-ui引入組件及使用案例

    【Vue框架】Vue2中element-ui/mint-ui組件庫——element-ui引入組件以及使用案例、mint-ui引入組件及使用案例

    element-ui 提供了大量的組件,如:布局組件、表單組件、JS組件等等。 Element-ui官網(wǎng): https://element.eleme.cn/#/zh-CN 安裝 Element-ui: npm i element-ui -S 1.1.1 引入組件 引入 Element 完整引入(在 main.js 中寫入以下內(nèi)容): 按需引入 借助 babel-plugin-component,我們可以只引入需要的組件,以達到

    2024年02月07日
    瀏覽(33)
  • Vue2使用element-ui引入自定義主題的方法(使用在線主題生成工具)

    Vue2使用element-ui引入自定義主題的方法(使用在線主題生成工具)

    第一步 :按照官方文檔使用npm安裝element-ui,并完整引入Element-ui npm i element-ui -S ?main.js中所有的內(nèi)容刪去,改為 隨便寫點東西,run一下 成功引入element-ui,但是不喜歡默認的藍色,看起來很爛大街,想換掉。 第二步 :由于不喜歡默認的藍色主題,可以使用在線主題生成工具

    2024年02月14日
    瀏覽(27)
  • 【vue2】element-ui el-transfer擴展 實現(xiàn)多列效果一對多

    【vue2】element-ui el-transfer擴展 實現(xiàn)多列效果一對多

    vue2 el-transfer 穿梭框?qū)崿F(xiàn)多類別 template 復(fù)制Transfer源碼中的template,并拓展我們需要的列表2和button script 這里重寫了Transfer的addToLeft方法,按著element-ui的邏輯寫出第二個列表的邏輯即可。源碼就不做解釋了,這個組件比較簡單,感興趣的朋友可以去看看 style GitHub地址

    2024年02月08日
    瀏覽(28)
  • vue2實現(xiàn)可拖拽甘特圖(結(jié)合element-ui的gantt圖)

    vue2實現(xiàn)可拖拽甘特圖(結(jié)合element-ui的gantt圖)

    ? 接到公司需求,要做一個可拖拽的甘特圖來實現(xiàn)排期需求,官方的插件要付費還沒有中文的官方文檔可以看,就去找了各種開源的demo來看,功能上都不是很齊全,于是總結(jié)了很多demo,合在一起組成了一版較為完整的滿足需求的甘特圖。 1.拖拽? 拖拽功能是甘特圖的主要功

    2024年02月03日
    瀏覽(22)
  • 78.(前端)分配權(quán)限頁面顯示——樹形結(jié)構(gòu)使用(Element-ui的Tree樹形控件)

    78.(前端)分配權(quán)限頁面顯示——樹形結(jié)構(gòu)使用(Element-ui的Tree樹形控件)

    在前端的操作中,應(yīng)該增加修改、刪除、分配權(quán)限的操作 這次主要是實現(xiàn)分配權(quán)限的顯示?。。。。?! 更換icon圖標,并設(shè)計大小 綁定函數(shù),點擊彈出提示框(DIalog對話框) 在對話框內(nèi),應(yīng)該顯示一個樹形結(jié)構(gòu)提供選擇(Tree樹形控件) 初始化樹形結(jié)構(gòu),并填充數(shù)據(jù)

    2024年02月05日
    瀏覽(87)
  • vue搭配element-ui前端實現(xiàn)表格分頁

    如果不從后臺請求數(shù)據(jù),那么就需要在前端手動管理數(shù)據(jù)??梢允褂靡韵虏襟E實現(xiàn)該功能: 在 Vue 組件的 data 中定義一個數(shù)組來存放所有數(shù)據(jù)(不分頁)。 在 mounted 鉤子函數(shù)中,手動獲取數(shù)據(jù)并存放到上一步定義的數(shù)組中。 在模板中使用 element-ui 的表格組件來展示數(shù)據(jù),同

    2024年02月11日
    瀏覽(32)
  • vue2+element-ui使用vue-i18n進行國際化的多語言/國際化

    vue2+element-ui使用vue-i18n進行國際化的多語言/國際化

    注意:vue2.0要用8版本的,使用9版本的會報錯 在src目錄下,創(chuàng)建新的文件夾,命名為i18n zh.js en.js index.js main.js 使用方式一 效果圖 使用方式二 效果圖 使用方式三,在 效果圖 ` 注意:這種方式存在更新this.$i18n.locale的值時無法自動切換的問題,需要刷新頁面才能切換語言。解

    2024年02月07日
    瀏覽(24)
  • 基于vue-cli創(chuàng)建后臺管理系統(tǒng)前端頁面——element-ui,axios,跨域配置,布局初步,導(dǎo)航欄

    基于vue-cli創(chuàng)建后臺管理系統(tǒng)前端頁面——element-ui,axios,跨域配置,布局初步,導(dǎo)航欄

    1.vue-cli創(chuàng)建前端工程,安裝element-ui,axios和配置; 2.前端跨域的配置,請求添加Jwt的設(shè)置; 3.進行初始化布局,引入新增頁面的方式; 4.home頁面導(dǎo)航欄的設(shè)置,一級目錄,二級目錄; 安裝成功 布局初步 1.vue-cli創(chuàng)建前端工程,安裝element-ui,axios和配置; 2.前端跨域的配置,請

    2024年02月09日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包