zhangzhengmei
2023-05-04 46cc0bc809b246809765051ee1d92553c9844706
t:wqMerge branch 'LEX_dev' of http://47.92.229.245:8089/r/lightningupdate into zzm_dev
20个文件已添加
15个文件已修改
4192 ■■■■■ 已修改文件
force-app/main/default/classes/AssetMaintainHeaderWebService.cls 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexContractAuthorizeController.cls 454 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexContractAuthorizeController.cls-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexSISearchSetProductController.cls 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexStockCancelController.cls 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexVisitReportCancelController.cls 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LexVisitReportCancelController.cls-meta.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/PAEDecisionRecordController.cls 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.js 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.js 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.css 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockCancel/lexStockCancel.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js-meta.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.css 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.js 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.js-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ConsumApplySplit.page 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ConsumAssignCancel.page 189 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ConsumTrial.page 1617 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/MaintenanceContractPCL.page 158 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/OFSHospitalLayout.page 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/PAEDecisionRecord.page 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/RentalAgencyReceived.page 691 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/YouCantDeleteQuote.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AssetMaintainHeaderWebService.cls
@@ -37,6 +37,7 @@
        }
        return '1';
    }
    @AuraEnabled
    WebService static String abandon(String amhId) {
        Savepoint sp = Database.setSavepoint();
        try {
@@ -68,6 +69,13 @@
        }
        return '1';
    }
    @AuraEnabled
    public static Boolean applyPermission()
    {
        Schema.DescribeSobjectResult schemaMap = Schema.describeSObjects(new String[]{'TransferApply__c'})[0];
        return schemaMap.isCreateable();
    }
    @AuraEnabled
    WebService static String deleteApply(String amhId) {
        List<AssetMaintainHeader__c> amhList = [select id, Status__c
                                            from AssetMaintainHeader__c
force-app/main/default/classes/LexContractAuthorizeController.cls
New file
@@ -0,0 +1,454 @@
public with sharing class LexContractAuthorizeController {
    public LexContractAuthorizeController() {
    }
    @AuraEnabled
    public static Opportunity init(String recordId){
        try{
            Opportunity item=[select
             id,Estimation_Decision__c,Contract_DB_complite_day__c,Contract_Authorize__c,Contract_Authorize_Lock__c,If_Need_Authorize__c,
             Authorized_DB_No__c,SPO_URL__c,Estimation_No__c,Closing_Bid_Date__c,Bid_Date__c,
             Cnt_Lost_cancel_Draft__c,Cnt_Lost_cancel_report__c,IF_Submit__c,Agency1__c,Trade__c,Sales_Root__c,Is_Corrosion__c
             from Opportunity
             where id = :recordId];
            return item;
        }catch(Exception e){
            System.debug('LexStockCancelController init error: '+e.getMessage());
        }
        return null;
    }
    @AuraEnabled
    public static UpdateResult updateOppotunity(
        String recordId
    ) {
        UpdateResult result = new UpdateResult();
        result.recordId = recordId;
        try{
            Opportunity opp=new Opportunity(id=recordId);
            opp.Contract_Authorize__c = true;
            opp.If_Interface_Lock__c=true;
            opp.IF_Submit__c = true;
            update opp;
            result.success = true;
            result.errors = new List<String>();
            return result;
        }catch(Exception e){
            result.success = false;
            result.errors = new List<String>();
            result.errors.add(e.getMessage());
            System.debug(LoggingLevel.INFO,'updateOppotunity  Error : ' + e);
        }
        return result;
    }
    @AuraEnabled
    public static String submitApprovalRequest(String recordId) {
        try{
           Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
           req.setObjectId(recordId);
           Approval.ProcessResult result = Approval.process(req);
           if(result!=null&&result.getErrors()!=null&&result.getErrors().size()>0) return result.getErrors().get(0).getMessage();
        }catch(Exception e){
            System.debug('LexStockCancelController submitApprovalRequest  error: '+e.getMessage());
            return e.getMessage();
        }
           return null;
    }
    @AuraEnabled
    public static String getProfileId(){
        return UserInfo.getProfileId();
    }
    @AuraEnabled
    public static Boolean judgeIsAssistantAppliedOutTime(String  Quoteid) {
        List<PromotionSales__c> PromotionSalesList = [select id,IsAssistantAppliedOutTime__c from PromotionSales__c where Quote__r.Quote_No__c =:Quoteid];
        for(PromotionSales__c pro : PromotionSalesList){
            if(pro.IsAssistantAppliedOutTime__c){
                return false;
            }
        }
        return true;
    }
     @AuraEnabled
    public static Opportunity searchOpportunity(String oppid) {
        try{
           Opportunity res=[select Id,Contract_Authorize_Lock__c from Opportunity where Id =:oppid];
           return res;
        }catch(Exception e){
            System.debug('LexStockCancelController submitApprovalRequest  error: '+e.getMessage());
        }
           return null;
    }
    @AuraEnabled
    // LHJ 阿西赛多检查 Start
    public  static String checkDangerItem(String agency1) {
        //没有危化品证照的提示信息
        String licenseStr = '第一经销商没有有效的危险化学品经营许可证。';
        //没有阿西赛多经销商协议的提示信息
        String accStr = '第一经销商没有阿西赛多经销商协议。';
        //检查是否有证照
        List<License_Information__c> licenseList = [SELECT Id
                                                      FROM License_Information__c
                                                     WHERE LicenseAndAccount__c = :agency1
                                                       AND LicenseType__c = '危险化学品经营许可证'
                                                       AND Is_Active_Formula__c = true
                                                    ];
        //检查是否有阿西赛多协议
        List<Account> accountList = [SELECT Id
                                                      FROM Account
                                                     WHERE Parent.id = :agency1
                                                       //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 start
                                                       AND Contract_Quote_Decide_Flag_checkbox__c =true
                                                       AND Assiesedo_Dealer__c  = true
                                                       //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 end
                                                    ];
        system.debug('licenseList:'+licenseList.size());
        system.debug('agency1:'+agency1);
        //①既没有危化品证也没有阿西赛多协议
        if(licenseList.size() == 0 && accountList.size() ==0){
            return licenseStr+accStr;
        }
        //②没有危化品证
        else if(licenseList.size() ==0){
            return licenseStr;
        }
        //②没有阿西赛多经销商协议
        else if(accountList.size() ==0){
            return accStr;
        }
        //③全都有
        else{
            return 'OK';
        }
    }
    @AuraEnabled
    public static String oppCheck(String oppid, String saveFlg) {
        Map<Id, String> proMap= new Map<Id, String>();
        List<OpportunityLineItem> OppItemList = [select PricebookEntry.Product2Id, PricebookEntry.Product2.Name
                                                   From OpportunityLineItem
                                                  Where OpportunityId = :oppid];
        if (OppItemList.size() > 0) {
            for (OpportunityLineItem opl : OppItemList) {
                proMap.put(opl.PricebookEntry.Product2Id, opl.PricebookEntry.Product2.Name);
            }
        }
        List<Opportunity> oppList = [select Agency1__c from Opportunity where id = :oppid];
        String angencyId = oppList[0].Agency1__c;
        String strRet = '';
        if (saveFlg == '1') {
            strRet = checkProRegisterDecide(proMap, angencyId, oppid);
        } else {
            strRet = checkProRegisterDecide(proMap, angencyId, '');
        }
        return strRet;
    }
    public static String checkProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) {
        String errormessage = '';
        Boolean error = false;
        Map<String, String> CheckMap = new Map<String, String>();
        CheckMap = MapCheckProRegisterDecide(proMap, agency1, OppId);
        if (CheckMap.isEmpty()) {
            return 'OK';
        } else {
            return '有不可销售产品或超出经销商经营范围,请更新报价单' + CheckMap;
        }
    }
    @AuraEnabled
    public static String updReg(String  oppid) {
        List<OpportunityLineItem> updList = new List<OpportunityLineItem>();
        List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c,
                                                        PricebookEntry.Product2.RegisterNo_ALL__c
                                                           From OpportunityLineItem
                                                          Where OpportunityId = :oppid];
        for (OpportunityLineItem ol : OppItemList) {
            ol.Register_alleffective__c = ol.PricebookEntry.Product2.RegisterNo_ALL__c;
            updList.add(ol);
        }
        if (updList.size() > 0)  update updList;
        return 'OK';
    }
    public static Map<String, String> MapCheckProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) {
        Map<String, String> retMap = new Map<String, String>();
        String errormessage = '';
        Boolean error = false;
        Map<String,List<String>> proAllBSstrMap;
        List<String> proNotNeedList = new List<String>();
        Map<String,List<String>> old_newMap = new Map<String,List<String>>();
        Map<String,List<String>> new_oldMap = new Map<String,List<String>>();
        // 取得 经营范围对应产品关系
        List<String> midStr = new List<String>();
        List<String> midStrO = new List<String>();
        // List<Product_Register_contrast__c> rrList = Product_Register_contrast__c.getall().values();
        // for (Product_Register_contrast__c rr : rrList) {
        //     midStr = new List<String>();
        //     midStrO = new List<String>();
        //     // 经营范围对应产品关系 Map作成 旧-新对照
        //     if (old_newMap.containsKey(rr.Register_old__c)) {
        //         old_newMap.get(rr.Register_old__c).add(rr.Register_new__c);
        //     } else {
        //         midStrO.add(rr.Register_new__c);
        //         old_newMap.put(rr.Register_old__c, midStrO.clone());
        //     }
        //     // 经营范围对应产品关系 Map作成 新-旧对照
        //     if (new_oldMap.containsKey(rr.Register_new__c)) {
        //         new_oldMap.get(rr.Register_new__c).add(rr.Register_old__c);
        //     } else {
        //         midStr.add(rr.Register_old__c);
        //         new_oldMap.put(rr.Register_new__c, midStr.clone());
        //     }
        // }
        // 取得经销商 医疗器械经营许可证
        List<License_Information__c> licenseList = [SELECT Id,
                                                           ScopeKey__c,
                                                           LicenseType__c
                                                      FROM License_Information__c
                                                     WHERE LicenseAndAccount__c = :agency1
                                                    AND (LicenseType__c = '医疗器械经营许可证'
                                                        OR LicenseType__c = '第二类医疗器械经营备案凭证')
                                                      AND Is_Active_Formula__c = true
                                                    ];
        // 判断 医疗器械经营许可证 是否存在
        if (licenseList.size() == 0) {
            error = true;
            errormessage = '第一经销商没有有效的医疗器械经营许可证。';
            retMap.put('agency', '0');
        } else {
            //经销商经营范围
            List<String> agListA = new List<String>();
            List<String> agListTemp = new List<String>();
            List<String> agList = new List<String>();
            //取经销商下 所有医疗器械经营许可证、第二类医疗器械经营备案凭证
            for (License_Information__c li : licenseList) {
                if (li.ScopeKey__c != null) {
                    agListA.addAll(li.ScopeKey__c.split(';'));
                    agListTemp.addAll(li.ScopeKey__c.split(';'));
                }
            }
            for (String a : agListTemp) {
                if (a.length() >= 6) {
                    agList.add(a.substring(0, a.length() - 1));
                } else {
                    agList.add(a.trim());
                }
            }
            //产品注册证
            Map<String,Map<String,String>> proBSMap = new Map<String,Map<String,String>>();
            Map<String,String> proMidMap = null;
            //产品所有有效注册证(可以和经销商匹配)
            proAllBSstrMap = new Map<String,List<String>>();
            set<Id> proIdList = new set<Id>();
            for (String qli : proMap.keySet()) {
                    proIdList.add(qli);
                    proBSMap.put(qli, proMidMap);
                    List<String> empList = new List<String>();
                    proAllBSstrMap.put(qli, empList);
            }
            List<Product_Register_Link__c> prls = [
                                                 Select Product2__c,
                                                        Product2__r.Asset_Model_No__c,
                                                        Product2__r.SFDA_Approbated_Status__c,
                                                        Product2__r.SFDA_Status_New__c, // 产品的CFDA最终状态 20181225
                                                        Product_Register__r.Name,
                                                        Product_Register__r.BusinessScopeKey__c,
                                                        Product_Register__r.RegisterNoStatus__c,
                                                        Product_Register__r.MedPrdClass__c
                                                   From Product_Register_Link__c
                                                  where Product2__c in :proIdList
                                                  ];
            // LHJ 20190102 增加跳过逻辑 Start
            List<Product2> productList = [select ID,SFDA_Status__c from Product2 where id in :proIdList];
            for (Product2 pro : productList) {
                if (pro.SFDA_Status__c == '不要') {
                    proNotNeedList.add(pro.ID);
                }
            }
            // LHJ 20190102 增加跳过逻辑 End
            for (Product_Register_Link__c prl : prls) {
                // 设置产品类别MAP
                if (String.isNotBlank(prl.Product_Register__r.BusinessScopeKey__c)) {
                    system.debug('Product2 +++++++' + prl.Product2__c);
                    if (proBSMap.get(prl.Product2__c) != null) {
                        proBSMap.get(prl.Product2__c).put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c);
                    } else {
                        Map<String,String> toooMap = new Map<String,String>();
                        toooMap.put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c);
                        proBSMap.put(prl.Product2__c, toooMap.clone());
                    }
                }
                // 产品的产品注册证是"不要"状态 不需要匹配注册证 20181225
                if (prl.Product2__r.SFDA_Approbated_Status__c == '不要'
                        || prl.Product_Register__r.MedPrdClass__c == '1') {
                     proNotNeedList.add(prl.Product2__c);
                }
            }
            system.debug('proBSMap +++++++' + proBSMap);
            for (String qli : proMap.keySet()) {
                String proId = qli;
                String proName = proMap.get(proId);
                if (proId != null) {
                    Boolean haveBS = false;
                    // 产品属于非医疗,不用判断经营范围
                    if (proNotNeedList.contains(proId)) {
                        haveBS = true;
                        continue;
                    }
                    if (proBSMap.get(proId) == null) {
                        error = true;
                        errormessage += '产品"' + proName + '"没有有效的产品注册证。\n';
                        retMap.put(proId, '1');
                        continue;
                    }
                    if (proBSMap.get(proId) != null) {
                        system.debug('111 +++++++' + proBSMap);
                        Map<String,String> midMap = new Map<String,String>();
                        midMap = proBSMap.get(proId);
                        for (String str : midMap.keySet()) {
                            // LHJ 20200711 Start
                            String strMidMap = midMap.get(str);
                            List<String> proRegList = new List<String>();
                            proRegList.addAll(strMidMap.split(';'));
                            // LHJ 20200711 End
                            for(String strReg:proRegList){
                                // 被定义为"6815A"的产品类别,经营范围中必须有6815或者6815A外才可以匹配。
                                if (strReg.length() == 6) {
                                    for(String strAg:agListA){
                                        if(strAg.length() >= 5 && midMap.get(str.substring(0, str.length() - 1)) == strAg.substring(0,5)){
                                            proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1));
                                            haveBS = true;
                                            break;
                                        }
                                    }
                                    /*if (agListA.contains(midMap.get(str.substring(0, str.length() - 1)))) {
                                        proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1));
                                        haveBS = true;
                                    }*/
                                } else {
                                    system.debug('agList +++++++' + agList);
                                    system.debug('midMap +++++++' + strReg);
                                    if (agList.contains(strReg)) {
                                        //产品类别,匹配到经销商类别
                                        proAllBSstrMap.get(proId).add(str);
                                        haveBS = true;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    if (!haveBS) {
                        error = true;
                        errormessage += '第一经销商的经营范围中不包含产品" ' + proName + '"。\n';
                        retMap.put(proId, '2');
                    }
                }
            }
        }
        if (retMap.isEmpty() == false) {
            //return errormessage;
        } else {
            if (OppId != '') {
                // 更新所有注册证信息
                String strRegister_alleffective;
                List<Product2> pro2List = new List<Product2>();
                Map<String, Product2> pro2Map = new Map<String, Product2>();
                List<OpportunityLineItem> updList = new List<OpportunityLineItem>();
                List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c,PricebookEntry.Product2Id
                                                           From OpportunityLineItem
                                                          Where OpportunityId = :OppId];
                // 非医疗或1类产品,取得
                if (proNotNeedList != null && proNotNeedList.size() > 0) {
                    pro2List = [select id, SFDA_Approbated_Status__c, RegisterNo_ALL__c from Product2 where Id in :proNotNeedList];
                }
                for (Product2 pro2 : pro2List) {
                    pro2Map.put(pro2.Id, pro2);
                }
                for (OpportunityLineItem ol : OppItemList) {
                    if (proAllBSstrMap.containsKey(ol.PricebookEntry.Product2Id)) {
                        ol.Register_alleffective__c = '';
                        for(String str: proAllBSstrMap.get(ol.PricebookEntry.Product2Id)) {
                            if (String.isNotBlank(ol.Register_alleffective__c)) {
                                ol.Register_alleffective__c += ';' + str;
                            } else {
                                ol.Register_alleffective__c = str;
                            }
                        }
                        // 非医疗或1类产品
                        if (pro2Map.containskey(ol.PricebookEntry.Product2Id)) {
                            if (pro2Map.get(ol.PricebookEntry.Product2Id).SFDA_Approbated_Status__c == '不要') {
                                ol.Register_alleffective__c = 'FYL';
                            } else {
                                ol.Register_alleffective__c = pro2Map.get(ol.PricebookEntry.Product2Id).RegisterNo_ALL__c;
                            }
                        }
                    }
                    updList.add(ol);
                }
                if (updList.size() > 0)  update updList;
            }
        }
        //如果不满足阿西赛多的条件,进入这个变量 20200821 ljh
        return retMap;
    }
    public class UpdateResult {
        @AuraEnabled public String recordId {get;set;}
        @AuraEnabled public Boolean success {get;set;}
        @AuraEnabled public List<String> errors {get;set;}
    }
    public class InitData{
    }
}
force-app/main/default/classes/LexContractAuthorizeController.cls-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>51.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/classes/LexSISearchSetProductController.cls
@@ -4,6 +4,7 @@
    public LexSISearchSetProductController(){
    }
    @AuraEnabled
    public static InitData init(){
        InitData data=new InitData();
@@ -80,7 +81,7 @@
                        }else{
                            data.setPFString = data.setPFString+','+activities[i];
                        }
                    }
                }
            }
@@ -89,7 +90,7 @@
        }catch(Exception e){
            System.debug('SelectDone error:'+e);
        }
        return null;
    }
@@ -149,7 +150,7 @@
        @AuraEnabled
        public String Name;
        @AuraEnabled
        @AuraEnabled
        public String Product_Set_CD_c;
        @AuraEnabled
@@ -170,4 +171,4 @@
            Valid_c = psl.Valid_Status__c;
        }
    }
}
}
force-app/main/default/classes/LexStockCancelController.cls
@@ -2,4 +2,64 @@
    public LexStockCancelController() {
        
    }
    @AuraEnabled
    public static Opportunity init(String recordId){
        try{
            Opportunity item=[select
             Stock_cancel_reason__c,Whether_Upload_Question_Document__c
             from Opportunity
             where id = :recordId];
            return item;
        }catch(Exception e){
            System.debug('LexStockCancelController init error: '+e.getMessage());
        }
        return null;
    }
    @AuraEnabled
    public static UpdateResult updateOppotunity(
        String recordId,
        String stStatus
    ) {
        UpdateResult result = new UpdateResult();
        result.recordId = recordId;
        try{
            Opportunity op=new Opportunity(id=recordId);
            if(stStatus!=null&&stStatus!=''){
                op.Stock_apply_status__c= stStatus;
            }
            update op;
            result.success = true;
            result.errors = new List<String>();
            return result;
        }catch(Exception e){
            result.success = false;
            result.errors = new List<String>();
            result.errors.add(e.getMessage());
            System.debug(LoggingLevel.INFO,'updateOppotunity  Error : ' + e);
        }
        return result;
    }
    @AuraEnabled
    public static String submitApprovalRequest(String recordId) {
        try{
           Approval.ProcessSubmitRequest req = new Approval.ProcessSubmitRequest();
           req.setObjectId(recordId);
           Approval.ProcessResult result = Approval.process(req);
           if(result!=null&&result.getErrors()!=null&&result.getErrors().size()>0) return result.getErrors().get(0).getMessage();
        }catch(Exception e){
            System.debug('LexStockCancelController submitApprovalRequest  error: '+e.getMessage());
            return e.getMessage();
        }
           return null;
    }
    public class UpdateResult {
        @AuraEnabled public String recordId {get;set;}
        @AuraEnabled public Boolean success {get;set;}
        @AuraEnabled public List<String> errors {get;set;}
    }
    public class InitData{
    }
}
force-app/main/default/classes/LexVisitReportCancelController.cls
New file
@@ -0,0 +1,49 @@
public with sharing class LexVisitReportCancelController {
    @AuraEnabled
    public static String init(String recordId){
        try {
            Visit_Report__c vistReport = [SELECT Id, Status__c, OwnerId from Visit_Report__c WHERE Id = :recordId];
            UserResult currentUser = userInfoOwner();
            if(currentUser.Id == vistReport.OwnerId && vistReport.Status__c=='草案中'){
                Visit_Report__c updateData = new Visit_Report__c();
                updateData.Id = vistReport.Id;
                UPDATE updateData;
                return '取消成功';
            }else{
                return '只草案中状态及同行报告书的所有人可以取消';
            }
        }
        catch (Exception e) {
           return e.getMessage();
        }
    }
    //获取当前登录人的Id
    public static UserResult userInfoOwner() {
        UserResult result = new UserResult();
        ID myUserID = UserInfo.getUserId();
        try {
            User tempUser =
                [select id from user where id = : myUserID ];
            result.id = tempUser.id;
        } catch (exception e) {
            result.result = e.getMessage();
        }
        return result;
    }
    public class UserResult {
        @AuraEnabled
        public string result;
        public UserResult( ) {
            result = 'Success';
        }
        @AuraEnabled
        public string id;
        //20210105 CHAN-BWX3YU you end
    }
}
force-app/main/default/classes/LexVisitReportCancelController.cls-meta.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>50.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/classes/PAEDecisionRecordController.cls
@@ -15,6 +15,7 @@
        get;
        set;
    }
    public Integer pageLimit{get;set;}
    public String ASac_ASrc;
    public String RepairId {
        get;
@@ -128,6 +129,7 @@
        RecordTypeName = ApexPages.currentPage().getParameters().get('RecordTypeIds');
        productIdx = '';
        updateIsPaeMap = false;
        pageLimit = Integer.valueOf(System.Label.mpddetPageLimitsize);//系统标签
    }
    public void init() {
        editAble = true;
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.js
New file
@@ -0,0 +1,58 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { updateRecord } from 'lightning/uiRecordApi';
import abandon from '@salesforce/apex/AssetMaintainHeaderWebService.abandon';
import applyPermission from '@salesforce/apex/AssetMaintainHeaderWebService.applyPermission';
export default class lexAssetMaintainHeaderAbandon extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str:"+str);
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        applyPermission().then(res=>{
            if(res=='false'){
                this.showToast('没有操作废弃的权限','error');
            }else{
                abandon({
                    amhId: this.recordId
                }).then(result=>{
                    if(result=='1'){
                        this.showToast('已启动Batch,完成时会有邮件提醒','success');
                    }else{
                        this.showToast(result,'error');
                    }
                })
            }
        })
    }
       updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexAssetMaintainHeaderAbandon/lexAssetMaintainHeaderAbandon.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.js
