| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | /** * Created by Mai on 2017/6/21. */var projectInfoObj = {    // 头部同时编辑的用户头像    handleAvatarList: function (users) {        const opener = projectObj.project.projectInfo.opener;        if (opener) {            users = users.filter(user => user._id !== opener._id);        }        const avatarListHtml = users.reduce((acc, user) => {            const avatarSpan = SHARE_TO.getAvatarHTML(user.mobile, user.real_name);            const li =                 `<li data-toggle="tooltip" data-placement="bottom" title="${user.real_name}" data-original-title="${user.real_name}">                    ${avatarSpan}                </li>`            return acc += li;        }, '');        $('#avatar-list').html(avatarListHtml);        $('#avatar-list [data-toggle="tooltip"]').tooltip();     },    getReceiveInfo: function (projectReadOnly, projectCooperate, owner) {        if (!projectReadOnly && !projectCooperate) {            return '';        }        const action = projectCooperate ? '可编辑' : '只能查看';        const ownerName = owner && owner.real_name || '';        const dropdownMenu = allowCopy?`         <div  class="dropdown-menu" style="left:auto;">        <a class="dropdown-item btn-sm"  href="#copyShare" data-toggle="modal">拷贝工程</a>      </div>`:"";        return `            <span class="pl-2" data-toggle="tooltip" data-placement="left" title="" data-original-title="来自 ${ownerName} 的分享">                <a href="javascript:void(0);"  ${allowCopy?'data-toggle="dropdown"':''} class="btn btn-xs btn-primary default-cursor ${allowCopy?'dropdown-toggle':''} " ><i class="fa fa-share-alt"></i> ${action}</a>                ${dropdownMenu}                </span> `;    },    getShareButton: function (projectReadOnly, projectCooperate, shareTip) {        if (projectReadOnly || projectCooperate) {            return '';        }        return `            <span id="share-tip" class="ml-2" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="${shareTip}">                <a id="init-share" href="javascript:;" class="btn btn-xs btn-primary"><i class="fa fa-share-alt"></i> 分享</a>            </span>`;    },    getFullPathHtml: function (proj) {        let fullPath = [], i, pm = '<span class="text-truncate"><a href="/pm">项目管理</a></span>', angleRight = '<span class="text-truncate"><i class="fa fa-angle-right fa-fw"></i></span>';        if (proj) {            let pathArr = proj.fullPath;            let engName = pathArr[pathArr.length - 2] || '',                projectName = pathArr[pathArr.length - 3] || '',                folderName = pathArr[pathArr.length - 4] || '';            const receiveInfo = this.getReceiveInfo(projectReadOnly, projectCooperate, proj.owner);            const shareButton = this.getShareButton(projectReadOnly, projectCooperate, proj.shareTip);            let newHtml = `   <span data-toggle="tooltip" data-placement="bottom" data-original-title="${folderName}"><i class="fa fa-folder-open-o"></i>...</span>                <span class="text-muted px-1">\</span>                <span data-toggle="tooltip" data-placement="bottom" data-original-title="${projectName}"><i class="fa fa-cubes"></i>...</span>                <span class="text-muted px-1">\</span>                <span data-toggle="tooltip" data-placement="bottom" data-original-title="${engName}"><i class="fa fa-cube"></i>...</span>                <span class="text-muted px-1">\</span>                <span><i class="fa fa-sticky-note-o"></i></span>                <span class="text-truncate"  data-toggle="tooltip" data-placement="bottom" data-original-title="${proj.name}"> ${proj.name}</span>                ${receiveInfo}${shareButton}                <span>                    <ul class="avatar-list mb-0" id="avatar-list">                    </ul>                </span>                `;            fullPath.push(newHtml);            fullPath.push(`<input id="rootProjectName" value="${projectName}" type="hidden">`);        }        return fullPath.join('');    },    showProjectInfo: function (data) {        if (data) {            $('#tzCharacterText').prop('readonly', projectObj.project.projectInfo.property.lockBills);            // 清单子界面的模块:清单指引、清单精灵            for (let billsGuidanceLib of data.engineeringInfo.billsGuidance_lib) {                BillsSub.switchModule(billsGuidanceLib.type);            }            //init decimal            setDecimal(decimalObj, data.property.decimal);            billsQuanDecimal.datas = data.property.billsQuantityDecimal || [billsDecimalView.angleDecimal];            basicInfoView.orgDatas = data.property.basicInformation ? basicInfoView.toViewDatas(data.property.basicInformation) : [];            projFeatureView.orgDatas = data.property.projectFeature ? projFeatureView.toViewDatas(data.property.projectFeature) : [];            $('#fullpath').html(this.getFullPathHtml(data));            // 分享给            $('#init-share').click(() => {                SHARE_TO.initModal(SHARE_TO.Mode.PROJECT, projectObj.project.ID());                $('#share-tip').tooltip('hide');            });            SHARE_TO.handleEventListener();            $("[data-toggle='tooltip']").tooltip();        }    }};
 |