ITPub博客

首页 > 应用开发 > IT综合 > 如何预设业务产品的有效期限

如何预设业务产品的有效期限

原创 IT综合 作者:我见青山多妩媚 时间:2021-09-03 16:04:40 0 删除 编辑

场景描述:

对于有的业务来说,某些业务中是存在着产品有效期限的,即如果该产品过了有效期限时,将不再享有售后服务或其他权益。如果通过预设产品的有效期限,以业务审核通过为生效起点,可实现自动设置失效日期的效果。

功能实现:

数据表字段简单表示,可根据需要进行增删。

本次示例期限基数以天数为例,可根据需要改为月数、年数。

数据表创建:

在白码低代码开发平台上创建一张产品表(用于存放产品名称、有效天数等)、合同表(用于存放合同信息,包括产品、生效/失效的日期)。

产品表:

合同表:

实现步骤:

  1. 创建一个“新增产品”功能,用于录入产品的基础信息,包括产品名称以及有效天数。有效天数设置不能以0为开头,其正则表达式为:^[1-9][0-9]*$

2.创建一个“新增合同”功能,用于合同信息录入。产品的生效及失效期限通过合同来体现。

3.新增一个“合同审核”功能。审核合同信息,审核通过后,设置审核通过的日期为生效日期。(也可按其他状态节点来确立生效日期,此处以审核功能为例)

审核中判断步骤:

审核意见步骤:

合同信息步骤:

审核状态判断步骤:

更新生效日期:

失效日期处理步骤:

示例代码:

async function runProcess($model = model, $plugin = plugin, $params = params) {
    let contract = $params.contract;//合同信息
    let product = await $plugin.data.getData("612c8c16afa4576894188ebe", contract["612c8c5bafa4576894188f6b"]);//通过合同信息的产品id产品数据表里的产品信息
    let term = +product["612c8c3b9e206268a3826fc7"];//产品信息里的有效天数
    let expiration_date = $plugin.moment(new Date()).add(term, 'days').format("YYYY-MM-DD");//跟进产品信息的有效天数,算出其失效日期(如果是月数/年数单位,'days'改为'months'/'years')
    //更新当前合同的失效日期
    await $plugin.data.updateData("60a72ceaf4f073243956fcc8", contract._id, {
        "612c8c968a88c8689a339885": expiration_date 
    })
}

4.创建一个“服务售后”功能,用于验证合同是否还在有效期内。(这个功能按实际需要去定义,借鉴判断思路即可,此处为了来验证功能,不做其他流程)。

失效日期判断预处理步骤:

示例代码:

function prepare($programStore, $form, vue) {
    //监控选择合同步骤,获取合同信息值
    vue.$watch(() => { return programStore.getters["getFormValue"]("612c9f3c9e206268a382a0dd") },//选择合同步骤id
        function (value, oldValue) {
            let now_date = new Date().Format("yyyy-MM-dd");//获取当前日期
            let expiration_date = value["612c8c968a88c8689a339885"];//获取选择的合同失效日期
            if (expiration_date && expiration_date < now_date) {//当合同的失效日期比当前日期小的时候
                $programStore.dispatch("error/setText", "合同已过期");//直接引用,平台的禁止提交效果。下面的为空指可提交
            } else {
                $programStore.dispatch("error/setText", "");
            }
        },
    );
}

功能效果:

新增产品:

新增合同及合同审核:

售后服务:



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69998487/viewspace-2790317/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-04-16

  • 博文量
    14
  • 访问量
    5979