New file
@@ -0,0 +1,57 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { updateRecord } from 'lightning/uiRecordApi';
import deleteApply from '@salesforce/apex/AssetMaintainHeaderWebService.deleteApply';
import applyPermission from '@salesforce/apex/AssetMaintainHeaderWebService.applyPermission';
export default class lexAssetMaintainHeaderDeleteApply extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str:"+str);
             this.recordId = str;
           }
         }
     }
     connectedCallback(){
         applyPermission().then(res=>{
            if(res=='false'){
                this.showToast('没有删除申请的权限','error');
            }else if(confirm("是否确定删除?")){
                deleteApply({
                    amhId:this.recordId
                }).then(result=>{
                    if(result=='1'){
                        this.showToast('已启动Batch,完成时会有邮件提醒','success');
                    }else{
                        this.showToast(result,'error');
                    }
                })
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexAssetMaintainHeaderDeleteApply/lexAssetMaintainHeaderDeleteApply.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.css
New file
@@ -0,0 +1,11 @@
.Holder{
    position: relative;
    display: inline-block;
    width: 80px;
    height: 80px;
    text-align: center;
}
.container .uiContainerManager{
    display : none !important;
}
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="Holder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js
New file
@@ -0,0 +1,264 @@
import { LightningElement,api, track, wire } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import LightningConfirm from 'lightning/confirm';
import customJSFile from '@salesforce/resourceUrl/CommonUtilJs';
import { loadScript } from 'lightning/platformResourceLoader';
import init from '@salesforce/apex/LexContractAuthorizeController.init';
import getProfileId from '@salesforce/apex/LexContractAuthorizeController.getProfileId';
import judgeIsAssistantAppliedOutTime from '@salesforce/apex/LexContractAuthorizeController.judgeIsAssistantAppliedOutTime';
import searchOpportunity from '@salesforce/apex/LexContractAuthorizeController.searchOpportunity';
import checkDangerItem from '@salesforce/apex/LexContractAuthorizeController.checkDangerItem';
import oppCheck from '@salesforce/apex/LexContractAuthorizeController.oppCheck';
import updReg from '@salesforce/apex/LexContractAuthorizeController.updReg';
import updateOppotunity from '@salesforce/apex/LexContractAuthorizeController.updateOppotunity';
export default class lexContractAuthorize extends LightningElement {
    @api recordId;
    IsLoading=true;
    data;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
        console.log(currentPageReference);
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                console.log('str');
                console.log(str);
                this.recordId=str;
            }
        }
    }
    connectedCallback(){
        console.log(this.recordId);
        init({recordId:this.recordId}).then(result=>{
            console.log(result);
            if(result!=null){
                this.data=result;
                this.cancelSubmit().then(res=>{
                    this.IsLoading=false;
                    this.dispatchEvent(new CloseActionScreenEvent());
                });
            }
        }).catch(err=>{
            console.log("error:");
            console.log(err.message);
        }).finally(()=>{
        });
    }
    async cancelSubmit(){
        let oppid = this.data.Id;
        let decide_quote = this.data.Estimation_Decision__c;
        let complete_day = this.data.Contract_DB_complite_day__c;
        let if_contract_auth = this.data.Contract_Authorize__c;
        let if_contract_lock = this.data.Contract_Authorize_Lock__c;
        let If_Need_Authorize = this.data.If_Need_Authorize__c;
        let Authorized_DB_No =this.data.Authorized_DB_No__c;
        let profileId = await getProfileId({});
        let spoURL = this.data.SPO_URL__c;
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy start
        let DecidedQuoteNo = this.data.Estimation_No__c;
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end
        //2022-03-22 yjk SWAG-CCL6R7
        let Closing_Bid_Date = this.data.Closing_Bid_Date__c;//13.中标日
        let Closing_Bid_Date_Bid = this.data.Closing_Bid_Date_Bid__c;
        if (profileId != '00e10000000Y3o5' && profileId != '00e10000000Nab7' &&
        profileId != '00e10000000xnpR' && profileId != '00e10000000xyK6' && profileId != '00e10000000xnpW' && profileId != '00e10000000NbCE' && profileId != '00e10000000Nb7i'
        && profileId != '00e10000000xyK6') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:"您没有合同申请的权限。请联系系统管理员。"
            });
            this.dispatchEvent(event);
            return;
        }
        if(!Closing_Bid_Date){
            const event = new ShowToastEvent({
                title: '提示信息',
                message:"请填写13.中标日。"
            });
            this.dispatchEvent(event);
            return;
        }
        if (decide_quote != '1') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'请先决定报价。'
            });
            this.dispatchEvent(event);
            return;
        }
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy start
        if (DecidedQuoteNo !="") {
            let judg=await judgeIsAssistantAppliedOutTime({Quoteid:DecidedQuoteNo});
        // alert('judg得值:'+judg);
        // return;
            if(judg == 'false'){
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:'经销商协议已过期,请重新做报价计算。'
                });
                this.dispatchEvent(event);
                return;
            }
        }
        //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end
        // 20221009 ljh SWAG-CK29AJ start
        let ClosingBidDate =this.data.Closing_Bid_Date__c;
        let BidDate = this.data.Bid_Date__c;
        if( ClosingBidDate < BidDate){
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'13.中标日不能早于12.招标日'
            });
            this.dispatchEvent(event);
            return;
        }
        // 20221009 ljh SWAG-CK29AJ end
        if(If_Need_Authorize == '1' && (Authorized_DB_No == null || Authorized_DB_No == '')){
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'请先做授权申请。'
            });
            this.dispatchEvent(event);
            return;
        }
        if (this.data.Cnt_Lost_cancel_Draft__c > 0) {
            if(!confirm('询价有草案中的取消/失单报告,是否继续?')){
                return ;
            }
        } else if (this.data.Cnt_Lost_cancel_report__c - this.data.Cnt_Lost_cancel_Draft__c > 0) {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'询价有已提交的取消/失单报告。'
            });
            this.dispatchEvent(event);
            return;
        }
        console.log("11");
        // 2022-03-31 新财年价格调整 start
        let decide_date = this.data.DecideQuoteDate__c;
        let before = new Date("2022-4-1");
        if (decide_date != null && decide_date < before) {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'报价变更,请重新做Decide。'
            });
            this.dispatchEvent(event);
            return;
        }
        // 2022-03-31 新财年价格调整 end
        let sqlResult = await searchOpportunity({oppid:oppid});
        let records = sqlResult;
        console.log(records);
        if ((complete_day != null && complete_day != '') && records.Contract_Authorize_Lock__c== 'true') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'合同申请已经完成,请不要重复提交。'
            });
            this.dispatchEvent(event);
            return;
        }
        // if ('{!Opportunity.AcecideCntCheck__c}' != '1') {
        // alert('阿西赛多询价只能包含危化品,或者,普通询价不能包含危化品。');
        // return;
        // }
        console.log("111");
        if ((complete_day == null || complete_day == '') && records.Contract_Authorize_Lock__c== 'true') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'合同正在申请中,请不要重复提交。'
            });
            this.dispatchEvent(event);
            return;
        }
        if (this.data.IF_Submit__c  == '1') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'上传失败,请联系系统管理员!'
            });
            this.dispatchEvent(event);
            return;
        }
        console.log("111");
        let angency = this.data.Agency1__c;
        if(this.data.Trade__c == '外貿' || this.data.Sales_Root__c == 'OCM直接販売'){
            let rtn = await updReg({oppid:oppid});
        } else {
            if(this.data.Is_Corrosion__c == '1'){
                let rtn1 = await checkDangerItem({agency1:angency});
                if (rtn1 != 'OK') {
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:rtn1
                    });
                    this.dispatchEvent(event);
                    return;
                }
            }else{
                let rtn =  await oppCheck({oppid:oppid, saveFlg:'1'});
                if (rtn != 'OK') {
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:rtn
                    });
                    this.dispatchEvent(event);
                    return;
                }
            }
        }
        console.log("222");
        let flag=false;
        await updateOppotunity({recordId:this.recordId}).then(res=>{
            console.log(res);
            if(res!=null&&res.success==false){
                let messages ="";
                flag=true;
                messages=res.errors[0];
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:"操作失败,提示信息:"+messages,
                });
                this.dispatchEvent(event);
                return;
            }
        });
        if(flag)return;
        console.log("333");
        const event = new ShowToastEvent({
            title: '提示信息',
            message:'提交成功!请在SPO系统中完成合同申请。'
        });
        this.dispatchEvent(event);
        //window.location.reload();
        window.open(spoURL);
    }
}
force-app/main/default/lwc/lexContractAuthorize/lexContractAuthorize.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexContractAuthorize">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexStockCancel/lexStockCancel.html
@@ -1,5 +1,5 @@
<template>
      <div class="Holder" if:true={IsLoading}>
              <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
      </div>
    <div class="Holder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js
@@ -1,13 +1,15 @@
import { LightningElement,api, track, wire } from 'lwc';
// {!RequireScript("/resource/CommonUtilJs")}
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import LightningConfirm from 'lightning/confirm';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import LightningConfirm from 'lightning/confirm';
import init from '@salesforce/apex/LexStockCancelController.init';
import updateOppotunity from '@salesforce/apex/LexStockCancelController.updateOppotunity';
import submitApprovalRequest from '@salesforce/apex/LexStockCancelController.submitApprovalRequest';
export default class lexStockCancel extends LightningElement {
    @api recordId;
    IsLoading=true
    IsLoading=true;
    data;
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        console.log("进入页面");
@@ -24,89 +26,134 @@
    }
    async connectedCallback(){
    connectedCallback(){
        console.log(this.recordId);
        await init({recordId:this.recordId}).then(result=>{
        init({recordId:this.recordId}).then(result=>{
            console.log(result);
            if(result!=null){
                this.sumit().then(res=>{
                    console.log("关闭窗口");
                this.data=result;
                this.cancelSubmit().then(res=>{
                    this.IsLoading=false;
                    this.dispatchEvent(new CloseActionScreenEvent());
                }).catch(err=>{
                    console.log("error:");
                    console.log(err.message);
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:"操作失败,提示信息:"+err.message,
                    });
                    this.dispatchEvent(event);
                    //alert("操作失败,提示信息:"+err.message);
                });
                console.log("end");
                });
            }
        }).catch(err=>{
            console.log("error:");
            console.log(err.message);
            console.log("报错结束");
        }).finally(()=>{
            console.log("finally");
        });
    }
    async cancelSubmit(){
        let reason = this.data.Stock_cancel_reason__c;
        if (reason == null || reason == '') {
            const event = new ShowToastEvent({
                title: '提示信息',
                message:'必须填写撤销备货理由。'
            });
            this.dispatchEvent(event);
            return;
        }
        // CHAN-BCS8T5 LHJ 20190604 Start
        let stage = this.data.Whether_Upload_Question_Document__c;
        if (stage == '0') {
            const event = new ShowToastEvent({
                title: "提示信息",
                message:'请上传质疑函。'
            });
            this.dispatchEvent(event);
            return;
        }
        // CHAN-BCS8T5 LHJ 20190604 End
        const resul = await LightningConfirm.open({
            message: "一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?",
            variant: 'headerless',
            label: '提示信息',
            // setting theme would have no effect
        });
        if (resul==false) {
            return;
        }
        let flag=true;
        await updateOppotunity({recordId:this.recordId,stStatus:"撤销填写完毕"}).then(res=>{
            console.log(res);
            if(res!=null&&res.success==false){
                let messages ="";
                flag=false;
                messages=res.errors[0];
                const event = new ShowToastEvent({
                    title: '提示信息',
                    message:"操作失败,提示信息:"+messages
                });
                this.dispatchEvent(event);
                return;
            }
        })
        if(flag==false)return;
        // let rac = new sforce.SObject("Opportunity");
        // rac.Id = "{!Opportunity.Id}";
        // rac.Stock_apply_status__c = "撤销填写完毕";
        // let result = sforce.connection.update([rac]);
        // let messages = getConnectDMLErrorMessages(result);
        // if (messages.length > 0) {
        //     alert(messages.join("\n"));
        //     return;
        // }
        let ress;
          await submitApprovalRequest({recordId:this.recordId}).then(res=>{
              console.log(res);
              ress=res;
          })
          console.log("777");
        if (ress != null) {
            // let back = new window.sforce.SObject("Opportunity");
            // back.Id = "{!Opportunity.Id}";
            // back.Stock_apply_status__c = "批准";
            // let backResult = sforce.connection.update([back]);
            // backMessages = getConnectDMLErrorMessages(backResult);
            // if (backMessages.length > 0) {
            //     showTost("提示信息",backMessages.join("\n"));
            //     return;
            // }
            // let errmsg = processResults[0].errors.message.toString();
            // showTost("提示信息",errmsg);
            await updateOppotunity({recordId:this.recordId,stStatus: "批准"}).then(res=>{
                console.log(res);
                if(res!=null&&res.success==false){
                    let messages ="";
                    flag=false;
                    messages=res.errors[0];
                    const event = new ShowToastEvent({
                        title: '提示信息',
                        message:"操作失败,提示信息:"+messages,
                    });
                    this.dispatchEvent(event);
                    return;
                }
            });
            if(flag==false)return;
            const event = new ShowToastEvent({
                title: '提示信息',
                message:ress
            });
            this.dispatchEvent(event);
            return;
        }
        // window.location.reload();
    };
    showTost(title,message){
        
    }
    async sumit(){
        // var reason = '{!Opportunity.Stock_cancel_reason__c}';
        // if (reason == null || reason == '') {
        //     alert('必须填写撤销备货理由。');
        //     return
        // }
        // // CHAN-BCS8T5 LHJ 20190604 Start
        // var stage = '{!Opportunity.Whether_Upload_Question_Document__c}';
        // if (stage == '0') {
        //     alert('请上传质疑函。');
        //     return;
        // }
        // // CHAN-BCS8T5 LHJ 20190604 End
        // if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) {
        //     return;
        // }
        // var rac = new sforce.SObject("Opportunity");
        // rac.Id = "{!Opportunity.Id}";
        // rac.Stock_apply_status__c = "撤销填写完毕";
        // var result = sforce.connection.update([rac]);
        // var messages = getConnectDMLErrorMessages(result);
        // if (messages.length > 0) {
        // alert(messages.join("\n"));
        // return;
        // }
        // var request = new sforce.ProcessSubmitRequest();
        // request.objectId = "{!Opportunity.Id}";
        // var processResults = sforce.connection.process([request]);
        // if (processResults[0].errors != null) {
        // var back = new sforce.SObject("Opportunity");
        // back.Id = "{!Opportunity.Id}";
        // back.Stock_apply_status__c = "批准";
        // var backResult = sforce.connection.update([back]);
        // backMessages = getConnectDMLErrorMessages(backResult);
        // if (backMessages.length > 0) {
        // alert(backMessages.join("\n"));
        // return;
        // }
        // var errmsg = processResults[0].errors.message.toString();
        // alert(errmsg);
        // return;
        // }
        // window.location.reload();
        // };
    }
}
force-app/main/default/lwc/lexStockCancel/lexStockCancel.js-meta.xml
@@ -2,10 +2,10 @@
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexStockCancel">
    <apiVersion>51.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.css
New file
@@ -0,0 +1,22 @@
.outerBorderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    border-top : 3px solid #565959;
}
.borderCss{
    border: 1px solid #D4D4D4;
    border-radius : 5px;
    margin-bottom : 7px;
    border-top : 3px solid #565959;
}
.headerDorderCss{
    border-top: 1px solid #565959;
    border-bottom: 1px solid #D4D4D4;
    padding:3px;
}
.centerCss{
    text-align: center;
}
.centerCss .left{
    margin-left: 100px;
}/* sample css file */
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.html
New file
@@ -0,0 +1,5 @@
<template>
    <div class="sisToOPDHolder" if:true={IsLoading}>
        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
    </div>
</template>
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.js
New file
@@ -0,0 +1,51 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import { updateRecord } from 'lightning/uiRecordApi';
import init from '@salesforce/apex/lexVisitReportCancelController.init';
export default class lexVisitReportCancel extends LightningElement {
    @api recordId;
    IsLoading = true;
    @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
        console.log(currentPageReference,'666666666666');
         if (currentPageReference) {
           const urlValue = currentPageReference.state.recordId;
           if (urlValue) {
             let str = `${urlValue}`;
             console.log("str:"+str);
             this.recordId = str;
           }
         }
     }
    connectedCallback(){
        init({
            recordId:this.recordId
        }).then(res=>{
            if(res == '取消成功'){
                this.showToast('取消成功','success');
            }else{
                this.showToast(res,'warning');
            }
        })
    }
    updateRecordView() {
        updateRecord({fields: { Id: this.recordId }});
    }
    showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        if(type == 'success'){
            this.updateRecordView();
        }
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
}
force-app/main/default/lwc/lexVisitReportCancel/lexVisitReportCancel.js-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
    <apiVersion>54.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordPage</target>
        <target>lightning__AppPage</target>
        <target>lightning__HomePage</target>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>
force-app/main/default/pages/ConsumApplySplit.page
@@ -1,4 +1,5 @@
<apex:page controller="ConsumApplySplitController" action="{!init}" showHeader="false">
<!--20230427 zq <apex:page controller="ConsumApplySplitController" action="{!init}" showHeader="false"> -->
  <apex:page lightningStylesheets = "true" controller="ConsumApplySplitController" action="{!init}" showHeader="false">
    <head>
      <title>备品借出申请分单</title>
      <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
force-app/main/default/pages/ConsumAssignCancel.page
@@ -1,97 +1,98 @@
<apex:page controller="ConsumAssignCancelController" showHeader="false" sidebar="false" id="allPage" action="{!init}">
<head>
    <title>耗材取消明细申请</title>
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
    <apex:stylesheet value="{!URLFOR($Resource.AccessorySelectCss)}"/>
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
    <apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
