当前位置: 首页 > news >正文

苏州微网站制作网站布局 种类

苏州微网站制作,网站布局 种类,网站管理员的联系方式,企业局域网组建与网站建设需求#xff1a;点击左边的tab页签#xff0c;请求右侧表格数据#xff1b;如果返回的接口数据存在taskuser字段并不为null#xff0c;那么按照这个字段去回勾数据。如果存在数据#xff0c;但与后面所勾选的数据项不同#xff0c;按照后面勾选的为主。 el-tabs tab-…需求点击左边的tab页签请求右侧表格数据如果返回的接口数据存在taskuser字段并不为null那么按照这个字段去回勾数据。如果存在数据但与后面所勾选的数据项不同按照后面勾选的为主。 el-tabs tab-positionleft v-modeldialogInfo.activeTab styleheight: 350px classdemo-tabs tab-changetabChangeel-tab-pane v-fortab in dialogInfo.tabs :keytab.id :labeltab.text :nametab.textdiv classtableDivel-tablerefrefTableV:datatableConfig.tableData:header-cell-style{ background: #F5F7FA, height: 30px }stylewidth: 100%; margin: 0 autoheight100%aligncenterrow-keyempNamestripeborderselectselectel-table-column typeselection width40 fixed label操作 /el-table-column fixed propuserName label用户编号 width120 aligncenter /el-table-column fixed propempName label用户姓名 min-width150 aligncenter /el-table-column fixed propexpiresdate label过期日期 min-width150 aligncentertemplate v-slotscopeel-date-pickerv-ifdialogInfo.tabs[dialogInfo.activeTabIndex].allot?.empName scope.row.empNamev-modelscope.row.expiresdatetypedateplaceholder选择日期sizesmallchangehandleDateChange(scope.row)value-formatYYYY-MM-DD/span v-else clickchangeLeader(scope.row){{ scope.row.expiresdate || }}/span/template/el-table-columnel-table-column fixed propleaderNames label直接领导 min-width150 aligncentertemplate v-slotscopespan v-ifscope.row.leaderNames scope.row.leaderNames ! sizesmall clickleaderSearch(scope.row){{ scope.row.leaderNames || 选择领导 }}/spanspan v-else-ifdialogInfo.tabs[dialogInfo.activeTabIndex].allot?.empName scope.row.empNameel-button sizesmall clickleaderSearch(scope.row){{ 选择领导 }}/el-button/span/template/el-table-column/el-table/div/el-tab-pane/el-tabs const refTableV ref(null) //表格 const refTree ref(null) const dialogInfo reactive({tabs: [],dialogText: 任务分配,dialogFormVisible: false,activeTab: ,searchstrId: ,list: [],treeLearder: {},str: [] })const tableConfig reactive({allot: {},tableData: [],loading: false,page: 1,selectedData: [], // 存储当前勾选的数据项lastSelectedRow: {},paramsData: {},activeTabIndex: 0 }) 首先openInit 这个方法是我打开弹层的第一步tabs数据是左侧的角色信息我会给每一项的tab数据添加selectedData和allot 这个在后面取值会用到。 const openInit (list) {dialogInfo.str []list.forEach((item) dialogInfo.str.push(item.factory , item.materialscode))tableConfig.selectedData [] // 存储当前勾选的数据项tableConfig.lastSelectedRow {}tableConfig.allot {}dialogInfo.list JSON.parse(JSON.stringify(list))dialogInfo.treeLearder {}getPropertyList({searchstr: {taskType: SPAREPARTSTASKROLE}}).then((res) {const tabs res.data.rows || []dialogInfo.searchstrId if (tabs.length 0) {dialogInfo.searchstrId tabs[0].iddialogInfo.activeTab tabs[0].texttabs.forEach((row) {row.selectedData []row.allot {}})dialogInfo.tabs tabsdialogInfo.activeTabIndex 0dialogInfo.dialogFormVisible truegetTable() // 获取表格数据}}) }const getTable () {preTaskAssign({searchstr: {id: dialogInfo.searchstrId,eventcodes: dialogInfo.str.join(;)}}).then((res) {const tableData res.data.row?.teapSysUserEntityList || []const taskuser res.data.row?.taskuser || refTableV.value[dialogInfo.activeTabIndex].clearSelection()const strLength dialogInfo.str.lengthif (strLength 1) {if (tableData tableData.length 0) {tableData.forEach((newRow) {if (newRow.userName taskuser) {dialogInfo.tabs[dialogInfo.activeTabIndex].selectedData [newRow]dialogInfo.tabs[dialogInfo.activeTabIndex].allot newRownextTick(() {refTableV.value[dialogInfo.activeTabIndex].toggleRowSelection(newRow, true)})}})}}tableConfig.tableData tableData}) } 代码主要就是针对勾选数据 保存数据切换tab页签 再次回来后数据的勾选处理  const select (selectedRows) {// 获取当前 tab 的数据const currentTab dialogInfo.tabs[dialogInfo.activeTabIndex]refTableV.value[dialogInfo.activeTabIndex].clearSelection()// 清空上一次选中的数据currentTab.selectedData []currentTab.allot {}// 更新当前 tab 的 selectedData 和 allotif (selectedRows.length 1) {currentTab.selectedData selectedRowscurrentTab.allot selectedRows[0] // 如果有 allot 数据更新为第一个选中的数据nextTick(() {refTableV.value[dialogInfo.activeTabIndex].toggleRowSelection(currentTab.allot, true)})} else {ElMessage.warning(只能选择一条数据,请取消已勾选项后再进行选择)}// 更新当前 tab 的 selectedData 和 allotdialogInfo.tabs[dialogInfo.activeTabIndex] currentTab }// 选择领导的弹层 const tabChange (name) {// 查找当前 tab 索引dialogInfo.activeTab namedialogInfo.searchstrId dialogInfo.tabs.find((item) item.text name).idlet index nulldialogInfo.tabs.some((item, ind) {if (item.text name) {index indreturn true // 找到就停止遍历}return false})dialogInfo.activeTabIndex indexconst currentTab dialogInfo.tabs[index]// 保存当前勾选状态const { selectedData, allot } currentTab// 在切换 tab 时将勾选状态存储到 dialogInfo 中dialogInfo.tabs[index].selectedData selectedData || []dialogInfo.tabs[index].allot allot || {}// 重新加载当前 tab 的数据保持选中状态preTaskAssign({searchstr: {id: dialogInfo.searchstrId,eventcodes: dialogInfo.str.join(;) // 外面行勾选的数据 工厂加物料编号传字符串}}).then((res) {// 获取从接口返回的表格数据const tableDataList res.data.row?.teapSysUserEntityList || []const taskuser res.data.row?.taskuser || // 更新表格数据tableConfig.tableData tableDataListrefTableV.value[dialogInfo.activeTabIndex].clearSelection()// 使用一些逻辑优化遍历找到合适的行就停止let isFound falsetableDataList.forEach((row) {if (isFound) return // 如果已经找到匹配项直接跳过后续行const selectedUserName selectedData[0]?.userNameif (taskuser) {if (selectedData.length 0) {// 1. 如果有taskuser但是selectedData为空依照taskuser去筛选数据if (row.userName taskuser) {dialogInfo.tabs[dialogInfo.activeTabIndex].selectedData [row]dialogInfo.tabs[dialogInfo.activeTabIndex].allot rownextTick(() {refTableV.value[dialogInfo.activeTabIndex].toggleRowSelection(row, true)})isFound true // 标记为已找到匹配项跳出循环}} else if (selectedUserName ! taskuser) {// 2. 如果同时存在但是匹配不上那么按照selectedData中的数据去筛选if (row.userName selectedUserName) {dialogInfo.tabs[dialogInfo.activeTabIndex].selectedData [row]dialogInfo.tabs[dialogInfo.activeTabIndex].allot rownextTick(() {refTableV.value[dialogInfo.activeTabIndex].toggleRowSelection(row, true)})isFound true // 标记为已找到匹配项跳出循环}} else if (selectedUserName taskuser) {// 3. 如果同时存在匹配的上按照taskuser判断nextTick(() {const selectedRow dialogInfo.tabs[dialogInfo.activeTabIndex].selectedData[0]refTableV.value[dialogInfo.activeTabIndex].toggleRowSelection(selectedRow, true)})isFound true // 标记为已找到匹配项跳出循环}} else {// 4. taskuser不存在按照selectedData去筛选if (row.userName selectedUserName) {dialogInfo.tabs[dialogInfo.activeTabIndex].selectedData [row]dialogInfo.tabs[dialogInfo.activeTabIndex].allot rownextTick(() {refTableV.value[dialogInfo.activeTabIndex].toggleRowSelection(row, true)})isFound true // 标记为已找到匹配项跳出循环}}})}) }const leaderSearch (row) {// 查找与勾选行对应的数据const exObj tableConfig.tableData.find((item) item.userId dialogInfo.tabs[dialogInfo.activeTabIndex].allot.userId)// 检查过期日期是否为空if (exObj.expiresdate || exObj.expiresdate null) return ElMessage.warning(请先设置时间)const str dialogInfo.tabs[dialogInfo.activeTabIndex].id // 这个就是左边角色的idrefTree.value.openInit(JSON.parse(JSON.stringify(row)), str) }
http://www.hkea.cn/news/14299474/

