|
发表于 2018-2-26 17:27:14
|
显示全部楼层
通过下面的方式在数据保存的时候修改
1.添加引用
- var DocUtils = require('$UI/system/components/justep/docCommon/docUtil');
复制代码
2.在model的勾选函数中定义3个实例变量
- var Model = function() {
- this.callParent();
- this.docID = [];
- this.changeRows = [];
- this.docName = [];
- };
复制代码
3.在data的onValueChange事件中记录改变的行和新增加的附件信息
- Model.prototype.mainDataValueChange = function(event) {
- //判断是附件组件关联的关系的值发生改变
- if (event.col == 'fFJ') {
- var newValue = event.newValue;
- var oldValue = event.oldValue;
- var jsonList = eval("(" + newValue + ")");
- if(jsonList && jsonList.length>0){
- for (var i = 0; i < jsonList.length; i++) {
- var docID = jsonList[i].docID;
- //如果新增中的docID在旧值中不存在说明附件是新上传的
- if (!oldValue || oldValue.toString().indexOf(docID) < 0) {
- this.docID.push(jsonList[i].docID);//把docID放到实例变量中this.docID数组中
- var row = event.row;
- //判断实例变量this.changeRows数组中不存在当前改变行时,把当前行放到this.changeRows实例变量数组中
- if ($.inArray(row, this.changeRows) < 0) {
- this.changeRows.push(row)
- }
- }
- }
- }
- }
- };
复制代码
4.在data的onBeforeSave事件中修改附件组件json格式中的docName的值
- Model.prototype.mainDataBeforeSave = function(event) {
- for (var i = 0; i < this.changeRows.length; i++) {
- //从实例变量中this.changeRows中获取改变的行中的附件组件关联的关系值
- var fAttachmentPicture = this.changeRows[i].val("fFJ");
- var jsonList = eval("(" + fAttachmentPicture + ")");
- if (jsonList.length > 0) {
- for (var j = 0; j < jsonList.length; j++) {
- var docID = jsonList[j].docID;
- //判断docID在实例变量this.docID中修改其对应docName的值
- var index = $.inArray(docID, this.docID);
- if (index >= 0) {
- var docName = jsonList[j].docName
- jsonList[j].docName = docName.substring(0, docName.lastIndexOf(".") * 1) + "Modify" + docName.substring(docName.lastIndexOf("."));//给docName赋新值
- this.docName.push(jsonList[j].docName);//把修改后的docName的值放到实例变量this.docName数组中
- }
- event.source.setValue("fFJ", JSON.stringify(jsonList), this.changeRows[i]);//把修改后的json格式数据给关系赋值
- }
- }
- }
- };
复制代码
5.在data的onAfterSave中修改SA_DocNode中docName的值并通知文档服务器
- Model.prototype.mainDataAfterSave = function(event) {
- var self = this;
- setTimeout(function() {
- if (self.docID.length > 0 && self.docName.length > 0) {
- for (var i = 0; i < self.docID.length; i++) {
- //修改SA_DocNode中的文件名以及通知文档服务器
- DocUtils.Utils.changeDocName(self.docID[i], self.docName[i], self.getContext());
- DocUtils.InnerUtils.syncCustomFileds(self.docID[i], self.getContext());
- }
- }
- //清空实例变量的值
- self.docID.splice(0, self.docID.length);
- self.docName.splice(0, self.docName.length);
- self.changeRows.splice(0, self.changeRows.length);
- }, 500);
- };
复制代码
|
|