</head>
<script type="text/javascript">
    // 編集チェック
    function setChangeFlg(lineno) {
        // with checkbox
        if(document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck') !=null){
            var nowChk = document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked;
            var oldChk = document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowOldCheck').checked;
            console.log(nowChk,oldChk);
            if (nowChk || (nowChk != oldChk)) {
                document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + lineno + ':changeFlg').value = 1;
                // reset orderNo
                document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowOldCheck').checked = nowChk;
                resetOrderNo();
            }
            if (nowChk == false && nowChk == oldChk) {
                document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked = true;
                document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowOldCheck').checked = true;
            }
        }else{
            document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked = true;
            document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + lineno + ':changeFlg').value = 1;
        }
    }
    function applyJs() {
        var cnt = document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:currentPageRecordCnt').value;
        var Cancel_Reason = j$(escapeVfId('allPage:allForm:searchBlock:Cancel_Reason')).value();
        var cancel_count = j$(escapeVfId('allPage:allForm:searchBlock:VF_Cancel_Detail_Count')).value();
        var cancel_comment = j$(escapeVfId('allPage:allForm:searchBlock:Loaner_cancel_Remarks')).value();
        var cancel_Reasons = [];
        j$("td.dataCellBorder1.col_Cancel_Reason__c").each(function () {
            cancel_Reasons.push(j$(this))
        });
        var cancel_counts = [];
        j$("td.dataCellBorder1.col_VF_Cancel_Detail_Count__c").each(function () {
            cancel_counts.push(j$(this))
        });
        var cancel_comments = [];
        j$("td.dataCellBorder1.col_Loaner_cancel_Remarks__c").each(function () {
            cancel_comments.push(j$(this))
        });
        for (var i = 0; i < cnt; i++) {
            var lock = j$(escapeVfId('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + i + ':rowCheck'));
            if(lock.prop('checked') == true){
                if(Cancel_Reason !== ""){
                    cancel_Reasons[i].find("Select").val(Cancel_Reason);
                }
                if(cancel_count !== ""){
                    cancel_counts[i].find("input").val(cancel_count);
                }
                if(cancel_comment!==""){
                    cancel_comments[i].find("input").val(cancel_comment);
<!--20230427 zq <apex:page controller="ConsumAssignCancelController" showHeader="false" sidebar="false" id="allPage" action="{!init}"> -->
    <apex:page lightningStylesheets = "true" controller="ConsumAssignCancelController" showHeader="false" sidebar="false" id="allPage" action="{!init}">
        <head>
            <title>耗材取消明细申请</title>
            <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
            <apex:stylesheet value="{!URLFOR($Resource.AccessorySelectCss)}"/>
            <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
            <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
            <apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
        </head>
        <script type="text/javascript">
            // 編集チェック
            function setChangeFlg(lineno) {
                // with checkbox
                if(document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck') !=null){
                    var nowChk = document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked;
                    var oldChk = document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowOldCheck').checked;
                    console.log(nowChk,oldChk);
                    if (nowChk || (nowChk != oldChk)) {
                        document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + lineno + ':changeFlg').value = 1;
                        // reset orderNo
                        document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowOldCheck').checked = nowChk;
                        resetOrderNo();
                    }
                    if (nowChk == false && nowChk == oldChk) {
                        document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked = true;
                        document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowOldCheck').checked = true;
                    }
                }else{
                    document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked = true;
                    document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + lineno + ':changeFlg').value = 1;
                }
            }
        }
    }
</script>
    <apex:form id="allForm">
        <apex:outputPanel id="pageallPanel">
            <apex:pageBlock id="searchBlock" tabStyle="Report">
                <apex:pageBlockSection title="取消明细申请">
                    <apex:outputField value="{!parentObj.Name}"/>
                    <apex:outputField value="{!parentObj.Person_In_Charge__c}"/>
                    <apex:outputField value="{!parentObj.Salesdept__c}"/>
                    <apex:outputField value="{!parentObj.WorkPlace__c}"/>
                    <apex:outputField value="{!parentObj.Internal_asset_location_F__c}"/>
                    <apex:outputField value="{!parentObj.demo_purpose2__c}"/>
                    <apex:outputField value="{!parentObj.Request_shipping_day__c}"/>
                    <apex:outputField value="{!parentObj.Asset_loaner_start_date__c}"/>
                </apex:pageBlockSection>
                <apex:outputPanel >
                    <apex:outputLabel value="{!SUBSTITUTE($ObjectType.Consum_Apply_Equipment_Set__c.fields.VF_Cancel_Detail_Count__c.label,'(Sys)','')}" for="VF_Cancel_Detail_Count"/>
                    <apex:inputField style="margin-left: 5px;" value="{!pageCaes.VF_Cancel_Detail_Count__c}" id="VF_Cancel_Detail_Count"/>
                    <apex:outputLabel style="margin-left: 30px;" value="{!$ObjectType.Consum_Apply_Equipment_Set__c.fields.Cancel_Reason__c.label}" for="Cancel_Reason"/>
                    <apex:inputField style="margin-left: 5px;" value="{!pageCaes.Cancel_Reason__c}" id="Cancel_Reason"/>
                    <apex:outputLabel style="margin-left: 30px;" value="{!$ObjectType.Consum_Apply_Equipment_Set__c.fields.Loaner_cancel_Remarks__c.label}" for="VF_Cancel_Detail_Count"/>
                    <apex:inputField style="margin-left: 5px;" value="{!pageCaes.Loaner_cancel_Remarks__c}" id="Loaner_cancel_Remarks"/>
                    <apex:commandButton style="margin-left: 30px;" rerender="allForm,checEventFrame" value="适用" onclick="applyJs(); return flase;" />
                    <apex:commandButton style="margin-left: 10px;" action="{!save}" value="保存" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="windowResize();unblockUI();" />
            function applyJs() {
                var cnt = document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:currentPageRecordCnt').value;
                var Cancel_Reason = j$(escapeVfId('allPage:allForm:searchBlock:Cancel_Reason')).value();
                var cancel_count = j$(escapeVfId('allPage:allForm:searchBlock:VF_Cancel_Detail_Count')).value();
                var cancel_comment = j$(escapeVfId('allPage:allForm:searchBlock:Loaner_cancel_Remarks')).value();
                var cancel_Reasons = [];
                j$("td.dataCellBorder1.col_Cancel_Reason__c").each(function () {
                    cancel_Reasons.push(j$(this))
                });
                var cancel_counts = [];
                j$("td.dataCellBorder1.col_VF_Cancel_Detail_Count__c").each(function () {
                    cancel_counts.push(j$(this))
                });
                var cancel_comments = [];
                j$("td.dataCellBorder1.col_Loaner_cancel_Remarks__c").each(function () {
                    cancel_comments.push(j$(this))
                });
                for (var i = 0; i < cnt; i++) {
                    var lock = j$(escapeVfId('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + i + ':rowCheck'));
                    if(lock.prop('checked') == true){
                        if(Cancel_Reason !== ""){
                            cancel_Reasons[i].find("Select").val(Cancel_Reason);
                        }
                        if(cancel_count !== ""){
                            cancel_counts[i].find("input").val(cancel_count);
                        }
                        if(cancel_comment!==""){
                            cancel_comments[i].find("input").val(cancel_comment);
                        }
                    }
                }
            }
        </script>
            <apex:form id="allForm">
                <apex:outputPanel id="pageallPanel">
                    <apex:pageBlock id="searchBlock" tabStyle="Report">
                        <apex:pageBlockSection title="取消明细申请">
                            <apex:outputField value="{!parentObj.Name}"/>
                            <apex:outputField value="{!parentObj.Person_In_Charge__c}"/>
                            <apex:outputField value="{!parentObj.Salesdept__c}"/>
                            <apex:outputField value="{!parentObj.WorkPlace__c}"/>
                            <apex:outputField value="{!parentObj.Internal_asset_location_F__c}"/>
                            <apex:outputField value="{!parentObj.demo_purpose2__c}"/>
                            <apex:outputField value="{!parentObj.Request_shipping_day__c}"/>
                            <apex:outputField value="{!parentObj.Asset_loaner_start_date__c}"/>
                        </apex:pageBlockSection>
                        <apex:outputPanel >
                            <apex:outputLabel value="{!SUBSTITUTE($ObjectType.Consum_Apply_Equipment_Set__c.fields.VF_Cancel_Detail_Count__c.label,'(Sys)','')}" for="VF_Cancel_Detail_Count"/>
                            <apex:inputField style="margin-left: 5px;" value="{!pageCaes.VF_Cancel_Detail_Count__c}" id="VF_Cancel_Detail_Count"/>
                            <apex:outputLabel style="margin-left: 30px;" value="{!$ObjectType.Consum_Apply_Equipment_Set__c.fields.Cancel_Reason__c.label}" for="Cancel_Reason"/>
                            <apex:inputField style="margin-left: 5px;" value="{!pageCaes.Cancel_Reason__c}" id="Cancel_Reason"/>
                            <apex:outputLabel style="margin-left: 30px;" value="{!$ObjectType.Consum_Apply_Equipment_Set__c.fields.Loaner_cancel_Remarks__c.label}" for="VF_Cancel_Detail_Count"/>
                            <apex:inputField style="margin-left: 5px;" value="{!pageCaes.Loaner_cancel_Remarks__c}" id="Loaner_cancel_Remarks"/>
                            <apex:commandButton style="margin-left: 30px;" rerender="allForm,checEventFrame" value="适用" onclick="applyJs(); return flase;" />
                            <apex:commandButton style="margin-left: 10px;" action="{!save}" value="保存" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="windowResize();unblockUI();" />
                        </apex:outputPanel>
                    </apex:pageBlock>
                    <apex:outputPanel id="message">
                        <apex:pageMessages />
                    </apex:outputPanel>
                    <c:RelationListPagingCmp id="cmpid" pgController="{!this}" hasCheckbox="true"/>
                </apex:outputPanel>
            </apex:pageBlock>
            <apex:outputPanel id="message">
                <apex:pageMessages />
            </apex:outputPanel>
            <c:RelationListPagingCmp id="cmpid" pgController="{!this}" hasCheckbox="true"/>
        </apex:outputPanel>
    </apex:form>
</apex:page>
            </apex:form>
        </apex:page>
force-app/main/default/pages/ConsumTrial.page
@@ -1,842 +1,843 @@
<apex:page standardController="Consum_Apply__c" extensions="ConsumTrialController" showHeader="false" action="{!init}" id="allPage">
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
    <apex:stylesheet value="{!URLFOR($Resource.ConsumTrialPageCss)}"/>
    <apex:includeScript value="{!URLFOR($Resource.ReceivingNotePageJS)}"/>
    <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
    <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }"/>
    <script type="text/javascript">
        var txIds = [];
        var trialuserMap={};
    </script>
    <apex:form id="allForm">
        <style>
            table.headTable td   {
                /*min-width:150px;*/
            }
            .left20 {
                margin-left: 20px;
            }
            body .pbBody table.list tr.headerRow td.colViewing {
              background-image:url('{!URLFOR($Resource.IconResizeMinus_5)}') ;
              background-repeat:no-repeat;
            }
            body .pbBody table.list tr.headerRow td.colUnHideIcon {
              background-image:url('{!URLFOR($Resource.IconResizePlus_5)}');
              background-repeat:no-repeat;
            }
        </style>
        <script type="text/javascript">
        var heightAjustment = 120;
        var widthAjustment = 30;
        var staticResource = JSON.parse('{!staticResource}');
<!--20230427 zq <apex:page standardController="Consum_Apply__c" extensions="ConsumTrialController" showHeader="false" action="{!init}" id="allPage"> -->
    <apex:page lightningStylesheets="true" standardController="Consum_Apply__c" extensions="ConsumTrialController" showHeader="false" action="{!init}" id="allPage">
        <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
        <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
        <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
        <apex:stylesheet value="{!URLFOR($Resource.ConsumTrialPageCss)}"/>
        <apex:includeScript value="{!URLFOR($Resource.ReceivingNotePageJS)}"/>
        <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
        <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }"/>
        
        // 适用按钮
        function applyJs() {
            var appliedFlag = true;
            var selectFlag = true;
            var isCheckFlag = false;
            var ShowDemonstration = j$(escapeVfId('allPage:allForm:searchBlock:ShowDemonstration')).val();  // 展示/演示
            var OperationType = j$(escapeVfId('allPage:allForm:searchBlock:OperationType')).val();  // 术式类别
            var ConsumStartDate = j$(escapeVfId('allPage:allForm:searchBlock:ConsumStartDate')).val();  // 预计使用日
            var CaseOrAnimalOrgan = j$(escapeVfId('allPage:allForm:searchBlock:CaseOrAnimalOrgan')).val();  // 病例/动物脏器
            var TrialUser= j$(escapeVfId('allPage:allForm:searchBlock:TrialUser')).val();  // 试用者
            var FollowerUserid = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkid')).val();  // 跟台者Id
            var FollowerUsername = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkold')).val();  // 跟台者Name
            var ShowDemonstrations = []; // 展示/演示
            j$("td.intf.dataCellBorder1.Show_demonstration__c").each(function() {
                ShowDemonstrations.push(j$(this));
            });
            var OperationTypes = [];  // 术式类别
            j$("td.intf.dataCellBorder1.Operation_Type__c").each(function() {
                OperationTypes.push(j$(this));
            });
            var ConsumStartDates = [];  // 备品预计使用日
            j$("td.intf.dataCellBorder1.Consum_Start_Date__c").each(function() {
                ConsumStartDates.push(j$(this));
            });
            var CaseOrAnimalOrgans = [];  // 病例/动物脏器
            j$("td.intf.dataCellBorder1.Case_OR_animal_organ__c").each(function() {
                CaseOrAnimalOrgans.push(j$(this));
            });
            var TrialUsers = [];  // 试用者
            j$("td.intf.dataCellBorder1.Trial_User__c").each(function() {
                TrialUsers.push(j$(this));
            });
            var FollowerUsers = [];  // 跟台者:
            j$("td.intf.dataCellBorder1.Follower_User__c").each(function() {
                FollowerUsers.push(j$(this));
            });
            var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
            for (var i = 0; i < currentPageRecordCount; i++) {
                var checkBox = j$(escapeVfId('allPage:allForm:dataBlock:dataline_L:' + i + ':rowCheck'));
                if (checkBox.prop('checked') == true) {
                    isCheckFlag = true;
                    // 'x'时不适用
                    if (ShowDemonstration != 'x') {
                        ShowDemonstrations[i].find("select").val(ShowDemonstration);
                        appliedFlag = false;
                    }
                    if (OperationType != 'x') {
                        OperationTypes[i].find("select").val(OperationType);
                        appliedFlag = false;
                    }
                    if (ConsumStartDate != null && ConsumStartDate != '' && typeof(ConsumStartDate) != "undefined") {
                        ConsumStartDates[i].find("input").val(ConsumStartDate);
                        appliedFlag = false;
                    }
                    if (CaseOrAnimalOrgan != 'x') {
                        CaseOrAnimalOrgans[i].find("select").val(CaseOrAnimalOrgan);
                        appliedFlag = false;
                    }
                    if (TrialUser != null && TrialUser != '' && typeof(TrialUser) != "undefined") {
                        TrialUsers[i].find("input").val(TrialUser);
                        appliedFlag = false;
                    }
                    // if (equipmentTypes[i].find("select").val() != productCategory && productCategory != '') {
                    if (FollowerUserid != null && parseInt(FollowerUserid) != 0 && typeof(FollowerUserid) != "undefined"
                        && FollowerUsername != null && FollowerUsername != 'null' && typeof(FollowerUsername) != "undefined") {
                        // setChangeFlg();
                        var inputs = FollowerUsers[i].find("input");
                        for (var j = 0; j < inputs.length; j++) {
                            if(inputs[j].name.endsWith('_lkid')) {
                                inputs[j].value = FollowerUserid;
        <script type="text/javascript">
            var txIds = [];
            var trialuserMap={};
        </script>
        <apex:form id="allForm">
            <style>
                table.headTable td   {
                    /*min-width:150px;*/
                }
                .left20 {
                    margin-left: 20px;
                }
                body .pbBody table.list tr.headerRow td.colViewing {
                  background-image:url('{!URLFOR($Resource.IconResizeMinus_5)}') ;
                  background-repeat:no-repeat;
                }
                body .pbBody table.list tr.headerRow td.colUnHideIcon {
                  background-image:url('{!URLFOR($Resource.IconResizePlus_5)}');
                  background-repeat:no-repeat;
                }
            </style>
            <script type="text/javascript">
            var heightAjustment = 120;
            var widthAjustment = 30;
            var staticResource = JSON.parse('{!staticResource}');
            // 适用按钮
            function applyJs() {
                var appliedFlag = true;
                var selectFlag = true;
                var isCheckFlag = false;
                var ShowDemonstration = j$(escapeVfId('allPage:allForm:searchBlock:ShowDemonstration')).val();  // 展示/演示
                var OperationType = j$(escapeVfId('allPage:allForm:searchBlock:OperationType')).val();  // 术式类别
                var ConsumStartDate = j$(escapeVfId('allPage:allForm:searchBlock:ConsumStartDate')).val();  // 预计使用日
                var CaseOrAnimalOrgan = j$(escapeVfId('allPage:allForm:searchBlock:CaseOrAnimalOrgan')).val();  // 病例/动物脏器
                var TrialUser= j$(escapeVfId('allPage:allForm:searchBlock:TrialUser')).val();  // 试用者
                var FollowerUserid = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkid')).val();  // 跟台者Id
                var FollowerUsername = j$(escapeVfId('allPage:allForm:searchBlock:FollowerUser_lkold')).val();  // 跟台者Name
                var ShowDemonstrations = []; // 展示/演示
                j$("td.intf.dataCellBorder1.Show_demonstration__c").each(function() {
                    ShowDemonstrations.push(j$(this));
                });
                var OperationTypes = [];  // 术式类别
                j$("td.intf.dataCellBorder1.Operation_Type__c").each(function() {
                    OperationTypes.push(j$(this));
                });
                var ConsumStartDates = [];  // 备品预计使用日
                j$("td.intf.dataCellBorder1.Consum_Start_Date__c").each(function() {
                    ConsumStartDates.push(j$(this));
                });
                var CaseOrAnimalOrgans = [];  // 病例/动物脏器
                j$("td.intf.dataCellBorder1.Case_OR_animal_organ__c").each(function() {
                    CaseOrAnimalOrgans.push(j$(this));
                });
                var TrialUsers = [];  // 试用者
                j$("td.intf.dataCellBorder1.Trial_User__c").each(function() {
                    TrialUsers.push(j$(this));
                });
                var FollowerUsers = [];  // 跟台者:
                j$("td.intf.dataCellBorder1.Follower_User__c").each(function() {
                    FollowerUsers.push(j$(this));
                });
                var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
                for (var i = 0; i < currentPageRecordCount; i++) {
                    var checkBox = j$(escapeVfId('allPage:allForm:dataBlock:dataline_L:' + i + ':rowCheck'));
                    if (checkBox.prop('checked') == true) {
                        isCheckFlag = true;
                        // 'x'时不适用
                        if (ShowDemonstration != 'x') {
                            ShowDemonstrations[i].find("select").val(ShowDemonstration);
                            appliedFlag = false;
                        }
                        if (OperationType != 'x') {
                            OperationTypes[i].find("select").val(OperationType);
                            appliedFlag = false;
                        }
                        if (ConsumStartDate != null && ConsumStartDate != '' && typeof(ConsumStartDate) != "undefined") {
                            ConsumStartDates[i].find("input").val(ConsumStartDate);
                            appliedFlag = false;
                        }
                        if (CaseOrAnimalOrgan != 'x') {
                            CaseOrAnimalOrgans[i].find("select").val(CaseOrAnimalOrgan);
                            appliedFlag = false;
                        }
                        if (TrialUser != null && TrialUser != '' && typeof(TrialUser) != "undefined") {
                            TrialUsers[i].find("input").val(TrialUser);
                            appliedFlag = false;
                        }
                        // if (equipmentTypes[i].find("select").val() != productCategory && productCategory != '') {
                        if (FollowerUserid != null && parseInt(FollowerUserid) != 0 && typeof(FollowerUserid) != "undefined"
                            && FollowerUsername != null && FollowerUsername != 'null' && typeof(FollowerUsername) != "undefined") {
                            // setChangeFlg();
                            var inputs = FollowerUsers[i].find("input");
                            for (var j = 0; j < inputs.length; j++) {
                                if(inputs[j].name.endsWith('_lkid')) {
                                    inputs[j].value = FollowerUserid;
                                }
                                else if (inputs[j].name.endsWith('_lkold')
                                    || inputs[j].name.endsWith('inputField')) {
                                    inputs[j].value = FollowerUsername;
                                }
                            }
                            else if (inputs[j].name.endsWith('_lkold')
                                || inputs[j].name.endsWith('inputField')) {
                                inputs[j].value = FollowerUsername;
                            }
                            appliedFlag = false;
                        }
                        appliedFlag = false;
                    }
                }
            }
            j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
            // var clearApplyFlag = false;
            window.setTimeout(function () {
                if (ConsumStartDate == null
                    && TrialUser == null
                    && (FollowerUserid== null || FollowerUsername == null)) {  // 适用入力框全为空
                    // alert('适用区输入框为空,请输入适用值。');
                    var applyMsg = '适用区输入框为空,请输入适用值。';
                    //passApplyMsgToController(applyMsg, 'Fail');
                    return;
                }
                if (isCheckFlag == false) {
                    // alert('未勾选任何待适用数据。');
                    var applyMsg = '未勾选任何待适用数据。';
                    //passApplyMsgToController(applyMsg, 'Fail');
                    return;
                }
                if (selectFlag) {
                    if (!appliedFlag) {
                        var alertMsg = "适用完了 \r\n";
                        if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                            var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                            alertMsg += alertMsg1;
                        }
                        if (TrialUser != null && typeof(TrialUser) != "undefined") {
                            var alertMsg1 = "已将打勾数据中的 " + "试用者" + " 适用为 " + TrialUser + " \r\n";
                            alertMsg += alertMsg1;
                        }
                        if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                            && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                            var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                            alertMsg += alertMsg2;
                        }
                        // alert(alertMsg);
                        // clearApplyFlag = true;
                        j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                        //passApplyMsgToController(alertMsg, 'Success');
                    }
                } else {
                    if (!appliedFlag) {
                        var alertMsg = "适用完了 \r\n";
                        if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                            var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                            alertMsg += alertMsg1;
                        }
                        if (TrialUser != null && typeof(TrialUser) != "undefined") {
                            var alertMsg1 = "已将打勾数据中的 " + " 试用者" + " 适用为 " + TrialUser + " \r\n";
                            alertMsg += alertMsg1;
                        }
                        if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                            && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                            var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                            alertMsg += alertMsg2;
                        }
                        //passApplyMsgToController(alertMsg, 'Success');
                        j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                    } else {
                        var alertMsg = "其他选项: " + otherSelectOptionText +"中无此选项值" + otherSelectOptionValue + ",无法更新。";
                        //passApplyMsgToController(alertMsg, 'Fail');
                    }
                }
            }, 5);
        }
        function clearApplyValue() {
            var clearApplyValueFlag = j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val();
            if(clearApplyValueFlag) {
                j$(escapeVfId('{!$Component.stockId}')).val('');
                j$(escapeVfId('{!$Component.applyEquipmentTypeId}')).val('');
                j$(escapeVfId('{!$Component.applyAssetTypeListId}')).val('');
                j$(escapeVfId('{!$Component.otherSelectionId}')).val('');
            }
            j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
        }
        function checkSavingJs() {
            var isSavingSuccess = j$(escapeVfId('isSavingSuccessId')).val();
            // alert(isSavingSuccess);
            if (isSavingSuccess != 'false') {
                //setSaveSuccessMsg();
            }
        }
        function resetMove(d, up, len) {
            var line = j$(escapeVfId(d)).find('input')[0].value;
            resetMoveUpDown(up, parseInt(line), len);
        }
        function moveToTop(d, up, len) {
            var line = j$(escapeVfId(d)).find('input')[0].value;
            console.log(line);
            var isSuccessful = true;
            if (up) {
                for(var i = parseInt(line) ; i > 1 && isSuccessful; i-- ) {
                    isSuccessful = resetMoveUpDown(up, i, len);
                }
            }
            else {
                for(var i = parseInt(line) ; i < len && isSuccessful; i++ ) {
                    isSuccessful = resetMoveUpDown(up, i, len);
                }
            }
            unblockUI();
        }
        function resetMoveUpDown(up, line, len) {
            var items = j$(".dataCellBorder2");
            var item1 = j$("td.intf.dataCellBorder1.Degree_Of_Importance__c");
            var item2 = j$("td.dataCellBorder1.col_Fixture_Model_No__c");
            var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
            var isSuccessful = false;
            // alert(item1);
            var i = line - 1;
            var i1 = line + 1;
            // var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
            if (up == true){
                var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                var trL = j$('#tableData_L').find('tbody').find('tr:eq(' + (i) + ')');
                if(line != 1) {
                    var model1 = j$(item2[i - 1]).find("span").text();
                    var model2 = j$(item2[i]).find("span").text();
                    if (model1 != model2) {
                        unblockUI();
                j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
                // var clearApplyFlag = false;
                window.setTimeout(function () {
                    if (ConsumStartDate == null
                        && TrialUser == null
                        && (FollowerUserid== null || FollowerUsername == null)) {  // 适用入力框全为空
                        // alert('适用区输入框为空,请输入适用值。');
                        var applyMsg = '适用区输入框为空,请输入适用值。';
                        //passApplyMsgToController(applyMsg, 'Fail');
                        return;
                    }
                    var v1 = j$(item1[i - 1]).find("input").val();
                    var v2 = j$(item1[i]).find("input").val();
                    setChangeFlg(i-1);
                    setChangeFlg(i);
                    j$(items[i - 1]).children('.ordernocls').val(line);
                    j$(items[i]).children('.ordernocls').val(line - 1);
                    j$(item1[i - 1]).find("input").val(v2);
                    j$(item1[i]).find("input").val(v1);
                    isSuccessful = true;
                    // j$(item1[i - 1]).children('.ordernocls').val('' + line);
                    // j$(item1[i]).children('.ordernocls').val('' + i);
                    if (isCheckFlag == false) {
                        // alert('未勾选任何待适用数据。');
                        var applyMsg = '未勾选任何待适用数据。';
                        //passApplyMsgToController(applyMsg, 'Fail');
                        return;
                    }
                    if (selectFlag) {
                        if (!appliedFlag) {
                            var alertMsg = "适用完了 \r\n";
                            if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (TrialUser != null && typeof(TrialUser) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + "试用者" + " 适用为 " + TrialUser + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                                && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                                var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                                alertMsg += alertMsg2;
                            }
                            // alert(alertMsg);
                            // clearApplyFlag = true;
                            j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                            //passApplyMsgToController(alertMsg, 'Success');
                        }
                    } else {
                        if (!appliedFlag) {
                            var alertMsg = "适用完了 \r\n";
                            if (ConsumStartDate != null && typeof(ConsumStartDate) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + "备品预计使用日" + " 适用为 " + ConsumStartDate + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (TrialUser != null && typeof(TrialUser) != "undefined") {
                                var alertMsg1 = "已将打勾数据中的 " + " 试用者" + " 适用为 " + TrialUser + " \r\n";
                                alertMsg += alertMsg1;
                            }
                            if (FollowerUserid != null && typeof(FollowerUserid) != "undefined"
                                && FollowerUsername != null && typeof(FollowerUsername) != "undefined") {
                                var alertMsg2 = "已将打勾数据中的 " + "跟台者:" + " 适用为 " + FollowerUsername + " \r\n";
                                alertMsg += alertMsg2;
                            }
                            //passApplyMsgToController(alertMsg, 'Success');
                            j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(true);
                        } else {
                            var alertMsg = "其他选项: " + otherSelectOptionText +"中无此选项值" + otherSelectOptionValue + ",无法更新。";
                            //passApplyMsgToController(alertMsg, 'Fail');
                        }
                    }
                }, 5);
            }
            function clearApplyValue() {
                var clearApplyValueFlag = j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val();
                if(clearApplyValueFlag) {
                    j$(escapeVfId('{!$Component.stockId}')).val('');
                    j$(escapeVfId('{!$Component.applyEquipmentTypeId}')).val('');
                    j$(escapeVfId('{!$Component.applyAssetTypeListId}')).val('');
                    j$(escapeVfId('{!$Component.otherSelectionId}')).val('');
                }
                j$(escapeVfId('allPage:allForm:pageBlockButton1:clearApplyFlagId')).val(false);
            }
            function checkSavingJs() {
                var isSavingSuccess = j$(escapeVfId('isSavingSuccessId')).val();
                // alert(isSavingSuccess);
                if (isSavingSuccess != 'false') {
                    //setSaveSuccessMsg();
                }
            }
            function resetMove(d, up, len) {
                var line = j$(escapeVfId(d)).find('input')[0].value;
                resetMoveUpDown(up, parseInt(line), len);
            }
            function moveToTop(d, up, len) {
                var line = j$(escapeVfId(d)).find('input')[0].value;
                console.log(line);
                var isSuccessful = true;
                if (up) {
                    for(var i = parseInt(line) ; i > 1 && isSuccessful; i-- ) {
                        isSuccessful = resetMoveUpDown(up, i, len);
                    }
                }
                else {
                    j$(items[i]).children('.ordernocls').val(line);
                }
                var tr1 = j$(items[i]).parents("tr");
                tr.prev().before(tr);
                trL.prev().before(trL);
            }
            else {
                if(line < currentPageRecordCount) {
                    var model1 = j$(item2[i]).find("span").text();
                    var model2 = j$(item2[line]).find("span").text();
                    if (model1 != model2) {
                        unblockUI();
                        return;
                    for(var i = parseInt(line) ; i < len && isSuccessful; i++ ) {
                        isSuccessful = resetMoveUpDown(up, i, len);
                    }
                }
                unblockUI();
            }
            function resetMoveUpDown(up, line, len) {
                var items = j$(".dataCellBorder2");
                var item1 = j$("td.intf.dataCellBorder1.Degree_Of_Importance__c");
                var item2 = j$("td.dataCellBorder1.col_Fixture_Model_No__c");
                var currentPageRecordCount = j$(escapeVfId('allPage:allForm:dataBlock:currentPageRecordCnt')).val();
                var isSuccessful = false;
                // alert(item1);
                var i = line - 1;
                var i1 = line + 1;
                // var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                if (up == true){
                    var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                    var trL = j$('#tableData_L').find('tbody').find('tr:eq(' + (i) + ')');
                    var v1 = j$(item1[i]).find("input").val();
                    var v2 = j$(item1[i + 1]).find("input").val();
                    setChangeFlg(i);
                    setChangeFlg(i + 1);
                    j$(items[i]).children('.ordernocls').val(line + 1);
                    j$(items[i + 1]).children('.ordernocls').val(line);
                    j$(item1[i]).find("input").val(v2);
                    j$(item1[line]).find("input").val(v1);
                    if(line != 1) {
                        var model1 = j$(item2[i - 1]).find("span").text();
                        var model2 = j$(item2[i]).find("span").text();
                        if (model1 != model2) {
                            unblockUI();
                            return;
                        }
                        var v1 = j$(item1[i - 1]).find("input").val();
                        var v2 = j$(item1[i]).find("input").val();
                        setChangeFlg(i-1);
                        setChangeFlg(i);
                        j$(items[i - 1]).children('.ordernocls').val(line);
                        j$(items[i]).children('.ordernocls').val(line - 1);
                        j$(item1[i - 1]).find("input").val(v2);
                        j$(item1[i]).find("input").val(v1);
                        isSuccessful = true;
                        // j$(item1[i - 1]).children('.ordernocls').val('' + line);
                        // j$(item1[i]).children('.ordernocls').val('' + i);
                    }
                    else {
                        j$(items[i]).children('.ordernocls').val(line);
                    }
                    var tr1 = j$(items[i]).parents("tr");
                    tr.next().after(tr);
                    trL.next().after(trL);
                    isSuccessful = true;
                    tr.prev().before(tr);
                    trL.prev().before(trL);
                }
                else {
                    j$(items[i]).children('.ordernocls').val(line);
                    if(line < currentPageRecordCount) {
                        var model1 = j$(item2[i]).find("span").text();
                        var model2 = j$(item2[line]).find("span").text();
                        if (model1 != model2) {
                            unblockUI();
                            return;
                        }
                        var tr = j$('#tableData').find('tbody').find('tr:eq(' + (i) + ')');
                        var trL = j$('#tableData_L').find('tbody').find('tr:eq(' + (i) + ')');
                        var v1 = j$(item1[i]).find("input").val();
                        var v2 = j$(item1[i + 1]).find("input").val();
                        setChangeFlg(i);
                        setChangeFlg(i + 1);
                        j$(items[i]).children('.ordernocls').val(line + 1);
                        j$(items[i + 1]).children('.ordernocls').val(line);
                        j$(item1[i]).find("input").val(v2);
                        j$(item1[line]).find("input").val(v1);
                        var tr1 = j$(items[i]).parents("tr");
                        tr.next().after(tr);
                        trL.next().after(trL);
                        isSuccessful = true;
                    }
                    else {
                        j$(items[i]).children('.ordernocls').val(line);
                    }
                }
                unblockUI();
                return isSuccessful;
            }
            function refopener() {
                window.opener.location.href = '/apex/ConsumTrial?id={!parId}';
            }
            if (window.history.pushState) {
                if (window.location.href.indexOf('&saveType=1') > -1) {
                    refopener();
                }
                window.history.pushState({}, "", window.location.href.replace('&saveType=1', ''));
            }
            //2022 02 24 张华建 display PI Data start
            var rowBList;
            var TrialUser = {};
            var ids = [];
            function HasError(){
                // let e = document.getElementById("allPage:allForm:message");
                // if (!e) {
                //     return false;
                // }
                // let divs = j$(e).find("div.message");
                // for (let i = 0; i < divs.length; i++) {
                //     for (let j = 0; j < divs[i].classList.length; j++) {
                //         for(let cls in divs[i].classList){
                //             console.log('cls = ' + cls);
                //             if (cls.indexOf('error')>-1) {
                //                 return true;
                //             }
                //         }
                //     }
                // }
                // return false;
                if(document.getElementById("allPage:allForm:message").children[0] && document.getElementById("allPage:allForm:message").children[0].children[0].className == 'message errorM3'){
                    return true;
                }
                return false;
            }
            function isError(){
                if(HasError()){
                    alert('xxxx');
                }
            }
            unblockUI();
            return isSuccessful;
        }
        function refopener() {
            window.opener.location.href = '/apex/ConsumTrial?id={!parId}';
        }
        if (window.history.pushState) {
            if (window.location.href.indexOf('&saveType=1') > -1) {
                refopener();
            }
            window.history.pushState({}, "", window.location.href.replace('&saveType=1', ''));
        }
        //2022 02 24 张华建 display PI Data start
        var rowBList;
        var TrialUser = {};
        var ids = [];
        function HasError(){
            // let e = document.getElementById("allPage:allForm:message");
            // if (!e) {
            //     return false;
            // }
            // let divs = j$(e).find("div.message");
            // for (let i = 0; i < divs.length; i++) {
            //     for (let j = 0; j < divs[i].classList.length; j++) {
            //         for(let cls in divs[i].classList){
            //             console.log('cls = ' + cls);
            //             if (cls.indexOf('error')>-1) {
            //                 return true;
            //             }
            //         }
            //     }
            // }
            // return false;
            if(document.getElementById("allPage:allForm:message").children[0] && document.getElementById("allPage:allForm:message").children[0].children[0].className == 'message errorM3'){
                return true;
            }
            return false;
        }
        function isError(){
            if(HasError()){
                alert('xxxx');
            }
        }
        queryUser();
        function q1(){
            var p = new Promise(function(resolve, reject){
                rowBList = JSON.parse('{!rowListString}')
                var x = 0;
                var y = 0;
                let searchCallBack = function searchCallBack(result){
                    let contacts = result.object;
                    if(contacts == null){
                        return;
            queryUser();
            function q1(){
                var p = new Promise(function(resolve, reject){
                    rowBList = JSON.parse('{!rowListString}')
                    var x = 0;
                    var y = 0;
                    let searchCallBack = function searchCallBack(result){
                        let contacts = result.object;
                        if(contacts == null){
                            return;
                        }
                        let temp = {}
                        temp.trialUser = contacts.trialUser;
                        TrialUser[contacts.dataId] = temp;
                        x++;
                    };
                    for(var i=0;i<rowBList.length;i++){
                        if(rowBList[i].rnd.AWS_Data_Id__c ){
                            y++;
                            ids.push(rowBList[i].rnd.AWS_Data_Id__c + '_' + rowBList[i].rnd.Id);
                            AWSService.query(staticResource.queryUrl,rowBList[i].rnd.AWS_Data_Id__c,searchCallBack,staticResource.token);
                        }
                    }
                    let temp = {}
                    temp.trialUser = contacts.trialUser;
                    TrialUser[contacts.dataId] = temp;
                    x++;
                };
                for(var i=0;i<rowBList.length;i++){
                    if(rowBList[i].rnd.AWS_Data_Id__c ){
                        y++;
                    var id = setInterval(function(){
                        if(x == y){
                            console.log('success')
                            resolve('success');
                            clearInterval(id);
                        }
                    },500);
                });
                return p;
            }
            function q2(value){
                var p = new Promise(function(resolve, reject){
                    console.log('进入q2'+value)
                    for(var i=0;i<ids.length;i++){
                        console.log('i = '+i);
                        //document.getElementById(ids[i]).children[0].children[0].children[0].value = TrialUser[ids[i].substring(0,18)].trialUser;
                        document.getElementById(ids[i]).children[0].children[0].children[0].value = TrialUser[ids[i].split('_')[0]].trialUser;      //zhj 改善取值 2022-12-30
                        console.log('i = '+i);
                    }
                });
            }
            function queryUser(){
                debugger
                rowBList = JSON.parse('{!rowListString}')
                console.log('pageB.fixMode = '+'{!pageB.fixMode}')
                if('{!pageB.fixMode}' == 'true'){
                    q1().then(function(data){
                        return q2(data);
                    })
                    unblockUI();
                }else{
                    blockme();
                    console.log(rowBList)
                    let searchCallBack = function searchCallBack(result){
                        let contacts = result.object;
                        if(contacts == null){
                            return;
                        }
                        let temp = {}
                        temp.trialUser = contacts.trialUser;
                        TrialUser[contacts.dataId] = temp;
                    };
                    for(var i=0;i<rowBList.length;i++){
                        ids.push(rowBList[i].rnd.AWS_Data_Id__c + '_' + rowBList[i].rnd.Id);
                        AWSService.query(staticResource.queryUrl,rowBList[i].rnd.AWS_Data_Id__c,searchCallBack,staticResource.token);
                    }
                }
                var id = setInterval(function(){
                    if(x == y){
                        console.log('success')
                        resolve('success');
                        clearInterval(id);
                    }
                },500);
            });
            return p;
        }
        function q2(value){
            var p = new Promise(function(resolve, reject){
                console.log('进入q2'+value)
                for(var i=0;i<ids.length;i++){
                    console.log('i = '+i);
                    //document.getElementById(ids[i]).children[0].children[0].children[0].value = TrialUser[ids[i].substring(0,18)].trialUser;
                    document.getElementById(ids[i]).children[0].children[0].children[0].value = TrialUser[ids[i].split('_')[0]].trialUser;      //zhj 改善取值 2022-12-30
                    console.log('i = '+i);
                }
            });
        }
        function queryUser(){
            debugger
            rowBList = JSON.parse('{!rowListString}')
            console.log('pageB.fixMode = '+'{!pageB.fixMode}')
            if('{!pageB.fixMode}' == 'true'){
                q1().then(function(data){
                    return q2(data);
                })
                unblockUI();
            }else{
                blockme();
                console.log(rowBList)
                let searchCallBack = function searchCallBack(result){
                    let contacts = result.object;
                    if(contacts == null){
                        return;
                    }
                    let temp = {}
                    temp.trialUser = contacts.trialUser;
                    TrialUser[contacts.dataId] = temp;
                };
                for(var i=0;i<rowBList.length;i++){
                    ids.push(rowBList[i].rnd.AWS_Data_Id__c + '_' + rowBList[i].rnd.Id);
                    AWSService.query(staticResource.queryUrl,rowBList[i].rnd.AWS_Data_Id__c,searchCallBack,staticResource.token);
                }
                unblockUI();
            }
        }
        function showPIDiv(awsDataId){
            if(awsDataId.length == 0){
                return
            }
            let index = awsDataId.indexOf('_');
            console.log('show index = ' + index);
            if(TrialUser[awsDataId.substring(0,index)] == null){
                return
            }
            console.log('awsDataId Value:'+awsDataId);
            let parentNode = document.getElementById(awsDataId);
            let createDiv = document.createElement("div");
            createDiv.id = awsDataId+"_PI";
            let piInformation = TrialUser[awsDataId.substring(0,index)].trialUser
            //let piInformation = 'Name:'+contact['943114607025717249'].lastName +'\n' +'Phone:'+contact['943114607025717249'].phone
            createDiv.innerText = piInformation;
            let x=window.event.x;
            let y=window.event.y;
            createDiv.style.left=x;
            createDiv.style.top=y;
            createDiv.style.background="#dddddd";
            createDiv.style.position = "absolute";
            parentNode.appendChild(createDiv);
            parentNode.style.position = "relative";
        }
        function hidePIDiv(awsDataId){
            if(awsDataId.length == 0){
                return
            }
            let index = awsDataId.indexOf('_');
            console.log('show index = ' + index);
            if(TrialUser[awsDataId.substring(0,index)] == null){
                return
            }
            document.getElementById(awsDataId+'_PI').remove();
        }
        function q3(){
            var p = new Promise(function(resolve, reject){
                console.log('saveRecordJS')
                txIds = [];
                trialuserMap = {};
                var a = 0;
                var b = 0;
                debugger
                let newCallBack = function newCallBack(result,indexNumber){
                    //赋值dataId和trialUser
                    document.getElementById('allPage:allForm:dataBlock:dataline_R_aws:'+indexNumber+':EditAWSDataId').value = result.object[0].dataId;
                    //document.getElementById('allPage:allForm:dataBlock:dataline_R_aws:'+indexNumber+':TrialUserEncrypt').value = result.object[0].trialUserEncrypt;       //zhj 新方案改造 2022-12-30
                    document.getElementById('allPage:allForm:dataBlock:dataline_R:'+indexNumber+':inputField:6:inputField').value = result.object[0].trialUser;
                    // let transParameters = {
                    //     txId: result.txId,
                    //     isSuccess: 1
                    // };
                    // let confirmCallBack = function confirmCallBack(result){
                    //     console.log('confirmCallBack = '+JSON.stringify(result))
                    // }
                    b++;
                    txIds.push(result.txId)
                    //AWSService.confirmTrans(staticResource.transactionUrl,JSON.stringify(transParameters),confirmCallBack,staticResource.token)
                };
                for(var i=0;i<rowBList.length;i++){
                    if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                        a++;
                    }
                }
                for(var i=0;i<rowBList.length;i++){
                    if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                        //加密试用者
                        let e = document.getElementById('allPage:allForm:dataBlock:dataline_R:'+i+':inputField:6:j_id86').children[0].children[0];
                        var trialUser = e.value;
                        trialuserMap['allPage:allForm:dataBlock:dataline_R:'+i+':inputField:6:j_id86'] = trialUser;
                        let consumApplyPayloadList = [];
                        let consumApplyPIData = new Object();
                        consumApplyPIData.trialUser = trialUser;
                        consumApplyPIData.sfRecordId = '';
                        consumApplyPayloadList.push(consumApplyPIData);
                        AWSService.postConsumTrial(staticResource.newUrl,i,JSON.stringify(consumApplyPayloadList),newCallBack,staticResource.token);
                    }
                }
                var id = setInterval(function(){
                    if(a == b){
                        console.log('a==b success')
                        resolve('success');
                        clearInterval(id);
                    }
                },500);
            });
            return p;
        }
        function q4(){
            debugger
            let b = false;
            for(var i=0;i<rowBList.length;i++){
                if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                    b = true;
                    unblockUI();
                }
            }
            if(!b){
                //unblockUI();
                window.location.href='/apex/ConsumTrial?id=' + '{!parId}' + '&canedit=true&saveType=1';
                return;
            }
            saveRecord();
        }
        function Trans(){
            if(HasError()){
                unblockUI();
                for(var e in trialuserMap){
                    document.getElementById(e).children[0].children[0].value = trialuserMap[e];
                }
                return;
            }
            var x = 0;
            let confirmCallBack = function confirmCallBack(result){
                console.log('confirmCallBack = '+JSON.stringify(result))
                x++;
                if(x == txIds.length){
                    //refopener();
                    //unblockUI();
                    window.location.href='/apex/ConsumTrial?id=' + '{!parId}' + '&canedit=true&saveType=1';
                }
            }
            for(var i=0;i<txIds.length;i++){
                let transParameters = {
                        txId: txIds[i],
                        isSuccess: 1
                };
                AWSService.confirmTrans(staticResource.transactionUrl,JSON.stringify(transParameters),confirmCallBack,staticResource.token)
            }
        }
        function saveRecordJS(){
            if('{!pageB.fixMode}' != 'true'){
                unblockUI();
            function showPIDiv(awsDataId){
                if(awsDataId.length == 0){
                    return
                }
            q3().then(function(data){
                    return q4(data);
                })
            //unblockUI();
        }
        //2022 02 24 张华建 display PI Data end
    </script>
        <apex:pageMessages id="message"/>
        <!-- oncomplete="clearApplyValue(); return false;" -->
        <apex:actionFunction name="passApplyMsgToController" action="{!showApplyMsg}"  rerender="allForm">
            <apex:param name="applyMsg" value="" />
            <apex:param name="applyMsgType" value="" />
        </apex:actionFunction>
        <apex:actionFunction name="sendEmail" action="{!sendEmail}"  rerender="allForm" oncomplete="unblockUI();">
            <apex:param name="emailBody" value="" />
        </apex:actionFunction>
        <apex:actionFunction name="saveRecord" action="{!saveRecord}" oncomplete="Trans();" rerender="allForm"/>
        <apex:inputHidden id="clearApplyFlagId" />
        <apex:outputPanel id="pageallPanel">
            <apex:pageBlock id="searchBlock">
                <apex:outputPanel layout="none" rendered="{!showEditButton}">
                    <table class="searchTable" style="width:100%">
                        <tr>
                            <apex:outputPanel layout="none" rendered="{!canEdit}">
                                <td>
                                    <!-- 展示/演示 -->
                                    {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Show_demonstration__c.label}
                                    <!-- <apex:inputField id="Show_demonstration" value="{!pageB.caesdInput.Show_demonstration__c}"/> -->
                                    <apex:selectList id="ShowDemonstration" value="{!pageB.caesdInput.Show_demonstration__c}" size="1">
                                        <apex:selectOptions value="{!ShowDemonstrationOps}"/>
                                    </apex:selectList>
                                </td>
                                <td>
                                    <!-- 术式类别 -->
                                    {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Operation_Type__c.label}
                                    <apex:selectList id="OperationType" value="{!pageB.caesdInput.Operation_Type__c}" size="1">
                                        <apex:selectOptions value="{!OperationTypeOps}"/>
                                    </apex:selectList>
                                </td>
                                <td>
                                    <!-- 预计使用日 -->
                                    {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Consum_Start_Date__c.label}
                                    <apex:inputField id="ConsumStartDate" value="{!pageB.caesdInput.Consum_Start_Date__c}"/>
                                </td>
                                <td>
                                    <!-- 病例/动物脏器 -->
                                    {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Case_OR_animal_organ__c.label}
                                    <apex:selectList id="CaseOrAnimalOrgan" value="{!pageB.caesdInput.Case_OR_animal_organ__c}" size="1">
                                        <apex:selectOptions value="{!Case_OR_animal_organOpsHead}"/>
                                    </apex:selectList>
                                </td>
                                <td>
                                    <!-- 试用者 -->
                                    {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Trial_User__c.label}
                                    <apex:inputField id="TrialUser" value="{!pageB.caesdInput.Trial_User__c}"/>
                                    <!-- <script>
                                           sfdcPage.appendToOnloadQueue(function () {
                                            var queryBack = function queryBack(data) {
                                                console.log('data = ' + data);
                                                document.getElementById('{!pageB.caesdInput.AWS_Data_Id__c}') = data.object.trialUser;
                                            };
                                                AWSService.query(staticResources.queryUrl, '{!pageB.caesdInput.AWS_Data_Id__c}', queryBack, staticResources.token);
                                            });
                                    </script> -->
                                </td>
                                <td>
                                    <!-- 跟台者 -->
                                    {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Follower_User__c.label}:
                                    <apex:inputField id="FollowerUser" value="{!pageB.caesdInput.Follower_User__c}"/>
                                </td>
                            </apex:outputPanel>
                            <!-- </tr> -->
                            <!-- <tr> -->
                            <td>
                                <!-- </td> -->
                                <!-- <td colspan="5"> -->
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="编辑" rendered="{!canEdit}" onclick="blockme();" action="{!changeFixModel}" reRender="allForm" oncomplete="unblockUI();windowResize();"/>
                                    <apex:commandButton value="编辑" style="float: right; margin-right: 40px;" rendered="{!AND(canEdit == false, redOnly == false)}" onclick="var w = window.open('/apex/ConsumTrial?id={!parId}&canedit=true', '编辑试用表画面', 'width='+(window.screen.width-200)+',height='+(window.screen.height-200)+',left=100,top=100'); w.focus(); return false;"/>
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="适用" rendered="{!canEdit}" onclick="applyJs();return false;"/>
                                </span>
                                <span style="margin-left: 10px;">
                                    <apex:commandButton value="保存" onclick="blockme();saveRecordJS(); return false;" rendered="{!canEdit}"/>
                                </span>
                            </td>
                        </tr>
                    </table>
                </apex:outputPanel>
            </apex:pageBlock>
            <apex:pageBlock id="dataBlock" tabStyle="Report">
                <apex:inputHidden id="currentPageRecordCnt" value="{!pageB.currentPageRecordCnt}"/>
                <!--                     <table id="msgtable">
                <tr>
                    <td>
                        <apex:outputPanel id="message">
                            <apex:pageMessages />
                        </apex:outputPanel>
                    </td>
                </tr>
            </table> -->
                <div id="out_Div_L">
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
                        <tr class="headerRow" height="30px">
                            <apex:outputPanel layout="none" rendered="{!canEdit}">
                                <td class="col_chk" align="center">
                                    <input type='checkbox' onClick='checkAll()' id="checker" />
                                </td>
                            </apex:outputPanel>
                            <apex:repeat value="{!outputFieldList}" var="info">
                                <td class="col_{!info.value}">
                                    {!info.label}
                                </td>
                            </apex:repeat>
                        </tr>
                    </table>
                </div>
                <div id="out_Div" >
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader">
                        <tr class="headerRow" height="30px">
                            <apex:repeat value="{!inputFieldList}" var="info">
                                <td class="col_{!info.value} colViewing" >
                                    {!info.label}
                                </td>
                            </apex:repeat>
                            <td class="col_UpDown"> 向上/向下 </td>
                            <td class="col_Scroll"></td>
                        </tr>
                    </table>
                </div>
                <div style="clear:both;"/>
                <div id="in_Div_L">
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                        <apex:variable value="{!0}" var="Cnt" />
                        <apex:repeat id="dataline_L" value="{!pageB.rowBList}" var="var">
                            <tr class="dataRow" id="tableData_L_{!Cnt}" style="{!IF(var.isOddnumber, 'background-color : #EFF4FC;', '')}">
                let index = awsDataId.indexOf('_');
                console.log('show index = ' + index);
                if(TrialUser[awsDataId.substring(0,index)] == null){
                    return
                }
                console.log('awsDataId Value:'+awsDataId);
                let parentNode = document.getElementById(awsDataId);
                let createDiv = document.createElement("div");
                createDiv.id = awsDataId+"_PI";
                let piInformation = TrialUser[awsDataId.substring(0,index)].trialUser
                //let piInformation = 'Name:'+contact['943114607025717249'].lastName +'\n' +'Phone:'+contact['943114607025717249'].phone
                createDiv.innerText = piInformation;
                let x=window.event.x;
                let y=window.event.y;
                createDiv.style.left=x;
                createDiv.style.top=y;
                createDiv.style.background="#dddddd";
                createDiv.style.position = "absolute";
                parentNode.appendChild(createDiv);
                parentNode.style.position = "relative";
            }
            function hidePIDiv(awsDataId){
                if(awsDataId.length == 0){
                    return
                }
                let index = awsDataId.indexOf('_');
                console.log('show index = ' + index);
                if(TrialUser[awsDataId.substring(0,index)] == null){
                    return
                }
                document.getElementById(awsDataId+'_PI').remove();
            }
            function q3(){
                var p = new Promise(function(resolve, reject){
                    console.log('saveRecordJS')
                    txIds = [];
                    trialuserMap = {};
                    var a = 0;
                    var b = 0;
                    debugger
                    let newCallBack = function newCallBack(result,indexNumber){
                        //赋值dataId和trialUser
                        document.getElementById('allPage:allForm:dataBlock:dataline_R_aws:'+indexNumber+':EditAWSDataId').value = result.object[0].dataId;
                        //document.getElementById('allPage:allForm:dataBlock:dataline_R_aws:'+indexNumber+':TrialUserEncrypt').value = result.object[0].trialUserEncrypt;       //zhj 新方案改造 2022-12-30
                        document.getElementById('allPage:allForm:dataBlock:dataline_R:'+indexNumber+':inputField:6:inputField').value = result.object[0].trialUser;
                        // let transParameters = {
                        //     txId: result.txId,
                        //     isSuccess: 1
                        // };
                        // let confirmCallBack = function confirmCallBack(result){
                        //     console.log('confirmCallBack = '+JSON.stringify(result))
                        // }
                        b++;
                        txIds.push(result.txId)
                        //AWSService.confirmTrans(staticResource.transactionUrl,JSON.stringify(transParameters),confirmCallBack,staticResource.token)
                    };
                    for(var i=0;i<rowBList.length;i++){
                        if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                            a++;
                        }
                    }
                    for(var i=0;i<rowBList.length;i++){
                        if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                            //加密试用者
                            let e = document.getElementById('allPage:allForm:dataBlock:dataline_R:'+i+':inputField:6:j_id86').children[0].children[0];
                            var trialUser = e.value;
                            trialuserMap['allPage:allForm:dataBlock:dataline_R:'+i+':inputField:6:j_id86'] = trialUser;
                            let consumApplyPayloadList = [];
                            let consumApplyPIData = new Object();
                            consumApplyPIData.trialUser = trialUser;
                            consumApplyPIData.sfRecordId = '';
                            consumApplyPayloadList.push(consumApplyPIData);
                            AWSService.postConsumTrial(staticResource.newUrl,i,JSON.stringify(consumApplyPayloadList),newCallBack,staticResource.token);
                        }
                    }
                    var id = setInterval(function(){
                        if(a == b){
                            console.log('a==b success')
                            resolve('success');
                            clearInterval(id);
                        }
                    },500);
                });
                return p;
            }
            function q4(){
                debugger
                let b = false;
                for(var i=0;i<rowBList.length;i++){
                    if(document.getElementById('allPage:allForm:dataBlock:dataline_L:'+i+':rowCheck').checked == true){
                        b = true;
                    }
                }
                if(!b){
                    //unblockUI();
                    window.location.href='/apex/ConsumTrial?id=' + '{!parId}' + '&canedit=true&saveType=1';
                    return;
                }
                saveRecord();
            }
            function Trans(){
                if(HasError()){
                    unblockUI();
                    for(var e in trialuserMap){
                        document.getElementById(e).children[0].children[0].value = trialuserMap[e];
                    }
                    return;
                }
                var x = 0;
                let confirmCallBack = function confirmCallBack(result){
                    console.log('confirmCallBack = '+JSON.stringify(result))
                    x++;
                    if(x == txIds.length){
                        //refopener();
                        //unblockUI();
                        window.location.href='/apex/ConsumTrial?id=' + '{!parId}' + '&canedit=true&saveType=1';
                    }
                }
                for(var i=0;i<txIds.length;i++){
                    let transParameters = {
                            txId: txIds[i],
                            isSuccess: 1
                    };
                    AWSService.confirmTrans(staticResource.transactionUrl,JSON.stringify(transParameters),confirmCallBack,staticResource.token)
                }
            }
            function saveRecordJS(){
                if('{!pageB.fixMode}' != 'true'){
                    unblockUI();
                        return
                    }
                q3().then(function(data){
                        return q4(data);
                    })
                //unblockUI();
            }
            //2022 02 24 张华建 display PI Data end
        </script>
            <apex:pageMessages id="message"/>
            <!-- oncomplete="clearApplyValue(); return false;" -->
            <apex:actionFunction name="passApplyMsgToController" action="{!showApplyMsg}"  rerender="allForm">
                <apex:param name="applyMsg" value="" />
                <apex:param name="applyMsgType" value="" />
            </apex:actionFunction>
            <apex:actionFunction name="sendEmail" action="{!sendEmail}"  rerender="allForm" oncomplete="unblockUI();">
                <apex:param name="emailBody" value="" />
            </apex:actionFunction>
            <apex:actionFunction name="saveRecord" action="{!saveRecord}" oncomplete="Trans();" rerender="allForm"/>
            <apex:inputHidden id="clearApplyFlagId" />
            <apex:outputPanel id="pageallPanel">
                <apex:pageBlock id="searchBlock">
                    <apex:outputPanel layout="none" rendered="{!showEditButton}">
                        <table class="searchTable" style="width:100%">
                            <tr>
                                <apex:outputPanel layout="none" rendered="{!canEdit}">
                                    <td class="dataCellBorder1 col_chk" align="center">
                                        <apex:inputCheckbox styleClass="rowchkcls" value="{!var.checked}" id="rowCheck" disabled="{!!var.canChange}"/>
                                    <td>
                                        <!-- 展示/演示 -->
                                        {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Show_demonstration__c.label}
                                        <!-- <apex:inputField id="Show_demonstration" value="{!pageB.caesdInput.Show_demonstration__c}"/> -->
                                        <apex:selectList id="ShowDemonstration" value="{!pageB.caesdInput.Show_demonstration__c}" size="1">
                                            <apex:selectOptions value="{!ShowDemonstrationOps}"/>
                                        </apex:selectList>
                                    </td>
                                    <td>
                                        <!-- 术式类别 -->
                                        {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Operation_Type__c.label}
                                        <apex:selectList id="OperationType" value="{!pageB.caesdInput.Operation_Type__c}" size="1">
                                            <apex:selectOptions value="{!OperationTypeOps}"/>
                                        </apex:selectList>
                                    </td>
                                    <td>
                                        <!-- 预计使用日 -->
                                        {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Consum_Start_Date__c.label}
                                        <apex:inputField id="ConsumStartDate" value="{!pageB.caesdInput.Consum_Start_Date__c}"/>
                                    </td>
                                    <td>
                                        <!-- 病例/动物脏器 -->
                                        {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Case_OR_animal_organ__c.label}
                                        <apex:selectList id="CaseOrAnimalOrgan" value="{!pageB.caesdInput.Case_OR_animal_organ__c}" size="1">
                                            <apex:selectOptions value="{!Case_OR_animal_organOpsHead}"/>
                                        </apex:selectList>
                                    </td>
                                    <td>
                                        <!-- 试用者 -->
                                        {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Trial_User__c.label}
                                        <apex:inputField id="TrialUser" value="{!pageB.caesdInput.Trial_User__c}"/>
                                        <!-- <script>
                                               sfdcPage.appendToOnloadQueue(function () {
                                                var queryBack = function queryBack(data) {
                                                    console.log('data = ' + data);
                                                    document.getElementById('{!pageB.caesdInput.AWS_Data_Id__c}') = data.object.trialUser;
                                                };
                                                    AWSService.query(staticResources.queryUrl, '{!pageB.caesdInput.AWS_Data_Id__c}', queryBack, staticResources.token);
                                                });
                                        </script> -->
                                    </td>
                                    <td>
                                        <!-- 跟台者 -->
                                        {!$ObjectType.Consum_Apply_Equipment_Set_Detail__c.fields.Follower_User__c.label}:
                                        <apex:inputField id="FollowerUser" value="{!pageB.caesdInput.Follower_User__c}"/>
                                    </td>
                                </apex:outputPanel>
                                <!-- </tr> -->
                                <!-- <tr> -->
                                <td>
                                    <!-- </td> -->
                                    <!-- <td colspan="5"> -->
                                    <span style="margin-left: 10px;">
                                        <apex:commandButton value="编辑" rendered="{!canEdit}" onclick="blockme();" action="{!changeFixModel}" reRender="allForm" oncomplete="unblockUI();windowResize();"/>
                                        <apex:commandButton value="编辑" style="float: right; margin-right: 40px;" rendered="{!AND(canEdit == false, redOnly == false)}" onclick="var w = window.open('/apex/ConsumTrial?id={!parId}&canedit=true', '编辑试用表画面', 'width='+(window.screen.width-200)+',height='+(window.screen.height-200)+',left=100,top=100'); w.focus(); return false;"/>
                                    </span>
                                    <span style="margin-left: 10px;">
                                        <apex:commandButton value="适用" rendered="{!canEdit}" onclick="applyJs();return false;"/>
                                    </span>
                                    <span style="margin-left: 10px;">
                                        <apex:commandButton value="保存" onclick="blockme();saveRecordJS(); return false;" rendered="{!canEdit}"/>
                                    </span>
                                </td>
                            </tr>
                        </table>
                    </apex:outputPanel>
                </apex:pageBlock>
                <apex:pageBlock id="dataBlock" tabStyle="Report">
                    <apex:inputHidden id="currentPageRecordCnt" value="{!pageB.currentPageRecordCnt}"/>
                    <!--                     <table id="msgtable">
                    <tr>
                        <td>
                            <apex:outputPanel id="message">
                                <apex:pageMessages />
                            </apex:outputPanel>
                        </td>
                    </tr>
                </table> -->
                    <div id="out_Div_L">
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
                            <tr class="headerRow" height="30px">
                                <apex:outputPanel layout="none" rendered="{!canEdit}">
                                    <td class="col_chk" align="center">
                                        <input type='checkbox' onClick='checkAll()' id="checker" />
                                    </td>
                                </apex:outputPanel>
                                <apex:repeat value="{!outputFieldList}" var="info">
                                    <td class="dataCellBorder1 {!'col_' + info.value}"><apex:outputField value="{!var.rnd[info.value]}" /></td>
                                </apex:repeat>
                            </tr>
                            <apex:variable value="{!Cnt+1}" var="Cnt" />
                        </apex:repeat>
                    </table>
                </div>
                <apex:repeat id="dataline_R_aws" value="{!pageB.rowBList}" var="var">
                    <apex:inputHidden value="{!var.rnd.AWS_Data_Id__c}" id="EditAWSDataId"/>
                    <!-- <apex:inputHidden value="{!var.rnd.Trial_User_Encrypt__c}" id="TrialUserEncrypt"/>  zhj 新方案改造 2022-12-30 -->
                </apex:repeat>
                <div id="in_Div" style="overflow:auto;">
                    <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData">
                        <apex:variable value="{!0}" var="Cnt_R" />
                        <apex:repeat id="dataline_R" value="{!pageB.rowBList}" var="var">
                            <tr id="tableData_R_{!Cnt_R}" class="dataRow" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" style="{!IF(var.isOddnumber, 'background-color : #EFF4FC;', '')}">
                                <apex:repeat value="{!inputFieldList}" var="info" id="inputField">
                                    <td class="dataCellBorder1 intf {!info.value} col_{!info.value}" id="{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,info.value)}" onmouseover="showPIDiv('{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,'')}')" onmouseout="hidePIDiv('{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,'')}')">
                                        <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value != 'Degree_Of_Importance__c'}">
                                            <!-- onchange="setChangeFlg('{!var.lineNo}')" -->
                                            <apex:outputPanel rendered="{!info.value != 'Case_OR_animal_organ__c'}">
                                                <apex:inputField id="inputField" value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo - 1}')" style="{!IF(info.value == 'Follower_User__c', 'width: 75%; ', '')}"/>
                                                <script>
                                                    if( document.getElementById('{!$Component.inputField}' + ':inputField_mlktp')){
                                                        document.getElementById('{!$Component.inputField}' + ':inputField_mlktp').style.display="none" ;
                                                    }
                                                </script>
                                            </apex:outputPanel>
                                            <apex:outputPanel rendered="{!info.value == 'Case_OR_animal_organ__c'}">
                                                <apex:selectList value="{!var.rnd.Case_OR_animal_organ__c}" multiselect="false" size="1">
                                                    <apex:selectOptions value="{!Case_OR_animal_organOps}"/>
                                                </apex:selectList>
                                            </apex:outputPanel>
                                        </apex:outputPanel>
                                        <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value == 'Degree_Of_Importance__c'}">
                                            <input id="Degree_Of_Importance__c" value="{!var.rnd[info.value]}" disabled="true"/>
                                            <apex:inputHidden value="{!var.rnd[info.value]}"/>
                                        </apex:outputPanel>
                                        <apex:outputPanel rendered="{!((contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true) == false}">
                                            <apex:outputField value="{!var.rnd[info.value]}"/>
                                        </apex:outputPanel>
                                    <td class="col_{!info.value}">
                                        {!info.label}
                                    </td>
                                </apex:repeat>
                                <td class="dataCellBorder2 col_UpDown" id="row{!Cnt_R}">
                                    <apex:outputPanel rendered="{!pageB.fixMode}">
                                        <button value="↑↑" id="top" onclick="blockme(); moveToTop('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑↑</button>
                                        <button value="↑" id="up" onclick="blockme(); resetMove('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑</button>|
                                        <button value="↓" id="down" onclick="blockme(); resetMove('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓</button>
                                        <button value="↓↓" id="bottom" onclick="blockme(); moveToTop('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓↓</button>
                                    </apex:outputPanel>
                                    <apex:inputText value="{!var.lineNo}" styleClass="ordernocls" style="display:none;"/>
                                    <!-- <apex:inputHidden value="{!var.rnd.Degree_Of_Importance__c}"/> -->
                                </td>
                                <td class="col_Scroll"></td>
                            </tr>
                            <apex:variable value="{!Cnt_R+1}" var="Cnt_R" />
                        </apex:repeat>
                    </table>
                </div>
            </apex:pageBlock>
            <script type="text/javascript">
                function runSFDCAddRemote(MetadataConnectionWarning) {
                    if (MetadataConnectionWarning) SFDCAddRemote('{!$Api.Session_ID}');
                }
                function sortTableJs(key) {
                    // blockme();
                    sortTablefunc(key);
                }
                j$(function() {
                    var tableWidth = 0;
                    j$('body .pbBody table#tableHeader tr.headerRow td').each(function() {
                        var colClass = getColClassName(this);
                        if (colClass != 'col_Scroll') {
                            var headerCol = j$('body .pbBody table.list tr.headerRow td.' + colClass);
                            tableWidth += headerCol.width();
                        </table>
                    </div>
                    <div id="out_Div" >
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader">
                            <tr class="headerRow" height="30px">
                                <apex:repeat value="{!inputFieldList}" var="info">
                                    <td class="col_{!info.value} colViewing" >
                                        {!info.label}
                                    </td>
                                </apex:repeat>
                                <td class="col_UpDown"> 向上/向下 </td>
                                <td class="col_Scroll"></td>
                            </tr>
                        </table>
                    </div>
                    <div style="clear:both;"/>
                    <div id="in_Div_L">
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                            <apex:variable value="{!0}" var="Cnt" />
                            <apex:repeat id="dataline_L" value="{!pageB.rowBList}" var="var">
                                <tr class="dataRow" id="tableData_L_{!Cnt}" style="{!IF(var.isOddnumber, 'background-color : #EFF4FC;', '')}">
                                    <apex:outputPanel layout="none" rendered="{!canEdit}">
                                        <td class="dataCellBorder1 col_chk" align="center">
                                            <apex:inputCheckbox styleClass="rowchkcls" value="{!var.checked}" id="rowCheck" disabled="{!!var.canChange}"/>
                                        </td>
                                    </apex:outputPanel>
                                    <apex:repeat value="{!outputFieldList}" var="info">
                                        <td class="dataCellBorder1 {!'col_' + info.value}"><apex:outputField value="{!var.rnd[info.value]}" /></td>
                                    </apex:repeat>
                                </tr>
                                <apex:variable value="{!Cnt+1}" var="Cnt" />
                            </apex:repeat>
                        </table>
                    </div>
                    <apex:repeat id="dataline_R_aws" value="{!pageB.rowBList}" var="var">
                        <apex:inputHidden value="{!var.rnd.AWS_Data_Id__c}" id="EditAWSDataId"/>
                        <!-- <apex:inputHidden value="{!var.rnd.Trial_User_Encrypt__c}" id="TrialUserEncrypt"/>  zhj 新方案改造 2022-12-30 -->
                    </apex:repeat>
                    <div id="in_Div" style="overflow:auto;">
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData">
                            <apex:variable value="{!0}" var="Cnt_R" />
                            <apex:repeat id="dataline_R" value="{!pageB.rowBList}" var="var">
                                <tr id="tableData_R_{!Cnt_R}" class="dataRow" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" style="{!IF(var.isOddnumber, 'background-color : #EFF4FC;', '')}">
                                    <apex:repeat value="{!inputFieldList}" var="info" id="inputField">
                                        <td class="dataCellBorder1 intf {!info.value} col_{!info.value}" id="{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,info.value)}" onmouseover="showPIDiv('{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,'')}')" onmouseout="hidePIDiv('{! IF(info.value=='Trial_User__c',var.rnd.AWS_Data_Id__c+'_'+var.rnd.Id,'')}')">
                                            <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value != 'Degree_Of_Importance__c'}">
                                                <!-- onchange="setChangeFlg('{!var.lineNo}')" -->
                                                <apex:outputPanel rendered="{!info.value != 'Case_OR_animal_organ__c'}">
                                                    <apex:inputField id="inputField" value="{!var.rnd[info.value]}" onchange="setChangeFlg('{!var.lineNo - 1}')" style="{!IF(info.value == 'Follower_User__c', 'width: 75%; ', '')}"/>
                                                    <script>
                                                        if( document.getElementById('{!$Component.inputField}' + ':inputField_mlktp')){
                                                            document.getElementById('{!$Component.inputField}' + ':inputField_mlktp').style.display="none" ;
                                                        }
                                                    </script>
                                                </apex:outputPanel>
                                                <apex:outputPanel rendered="{!info.value == 'Case_OR_animal_organ__c'}">
                                                    <apex:selectList value="{!var.rnd.Case_OR_animal_organ__c}" multiselect="false" size="1">
                                                        <apex:selectOptions value="{!Case_OR_animal_organOps}"/>
                                                    </apex:selectList>
                                                </apex:outputPanel>
                                            </apex:outputPanel>
                                            <apex:outputPanel rendered="{!(contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true && info.value == 'Degree_Of_Importance__c'}">
                                                <input id="Degree_Of_Importance__c" value="{!var.rnd[info.value]}" disabled="true"/>
                                                <apex:inputHidden value="{!var.rnd[info.value]}"/>
                                            </apex:outputPanel>
                                            <apex:outputPanel rendered="{!((contains(var.canChangeField, info.value) || var.canChangeField == '') && pageB.fixMode == true && var.canChange == true) == false}">
                                                <apex:outputField value="{!var.rnd[info.value]}"/>
                                            </apex:outputPanel>
                                        </td>
                                    </apex:repeat>
                                    <td class="dataCellBorder2 col_UpDown" id="row{!Cnt_R}">
                                        <apex:outputPanel rendered="{!pageB.fixMode}">
                                            <button value="↑↑" id="top" onclick="blockme(); moveToTop('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑↑</button>
                                            <button value="↑" id="up" onclick="blockme(); resetMove('row{!Cnt_R}', true, '{!var.maxDegree_Of_Importance}'); return false;">↑</button>|
                                            <button value="↓" id="down" onclick="blockme(); resetMove('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓</button>
                                            <button value="↓↓" id="bottom" onclick="blockme(); moveToTop('row{!Cnt_R}', false, '{!var.maxDegree_Of_Importance}'); return false;">↓↓</button>
                                        </apex:outputPanel>
                                        <apex:inputText value="{!var.lineNo}" styleClass="ordernocls" style="display:none;"/>
                                        <!-- <apex:inputHidden value="{!var.rnd.Degree_Of_Importance__c}"/> -->
                                    </td>
                                    <td class="col_Scroll"></td>
                                </tr>
                                <apex:variable value="{!Cnt_R+1}" var="Cnt_R" />
                            </apex:repeat>
                        </table>
                    </div>
                </apex:pageBlock>
                <script type="text/javascript">
                    function runSFDCAddRemote(MetadataConnectionWarning) {
                        if (MetadataConnectionWarning) SFDCAddRemote('{!$Api.Session_ID}');
                    }
                    function sortTableJs(key) {
                        // blockme();
                        sortTablefunc(key);
                    }
                    j$(function() {
                        var tableWidth = 0;
                        j$('body .pbBody table#tableHeader tr.headerRow td').each(function() {
                            var colClass = getColClassName(this);
                            if (colClass != 'col_Scroll') {
                                var headerCol = j$('body .pbBody table.list tr.headerRow td.' + colClass);
                                tableWidth += headerCol.width();
                            }
                        });
                        j$('table#tableData').css('width', (1260 + 2) + 'px');
                        j$('table#tableHeader').css('width', (1260 + 2) + 'px');
                        // list の headerRow の tdに toggleWidth() を追加
                        bindTdToggleWidth();
                        if( document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp')){
                            document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp').style.display="none" ;
                        }
                    });
                    j$('table#tableData').css('width', (1260 + 2) + 'px');
                    j$('table#tableHeader').css('width', (1260 + 2) + 'px');
                    // list の headerRow の tdに toggleWidth() を追加
                    bindTdToggleWidth();
                    if( document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp')){
                        document.getElementById('allPage:allForm:searchBlock:FollowerUser_mlktp').style.display="none" ;
                    }
                });
                // var elements = document.getElementsByTagName("select");
                // for (i = 0; i < elements.length; i++) {
                //     var id = elements[i].id;
                //     if (id.length > 5 && id.substring(id.length - 5, id.length) == 'mlktp') {
                //         elements[i].style.display = "none";
                //     }
                // }
                // var tbl_l = document.getElementById("tableData_L");
                // var input_l = tbl_l.getElementsByTagName("input");
                // for (i = 0; i < input_l.length; i++) {
                //     var id = input_l[i].id + '_lkid';
                //     if (document.getElementById(id) != null) {
                //         input_l[i].style.width = "75%";
                //     }
                // }
                // var tbl = document.getElementById("tableData");
                // var input = tbl.getElementsByTagName("input");
                // for (i = 0; i < input.length; i++) {
                //     var id = input[i].id + '_lkid';
                //     if (document.getElementById(id) != null) {
                //         input[i].style.width = "75%";
                //     }
                // }
                //aをクリックする際に、tdイベントを実装しない
                // j$("a[name='out_Div_a']").bind("click",function(event){
                //     event.stopPropagation();
                // });
                windowResize();
                j$("td.dataCellBorder1 input").change(function(){
                    var names = this.name.split(':');
                    var i = names[names.length - 4];
                    j$("input.rowchkcls")[i].checked = true;
                })
            </script>
        </apex:outputPanel>
    </apex:form>
</apex:page>
                    // var elements = document.getElementsByTagName("select");
                    // for (i = 0; i < elements.length; i++) {
                    //     var id = elements[i].id;
                    //     if (id.length > 5 && id.substring(id.length - 5, id.length) == 'mlktp') {
                    //         elements[i].style.display = "none";
                    //     }
                    // }
                    // var tbl_l = document.getElementById("tableData_L");
                    // var input_l = tbl_l.getElementsByTagName("input");
                    // for (i = 0; i < input_l.length; i++) {
                    //     var id = input_l[i].id + '_lkid';
                    //     if (document.getElementById(id) != null) {
                    //         input_l[i].style.width = "75%";
                    //     }
                    // }
                    // var tbl = document.getElementById("tableData");
                    // var input = tbl.getElementsByTagName("input");
                    // for (i = 0; i < input.length; i++) {
                    //     var id = input[i].id + '_lkid';
                    //     if (document.getElementById(id) != null) {
                    //         input[i].style.width = "75%";
                    //     }
                    // }
                    //aをクリックする際に、tdイベントを実装しない
                    // j$("a[name='out_Div_a']").bind("click",function(event){
                    //     event.stopPropagation();
                    // });
                    windowResize();
                    j$("td.dataCellBorder1 input").change(function(){
                        var names = this.name.split(':');
                        var i = names[names.length - 4];
                        j$("input.rowchkcls")[i].checked = true;
                    })
                </script>
            </apex:outputPanel>
        </apex:form>
    </apex:page>
force-app/main/default/pages/MaintenanceContractPCL.page
@@ -1,4 +1,4 @@
<apex:page controller="MaintenanceContractPCLController" showHeader="false" sidebar="false" id="allPage" action="{!init}">
<apex:page controller="MaintenanceContractPCLController" showHeader="false" sidebar="false" id="allPage" action="{!init}" lightningStylesheets="true">
<head>
<title>周会-维修合同</title>
@@ -20,27 +20,25 @@
}
div#out_Div { /* ここにヘッダを格納 */
  position:relative;
  overflow: hidden;
  overflow: auto;
  float:left;
  width:32768px;
}
div#out_Div_L {
  position:relative;
  overflow: hidden;
  overflow: auto;
  float:left;
}
div#in_Div {/* tbodyが入っている。ここがスクロール対象*/
  position:relative;
  overflow: auto;  /*スクロールバー*/
  overflow: auto;
  float:left;
  width:32768px;
  height: 100px; /* tbodyを表示する高さ、後でjsにて調整 */
  height: auto;/* tbodyを表示する高さ、後でjsにて調整 */
}
div#in_Div_L {
  position:relative;
  overflow: hidden;
  overflow: auto;
  float:left;
  height: 100px;
  height: auto;
}
body .pbBody table.list tr.headerRow td {
@@ -57,59 +55,67 @@
  padding:0px 0px 0px 1px; border-width: 0px 0px 1px 0px; vertical-align: middle; word-break:break-all;
}
body .pbBody table.list tr.dataRow td.dataCellBorder  {
  /* いらない、使っていない */
  padding:0px 0px 0px 1px; border-width: 0px 0px 1px 0px; vertical-align: middle; word-break:break-all;
}
body .pbBody table.list tr.dataRow td.dataCellBorder1 {
  padding:0px 0px 0px 1px;
  border-width: 0px 0px 1px 1px; vertical-align: middle; word-break:break-all;
}
@-moz-document url-prefix() {
/*@-moz-document url-prefix() {
body .pbBody table.list tr.dataRow td.dataCellBorder1 {padding:0px 0px 0px 0px; border-width: 0px 0px 1px 1px; vertical-align: middle; word-break:break-all;}
}
}*/
table.list td {width:100px;}
table.list td select {width:95%;}
table.list td input {width:95%;}
table.list td {width:50px;}
.lookupInput{width:150px;}
table.list td select {width:55%;}
table.list td input {width:100%;text-align: center}
table.list td textarea {
  height:50px;
  width:90%;
}
.dataCellBorder1 col_State_Hospital__c 1_col_State_Hospital__c {width:10px;}
table.list .col_Management_Code__c {width:109px;}
table.list .col_Hospital__c {width:129px;}
table.list .col_Department__c {width:129px;}
table.list .col_Department__c {width:120px;}
table.list .col_Name {width:118px;}
table.list .col_Hospital__r_Salesdepartment_HP__c {width:88px;}
table.list .col_State_Hospital__c {width:58px;}
table.list .col_State_Hospital__c {width:80px;}
table.list .col_HP_OCM__c {width:80px;}
table.list .col_Status__c {width:88px;}
table.list .col_Service_Contract_Staff__c {width:118px;}
table.list .col_Service_contract_number__c {width:118px;}
table.list .col_Estimate_Trial_Money__c {width:118px;}
table.list .col_Service_contract_number__c {width:100px;}
table.list .col_Estimate_Trial_Money__c {width:157px;}
table.list .col_Status2__c {width:88px;}
table.list .col_Contract_Amount__c {width:148px;}
table.list .col_CreatedDate {width:98px;}
table.list .col_Contract_Start_Date__c {width:88px;}
table.list .col_Contract_End_Date__c {width:88px;}
table.list .col_Service_contract_target_number__c {width:78px;}
/*.list4 td:nth-child(4) {
      width: 120px;
    }
.list4 td:nth-child(10) {
  width: 150px;
}*/
body .pbBody table.list tr.headerRow td.colViewing {
  /* デフォルト値、最小化アイコンを表示 */
  background-image:url('{!URLFOR($Resource.IconResizeMinus_5)}') ;
  background-repeat:no-repeat;
  /*background-image:url('{!URLFOR($Resource.IconResizeMinus_5)}') ;*/
  /*background-repeat:no-repeat;*/
}
body .pbBody{
    width:3800px;
}
body .pbBody table.list tr.headerRow td.colUnHideIcon {
  /* 最大化アイコンを表示 */
  background-image:url('{!URLFOR($Resource.IconResizePlus_5)}');
  background-repeat:no-repeat;
/*  background-image:url('{!URLFOR($Resource.IconResizePlus_5)}');
  background-repeat:no-repeat;*/
}
body .pbBody table.list tr.headerRow td.col_Scroll {width:0px; padding:0px; border-width:0px;}
body .pbBody table.list tr.dataRow td.col_Scroll {width:0px; padding:0px; border-width:0px;}
</style>
<script type="text/javascript">
var heightAjustment = 120;
var widthAjustment = 30;
</script>
</head>
    <apex:form id="allForm">
@@ -130,8 +136,8 @@
            <apex:pageBlock id="searchBlock" tabStyle="Report">
                <table style="border-bottom-width: 0px; font-size:12px;">
                    <tr>
                        <td width="150px">
                            <apex:commandButton action="{!save}" value="保存" rerender="allPanel" onclick="blockme();" oncomplete="unblockUI();" style="height:30px;width:50px;"/>&nbsp;&nbsp;
                        <td width="200px">
                            <apex:commandButton action="{!save}" value="保存" rerender="allPanel" onclick="blockme();" oncomplete="unblockUI();" style="height:30px;width:80px;"/>&nbsp;&nbsp;
                            <apex:commandButton value="检索" onclick="searchOppJs();return false;" style="height:30px;width:70px;"/>
                        </td>
                        <td width="1000px">
@@ -144,7 +150,7 @@
                        <td width="250px">医院&nbsp;<apex:inputText value="{!accSearch}" style="width:150px"/> </td>
                        <td width="40px">创建人</td>
                        <td width="150px"><span><apex:inputText value="{!ownerSearch}" style="width:100px;" /></span></td>
                        <td width="400px">
                        <td width="600px">
                            <font>日期</font>&nbsp;
                            <apex:selectList value="{!dateField}" size="1" style="width:110px" id="dateFieldId"><apex:selectOptions value="{!dateOpts}" id="dateOptsId"/></apex:selectList> 
                                  从&nbsp;<apex:inputField value="{!con1.BirthDate}" id="fromDateId"/> 
@@ -186,68 +192,68 @@
            </apex:pageBlock>
            
            <apex:pageBlock id="oppBlock" tabStyle="Report">
<!--                <apex:pageblocksection columns="1" id="oppSection">-->
                <!-- <apex:pageblocksection columns="1" id="oppSection"> -->
                <apex:outputPanel >
                    <apex:inputHidden id="oppCount" value="{!oppCount}"/>
                    <div id="out_Div_L">
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
                            <tr class="dataRow" height="1px">
                            <apex:variable value="{!0}" var="cnt" />
                            <apex:repeat value="{!titleLeft}" var="t">
                                <td class="col_{!columnLeftCss[cnt]}"></td>
                                <apex:variable value="{!cnt + 1}" var="cnt" />
                            </apex:repeat>
                            </tr>
                            <tr class="headerRow" height="30px">
                            <apex:variable value="{!0}" var="cnt" />
                            <apex:repeat value="{!titleLeft}" var="t">
                                <td class="col_{!columnLeftCss[cnt]}">
                                    <a href="#" onclick="sortTableJs('{!cnt + 1}');return false;" style="text-decoration: underline;"><apex:outputText value="{!t}"/></a>{!sortOrder[cnt + 1]}
                                </td>
                                <apex:variable value="{!cnt + 1}" var="cnt" />
                            </apex:repeat>
                            </tr>
                        </table>
                    </div>
                        <div id="out_Div_L">
                            <table class="list" style="table-layout:fixed;border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
                                <tr class="dataRow" height="1px">
                                <apex:variable value="{!0}" var="cnt" />
                                <apex:repeat value="{!titleLeft}" var="t">
                                    <td class="col_{!columnLeftCss[cnt]}" style="width: 140px"></td>
                                    <apex:variable value="{!cnt + 1}" var="cnt" />
                                </apex:repeat>
                                </tr>
                                <tr class="headerRow" height="30px">
                                <apex:variable value="{!0}" var="cnt" />
                                <apex:repeat value="{!titleLeft}" var="t">
                                    <td class="col_{!columnLeftCss[cnt]}">
                                        <a href="#" onclick="sortTableJs('{!cnt + 1}');return false;" style="text-decoration: underline;"><apex:outputText value="{!t}"/></a>{!sortOrder[cnt + 1]}
                                    </td>
                                    <apex:variable value="{!cnt + 1}" var="cnt" />
                                </apex:repeat>
                                </tr>
                            </table>
                        </div>
                    <div id="out_Div">
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader">
                        <table class="list" style="table-layout:fixed;border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader">
                            <tr class="dataRow" height="1px">
                            <apex:variable value="{!0}" var="cnt" />
                            <apex:repeat value="{!titleRight}" var="t">
                                <td class="col_{!columnRightCss[cnt]}"></td>
                                <td class="col_{!columnRightCss[cnt]}" style="width: 100px"></td>
                                <apex:variable value="{!cnt + 1}" var="cnt" />
                            </apex:repeat>
                            <td id="cell_Scroll" class="col_Scroll"></td>
                            </tr>
                            <tr class="headerRow" height="30px">
                            <apex:variable value="{!0}" var="cnt" />
                            <apex:repeat value="{!titleRight}" var="t">
                                <td class="col_{!columnRightCss[cnt]}">
                                    <a href="#" onclick="sortTableJs('{!cnt + 1 + titleLeft.size}');return false;" style="text-decoration: underline;"><apex:outputText value="{!t}"/></a>{!sortOrder[cnt + 1 + titleLeft.size]}
                                    <a href="#" onclick="sortTableJs('{!cnt + 1+ titleLeft.size}');return false;" style="text-decoration: underline;"><apex:outputText value="{!t}"/></a>{!sortOrder[cnt + 1 + titleLeft.size]}
                                </td>
                                <apex:variable value="{!cnt + 1}" var="cnt" />
                            </apex:repeat>
                            <td id="cell_Scroll" class="col_Scroll"></td>
                            </tr>
                        </table>
                    </div>    <!-- out_Div -->
                    </div>
                </apex:outputPanel>
                <apex:outputPanel>
                    <div style="clear:both;height:0px;"></div>
                    <div id="in_Div_L">
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                        <table class="list"  style="table-layout:fixed;border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                            <apex:variable value="{!1}" var="cnt" />
                            <apex:repeat value="{!oppRecords}" var="or" id="oppTable_L">
                                <tr class="dataRow {!IF(MOD(cnt, 2)==0, 'odd', 'even')} {!IF(cnt==1, 'first', '')}" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}">
                                <apex:variable value="{!0}" var="cnt_2" />
                                <apex:repeat value="{!columnsLeftApi}" var="c">
                                    <td class="dataCellBorder1 col_{!columnLeftCss[cnt_2]}">
                                    <td class="dataCellBorder1 col_{!columnLeftCss[cnt_2]}" style="width: 140px;text-align:center">
                                    <apex:outputPanel rendered="{!(c.size==1 && columnLeftRW[c[0]]=='r')}" layout="none">
