关于运用DxDataGrid中的时间改变的联动

项目用的前端组件库是DevExpress
在这里插入图片描述
要求:生产日期改变,过期日期随之改变
用到方法

@option-changed

在这之前用过value-changed方法,没有调用到回调方法,从官方文档中找到了这个方法
在DxDateBox 中用就行

<DxDataGrid
        ref="dataGrid"
        :remote-operations="false"
        :show-row-lines="true"
        :columns="productcolumns"
        :cache-enabled="false"
        :column-auto-width="true"
        :data-source="orderItemsDTOs"
        :show-borders="true"
        :columnMinWidth="100"
        :allow-column-resizing="true"
        column-resizing-mode="nextColumn"
      >
        <DxPaging :enabled="false" />
        <!-- 可编辑 -->
        <DxEditing :allow-updating="true" :allow-adding="false" :allow-deleting="false" mode="cell" />
        <template #planstartime="{ data }">
          <DxDateBox :value="data.value" @option-changed="planStartTimeChanged($event, data)" />
        </template>
      </DxDataGrid>

接下来在底下的methods中写方法就行

// 内标签生产日期改变,过期日期改变
    planStartTimeChanged(e, data) {
      // console.log(data, '&^^^^^^^^^^^^^^^^', e)
      const { values } = data
      var timeDate = new Date(values[15])
      var y = timeDate.getFullYear() + 3
      var m = timeDate.getMonth() + 3
      // m = m < 10 ? ('0' + m) : m;
      var d = timeDate.getDate()
      // d = d < 10 ? ('0' + d) : d;
      // return y + '-' + m + '-' + d
      // console.log(this.orderItemsDTOs, '&^^^^^^^^^^^')

      const orderItemsDTOs = this.orderItemsDTOs
      // 获取当前行序号
      const flag = data.data.sortNumber
      // 改变当前行过期日期
      orderItemsDTOs.forEach((ele, index) => {
        if (ele.sortNumber === flag) {
          ele.validPeriod = y + '-' + m + '-' + d
        }
      })
      // this.dataSource[data.row.rowIndex].planstartime = e.value
    },

这里注意,如果是多行,需要加判断,不然容易造成死循环,不断地循环赋值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值