如何预设业务产品的有效期限
Up
• 发表于:2022-07-27 18:12:32 • 更新于:2023-12-20 19:54:02
1012

场景描述:

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

功能实现:

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

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

数据表创建:

创建一张产品表(用于存放产品名称、有效天数等)、合同表(用于存放合同信息,包括产品、生效/失效的日期)。

产品表:

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

合同表:

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

实现步骤:

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", "");

            }

        },

    );

}

 

功能效果:

新增产品:

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

新增合同及合同审核:

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

售后服务:

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

本文是否对您有帮助?
有帮助
没帮助
您是否遇到了以下问题?
内容过期或不准确
缺少场景、事例
链接有误
太简单,步骤待完善
其他
提交反馈
如需获取即时帮助,请联系
小助理
微信扫码添加小助理
让你的想法快速变成软件吧~