<!-- in_Div_LのAccount名は特殊対応、リンクにする -->
<apex:outputPanel rendered="{!c[0]=='Name'}" layout="none">
                                        <apex:outputLink value="/{!or.mc.Id}" target="LINK_{!or.mc.Id}"><apex:outputField value="{!or.mc[c[0]]}" /></apex:outputLink>
</apex:outputPanel>
<apex:outputPanel rendered="{!c[0]<>'Name'}" layout="none">
                                        <apex:inputField value="{!or.mc[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')"/>
</apex:outputPanel>
                                    <apex:outputPanel rendered="{!c[0]=='Name'}" layout="none">
                                                                            <apex:outputLink value="/{!or.mc.Id}" target="LINK_{!or.mc.Id}"><apex:outputField value="{!or.mc[c[0]]}" /></apex:outputLink>
                                    </apex:outputPanel>
                                    <apex:outputPanel rendered="{!c[0]<>'Name'}" layout="none">
                                                                            <apex:inputField value="{!or.mc[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')"/>
                                    </apex:outputPanel>
                                    </apex:outputPanel>
                                    <apex:outputPanel rendered="{!(c.size==2)}" layout="none">
                                        <apex:outputField value="{!or.mc[c[0]][c[1]]}"/>
@@ -267,13 +273,13 @@
                        </table>
                    </div>
                    <div id="in_Div">
                        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData">
                        <table class="list4" style="table-layout:fixed;border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData">
                            <apex:variable value="{!1}" var="cnt" />
                            <apex:repeat value="{!oppRecords}" var="or" id="oppTable">
                                <tr class="dataRow {!IF(MOD(cnt, 2)==0, 'odd', 'even')} {!IF(cnt==1, 'first', '')}" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}">
                                <apex:variable value="{!0}" var="cnt_3" />
                                <apex:repeat value="{!columnsRightApi}" var="c">
                                    <td class="dataCellBorder1 col_{!columnRightCss[cnt_3]} {!cnt}_col_{!columnRightCss[cnt_3]}">
                                    <td class="dataCellBorder1 col_{!columnRightCss[cnt_3]} {!cnt}_col_{!columnRightCss[cnt_3]}" style="width: 100px;text-align:center">
                                    <apex:outputPanel rendered="{!(c.size==1 && columnRightRW[c[0]]=='r')}" layout="none">
                                        <apex:outputField value="{!or.mc[c[0]]}"/>
                                    </apex:outputPanel>
