j-roadflow-2.0.1更新日志

1、修改了添加用户时没有判断帐号是否重复的问题。

    修改文件:cn/tzsoft/roadflow/service/UserService.java

    最后增加了方法:

 /**
 * 判断一个帐号是否重复
 * @param account 帐号
 * @param userId 如果为员ID为0,表示新增,所有不能重复。如果为long表示除此id外不能重复。
 * @return true:重复 false:不重复
 */
 public boolean accountIsDuplicate(String account, long userId){
    UserModel model = getByAccount(account);
    return userId <= IdGenerator.MIN_VALUE ? model != null : model !=null && model.getId() != userId;
 }

    


    修改文件:cn/tzsoft/roadflow/controller/webapi/UserController.java

    image.png

    修改前端文件:src/web/roadui/src/roadui-pages/system/organize/user.vue

    image.png

2、修改了表单设计器子表首次设置未保存的问题。

    修改文件:\src\web\roadui\src\roadui-pages\form\plugins\subtable.vue

    image.png

    //2021-11-30增加,解决了添加子表字段时将this.subtableJson添加到editor.formSubtabsJSON,不然设置不起作用。
                if (!input) {
                    this.subtableJson = { id: this.setJson.id, columns: [] };
                    editor.formSubtabsJSON.push(this.subtableJson);
                    this.columnList = this.subtableJson.columns;
                }

3、修了了表单设计器添加新控件时会加载上个控件事件的问题。

     修改文件:\src\web\roadui\src\roadui-pages\form\plugins\text.vue

     image.png

    有事件的控件对应文件都作相应修改:

    image.png

4、修改了流程设计属性-数据表改变时同步更新标记字段选项。

    修改文件:\src\web\roadui\src\roadui-pages\flow\design\attr.vue

    image.png

5、修改了流程设计步骤-数据标签中子表如果没有设置标签的显示。

    修改文件:\src\web\roadui\src\roadui-pages\flow\design\step.vue

    image.png

6、修改了新建流程时选择流程分类不生效的问题。

    修改文件:\src\web\roadui\src\roadui-pages\flow\design\design.vue

    image.png

7、修改了流程设计步骤选择表单后不需要保存再打开即可加载字段。

    修改文件:\src\web\roadui\src\roadui-pages\flow\design\step.vue

    image.png

    image.png

    //加载表单字段
            loadDataFields() {
                this.roaduiUtils.getFromFields(this.flowJson.id, this.stepId, this.stepJson.formId).then((tables) => {
                    for (let i = 0; i < tables.length; i++) {
                        this.tables.push({ value: tables[i].id, title: (this.roaduiUtils.length(tables[i].label) > 0 ? tables[i].label + ' - ' : '') + tables[i].id });
                        //策略里的值字段选项
                        if (tables[i].type === 'main') {
                            for (let m = 0; m < tables[i].fields.length; m++) {
                                this.valueFields.push({
                                    value: tables[i].fields[m].id,
                                    label: (this.roaduiUtils.length(tables[i].fields[m].label) > 0 ? tables[i].fields[m].label + ' - ' : '') + tables[i].fields[m].id
                                });
                            }
                        }
                        for (let j = 0; j < tables[i].fields.length; j++) {
                            let status = 0, check = 0, tableName = '';
                            if (this.roaduiUtils.length(this.fieldStatus) > 0) {
                                for (let k = 0; k < this.fieldStatus.length; k++) {
                                    let fieldKey = tables[i].type == 'subtable' ? (tables[i].id + '.' + tables[i].fields[j].id).toLowerCase() : tables[i].fields[j].id.toLowerCase();
                                    if (this.fieldStatus[k].field.toLowerCase() === fieldKey) {
                                        status = this.fieldStatus[k].status;
                                        check = this.fieldStatus[k].check;
                                        break;
                                    }
                                }
                            }
                            //如果字段ID是-线分隔的,表示是绑定的表字段,表名取-线前字符串。
                            let idArray = tables[i].fields[j].id.split('-');
                            if (idArray.length === 2) {
                                tableName = idArray[0];
                            }
                            tableName = tableName || (tables[i].label || tables[i].id);
                            this.rows.push({ table: tables[i].id, tableName: tableName, type: tables[i].type, field: tables[i].fields[j].id, comment: tables[i].fields[j].label, fieldStatus: status, check: check });
                            this.rows1.push({ table: tables[i].id, tableName: tableName, type: tables[i].type, field: tables[i].fields[j].id, comment: tables[i].fields[j].label, fieldStatus: status, check: check });
                        }
                    }
                });
            },

8、修改了表单设计添加按钮控件时的JS错误。

    修改文件:\src\web\roadui\public\roadui-assets\ckeditor\plugins\rf_button\plugin.js

    image.png

    var id = editor.designjs.getId(undefined, undefined, json.id);

