电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

vue+Element中table表格實現(xiàn)可編輯(select下拉框)

瀏覽:57日期:2023-01-19 14:30:50

最近在工作中遇到一個問題,需要在表格中實現(xiàn)數(shù)據(jù)可編輯狀態(tài),具體情況是需要在單元格里加入下拉框;并且每個下拉框的數(shù)組數(shù)據(jù)是不一樣的,具體是根據(jù)當前行前面數(shù)據(jù)的id查詢而來,前面的是數(shù)據(jù)是動態(tài)生成的,后面的下拉框數(shù)據(jù)也是根據(jù)id動態(tài)生成的,內容不同;有點類似于樹形二級狀態(tài),后面的下拉框數(shù)據(jù)來源并沒有在前面內容里,而是另外一個接口查詢,具體操作如下:

vue+Element中table表格實現(xiàn)可編輯(select下拉框)

HTML代碼:

1.在處理人列加入一個下拉框模板,其中v-model必須要scope.row.proJbruserValue來綁定,意思是這個值綁定到當前行所選中的人;如果直接綁定proJbruserValue,將不能進行差異化選擇,(這里scope.row.proJbruserValue 相當于對象點屬性,在本地臨時添加了一個屬性來存儲不同行的選中處理人id)

2.通過點擊當前行下拉框獲取焦點,根據(jù)當前行id查詢對應的下拉框數(shù)據(jù),并賦值給data中我們設置的數(shù)組接收,

3.一個重要的注意點,:key=item.id 這個key盡量綁定id,不推薦使用Index, 因為在這里使用Index的時候,會讓選中項出現(xiàn)數(shù)字bug,這是我在坑里呆了好久才通過我的一個朋友得到的答案,具體bug原因尚未深究,請重點注意;

4.最后點擊按鈕提交流程配置;

<el-table :data='processNodelist' border stripe> <el-table-column type='index' label='序號' width='50'></el-table-column> <el-table-column prop='nodename' label='流程節(jié)點名稱'></el-table-column> <el-table-column label='處理人名稱'> <template slot-scope='scope'> <el-select v-model='scope.row.proJbruserValue' @focus='getDatalist(scope.row)' placeholder='請選擇' filterable allow-create> <el-option v-for='item in projectJbrUserlist ' :key='item.id' :label='item.username' :value='item.id'> </el-option> </el-select> </template> </el-table-column></el-table><el-button @click='submitConfigHandle' type='primary' size='mini' icon='el-icon-upload'>提交配置</el-button>

js邏輯代碼:

data() { return { processNodelist: [], // 流程節(jié)點數(shù)據(jù) projectJbrUserlist: [], // 處理人員數(shù)據(jù) nodeidlist: [], // 所有流程節(jié)點Id selectedUserlist: [], // 被選中的處理人員id數(shù)組 }},created() { this.getProcessNodelist();},methods: { // 查詢流程節(jié)點數(shù)據(jù) async getProcessNodelist() { const { data: res } = await this.$http.post(’querynode’, { userid: this.sessionInfo.userid, sid: this.sessionInfo.session, developerid: this.sessionInfo.companyId }); if (res.code !== 0) { return this.$message.error(’獲取流程節(jié)點數(shù)據(jù)失敗’); } this.processNodelist = res.msg; }, // select下拉框獲取焦點的時候查詢id對應的下拉框數(shù)據(jù)源 async getDatalist(row) { const { data: res } = await this.$http.post(’query’, { userid: this.sessionInfo.userid, sid: this.sessionInfo.session, queryid: 9, nodeid: row.nodeid }); if (res.code !== 0) { return this.$message.error(’獲取處理人數(shù)據(jù)失敗’); } this.projectJbrUserlist = res.msg; }, // 提交流程配置接口 async submitConfig() { const { data: res } = await this.$http.post(’bindTask’, { userid: this.sessionInfo.userid, sid: this.sessionInfo.session, flowid: 9, table_name: ’pt_base’, key_value: this.sessionInfo.proId, nodeid: this.nodeidlist, uid: this.selectedUserlist }); if (res.code !== 0) { return this.$message.error(’流程節(jié)點配置失敗’); } this.$message.success(’流程節(jié)點配置成功’); }, // 發(fā)起請求 submitConfigHandle() { // 循環(huán)流程節(jié)點數(shù)組將所有nodeid取出添加到新數(shù)組 for (let i = 0; i < this.processNodelist.length; i++) { this.nodeidlist.push(this.processNodelist[i].nodeid); } // 循環(huán)流程節(jié)點數(shù)組將所有被選擇的處理人員id :proJbruserValue取出添加到新數(shù)組 for (let i = 0; i < this.processNodelist.length; i++) { this.selectedUserlist.push( this.processNodelist[i].proJbruserValue ); } // 調用接口函數(shù) this.submitConfig(); }}

這次實現(xiàn)表格可編輯功能(select下拉框),主要有兩個注意點,一是v-model的綁定問題,而是:key的綁定問題;這次我的數(shù)據(jù)接口是通過id返回的不同數(shù)據(jù)源,可以借鑒上面代碼,如果你的(select下拉框)數(shù)據(jù)源是多個接口查詢而來,你需要在通過接口查詢到各個數(shù)據(jù)源,保存到data里面,然后還要做一些改變:

1.將v-for循環(huán)的數(shù)據(jù)改成通過函數(shù)傳遞當前行數(shù)據(jù)(id):

<el-option v-for='item in getdatalist(scope.row) '> </el-option>

2.通過傳遞過來的id來判斷當前行需要返回的數(shù)據(jù)源;

getdatalist(row) { const id = row.nodeid; if ( id === ’1’) { return this.data1 } else if (id === ’2’) { return this.data2 }}

希望我的方法能給大家一些幫助和思路

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Vue
相關文章:
主站蜘蛛池模板: 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 耐磨陶瓷管道_除渣器厂家-淄博浩瀚陶瓷科技有限公司 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 制冷采购电子商务平台——制冷大市场| 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 青岛侦探调查_青岛侦探事务所_青岛调查事务所_青岛婚外情取证-青岛狄仁杰国际侦探公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 开业庆典_舞龙舞狮_乔迁奠基仪式_开工仪式-神挚龙狮鼓乐文化传媒 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 聚氨酯复合板保温板厂家_廊坊华宇创新科技有限公司 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 爱科技iMobile-专业的科技资讯信息分享网站 | 包头市鑫枫装饰有限公司 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 生物除臭剂-除味剂-植物-污水除臭剂厂家-携葵环保有限公司 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 税筹星_灵活用工平台_企业财务顾问_财税法薪综合服务平台 | 专业的压球机生产线及解决方案厂家-河南腾达机械厂 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 酒瓶_酒杯_玻璃瓶生产厂家_徐州明政玻璃制品有限公司 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 诗词大全-古诗名句 - 古诗词赏析 | 高温链条油|高温润滑脂|轴承润滑脂|机器人保养用油|干膜润滑剂-东莞卓越化学 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 车载加油机品牌_ 柴油加油机厂家| 客服外包专业服务商_客服外包中心_网萌科技 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 |