@@ -284,12 +290,12 @@
                                        <apex:inputField value="{!or.mc[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')"/>
                                    </apex:outputPanel>
                                    <apex:outputPanel rendered="{!(c.size==1 && columnRightRW[c[0]]=='wm')}" layout="none">
                                        <div class="requiredInput"><div class="requiredBlock"></div><apex:inputField value="{!or.mc[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')"/></div>
                                        <div class="requiredInput" ><div class="requiredBlock"></div><apex:inputField value="{!or.mc[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')"/></div>
                                    </apex:outputPanel>
                                    <apex:variable value="{!cnt_3 + 1}" var="cnt_3" />
                                    </td>
                                </apex:repeat>
                                <td id="cell_Scroll" class="col_Scroll">
                                <!-- <td id="cell_Scroll" class="col_Scroll"> -->
                                    <apex:inputHidden value="{!or.changeFlg}" id="changeFlg"/>
                                    <script type="text/javascript">
                                        if ("{!or.canEdit}" == "false") {
@@ -315,12 +321,12 @@
                                            j$(leftFirst).css("background-color", "red");
                                        }
                                    </script>
                                </td>
                                <!-- </td> -->
                                </tr>
                                <apex:variable value="{!cnt + 1}" var="cnt" />
                            </apex:repeat> 
                        </table>
                    </div><!-- /in_Div -->
                    </div>
                </apex:outputPanel>
            </apex:pageBlock>