9、增加了通配符替换步骤id和名称时如果参数中没有则获取流程第一步id和名称。

    修改文件:src/main/java/cn/tzsoft/roadflow/common/WildcardUtils.java

    image.png

    //如果没获取到,则获取流程ID所在流程的第一步id。
    flowId = request == null ? "" : request.getParameter("flowid");
    if (StringUtils.isBlank(flowId)) {
        flowId = CommonUtils.getObjectStringByKey(object, "flowId");
    }
    if (StringUtils.isLong(flowId)) {
        FlowRunModel flowRunModel = ServiceUtils.instance.flowService.getFlowRunModel(StringUtils.toLong(flowId), true);
        if (flowRunModel != null) {
            stepId = Long.toString(flowRunModel.getFirstStepId());
        }
    }

    image.png

    stepName = CommonUtils.getObjectStringByKey(object, "stepName");
    if (StringUtils.isNotBlank(stepName)) {
        return stepName;
    }
    //如果没获取到,则获取流程ID所在流程的第一步名称。
    flowId = request == null ? "" : request.getParameter("flowid");
    if (StringUtils.isBlank(flowId)) {
        flowId = CommonUtils.getObjectStringByKey(object, "flowId");
    }
    if (StringUtils.isLong(flowId)) {
        FlowRunModel flowRunModel = ServiceUtils.instance.flowService.getFlowRunModel(StringUtils.toLong(flowId), true);
        if (flowRunModel != null) {
            stepName = ServiceUtils.instance.flowService.getStepName(flowRunModel, flowRunModel.getFirstStepId());
        }
    }

10、修改了流程执行事件方法中调用Servive为null的问题。

    增加类:src/main/java/cn/tzsoft/roadflow/common/SpringContextUtils.java

    事件方法中获取Service实例:

    image.png

11、修改了表单设计器label标签控件和流水号控件无法设置隐藏的问题。

    修改文件:src/web/roadui/src/roadui-pages/form/form-design.js

    image.png

    image.png

    修改之后以前的表单要重新发布才生效。

12、修改了表单设计子表label控件无法设置隐藏的问题。

    修改文件:src/web/roadui/src/roadui-pages/form/form-design.js

    image.png

    image.png

    image.png

    修改之后以前的表单要重新发布才生效。

13、修改了表单设计文本框控件只读时如果没有值显示undefined的问题。

    修改文件:src/web/roadui/src/roadui-pages/form/form-design.js

    image.png

14、修改了步骤内自由发送的问题。

    修改文件:src/web/roadui/src/roadui-pages/flow/run/index.vue

    image.png

    //步骤内循环发送
    freeSend() {
        if (this.form.type == 0) {
            this.$refs['jroadflow_form'].$refs['jroadflow_formRef'].validate((valid) => {
                if (valid) {
                    this.freeSendShow();
                }
            });
        } else {
            this.freeSendShow();
        }
    },
    //步骤内发送窗口
    freeSendShow() {
        //检查如果要签意见,是否签意见和签章
        if (this.step.signType > 0 && this.roaduiUtils.length(this.step.comment) === 0) {
            this.roaduiUtils.msg(this, '请填写处理意见!', false);
            this.$refs['comment'].focus();
            return;
        }
        if (this.step.signType >= 2 && this.step.sign == 0) {
            if (this.step.signType == 3) {
                //如果要输入密码签章,则弹出输入密码窗口。
                this.sign(3);
            } else {
                this.roaduiUtils.msg(this, '请签章!', false);
            }
            return;
        }
        this.modalPage = this.topVue.regComponent({
            key: 'flow_freeSend_' + this.roaduiUtils.newGuid(false),
            content: '/flow/run/send'
        });
        this.modalQuery = '?' + this.queryString + '&freesend=1';
        this.modalTitle = '步骤内发送';
        this.modalWidth = '600px';
        this.modalShow = true;
        this.modalMaskClose = false;
    },
    //步骤内循环发送确认
    freeSendOk(steps) {
        this.executeFlow('freeSubmit', steps);
    },

    修改文件:src/web/roadui/src/roadui-pages/flow/run/sign-password.vue

    image.png

    修改文件:src/web/roadui/src/roadui-pages/flow/run/send.vue

    image.png

 isFreeSend: '1' == this.roaduiUtils.query('freesend', this.query),//是否是自由发送

    image.png

    //调用父页面方法发送
    if (this.isFreeSend) {
        this.parentVue.freeSendOk(selectSteps);
    } else {
        this.parentVue.sendOk(selectSteps);
    }

