摘要:本人第一次寫這個(gè)寫的不好還望指出來(lái)作為一個(gè)由于公司產(chǎn)品的升級(jí)然促使我從一個(gè)后端人員自學(xué)變成前端的開發(fā)人員公司做的數(shù)據(jù)管理系統(tǒng)所以離不開表格了然后表格樣式統(tǒng)一啥的就想到封裝一個(gè)里面的了效果圖表格組件的引入與使用監(jiān)測(cè)數(shù)據(jù)表格
本人第一次寫這個(gè) 寫的不好還望指出來(lái)
作為一個(gè)由于公司產(chǎn)品的升級(jí)然促使我從一個(gè)后端人員自學(xué)變成前端的開發(fā)人員 !
公司做的數(shù)據(jù)管理系統(tǒng)所以離不開表格了 然后表格樣式統(tǒng)一啥的就想到封裝一個(gè)element-ui 里面的table+Pagination了
效果圖
使用插槽slot 使用起來(lái)就和原來(lái)的table一樣了
import comTable from "@/components/common/com-table" import { GetTempletExportList, GetTempletExportInfo } from "../../../api/transfer/index" import ApiConfig from "@/api/ApiConfig" export default { name: "templet", components: { comTable }, data() { return { tableData4: [], exporttableData: [], multipleSelection: [], currentpoint: null, currentitem: null, itemdialogshow: false, pointdialogshow: false, path: new ApiConfig().GetConfig().SysPath, checkeditem: [],//選中數(shù)據(jù) } }, computed: { moduletype() { return this.$store.state.moduletype; }, userinfo() { return this.$store.state.user.userInfo; } }, watch: { moduletype() { this.init(); } }, created() { this.init(); }, methods: { init() { GetTempletExportList(this.userinfo.cityid, this.moduletype).then(re => { this.exporttableData = re.data; this.tableData4 = []; re.data.map(item => { this.tableData4.push({ name: item.fldTableDesc, point: { visible: false, value: "" }, item: { visible: true, value: item.ItemList } }) }) }, (error) => { this.$message({ customClass: "el-message_new", message: error, type: "error" }); }) }, handleSelectionChange(val) { console.log(val) this.multipleSelection = val; }, focuspoint(val) { this.currentpoint = val; }, focusitem(val) { this.currentitem = val; this.itemdialogshow = true; }, itemconfirm() { this.itemdialogshow = !this.itemdialogshow; }, itemhandleClose(done) { this.itemdialogshow = false; }, ItemGroupSelectchange(val) { this.checkeditem = val; console.log(this.checkeditem); let groupitemcontent = []; val.map(item => { groupitemcontent.push(item.fldItemName); }) this.currentitem.value = groupitemcontent.join(","); }, submit() { if (this.multipleSelection.length > 0) { let message = ""; let data = []; let name = ""; this.multipleSelection.map((item, index) => { name = item.name; let str = item.name; let info = false; if (item.item.visible && item.item.value == "") { message += `表[${str}]請(qǐng)選擇因子`; info = true; } if (item.point.visible && item.point.value == "") { if (info) { message += `、請(qǐng)選擇測(cè)點(diǎn)/斷面!`; } else { message += `表[${str}]請(qǐng)選擇測(cè)點(diǎn)/斷面!`; } info = true; } if (info) { message += "comTable組件
" } data.push({ "AutoID": "1", "STCode": "", "PCode": "", "RCode": "", "RScode": "", "GDCODE": "", "type": this.moduletype, "itemcodeList": item.item.value.split(",").join("^"), "path": `${this.path.TempletExportSetting}${this.moduletype}.json`, "IsNeedNullData": "Y" }) }) if (message == "") { GetTempletExportInfo(data).then(re => { if (re.status == "ok") { var exportdata = eval((re.data)); const { export_json_to_excel } = require("../../../libs/Export2Excel"); if (exportdata[0].merg.length != 0) { var exdata = []; var itemlistUnit = []; var itemlistfldCharCode = []; for (var z = 0; z < exportdata[0].head.length - this.checkeditem.length; z++) { itemlistUnit.push(exportdata[0].head[z]); itemlistfldCharCode.push(exportdata[0].head[z]) } this.checkeditem.map(item => { itemlistUnit.push(item.fldUnit); itemlistfldCharCode.push(item.fldCharCode); }) var exdata = this.formatJson(exportdata[0].head, exportdata[0].data); exdata.unshift(itemlistUnit); exdata.unshift(itemlistfldCharCode); exdata.unshift(exportdata[0].head); console.log(exdata) exportdata[0].merg.push([0, 0, exportdata[0].head.length - 1, 0]) export_json_to_excel([name], exdata, name, exportdata[0].merg); } else { var exdata = this.formatJson(exportdata[0].head, exportdata[0].data); exdata.unshift(exportdata[0].head); exportdata[0].merg.push([0, 0, exportdata[0].head.length - 1, 0]) export_json_to_excel([name], exdata, name, exportdata[0].merg); } } else { this.$message({ message: "導(dǎo)出失敗!", type: "error" }); } }) } else { this.$message({ dangerouslyUseHTMLString: true, customClass: "el-message_new", message: message, type: "warning" }); } } else { this.$message({ customClass: "el-message_new", message: "請(qǐng)先選擇要導(dǎo)出的列表!", type: "warning" }); } }, formatJson(filterVal, jsonData) { return jsonData.map(v => filterVal.map(j => { return v[j]; }) ); } } }
commonway.js{{title}}
class CommonWay { /** * description:對(duì)數(shù)組的分頁(yè)處理 * author:bilimumu * date:2017-10-28 * @param {number} [pageNo=1] 頁(yè)碼 * @param {number} [pageSize=10] 每頁(yè)顯示條數(shù) * @param {any} [obj=[]] 待分頁(yè)的數(shù)組 * @param {Boolean} [iscreateNewdata=true] 是否創(chuàng)建新的數(shù)據(jù) * @returns 返回新的數(shù)組 * @memberof CommonWay */ pagination(pageNo = 1, pageSize = 10, obj = [], iscreateNewdata = true) { var array = []; if (iscreateNewdata) { array = JSON.parse(JSON.stringify(obj)); } else { array = obj; } var offset = (pageNo - 1) * pageSize; return (offset + pageSize >= array.length) ? array.slice(offset, array.length) : array.slice(offset, offset + pageSize); } } export default CommonWaycom-table.scss
.com-table { height: 100%; width: 100%; &-title { color: #FFF; background: #42A2F5; padding: 0; font-size: 15px; height: 40px; line-height: 40px; text-indent: 8px; } &-content { width: 100%; height: calc(100% - 40px - 55px); } &-content-nottitle { width: 100%; height: calc(100% - 55px); } &-page { height: 55px; width: 100%; background: #EFF3F8; display: flex; align-items: center; justify-content: center; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/96123.html
項(xiàng)目中element的表格,每次都cv很麻煩,可以用表格進(jìn)行了二次封裝,寫一個(gè)Table組件。 首先,下面是表格樣式 <el-table :data="tableData" :header-cell-style="headerStyle" :height="height" :border="bord...
摘要:社區(qū)的認(rèn)可目前已經(jīng)是相關(guān)最多的開源項(xiàng)目了,體現(xiàn)出了社區(qū)對(duì)其的認(rèn)可。監(jiān)聽事件手動(dòng)維護(hù)列表這樣我們就簡(jiǎn)單的完成了拖拽排序。 完整項(xiàng)目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇)系類文章二:手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)系類文章三:手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)系類文章四:手摸手,帶你用vue擼后臺(tái) 系列...
摘要:社區(qū)的認(rèn)可目前已經(jīng)是相關(guān)最多的開源項(xiàng)目了,體現(xiàn)出了社區(qū)對(duì)其的認(rèn)可。監(jiān)聽事件手動(dòng)維護(hù)列表這樣我們就簡(jiǎn)單的完成了拖拽排序。 完整項(xiàng)目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇)系類文章二:手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)系類文章三:手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)系類文章四:手摸手,帶你用vue擼后臺(tái) 系列...
摘要:一封裝的組件定義表格高度全屏增加前臺(tái)分頁(yè)功能。表格內(nèi)編輯后,自動(dòng)選中該行。單元格內(nèi)數(shù)據(jù)樣式單元格內(nèi)按鈕,可多個(gè)。觸發(fā)組件綁定函數(shù),參數(shù)按鈕名稱,按鈕樣式,按鈕事件標(biāo)識(shí)。單元格是否可點(diǎn)擊的判斷函數(shù),可進(jìn)行復(fù)雜的函數(shù)判斷。 vue-bxz-table 一、封裝element-ui的table組件: 定義表格高度全屏 增加前臺(tái)分頁(yè)功能。 自定義表頭,循環(huán)輸出整體表結(jié)構(gòu)。 表格內(nèi)編輯(輸入框...
摘要:同時(shí)增加了單元測(cè)試,使用了,增加了可視化配置權(quán)限,增加了自定義布局等等,優(yōu)化了原先的權(quán)限方案,支持不刷新頁(yè)面更新路由等等功能。雖然它的初衷是為了單元測(cè)試的,但正好滿足了我們的需求。它會(huì)重寫瀏覽器的對(duì)象,從而才能攔截所有請(qǐng)求,代理到本地。 前言 vue-element-admin 從 2017.04.17提交第一個(gè) commit 以來(lái),維護(hù)至今已經(jīng)有兩年多的時(shí)間了了,發(fā)布了四十多個(gè)版本,...
閱讀 1589·2023-04-26 01:54
閱讀 1620·2021-09-30 09:55
閱讀 2644·2021-09-22 16:05
閱讀 1855·2021-07-25 21:37
閱讀 2620·2019-08-29 18:45
閱讀 1886·2019-08-29 16:44
閱讀 1882·2019-08-29 12:34
閱讀 1346·2019-08-23 14:02