<script type="text/javascript">
@@ -333,11 +339,11 @@
            tableWidth += headerCol.width();
        }
    });
    j$('table#tableData').css('width', (tableWidth + 2) + 'px');
    j$('table#tableHeader').css('width', (tableWidth + 2) + 'px');
    // j$('table#tableData').css('width', (tableWidth + 100) + 'px');
    // j$('table#tableHeader').css('width', (tableWidth + 100) + 'px');
    // list の headerRow の tdに toggleWidth() を追加
    bindTdToggleWidth();
    // bindTdToggleWidth();
});
var elements = document.getElementsByTagName("select");
for (i = 0; i < elements.length; i++) {
force-app/main/default/pages/OFSHospitalLayout.page
@@ -1,4 +1,4 @@
<apex:page id="Page" standardcontroller="Account" showHeader="false" sidebar="false" extensions="OFSHospitalLayoutController" action="{!init}" standardStylesheets="true" applyBodyTag="false" applyHtmlTag="false">
<apex:page id="Page" standardcontroller="Account" showHeader="false" sidebar="false" extensions="OFSHospitalLayoutController" action="{!init}" standardStylesheets="true" applyBodyTag="false" applyHtmlTag="false" lightningStylesheets="true">
<html>
<head>
<meta name="viewport" content="width=1150,user-scalable=no" />     <!-- TODO 1150はコンテンツの幅 -->
@@ -75,7 +75,7 @@
                        <td><apex:outputLabel value="{!$ObjectType.Account.Label}:" style="font-size:18px;font-weight: bold;padding-right: 5px;"/></td>
                        <td><apex:outputLabel value="{!acc.Name}" style="font-size:18px;font-weight: bold;padding-right: 20px;"/></td>
                        <td style="text-align: center;padding-right: 100px;"><apex:commandButton style="width:80px;" value="保存" action="{!save}"/></td>
                        <td style="text-align: center;"><apex:commandButton style="width:80px;" value="关闭窗口" onclick="location.href='/apex/OFSWindowClose';return false;"/></td>
                        <td style="text-align: center;"><apex:commandButton style="width:120px;" value="关闭窗口" onclick="location.href='/apex/OFSWindowClose';return false;"/></td>
                    </tr>
                </table>
                <apex:pageBlockSection title="{!sectionList[0].title}" columns="{!sectionList[0].column}" showHeader="{!sectionList[0].showHeader}" rendered="{!sectionList.size>0}">
@@ -143,7 +143,7 @@
                </apex:pageBlockSection>
</apex:repeat>
            </div>
            <div style="position: fixed; bottom: 0; width:100%;z-index:1" Id="InfoFoot">
            <div style="position: relative; bottom: 0; width:100%;z-index:1" Id="InfoFoot">
                <apex:pageBlockSection title="报告" columns="3" Id="Report"  showHeader="false" >
                    <apex:outputPanel styleClass="reportElement"  layout="block" rendered="{!selectedRptMapList.size > pageNo*3+0}" style="float:left;width:100%">
                        <apex:outputPanel layout="none" rendered="{!(selectedRptMapList[pageNo*3+0]['Column'] != 'false')}">
force-app/main/default/pages/PAEDecisionRecord.page
@@ -1,4 +1,4 @@
<apex:page action="{!init}" extensions="PAEDecisionRecordController" id="allPage" showheader="false" sidebar="false" standardcontroller="PAE_DecisionRecord__c" title="PAE判定记录">
<apex:page action="{!init}" extensions="PAEDecisionRecordController" id="allPage" showheader="false" sidebar="false" standardcontroller="PAE_DecisionRecord__c" title="PAE判定记录" lightningStylesheets="true">
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}">
    </apex:stylesheet>
    <apex:includescript value="{!URLFOR($Resource.jquery183minjs)}">