15、增加了表单设计子表可以自定义wrapper-col属性。

    修改文件:src/web/roadui/src/roadui-pages/form/plugins/subtable.vue

    image.png

  <th>wrapperCol:</th>
  <td>
    <a-input v-model="subtableJson.wrapperCol" style="width:187px"/>
  </td>

    修改文件:src/web/roadui/src/roadui-pages/form/form-design.js

    image.png

    var labelCol = attJSON.labelCol || 0;
    var wrapperCol = attJSON.wrapperCol || 0;
    var wrapperCol_subtable = subtableSet.wrapperCol || '';
    if (roaduiUtils.length(label) === 0 || !subtableSet.showLabel) {
        html += roaduiUtils.length(wrapperCol_subtable) === 0
            ? ' :wrapper-col="{span:' + wrapperCol + ',offset:' + labelCol + '}"'
            : ' :wrapper-col="' + wrapperCol_subtable + '"';
    } else {
        html += roaduiUtils.length(wrapperCol_subtable) === 0
            ? ''
            : ' :wrapper-col="' + wrapperCol_subtable + '"';
        html += ' label="' + label + '"';
    }

16、修改了表单内多人签章时会替换前面签章问题。

    修改文件:src/web/roadui/src/roadui-pages/form/form-design.js

    image.png

    var html = '<a-form-model-item v-if="getFieldStatus(\'' + id + '\')!=2" label="' + label + '" prop="' + id + '">';
    html += '<a-space><a-button v-if="getFieldStatus(\'' + id + '\')==0" type="' + buttontype + '" @click="formData[\'' + id + '\']=roaduiUtils.length(formData[\'' + id + '\'])===0?roaduiUtils.length(formSignImg)>0?formSignImg:formSignName:\'\';">{{roaduiUtils.length(formData[\'' + id + '\'])===0?\'签章\':\'取消签章\'}}</a-button>';
    html += '<a-sign v-if="roaduiUtils.length(formData[\'' + id + '\'])>0"';
    html += ' :name="formData[\'' + id + '\']" :img="formData[\'' + id + '\']"';
    html += '>';
    html += '</a-sign></a-space>';
    html += '</a-form-model-item>';

    修改文件:src/web/roadui/src/roadui-components/a-sign.vue

    image.png

    <template>
        <img class="roadui_flowrun_signimg" v-if="roaduiUtils.length(img1)>0&&roaduiUtils.startsWith(img1,'data:image')" :src="img1" />
        <span v-else-if="roaduiUtils.length(name1)>0" class="roadui_flowrun_sign">{{name1}}</span>
    </template>

    修改后表单重新发布才生效。

17、修改了保存表单数据到表时001会被认为是数字保存为1的问题。

    修改文件:cn/tzsoft/roadflow/common/JsonUtils.java

    image.png

18、修改了征求意见时备注说明没有显示的问题。

    修改文件:src/main/java/cn/tzsoft/roadflow/controller/webapi/FlowController.java

    image.png

    修改文件:src/web/roadui/src/roadui-pages/flow/run/index.vue

    image.png

19、修改了应用程序设计列表排序无效的问题。

    修改文件:src/main/java/cn/tzsoft/roadflow/dao/dbconnection/DbconnectionOpationDao.java

    image.png

   public PageInfo<LinkedHashMap<String, Object>> getPage(int number, int size, DbconnectionModel dbconnectionModel, String sql, String fields, Map<String, Object> map, String orderBy) {
        String sql1 = StringUtils.replaceWildcard(sql);
        //map.put("order", StringUtils.replaceSelectSql(orderBy));
        String order= StringUtils.replaceSelectSql(orderBy);
        PageHelper.startPage(number, size, StringUtils.isBlank(order) ? StringUtils.containsIgnoreCase("," + fields + ",", ",id,") ? "id" : "" : order);
        return new PageInfo<>(getMapPage(dbconnectionModel, sql1, fields, map));
    }

20、修改了流程意见列表中没有显示用户签章图片问题。

    修改文件:src/main/java/cn/tzsoft/roadflow/controller/webapi/FlowController.java

    image.png

 //循环设置附件链接
    for (FlowTaskModel taskModel : groupTasks) {
        if (StringUtils.isNotBlank(taskModel.getAttachment())) {
            ArrayNode fileArrayNode = fileService.getFileList(taskModel.getAttachment());
            taskModel.setSpare1(fileArrayNode.toString());
        }
        //设置签章图片
        UserModel userModel = userService.get(taskModel.getReceiverId());
        if(userModel != null){
            taskModel.setSpare2(userModel.getSignImage());
        }
    }

    修改文件:src/web/roadui/src/roadui-pages/flow/run/comment.vue

    image.png

联系QQ:493501010电话:136 0832 5512(微信同号)邮箱:road@roadflow.net
Copyright 2014 - 2024 重庆天知软件技术有限公司 版权所有