平台默认的attachment(非attachmentSimple)相关的组件点图标调用的是$model.previewOrRemoveItem.bind($model)打开附件查看
如果要调用自己当前.w对应的js中的方法,可以如下修改
$model.getModel().preview.bind($model.getModel(),$object,$model)
其中preview是js中的函数名

attachment组件js文件中定义如下:

	Model.prototype.preview = function(event, owner) {
		var docPath = event.docPath.get();
		var docID = event.docID.get();
		var docName = event.docName.get();
		var fileID = event.fileID.get();
		if (owner.$state.get() == 'upload' && owner.$access.get() % 4 >= 2) {
			if (!fileID && fileID == "") {
				var changeLog = DocUtils.InnerUtils.evalChangeLog(owner.changeLog, docID);
				// 兼容一种情况,一个页面上有多个附件,其他附件传的文件当前附件没有changeLog
				// 所以不会有fileID
				if (changeLog) {
					fileID = changeLog.cache_name;
				} else {
					return;
				}
			}
			var url = DocUtils.InnerUtils.getdocServerAction({
				"docPath" : docPath,
				urlPattern : "/repository/file/view/" + fileID + "/last/content",
				isFormAction : false,
				context : this.getContext()
			});
			window.open(url);
		} else if (owner.$state.get() == 'remove') {
			owner.deleteDoc(docID, docName);
		}
	};

attachmentPC组件js文件中定义如下:

	Model.prototype.preview = function(event,owner){
		if (owner.$state.get() == 'upload' && owner.$access.get() % 4 >= 2) {
			var fileID = event.fileID.get();
			var docID = event.docID.get();
			var docName = event.docName.get();
			var fileType = docName.substring(docName.indexOf("."));
			if (fileType != 'pdf') {// 判断文件类型,如果不是pdf就用平台默认的浏览的方式打开
				if (!fileID && fileID == "") {
					var changeLog = DocUtils.InnerUtils.evalChangeLog(owner.changeLog, docID);
					if (changeLog) {
						fileID = changeLog.cache_name;
						owner.browseDoc(docID, event.docName.get(), fileID);
					}
				} else {
					owner.browseDoc(docID, event.docName.get(), fileID);
				}
			} else {// 文件类型是pdf就获取url自己调用需要的方法打开
				var url = DocUtils.InnerUtils.getdocServerAction({
					"docPath" : docPath,
					urlPattern : "/repository/file/view/" + fileID + "/last/content",
					isFormAction : false,
					context : this.getContext()
				});
				window.open(url);

			}

		} else if (owner.$state.get() == 'remove') {
			owner.deleteDoc(event);
		}

注意需要加引用

var DocUtils = require('$UI/system/components/justep/docCommon/docUtil');