@@ -70,6 +70,23 @@
            blockme();
            InsertRow();
            
        }
        var selectedSize = 0;
        var pageLimit = {!pageLimit};
        function CheckSize(j){
            var a = j.id;
            var productCount = j$(escapeVfId(a)).attr('checked');
            if (productCount == 'checked') {
                if(selectedSize >= pageLimit){
                    window.alert("页面所选数据不能超过500条");
                    j$(escapeVfId(a)).attr('checked',false);
                    return;
                }
                selectedSize ++;
            } else {
                selectedSize --;
            }
            //alert(selectedSize);
        }
        // 保存并关闭
        function SaveAndCloses(onlySave) {
@@ -172,12 +189,12 @@
        td.columuslowercolour {
            background-color: red;
            text-align: right;
            text-align: left;
        }
        td.columuscuperolour {
            background-color: yellow;
            text-align: right;
            text-align: left;
        }
    </style>
    <apex:form id="allForm">
@@ -210,35 +227,22 @@
        <apex:outputpanel id="allPanel">
            <apex:pageblock id="allBlock">
                <apex:pageblock id="unEditable" rendered="{!editAble}" title="{!IF(RecordTypeName = 'ASRCDecision' , 'Intake universal code 编辑画面', 'Final universal code 编辑画面')}">
                    <table cellspacing="10">
                    <table cellspacing="8">
                        <colgroup>
                            <col width="7%">
                            </col>
                            <col width="10%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                            <col width="7%">
                            </col>
                           <col width="15%"/>
                            <col width="10%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="10%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <col width="15%">
                                </col>
                                <col width="10%">
                                </col>
                               <col width="15%"/>
                            <col width="15%"/>
                            </apex:outputpanel>
                        </colgroup>
                        <tr>
@@ -257,12 +261,12 @@
                            <!-- 2020/07/28 taoqz end -->
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <!-- <th>AS-RC</th> -->
                                <td align="right">
                                <td align="left">
                                    {!$ObjectType.Repair__c.fields.Repair_ConfirmationDate__c.label}:
                                </td>
                            </apex:outputpanel>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <td align="right">
                                <td align="left">
                                    {!$ObjectType.Repair__c.fields.OCSM_RC_CordingDate__c.label}:
                                </td>
                            </apex:outputpanel>
@@ -272,13 +276,13 @@
                            </td>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <!-- <th>AS-RC</th> -->
                                <td align="right">
                                <td align="left">
                                    {!$ObjectType.Repair__c.fields.Repair_Authenticator__c.label}:
                                </td>
                            </apex:outputpanel>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <!-- <th>AS-AC</th> -->
                                <td align="right">
                                <td align="left">
                                    {!$ObjectType.Repair__c.fields.OCSM_RC_CordingUser__c.label}:
                                </td>
                            </apex:outputpanel>
@@ -288,7 +292,7 @@
                            </td>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' && repa != null, true, false)}">
                                <!-- <th>AS-RC</th> -->
                                <td align="right">
                                <td align="left">
                                    {!$ObjectType.Repair__c.fields.SAP_Transfer_time__c.label}:
                                </td>
                                <td align="left">
@@ -297,7 +301,7 @@
                                </td>
                            </apex:outputpanel>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision' , true, false)}">
                                <td align="right">
                                <td align="left">
                                    再现结果确认:
                                </td>
                                <td align="left" style="{!IF(rdRecord.PAE_reappear_confirm__c = '未确认' , 'color: red;font-weight: 800;', '')}">
@@ -321,14 +325,14 @@
                                </td>
                            </apex:outputpanel>
                            <!-- <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' , true, false)}">
                                <td align="right" > 进行修理的判定结果:</td>
                                <td align="left" > 进行修理的判定结果:</td>
                                <td align="left" >  
                                    <apex:InputField value="{!repa.Repair_Determine_result__c}"/>
                                </td>
                            </apex:outputPanel> -->
                            <!-- update by rentongxiao 2020-09-21 start -->
                            <!-- <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision', true, false)}">
                                <td align="right" > {!$ObjectType.Repair__c.fields.if_Repair_Allowed__c.label}:</td>
                                <td align="left" > {!$ObjectType.Repair__c.fields.if_Repair_Allowed__c.label}:</td>
                                <td align="left" >  
                                    <apex:InputField id="repairDetermineResult"  value="{!repa.if_Repair_Allowed__c}" rendered="{!isOSH}"/>
                                    <apex:outputField id="repairDetermineResultout"  value="{!repa.if_Repair_Allowed__c}" rendered="{!!isOSH}"/>
@@ -337,7 +341,7 @@
                            </apex:outputPanel>
                            <apex:outputPanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision', true, false)}">
                                <td align="right" > {!$ObjectType.Repair__c.fields.NotAllowedReason__c.label}:</td>
                                <td align="left" > {!$ObjectType.Repair__c.fields.NotAllowedReason__c.label}:</td>
                                <td align="left" colspan="3">  
                                    <apex:InputField id="NotAllowedReason"  value="{!repa.NotAllowedReason__c}" rendered="{!isOSH}"/>
                                    <apex:outputField id="NotAllowedReasontout"  value="{!repa.NotAllowedReason__c}" rendered="{!!isOSH}"/>
@@ -345,7 +349,7 @@
                                
                            </apex:outputPanel> -->
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' && repa != null, true, false)}">
                                <td align="right">
                                <td align="left">
                                    {!$ObjectType.Repair__c.fields.if_Repair_Allowed__c.label}:
                                </td>
                                <td align="left">
@@ -356,7 +360,7 @@
                                </td>
                            </apex:outputpanel>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' && repa != null, true, false)}">
                                <td align="right">
                                <td align="left">
                                    {!$ObjectType.Repair__c.fields.NotAllowedReason__c.label}:
                                </td>
                                <td align="left" colspan="3">
@@ -369,8 +373,6 @@
                            <!-- update by rentongxiao 2020-09-21 end                           -->
                        </tr>
                        <tr>
                            <td colspan="4">
                            </td>
                            <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASRCDecision' && repa != null , true, false)}">
                                <!-- <th>AS-RC</th> -->
                                <td align="left">
@@ -394,43 +396,63 @@
                        </tr>
                    </table>
                    <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认',false , true)}">
                        <table style="width:100%; {!IF(RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认', 'display: none;', '')}">
                        <table style="width:100%; {!IF(RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认', 'display: none;', '')}" cellspacing="8">
                            <colgroup>
                          <col width="1%"/>
                            <col width="1%"/>
                            <col width="1%"/>
                            <col width="1%"/>
                            <col width="1%"/>
                            <col width="1%"/>
                            <col width="25%"/>
                            <col width="25%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            <col width="15%"/>
                            </colgroup>
                            <tr>
                                <td>
                                    <!-- <apex:commandButton onclick="SaveAndCloses(false);"   value="1保存并关闭" style="margin-left:30px;width:80px;float:right" rerender="unEditable,message" oncomplete="unblockUI();"/>  -->
                                    <apex:commandbutton onclick="ReturnRepairInterface();return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:80px;float:right" value="关闭">
                                    <!-- <apex:commandButton onclick="SaveAndCloses(false);"   value="1保存并关闭" style="margin-left:30px;width:80px;float:left" rerender="unEditable,message" oncomplete="unblockUI();"/>  -->
                                    <apex:commandbutton onclick="ReturnRepairInterface();return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:80px;float:left" value="关闭">
                                    </apex:commandbutton>
                                    <apex:commandbutton disabled="{!IF(((repa.ETQ_UPLOAD_ERROR_GROUP__c != 'Intake') || editFlag) && savebuton == false && !(RecordTypeName='ASRCDecision'&&OCSM_QARA='1'),true,false)}" onclick="SaveAndCloses(1);return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:80px;float:right" value="保存">
                                </td>
                                <td>
                                    <apex:commandbutton disabled="{!IF(((repa.ETQ_UPLOAD_ERROR_GROUP__c != 'Intake') || editFlag) && savebuton == false && !(RecordTypeName='ASRCDecision'&&OCSM_QARA='1'),true,false)}" onclick="SaveAndCloses(1);return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:80px;float:left" value="保存">
                                    </apex:commandbutton>
                                    <!-- <apex:commandButton value="保存并关闭" disabled="{!editFlag}"  rendered="{!IF((!isOSH && OCSM_QARA != '1' && RecordTypeName = 'ASRCDecision' && repa != null) || (RecordTypeName = 'ASACDecision') || (RecordTypeName = 'ASACDecision' && QISReportId != null),true,false)}" style="margin-left:30px;width:80px;float:right"  onclick="SaveAndCloses(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" /> -->
                                </td>
                                    <!-- <apex:commandButton value="保存并关闭" disabled="{!editFlag}"  rendered="{!IF((!isOSH && OCSM_QARA != '1' && RecordTypeName = 'ASRCDecision' && repa != null) || (RecordTypeName = 'ASACDecision') || (RecordTypeName = 'ASACDecision' && QISReportId != null),true,false)}" style="margin-left:30px;width:80px;float:left"  onclick="SaveAndCloses(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" /> -->
                                    <!-- 20200810 Gzw 修改保存并关闭按钮,Final时显示
                                <apex:commandButton value="保存并关闭" disabled="{!editFlag}"  rendered="{!IF(((repa != null && !((repa.Repair_Determine__c = '要' && isOSH)||repa.Repair_Determine__c != '要')) || (RecordTypeName = 'ASACDecision')),true,false)}" style="margin-left:30px;width:80px;float:right"  onclick="SaveAndCloses(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" /> -->
                                    <apex:commandbutton disabled="{!editFlag}" onclick="SaveAndCloses(2);return false;" oncomplete="unblockUI();" rendered="{!IF(repa != null && RecordTypeName = 'ASACDecision',true,false)}" rerender="unEditable,message" style="margin-left:30px;width:80px;float:right" value="保存并关闭">
                                <apex:commandButton value="保存并关闭" disabled="{!editFlag}"  rendered="{!IF(((repa != null && !((repa.Repair_Determine__c = '要' && isOSH)||repa.Repair_Determine__c != '要')) || (RecordTypeName = 'ASACDecision')),true,false)}" style="margin-left:30px;width:80px;float:left"  onclick="SaveAndCloses(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" /> -->
                                <td>
                                    <apex:commandbutton disabled="{!editFlag}" onclick="SaveAndCloses(2);return false;" oncomplete="unblockUI();" rendered="{!IF(repa != null && RecordTypeName = 'ASACDecision',true,false)}" rerender="unEditable,message" style="margin-left:30px;width:80px;float:left" value="保存并关闭">
                                    </apex:commandbutton>
                                </td>
                                    <!-- When 要不要进行修理的判定=要 -->
                                    <!-- OSH screen:[确定并SAP申请]  -->
                                    <!-- OCSM QARA screen  [确定并关闭] -->
                                    <!-- update by rentx 2020-10-26 start -->
                                    <!-- <apex:commandButton rendered="{!IF(((repa.Repair_Determine__c = '要' && isOSH)||repa.Repair_Determine__c != '要') && repa != null && RecordTypeName='ASRCDecision',true,false)}" value="确定并SAP申请"  style="margin-left:30px;width:100px;float:right"  onclick="sendToSAPJS(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" disabled="{!IF(repa.SAP_Transfer_time__c != null || editFlag,true,false)}" /> -->
                                    <!-- <apex:commandButton rendered="{!IF(((repa.Repair_Determine__c = '要' && isOSH)||repa.Repair_Determine__c != '要') && repa != null && RecordTypeName='ASRCDecision',true,false)}" value="确定并SAP申请"  style="margin-left:30px;width:100px;float:left"  onclick="sendToSAPJS(2);return false;"  rerender="unEditable,message" oncomplete="unblockUI();" disabled="{!IF(repa.SAP_Transfer_time__c != null || editFlag,true,false)}" /> -->
                                    
                                    
                                    <apex:commandbutton disabled="{!IF(repa.SAP_Transfer_time__c != null || editFlag,true,false)}" onclick="sendToSAPJS(2);return false;" oncomplete="unblockUI();" rendered="{!IF(((repa.Repair_Determine__c = '要' && isOSH)||repa.Repair_Determine__c != '要') && repa != null && RecordTypeName='ASRCDecision',true,false)}" rerender="unEditable,message" style="margin-left:30px;width:100px;float:right" value="确定并SAP申请">
                                <td>
                                    <apex:commandbutton disabled="{!IF(repa.SAP_Transfer_time__c != null || editFlag,true,false)}" onclick="sendToSAPJS(2);return false;" oncomplete="unblockUI();" rendered="{!IF(((repa.Repair_Determine__c = '要' && isOSH)||repa.Repair_Determine__c != '要') && repa != null && RecordTypeName='ASRCDecision',true,false)}" rerender="unEditable,message" style="margin-left:30px;width:120px;float:left" value="确定并SAP申请">
                                    </apex:commandbutton>
                                    <apex:commandbutton disabled="{!editFlag}" onclick="SaveAndCloses(2);return false;" oncomplete="unblockUI();" rendered="{!IF((repa.Repair_Determine__c = '要' && OCSM_QARA == '1' && RecordTypeName = 'ASRCDecision' && repa != null) || (RecordTypeName = 'ASRCDecision' && QISReportId != null),true,false)}" rerender="unEditable,message" style="margin-left:30px;width:100px;float:right" value="确定并关闭">
                                </td>
                                <td>
                                    <apex:commandbutton disabled="{!editFlag}" onclick="SaveAndCloses(2);return false;" oncomplete="unblockUI();" rendered="{!IF((repa.Repair_Determine__c = '要' && OCSM_QARA == '1' && RecordTypeName = 'ASRCDecision' && repa != null) || (RecordTypeName = 'ASRCDecision' && QISReportId != null),true,false)}" rerender="unEditable,message" style="margin-left:30px;width:100px;float:left" value="确定并关闭">
                                    </apex:commandbutton>
                                </td>
                                    <!-- OCSM_QARA : {!OCSM_QARA}
                            OSH : {!isOSH} -->
                                    <!-- update by rentx 2020-10-26 start -->
                                    <!-- <apex:commandButton value="插入行" disabled="{!IF((RecordTypeName='ASRCDecision'&&OCSM_QARA='0')||(RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) || (RecordTypeName='ASRCDecision' && repa.SAP_Transfer_time__c != null),true,false)}" style="margin-left:30px;width:60px;float:right" onclick="InsertRows();return false;" rerender="unEditable,message" oncomplete="unblockUI();"/>
                            <apex:commandButton value="取消行" disabled="{!IF((RecordTypeName='ASRCDecision'&&OCSM_QARA='0')||(RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) || (RecordTypeName='ASRCDecision' && repa.SAP_Transfer_time__c != null),true,false)}" style="margin-left:30px;width:60px;float:right" onclick="SaveAndCloses(3);return false;"  rerender="unEditable,message" oncomplete="unblockUI();"/> -->
                                    <apex:commandbutton disabled="{!IF((RecordTypeName = 'ASRCDecision' && OCSM_QARA = '0') && ((RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) && (repa.ETQ_UPLOAD_ERROR_GROUP__c != 'Intake')),true,false)}" onclick="InsertRows();return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:60px;float:right" value="插入行">
                                    <!-- <apex:commandButton value="插入行" disabled="{!IF((RecordTypeName='ASRCDecision'&&OCSM_QARA='0')||(RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) || (RecordTypeName='ASRCDecision' && repa.SAP_Transfer_time__c != null),true,false)}" style="margin-left:30px;width:60px;float:left" onclick="InsertRows();return false;" rerender="unEditable,message" oncomplete="unblockUI();"/>
                            <apex:commandButton value="取消行" disabled="{!IF((RecordTypeName='ASRCDecision'&&OCSM_QARA='0')||(RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) || (RecordTypeName='ASRCDecision' && repa.SAP_Transfer_time__c != null),true,false)}" style="margin-left:30px;width:60px;float:left" onclick="SaveAndCloses(3);return false;"  rerender="unEditable,message" oncomplete="unblockUI();"/> -->
                                <td>
                                    <apex:commandbutton disabled="{!IF((RecordTypeName = 'ASRCDecision' && OCSM_QARA = '0') && ((RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) && (repa.ETQ_UPLOAD_ERROR_GROUP__c != 'Intake')),true,false)}" onclick="InsertRows();return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:80px;float:left" value="插入行">
                                    </apex:commandbutton>
                                    <apex:commandbutton disabled="{!IF((RecordTypeName = 'ASRCDecision' && OCSM_QARA = '0') && ((RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) && (repa.ETQ_UPLOAD_ERROR_GROUP__c != 'Intake')),true,false)}" onclick="SaveAndCloses(3);return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:60px;float:right" value="取消行">
                                </td>
                                <td>
                                    <apex:commandbutton disabled="{!IF((RecordTypeName = 'ASRCDecision' && OCSM_QARA = '0') && ((RecordTypeName='ASACDecision'&&OCSM_Cording='0')||(editFlag) && (repa.ETQ_UPLOAD_ERROR_GROUP__c != 'Intake')),true,false)}" onclick="SaveAndCloses(3);return false;" oncomplete="unblockUI();" rerender="unEditable,message" style="margin-left:30px;width:80px;float:left" value="取消行">
                                    </apex:commandbutton>
                                    <!-- update by rentx 2020-10-26 end -->
                                </td>
@@ -438,7 +460,7 @@
                        </table>
                    </apex:outputpanel>
                    <apex:outputpanel layout="none" rendered="{!IF(RecordTypeName = 'ASACDecision'&& rdRecord.PAE_reappear_confirm__c = '未确认',true , false)}">
                        <p style="text-align: right;padding-bottom: 10px;width:100%;font-weight: 800;">
                        <p style="text-align: left;padding-bottom: 10px;width:100%;font-weight: 800;">
                            再现结果未确认,请点击Intake universal code 编辑 按钮前去确认
                        </p>
                    </apex:outputpanel>
force-app/main/default/pages/RentalAgencyReceived.page
@@ -1,361 +1,362 @@
<apex:page controller="RentalAgencyReceivedController" showHeader="false" sidebar="false" id="allPage" action="{!init}" title="办事处欠品确认">
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
    <apex:includeScript value="{!URLFOR($Resource.instascan)}"/>
    <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
<style type="text/css">
    .hideDropdown select{
        display: none
    }
    .modal {
       display:none;
       position: fixed; /* Stay in place */
       z-index: 10; /* Sit on top */
       left: 0;
       top: 0;
       width: 100%; /* Full width */
       height: 100%; /* Full height */
       overflow: auto; /* Enable scroll if needed */
       background-color: rgb(0,0,0); /* Fallback color */
       background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
    }
    /* Modal Content/Box */
    .modal-content {
       background-color: #fefefe;
       margin-left: 6px;
       margin-top: 100px;
       padding: 20px;
       border: 1px solid #888;
       right: 5%;
       position: absolute;
       width: 200px;
    }
    table.list td{
        width:100px;
        border-width: 1px;
    }
    table.list td.col_chk {
        width:30px;
    }
    body .pbBody table.list tr.headerRow td, body .pbBody table.list tr.headerRow th {
        border-width: 1px;
    }
    .col_stockin {
      position: relative;
      display: inline-block;
      border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
    }
    /* Tooltip text */
    .col_stockin .tooltiptext {
      visibility: hidden;
      width: 200px;
      /*background-color: #fefdba;*/
      /*color: #fff;*/
      text-align: center;
      padding: 5px 0;
      border-radius: 6px;
      /* Position the tooltip text - see examples below! */
      position: absolute;
      z-index: 1;
    }
    /* Show the tooltip text when you mouse over the tooltip container */
    .col_stockin:hover .tooltiptext {
      visibility: visible;
    }
</style>
<script type="text/javascript">
function checkMessage() {
    if (j$(escapeVfId('allPage:allForm:done_flg')).val() == 'true') {
        alert("保存成功");
    }
}
function filljsQR(qrcode) {
    if(!qrcode) return;
    // blockme();
    if(scanType == 1){
        j$("input[name$='SlipNo']").val(qrcode);
    }
    else{
        scanAndCheck(qrcode);
    }
    j$("#scanedqr").append("<li>"+qrcode+"</li>");
    j$("#scanedqr").animate({ scrollTop: j$("#scanedqr").prop("scrollHeight")}, 1000);
    // unblockUI();
}
function checkAll() {
    var checked = j$("input#checker").prop('checked')
    j$("table#tableData_L td.col_chk input[type=checkbox]:enabled:visible").each(function(){
        this.checked = checked;
    })
    if(checked) {
        // blockme();
        checkAllOK();
    }
}
var globalChecked = false;
function checkGlobal() {
    globalChecked = !globalChecked;
    j$("table#tableData_L td.col_chk input[type=checkbox]:enabled:visible").each(function(){
        this.checked = globalChecked;
    })
    j$("input#checker").prop('checked', globalChecked);
    if(globalChecked) {
        // blockme();
        checkAllOK();
    }
}
function checkAllOK() {
    j$("#tableData_L td.col_chk input[name=qrcode]").each(function() {
        scanAndCheck(this.value);
    })
}
// 欠品确认和cds连动
function changeCDS(lostResult, follow) {
    var cds = j$(lostResult).parent().parent().find('td.col_cds select');
    if(lostResult.value == 'OK'){
        if(!lostResult.disabled) {
            cds.prop('disabled', false);
<!-- 20230427 zq <apex:page controller="RentalAgencyReceivedController" showHeader="false" sidebar="false" id="allPage" action="{!init}" title="办事处欠品确认"> -->
    <apex:page lightningStylesheets = "true" controller="RentalAgencyReceivedController" showHeader="false" sidebar="false" id="allPage" action="{!init}" title="办事处欠品确认">
        <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
        <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
        <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
        <apex:includeScript value="{!URLFOR($Resource.instascan)}"/>
        <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
    <style type="text/css">
        .hideDropdown select{
            display: none
        }
        if(lostResult.value == 'OK' && follow) {
            cds.val('OK');
        .modal {
           display:none;
           position: fixed; /* Stay in place */
           z-index: 10; /* Sit on top */
           left: 0;
           top: 0;
           width: 100%; /* Full width */
           height: 100%; /* Full height */
           overflow: auto; /* Enable scroll if needed */
           background-color: rgb(0,0,0); /* Fallback color */
           background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
        }
        /* Modal Content/Box */
        .modal-content {
           background-color: #fefefe;
           margin-left: 6px;
           margin-top: 100px;
           padding: 20px;
           border: 1px solid #888;
           right: 5%;
           position: absolute;
           width: 200px;
        }
        table.list td{
            width:100px;
            border-width: 1px;
        }
        table.list td.col_chk {
            width:30px;
        }
        body .pbBody table.list tr.headerRow td, body .pbBody table.list tr.headerRow th {
            border-width: 1px;
        }
        .col_stockin {
          position: relative;
          display: inline-block;
          border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
        }
        /* Tooltip text */
        .col_stockin .tooltiptext {
          visibility: hidden;
          width: 200px;
          /*background-color: #fefdba;*/
          /*color: #fff;*/
          text-align: center;
          padding: 5px 0;
          border-radius: 6px;
          /* Position the tooltip text - see examples below! */
          position: absolute;
          z-index: 1;
        }
        /* Show the tooltip text when you mouse over the tooltip container */
        .col_stockin:hover .tooltiptext {
          visibility: visible;
        }
    </style>
    <script type="text/javascript">
    function checkMessage() {
        if (j$(escapeVfId('allPage:allForm:done_flg')).val() == 'true') {
            alert("保存成功");
        }
    }
    else {
        cds.val('');
        cds.prop('disabled', true);
    function filljsQR(qrcode) {
        if(!qrcode) return;
        // blockme();
        if(scanType == 1){
            j$("input[name$='SlipNo']").val(qrcode);
        }
        else{
            scanAndCheck(qrcode);
        }
        j$("#scanedqr").append("<li>"+qrcode+"</li>");
        j$("#scanedqr").animate({ scrollTop: j$("#scanedqr").prop("scrollHeight")}, 1000);
        // unblockUI();
    }
}
// 修改选择项时行首自动打勾
function checkLine(raesId) {
    j$("td[name=" + raesId + "]").children("input:enabled:visible")[0].checked=true;
}
// 扫码后整个一览下全部OK
function scanAndCheck(qrcode) {
    var raesId = j$("input[name='qrcode'][value='" + qrcode + "']").parent().attr('name');
    if(raesId == undefined) {
        alert("设备不存在!");
        return;
    function checkAll() {
        var checked = j$("input#checker").prop('checked')
        j$("table#tableData_L td.col_chk input[type=checkbox]:enabled:visible").each(function(){
            this.checked = checked;
        })
        if(checked) {
            // blockme();
            checkAllOK();
        }
    }
    // 可操作的下拉框选OK
    j$("#tableData_L tr").each(function() {
       if(j$(this).find('td.col_chk').attr('name') == raesId) {
            j$(this).find('td select:enabled:visible').val('OK');
       }
    })
    // cds连动OK
    j$('td.col_lost select').each(function(){
        changeCDS(this, true);
    })
    // 行首打勾
    checkLine(raesId);
}
</script>
<div id="myModal" class="modal">
  <!-- Modal content -->
  <div class="modal-content">
    <span class="close" onclick="stopScan()">&times;</span>
    <p>扫描中</p>
        <p>Code:<input type="text" id="qrcode"/></p>
    <video playsinline="true" id="preview" style="width: 100%;z-index: 11;transform: scaleX(-1);margin-top: 10px;"></video>
    扫码履历:
    <ul id="scanedqr" style="list-style-type: none; text-align: center;padding: 0;width: 100%; height: 100px; overflow: auto">
    </ul>
  </div>
</div>
<apex:form id="allForm" styleclass="pbBody">
    <apex:actionFunction name="changeStep" rerender="allForm" oncomplete="unblockUI();"/>
    <apex:actionFunction name="redirectPag" action="{!redirectPag}"/>
    <apex:inputHidden value="{!done_flg}" id="done_flg"/>
     <apex:pageBlock id="searchBlock" tabStyle="Report" title="办事处欠品确认">
        <apex:pageBlockButtons location="top">
            回库
            <apex:selectList size="1" value="{!stepName}" onchange="blockme();changeStep();">
                <apex:selectOption itemValue="" itemLabel="--无--"/>
                <apex:selectOption itemValue="欠品确认&CDS" itemLabel="欠品确认&CDS"/>
                <apex:selectOption itemValue="回库确认" itemLabel="回库确认"/>
            </apex:selectList>
            <apex:commandButton value="扫一扫" onclick="qrscan(0);return false;" disabled="{!readOnly || stepName == '' }"/>
            <apex:commandButton value="全选/取消全选" onclick="checkGlobal(); return false;" disabled="{!readOnly}"/>
            <apex:commandButton value="欠品确认&CDS" action="{!lostAndCDS}" onclick="blockme()" disabled="{!readOnly || stepName != '欠品确认&CDS' }" reRender="allForm" oncomplete="unblockUI();checkMessage();"/>
            <apex:commandButton value="回库" action="{!stockup}" onclick="blockme();" rerender="allForm" disabled="{! !stockupActive || stepName != '回库确认'}" oncomplete="unblockUI();checkMessage();"/>
        </apex:pageBlockButtons>
        欠品确认
        <apex:selectList size="1" value="{!lostResult}">
            <apex:selectOption itemValue="" itemLabel="--无--"/>
            <apex:selectOption itemValue="OK" itemLabel="OK"/>
            <apex:selectOption itemValue="欠品" itemLabel="欠品"/>
        </apex:selectList>
        &nbsp;&nbsp;CDS结果
        <apex:selectList size="1" value="{!cdsResult}">
            <apex:selectOption itemValue="" itemLabel="--无--"/>
            <apex:selectOption itemValue="OK" itemLabel="OK"/>
        </apex:selectList>
        &nbsp;&nbsp;
        <apex:commandButton value="检索" onclick="blockme();" action="{!filter}" reRender="allForm" oncomplete="unblockUI();"/>
        <apex:commandButton value="清除" onclick="blockme();" action="{!clearFilter}" reRender="allForm" oncomplete="unblockUI();"/>
    </apex:pageBlock>
    <apex:outputPanel id="message">
        <apex:pageMessages />
    </apex:outputPanel>
    <div id="out_Div_L">
        <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
            <tr class="headerRow" height="30px">
                <td class="col_chk" align="center">
                    全选<input type='checkbox' onClick='checkAll();' id="checker"/>
                </td>
                <td>型号</td>
                <td>固定资产编号(Key)</td>
                <td>机身编号</td>
                <td style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">欠品确认</td>
                <td style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">CDS</td>
                <!-- <td style="width: 110px;" class="onetoone"> 一对一主体 </td> -->
                <td style="{!IF(stepName='回库确认','background-color: #cfeef9','')}">回库确认</td>
            </tr>
        </table>
    var globalChecked = false;
    function checkGlobal() {
        globalChecked = !globalChecked;
        j$("table#tableData_L td.col_chk input[type=checkbox]:enabled:visible").each(function(){
            this.checked = globalChecked;
        })
        j$("input#checker").prop('checked', globalChecked);
        if(globalChecked) {
            // blockme();
            checkAllOK();
        }
    }
    function checkAllOK() {
        j$("#tableData_L td.col_chk input[name=qrcode]").each(function() {
            scanAndCheck(this.value);
        })
    }
    // 欠品确认和cds连动
    function changeCDS(lostResult, follow) {
        var cds = j$(lostResult).parent().parent().find('td.col_cds select');
        if(lostResult.value == 'OK'){
            if(!lostResult.disabled) {
                cds.prop('disabled', false);
            }
            if(lostResult.value == 'OK' && follow) {
                cds.val('OK');
            }
        }
        else {
            cds.val('');
            cds.prop('disabled', true);
        }
    }
    // 修改选择项时行首自动打勾
    function checkLine(raesId) {
        j$("td[name=" + raesId + "]").children("input:enabled:visible")[0].checked=true;
    }
    // 扫码后整个一览下全部OK
    function scanAndCheck(qrcode) {
        var raesId = j$("input[name='qrcode'][value='" + qrcode + "']").parent().attr('name');
        if(raesId == undefined) {
            alert("设备不存在!");
            return;
        }
        // 可操作的下拉框选OK
        j$("#tableData_L tr").each(function() {
           if(j$(this).find('td.col_chk').attr('name') == raesId) {
                j$(this).find('td select:enabled:visible').val('OK');
           }
        })
        // cds连动OK
        j$('td.col_lost select').each(function(){
            changeCDS(this, true);
        })
        // 行首打勾
        checkLine(raesId);
    }
    </script>
    <div id="myModal" class="modal">
      <!-- Modal content -->
      <div class="modal-content">
        <span class="close" onclick="stopScan()">&times;</span>
        <p>扫描中</p>
            <p>Code:<input type="text" id="qrcode"/></p>
        <video playsinline="true" id="preview" style="width: 100%;z-index: 11;transform: scaleX(-1);margin-top: 10px;"></video>
        扫码履历:
        <ul id="scanedqr" style="list-style-type: none; text-align: center;padding: 0;width: 100%; height: 100px; overflow: auto">
        </ul>
      </div>
    </div>
    <apex:outputPanel id="detail">
        <div id="in_Div_L">
            <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                <apex:variable value="{!0}" var="Cnt" />
                    <apex:repeat id="dataline_L" value="{!esdList}" var="esdInfo">
                        <tr class="" id="tableData_L_{!Cnt}" style="{!IF(esdInfo.hidden,'display: none','')}">
                            <td class="dataCellBorder1 col_chk" align="center" name="{!esdInfo.rec.Rental_Apply_Equipment_Set__c}">
                                <apex:inputCheckbox styleClass="rowchkcls" value="{!esdInfo.checked}" rendered="{!esdInfo.rec.Is_Body__c}"
                                id="rowCheck"
                                onchange="if(this.checked) {scanAndCheck('{!esdInfo.rec.Fixture_QRCode_F__c}');}"/>
                                <input type="hidden" name="qrcode" value="{!esdInfo.rec.Fixture_QRCode_F__c}"/>
                            </td>
                            <td>{!esdInfo.rec.Fixture_Model_No__c}</td>
                            <td>{!esdInfo.rec.Internal_Asset_number_c__c}</td>
                            <td>{!esdInfo.rec.SerialNumber_F__c}</td>
                            <td class="col_lost" style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">
                                <apex:selectList size="1" value="{!esdInfo.lostFinished}" disabled="{!!esdInfo.editable || stepName!='欠品确认&CDS' || esdInfo.rec.Arrival_in_wh__c}"
                                                onchange="changeCDS(this, true);checkLine('{!esdInfo.rec.Rental_Apply_Equipment_Set__c}');">
                                    <apex:selectOption itemValue="" itemLabel="--无--"/>
                                    <apex:selectOption itemValue="OK" itemLabel="OK"/>
                                    <apex:selectOption itemValue="欠品" itemLabel="欠品"/>
                                </apex:selectList>
                            </td>
                            <td class="col_cds" style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">
                                <apex:selectList size="1" value="{!esdInfo.cdsFinished}" disabled="{!!esdInfo.editable || stepName!='欠品确认&CDS' || esdInfo.rec.Arrival_in_wh__c}"
                                                onchange="checkLine('{!esdInfo.rec.Rental_Apply_Equipment_Set__c}');">
                                    <apex:selectOption itemValue="" itemLabel="--无--"/>
                                    <apex:selectOption itemValue="OK" itemLabel="OK"/>
                                </apex:selectList>
                            </td>
                            <td class="col_stockin" style="{!IF(stepName='回库确认','background-color: #cfeef9','')}">
                                <apex:selectList size="1" value="{!esdInfo.rec.Arrival_wh_Result_Agency__c}"
                                disabled="{!NOT(esdInfo.editable && stepName=='回库确认' && esdInfo.cdsFinished=='OK' && esdInfo.canChangeResult)}"
                                onchange="checkLine('{!esdInfo.rec.Rental_Apply_Equipment_Set__c}');">
                                    <apex:selectOption itemValue="" itemLabel="--无--"/>
                                    <apex:selectOption itemValue="OK" itemLabel="OK"/>
                                    <apex:selectOption itemValue="移至报废区" itemLabel="移至报废区"/>
                                    <apex:selectOption itemValue="待修理" itemLabel="待修理"/>
                                </apex:selectList>
                                <span class="tooltiptext">{!esdInfo.errorInfo}</span>
                            </td>
                        </tr>
                    <apex:variable value="{!Cnt+1}" var="Cnt" />
                </apex:repeat>
    <apex:form id="allForm" styleclass="pbBody">
        <apex:actionFunction name="changeStep" rerender="allForm" oncomplete="unblockUI();"/>
        <apex:actionFunction name="redirectPag" action="{!redirectPag}"/>
        <apex:inputHidden value="{!done_flg}" id="done_flg"/>
         <apex:pageBlock id="searchBlock" tabStyle="Report" title="办事处欠品确认">
            <apex:pageBlockButtons location="top">
                回库
                <apex:selectList size="1" value="{!stepName}" onchange="blockme();changeStep();">
                    <apex:selectOption itemValue="" itemLabel="--无--"/>
                    <apex:selectOption itemValue="欠品确认&CDS" itemLabel="欠品确认&CDS"/>
                    <apex:selectOption itemValue="回库确认" itemLabel="回库确认"/>
                </apex:selectList>
                <apex:commandButton value="扫一扫" onclick="qrscan(0);return false;" disabled="{!readOnly || stepName == '' }"/>
                <apex:commandButton value="全选/取消全选" onclick="checkGlobal(); return false;" disabled="{!readOnly}"/>
                <apex:commandButton value="欠品确认&CDS" action="{!lostAndCDS}" onclick="blockme()" disabled="{!readOnly || stepName != '欠品确认&CDS' }" reRender="allForm" oncomplete="unblockUI();checkMessage();"/>
                <apex:commandButton value="回库" action="{!stockup}" onclick="blockme();" rerender="allForm" disabled="{! !stockupActive || stepName != '回库确认'}" oncomplete="unblockUI();checkMessage();"/>
            </apex:pageBlockButtons>
            欠品确认
            <apex:selectList size="1" value="{!lostResult}">
                <apex:selectOption itemValue="" itemLabel="--无--"/>
                <apex:selectOption itemValue="OK" itemLabel="OK"/>
                <apex:selectOption itemValue="欠品" itemLabel="欠品"/>
            </apex:selectList>
            &nbsp;&nbsp;CDS结果
            <apex:selectList size="1" value="{!cdsResult}">
                <apex:selectOption itemValue="" itemLabel="--无--"/>
                <apex:selectOption itemValue="OK" itemLabel="OK"/>
            </apex:selectList>
            &nbsp;&nbsp;
            <apex:commandButton value="检索" onclick="blockme();" action="{!filter}" reRender="allForm" oncomplete="unblockUI();"/>
            <apex:commandButton value="清除" onclick="blockme();" action="{!clearFilter}" reRender="allForm" oncomplete="unblockUI();"/>
        </apex:pageBlock>
        <apex:outputPanel id="message">
            <apex:pageMessages />
        </apex:outputPanel>
        <div id="out_Div_L">
            <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableHeader_L">
                <tr class="headerRow" height="30px">
                    <td class="col_chk" align="center">
                        全选<input type='checkbox' onClick='checkAll();' id="checker"/>
                    </td>
                    <td>型号</td>
                    <td>固定资产编号(Key)</td>
                    <td>机身编号</td>
                    <td style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">欠品确认</td>
                    <td style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">CDS</td>
                    <!-- <td style="width: 110px;" class="onetoone"> 一对一主体 </td> -->
                    <td style="{!IF(stepName='回库确认','background-color: #cfeef9','')}">回库确认</td>
                </tr>
            </table>
        </div>
    </apex:outputPanel>
    <apex:outputPanel id="checEventFrame">
        <script>
            j$('td.col_lost select').each(function(){
                changeCDS(this, false);
            })
        </script>
    </apex:outputPanel>
</apex:form>
<script type="text/javascript">
    var standalone = window.navigator.standalone,
        userAgent = window.navigator.userAgent.toLowerCase(),
        safari = /safari/.test( userAgent ),
        ios = /iphone|ipod|ipad/.test( userAgent ),
        ver = '';
        if (ios) {
            ver = (navigator.userAgent).match(/OS (\d)?\d_\d(_\d)?/i)[0].split('_')[0].replace("OS ","");
        <apex:outputPanel id="detail">
            <div id="in_Div_L">
                <table class="list" style="border-bottom-width: 0px; font-size:11px; border-spacing:0;" border="" id="tableData_L">
                    <apex:variable value="{!0}" var="Cnt" />
                        <apex:repeat id="dataline_L" value="{!esdList}" var="esdInfo">
                            <tr class="" id="tableData_L_{!Cnt}" style="{!IF(esdInfo.hidden,'display: none','')}">
                                <td class="dataCellBorder1 col_chk" align="center" name="{!esdInfo.rec.Rental_Apply_Equipment_Set__c}">
                                    <apex:inputCheckbox styleClass="rowchkcls" value="{!esdInfo.checked}" rendered="{!esdInfo.rec.Is_Body__c}"
                                    id="rowCheck"
                                    onchange="if(this.checked) {scanAndCheck('{!esdInfo.rec.Fixture_QRCode_F__c}');}"/>
                                    <input type="hidden" name="qrcode" value="{!esdInfo.rec.Fixture_QRCode_F__c}"/>
                                </td>
                                <td>{!esdInfo.rec.Fixture_Model_No__c}</td>
                                <td>{!esdInfo.rec.Internal_Asset_number_c__c}</td>
                                <td>{!esdInfo.rec.SerialNumber_F__c}</td>
                                <td class="col_lost" style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">
                                    <apex:selectList size="1" value="{!esdInfo.lostFinished}" disabled="{!!esdInfo.editable || stepName!='欠品确认&CDS' || esdInfo.rec.Arrival_in_wh__c}"
                                                    onchange="changeCDS(this, true);checkLine('{!esdInfo.rec.Rental_Apply_Equipment_Set__c}');">
                                        <apex:selectOption itemValue="" itemLabel="--无--"/>
                                        <apex:selectOption itemValue="OK" itemLabel="OK"/>
                                        <apex:selectOption itemValue="欠品" itemLabel="欠品"/>
                                    </apex:selectList>
                                </td>
                                <td class="col_cds" style="{!IF(stepName='欠品确认&CDS','background-color: #cfeef9','')}">
                                    <apex:selectList size="1" value="{!esdInfo.cdsFinished}" disabled="{!!esdInfo.editable || stepName!='欠品确认&CDS' || esdInfo.rec.Arrival_in_wh__c}"
                                                    onchange="checkLine('{!esdInfo.rec.Rental_Apply_Equipment_Set__c}');">
                                        <apex:selectOption itemValue="" itemLabel="--无--"/>
                                        <apex:selectOption itemValue="OK" itemLabel="OK"/>
                                    </apex:selectList>
                                </td>
                                <td class="col_stockin" style="{!IF(stepName='回库确认','background-color: #cfeef9','')}">
                                    <apex:selectList size="1" value="{!esdInfo.rec.Arrival_wh_Result_Agency__c}"
                                    disabled="{!NOT(esdInfo.editable && stepName=='回库确认' && esdInfo.cdsFinished=='OK' && esdInfo.canChangeResult)}"
                                    onchange="checkLine('{!esdInfo.rec.Rental_Apply_Equipment_Set__c}');">
                                        <apex:selectOption itemValue="" itemLabel="--无--"/>
                                        <apex:selectOption itemValue="OK" itemLabel="OK"/>
                                        <apex:selectOption itemValue="移至报废区" itemLabel="移至报废区"/>
                                        <apex:selectOption itemValue="待修理" itemLabel="待修理"/>
                                    </apex:selectList>
                                    <span class="tooltiptext">{!esdInfo.errorInfo}</span>
                                </td>
                            </tr>
                        <apex:variable value="{!Cnt+1}" var="Cnt" />
                    </apex:repeat>
                </table>
            </div>
        </apex:outputPanel>
        <apex:outputPanel id="checEventFrame">
            <script>
                j$('td.col_lost select').each(function(){
                    changeCDS(this, false);
                })
            </script>
        </apex:outputPanel>
    </apex:form>
    <script type="text/javascript">
        var standalone = window.navigator.standalone,
            userAgent = window.navigator.userAgent.toLowerCase(),
            safari = /safari/.test( userAgent ),
            ios = /iphone|ipod|ipad/.test( userAgent ),
            ver = '';
            if (ios) {
                ver = (navigator.userAgent).match(/OS (\d)?\d_\d(_\d)?/i)[0].split('_')[0].replace("OS ","");
            }
        let scanner = new Instascan.Scanner({ video: document.getElementById('preview'), scanPeriod: 5 ,mirror: false});
        scanner.addListener('scan', function (content) {
          filljsQR(content);
        });
        function qrscan(stype) {
            scanType = stype;
            if (!standalone && !safari && ios) {
                window.location.href="sfqr://scan";
            } else {
                j$(".modal").show();
                Instascan.Camera.getCameras().then(function (cameras) {
                  if (cameras.length > 0) {
                    if (ver >= 13) {
                        scanner.start(cameras[1]);
                    } else {
                        scanner.start(cameras[0]);
                    }
                  } else {
                    console.error('No cameras found.');
                  }
                }).catch(function (e) {
                  console.error(e);
                });
            }
        }
    let scanner = new Instascan.Scanner({ video: document.getElementById('preview'), scanPeriod: 5 ,mirror: false});
    scanner.addListener('scan', function (content) {
      filljsQR(content);
    });
    function qrscan(stype) {
        scanType = stype;
        if (!standalone && !safari && ios) {
            window.location.href="sfqr://scan";
        } else {
            j$(".modal").show();
            Instascan.Camera.getCameras().then(function (cameras) {
              if (cameras.length > 0) {
                if (ver >= 13) {
                    scanner.start(cameras[1]);
                } else {
                    scanner.start(cameras[0]);
                }
              } else {
                console.error('No cameras found.');
              }
            }).catch(function (e) {
              console.error(e);
        function stopScan() {
            scanner.stop().then(function () {
                j$(".modal").hide();
            });
            j$("#scanedqr").children().remove();
        }
    }
    function stopScan() {
        scanner.stop().then(function () {
            j$(".modal").hide();
        j$(document).ready(function(){
            j$( '#qrcode' ).unbind();
            j$( '#qrcode' ).keypress( function ( e ) {
                if ( e.which == 13 ) {
                    filljsQR(j$( '#qrcode' ).val());
                    return false;
                }
            });
        });
        j$("#scanedqr").children().remove();
    }
    j$(document).ready(function(){
        j$( '#qrcode' ).unbind();
        j$( '#qrcode' ).keypress( function ( e ) {
            if ( e.which == 13 ) {
                filljsQR(j$( '#qrcode' ).val());
                return false;
            }
        });
    });
    //wangweipeng     2021/09/01   SFDC-C4H4BM    start
    window.onload = function popupWarn(){
        hintNoReceiptForm();
    }
    //如果是从单,并且从单没有上传签收单,那么弹出一个提示框
    function hintNoReceiptForm(){
        var isImportReceiptForm = {!isImportReceiptForm};
        if(isImportReceiptForm){
            var hintContent = '';
            var isAdvocateFollow  = {!isAdvocateFollow};
            if(isAdvocateFollow){
                hintContent = '申请单尚未上传签收单,是否继续';
            }else{
                hintContent = '主单尚未上传签收单,是否继续';
            }
            if(!confirm(hintContent)){
                //判断是否是pad端
                if (!standalone && !safari && ios) {
                    //上一步
                    window.history.back(-1);
        //wangweipeng     2021/09/01   SFDC-C4H4BM    start
        window.onload = function popupWarn(){
            hintNoReceiptForm();
        }
        //如果是从单,并且从单没有上传签收单,那么弹出一个提示框
        function hintNoReceiptForm(){
            var isImportReceiptForm = {!isImportReceiptForm};
            if(isImportReceiptForm){
                var hintContent = '';
                var isAdvocateFollow  = {!isAdvocateFollow};
                if(isAdvocateFollow){
                    hintContent = '申请单尚未上传签收单,是否继续';
                }else{
                    redirectPag();
                    hintContent = '主单尚未上传签收单,是否继续';
                }
                if(!confirm(hintContent)){
                    //判断是否是pad端
                    if (!standalone && !safari && ios) {
                        //上一步
                        window.history.back(-1);
                    }else{
                        redirectPag();
                    }
                }
            }
        }
    }
    //wangweipeng     2021/09/01   SFDC-C4H4BM    end
</script>
</apex:page>
        //wangweipeng     2021/09/01   SFDC-C4H4BM    end
    </script>
    </apex:page>
force-app/main/default/pages/YouCantDeleteQuote.page
@@ -1,4 +1,4 @@
<apex:page standardController="quote">
<apex:page standardController="quote" lightningstylesheets="true">
<div style="position: relative; margin-top: 10px; margin-left: 10px;">
<span style="font-weight: bold; font-size: 12pt;">{!$Label.YouCantDeleteEvent1}</span>