相关文章:

  • 弄个做网站公司上市装修公司排名前十强
  • 太平洋网站建设中国建设项目招标网站
  • 温州网站建设团队弄一个微信小程序多少钱
  • 可以购买网站空间的网站网站做广告的好处
  • 网站建设公司圣辉友联黑马程序员上海校区
  • 上市公司网站建设要求重庆石桥铺网站建设公司
  • 织梦网站栏目不能更新同步wordpress文章
  • 朝阳网站建设电信网络服务商
  • 旅游信息网站开发背景云南网站备案
  • 电商类网站开发项目流程软文营销的特点有哪些
  • 网站做一个多少钱app开发公司公司
  • 做网站的参考文献有哪些软件项目管理项目计划书
  • 能自己做网站吗网站开发要注意安全性
  • 香奈儿网站建设智慧校园网络建设方案
  • 自己的网站怎么建立互联网保险公司有哪些
  • 铜陵做网站网站页面制作公司
  • 有哪些程序做的网站迅雷2t免费空间活动
  • 成都网站设计报价服务器建设一个自己的网站
  • 网站开发外包公司快速开发工具网站
  • 合肥市门窗工程在哪个网站接活做品牌活动策划方案
  • 中国优秀设计网站wordpress必装的插件
  • 网站怎么做外部优化中信建设有限责任公司董事长
  • 网站后台安全性陕西省安康市建行 网站
  • 想再算命网站上登广告怎么做江阴网站网站建设
  • 卖网站赚钱免费下载微信
  • 织梦网站登录朔州网站设计公司
  • 福州网站设计网址建设银行网站打开自动关闭
  • 朝阳专业网站建设公司网络营销的概念和定义
  • 做外贸哪些网站可以发布产品seo网站建设视频教程
  • 湛江有帮公司做网站云南城市建设职业学校官方网站