动态添加时间范围,如何置灰已选择时间?
问题:
需要动态添加时间范围,要求满足以下条件:
- 开始时段小于结束时段。
- 后续添加的时间范围内,前面已选择的时间置灰不可选。
- 删除某行已选的时间后,该时间范围重新置为可选。
解决方案:
方案基于 vue.js 框架实现,包括父组件和子组件:
父组件
- 负责管理表格和新增数据对话框。
-
关键代码:
mounted() { const season = ["春季", "夏季"]; const period = ["尖峰", "高峰", "低谷"]; this.tabledata = array.from({ length: season.length }, (_, i) => period.map((pj, j) => ({ season: season[i], period: pj, timelist: [], })) ).flat(); this.merge(this.tabledata); }, methods: { // 表格行合并方法 merge(tabledata) { this.companyarr = []; this.companypos = 0; for (let i = 0; i < tabledata.length; i++) { if (i === 0) { this.companyarr.push(1); this.companypos = 0; } else { if (tabledata[i].season === tabledata[i - 1].season) { this.companyarr[this.companypos] += 1; this.companyarr.push(0); } else { this.companyarr.push(1); this.companypos = i; } } } }, // 新增数据 handleformedit(list, index) { let arr = deepclone(this.tabledata), brr = []; brr = arr .filter((item) => item.season === list.season) .map((item) => item.timelist) .flat(); this.idx = index; this.showadddialog = { visible: true, title: "编辑", data: brr, list: list.timelist, }; },
登录后复制
子组件
- 负责添加和修改时间范围。
-
关键代码:
watch: { showAddDialog: { handler(newVal, oldVal) { this.tableData = []; if (newVal.list.length) { this.tableData = newVal.list.map((item) => ({ ...item, disabled: true, })); } else { this.tableData = [{ startTime: "", endTime: "" }]; } ... }, deep: true, }, }, computed: { ... startTimeList() { return this.timeOptions.map((item) => ({ value: item, label: item, disabled: false, })); }, endTimeList() { return this.timeOptions.map((item) => ({ value: item, label: item, disabled: false, })); }, }, methods: { ... handleStartChange(time) { let times = this.timeOptions; ... for (let i = start_index + 1; i < this.startTimeList.length; i++) { if (this.startTimeList[i].disabled) { ... } else { this.endTimeList[i].disabled = false; } } }, handleDisable() { let times = this.timeOptions; ... this.startTimeList.forEach((start) => { start.disabled = false; }); ... }, ... },
登录后复制
交互流程:
- 点击 "添加一行数据" 按钮,打开新增对话框。
- 在对话框中动态添加时间范围。
- 当开始时段选择后,小于开始时段的值置灰不可选。
- 点击新增时,前边已选的数据置灰不可选,新数据只可以选择未置灰的时间段。
- 删除已选数据时,该时间范围重新置为可选。
以上就是动态添加时间范围,如何实现已选时间置灰?的详细内容,更多请关注抖狐科技其它相关文章!
本站文章均为抖狐网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!感谢...
我们猜你喜欢
-
炉石传说加尔贡伙伴
石缚加尔贡是卡牌游戏炉石传说中的一张卡牌,本卡牌的普通版本和金色版本有概率在“纳斯利亚堡的悬案”卡牌包中获得,也可通过使用奥术之尘制作获得。稀有度:普通; 职业:猎人; 类型:随从; 随从类型:野兽;...
-
u盘装系统如何删除文件
在使用u盘装系统时,删除文件有两种主要方法:使用文件管理器:启动u盘系统后,在桌面打开“此电脑”,选择u盘盘符,选中并删除文件或文件夹。使用命令行(cmd):启动u盘系统后,打开命令行,输入“del...
-
学信网如何查学籍验证报告
通过学信网查询学籍验证报告可按以下步骤进行:登录学信网,点击“学籍查询”。选择“数据查询”,输入身份证号和姓名。根据提示完成身份验证。在个人中心点击“学籍验证报告”。下载电子版报告,报告包含学号、姓名...
-
作业帮怎么取消自动续费VIP
取消作业帮 vip 自动续费的步骤:登录作业帮账号。进入“我的”页面,点击“vip 会员”。找到“自动续费”选项,将其关闭。确认取消自动续费。注意:取消后,vip 服务会在当前周期到期后失效,可随时重...
-
电脑版钉钉怎么用手机登录
电脑版钉钉可以使用手机登录,具体步骤如下:扫描电脑端登录界面二维码;手机输入手机号和验证码;输入登录密码并授权访问;完成登录后电脑端会提示登录成功。电脑版钉钉如何用手机登录? 步骤 1:扫描二维码在电...