qq_875143287 2021-06-10 18:57 采纳率: 60%
浏览 82
已结题

js 关于如何反转义一段js字符串的函数代码

初始代码如下

string = ‘let orderNumComp = this.findComponentById(\"#orderNum\");\nlet matCodeComp = this.findComponentById(\"#matCode\");\nlet matTextComp = this.findComponentById(\"#matText\");\nlet packageComp = this.findComponentById(\"#package\");\nlet spComp = this.findComponentById(\"#specification\");\nlet factoryComp = this.findComponentById(\"#factory\");\nlet approvalComp = this.findComponentById(\"#approval\");\nlet genDateComp = this.findComponentById(\"#genDate\");\nlet batchComp = this.findComponentById(\"#batch\");\nlet expireComp = this.findComponentById(\"#expire\");\nlet binComp = this.findComponentById(\"#bin\");\nlet numComp = this.findComponentById(\"#num\");\n\nlet map = this.$store.getters.dataBetweenPage;\n\nthis.setDropDownData = function () {\n    let matCodeArray = []\n    this.listData.forEach((element,index) => {\n        let obj = {}\n        obj.matCode = element.matCode\n        obj.matText = element.matText\n        obj.batchNum = element.batchNum\n        matCodeArray.push(obj)\n    });\n    matCodeArray.sort(function (a,b) {\n        return a.matCode.localeCompare(b.matCode)\n    })\n    matCodeComp.setDropData(matCodeArray)\n    matCodeComp.dropHeader=[\"商品编码\",\"商品名称\",\"批次\"]\n    let that = this;\n    matCodeComp.onSelectItem = function (data) {\n        this.content = data.matCode\n        for (const ele of that.listData) {\n            if (data.matCode == ele.matCode) {\n                that.curData = ele;\n                that.setInputData(ele);\n                binComp.setFocus();\n                break;\n            }\n        }\n    }\n}\n\nthis.curData = null;\nthis.detailList = [];\nthis.listData = [];\nthis.curOrderNum=\"\";\n\nlet dList = map.get(\"detailList\")\nlet lData = map.get(\"listData\");\nlet curNum = map.get(\"orderNum\");\nif(dList && dList.length!= 0){\n    this.detailList = dList;\n}\nif(lData && lData.length!= 0){\n    this.listData = lData\n    this.setDropDownData();\n}\n\nif(curNum){\n    this.curOrderNum = curNum\n    orderNumComp.setData(curNum);\n}\n\n\nthis.setInputData = function (data) {\n    orderNumComp.setData(data.orderNum);\n    matCodeComp.setData(data.matCode);\n    matTextComp.setData(data.matText);\n    packageComp.setData(data.packFormat);\n    spComp.setData(data.intoOrderStr8);\n    factoryComp.setData(data.ownerCode);\n    approvalComp.setData(data.intoOrderStr7);\n    genDateComp.setData(data.dateGen);\n    batchComp.setData(data.batchNum);\n    expireComp.setData(data.dateExpire);\n    numComp.setData(data.matQty)\n};\nthis.onHookSuccess = function (eventsData, result, api) {\n    if (api == \"findMaterialByCode\") {\n        let matCode = result.data.data[0].matCode;\n        this.listData.forEach(ele => {\n            if (matCode == ele.matCode) {\n                this.curData = ele; this.setInputData(ele);\n            }\n        });\n        matCodeComp.setData(matCode)\n    }else if(api == \"findOrderDetail\"){\n        this.listData = result.data.data\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"listData\", data: this.listData });\n        orderNumComp.setData(this.listData[0].orderNum);\n        matCodeComp.setFocus()\n        this.setDropDownData()\n    }\n    else {\n        this.detailList = [];\n    }\n};\nthis.clearInput = function () {\n    matCodeComp.setData(\"\");\n    matTextComp.setData(\"\");\n    packageComp.setData(\"\");\n    spComp.setData(\"\");\n    factoryComp.setData(\"\");\n    approvalComp.setData(\"\");\n    genDateComp.setData(\"\");\n    batchComp.setData(\"\");\n    expireComp.setData(\"\");\n    numComp.setData(\"\");\n    binComp.setData(\"\");\n    matCodeComp.setFocus();\n};\n//点击事件\nthis.hookBeforeClick = function (eventsData, element) {\n    //确定按钮\n    if (element.propsValue.refName == \"#confirm\") {\n        if (!matCodeComp.getContent()) {\n            this.$notify.error({\n                title: \"提示\",\n                message: \"商品编号不能为空!\",\n                position: \"bottom-right\"\n            });\n            matCodeComp.setFocus(); throw {}\n        } else if (!binComp.getContent()) {\n            this.$notify.error({\n                title: \"提示\",\n                message: \"仓位编号不能为空!\",\n                position: \"bottom-right\"\n            });\n            binComp.setFocus(); throw {}\n        } else if (!numComp.getContent()) {\n            this.$notify.error({\n                title: \"提示\",\n                message: \"数量不能为空!\",\n                position: \"bottom-right\"\n            });\n            numComp.setFocus(); throw {}\n        } if (!this.curData) {\n            return\n        }\n        let foundList = this.detailList.filter(ele => {\n            return ele.binCode == binComp.getContent() && ele.matCode == matCodeComp.getContent()\n        });\n        if (foundList.length == 1) {\n            foundList[0].updateQty += numComp.getContent()\n        }\n        else {\n            this.curData.binCode = binComp.getContent();\n            this.curData.matCode = matCodeComp.getContent();\n            this.curData.matText = matTextComp.getContent();\n            this.curData.updateQty = numComp.getContent();\n            this.detailList.push({ ...this.curData });\n        }\n        this.clearInput();\n    }\n    else if (element.propsValue.refName == \"#detail\") {\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"listData\", data: this.listData });\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"detailList\", data: this.detailList });\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"orderNum\", data: orderNumComp.getContent() });\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"updateDetail\", data: orderNumComp.getContent() });\n        this[\"_event_jumpPage\"](\"\", { events: [{ url: \"updateDetail\" }] }, this)\n    }else if(element.propsValue.refName ==\"#part\"){\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"listData\", data: this.listData });\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"detailList\", data: this.detailList });\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"orderNum\", data: orderNumComp.getContent() });\n        this.$store.dispatch(\"setDataBetweenPage\", { pageId: \"partList\", data: orderNumComp.getContent() });\n        this[\"_event_jumpPage\"](\"\", { events: [{ url: \"partList\" }] }, this)\n    }\n};//执行上架\nthis.interceptParam = function (param, element, eventsData) {\n    if (eventsData.request.api == \"updateIntoStock\") {\n        if (!window.localStorage.globalWbCode) {\n            this.$store.dispatch(\"showMassage\", { type: \"error\", message: \"请设置工位编号!\", });\n            throw {}\n        } if (this.detailList.length == 0) {\n            this.$store.dispatch(\"showMassage\", { type: \"error\", message: \"上架详情列表为空!\", });\n            throw {}\n        }\n        param.data = [];\n        this.detailList.forEach(ele => {\n            let item = {};\n            item.binCode = ele.binCode;\n            item.matCode = ele.matCode;\n            item.ownerCode = ele.ownerCode;\n            item.matQty = ele.updateQty;\n            item.orderItem = ele.orderItem;\n            item.orderType = ele.orderType;\n            item.orderKeyThird = ele.orderKeyThird;\n            item.batchNum = ele.batchNum;\n            item.batchAttr07 = ele.batchAttr07;\n            item.batchAttr08 = ele.batchAttr08;\n            item.orderNum = ele.orderNum;\n            item.traceCode = ele.traceCode;\n            item.ptlBin = ele.ptlBin;\n            item.traceHeight = ele.traceHeight;\n            item.boxCodes = ele.boxCodes;\n            item.containerTypeCode = ele.containerTypeCode;\n            param.data.push(item);\n            param.podCode = item.binCode.substring(0, 6);\n            param.dirCode = item.binCode.substring(8, 9);\n        });\n        param.avgLeaveFlag = \"1\"\n    }\n    return param\n};’

 

需要转换成 下面这样的代码

        

let orderNumComp = this.findComponentById("#orderNum");
let matCodeComp = this.findComponentById("#matCode");
let matTextComp = this.findComponentById("#matText");
let packageComp = this.findComponentById("#package");
let spComp = this.findComponentById("#specification");
let factoryComp = this.findComponentById("#factory");
let approvalComp = this.findComponentById("#approval");
let genDateComp = this.findComponentById("#genDate");
let batchComp = this.findComponentById("#batch");
let expireComp = this.findComponentById("#expire");
let binComp = this.findComponentById("#bin");
let numComp = this.findComponentById("#num");
let map = this.$store.getters.dataBetweenPage;
this.setDropDownData = function () {
    let matCodeArray = []
}
this.listData.forEach((element, index) => {
    let obj = {}
    obj.matCode = element.matCode
    obj.matText = element.matText
    obj.batchNum = element.batchNum
    matCodeArray.push(obj)
});
matCodeArray.sort(function (a, b) {
    return a.matCode.localeCompare(b.matCode)
})
matCodeComp.setDropData(matCodeArray)
matCodeComp.dropHeader = ["商品编码", "商品名称", "批次"]
let that = this;
matCodeComp.onSelectItem = function (data) {
    this.content = data.matCode
    for (const ele of that.listData) {
        if (data.matCode == ele.matCode) {
            that.curData = ele;
            that.setInputData(ele);
            binComp.setFocus();
            break;
        }
    }
}
this.curData = null;
this.detailList = [];
this.listData = [];
this.curOrderNum = "";
let dList = map.get("detailList")
let lData = map.get("listData");
let curNum = map.get("orderNum");
if (dList && dList.length != 0) {
    this.detailList = dList;
}
if (lData && lData.length != 0) {
    this.listData = lData
    this.setDropDownData();
}
if (curNum) {
    this.curOrderNum = curNumorderNumComp.setData(curNum);
}
this.setInputData = function (data) {
    orderNumComp.setData(data.orderNum);
    matCodeComp.setData(data.matCode);
    matTextComp.setData(data.matText);
    packageComp.setData(data.packFormat);
    spComp.setData(data.intoOrderStr8);
    factoryComp.setData(data.ownerCode);
    approvalComp.setData(data.intoOrderStr7);
    genDateComp.setData(data.dateGen);
    batchComp.setData(data.batchNum);
    expireComp.setData(data.dateExpire);
    numComp.setData(data.matQty)
};
this.onHookSuccess = function (eventsData, result, api) {
    if (api == "findMaterialByCode") {
        let matCode = result.data.data[0].matCode;
        this.listData.forEach(ele => {
            if (matCode == ele.matCode) {
                this.curData = ele;
            }
            this.setInputData(ele);
            matCodeComp.setData(matCode);
        };
    }
    else if (api == "findOrderDetail") {
        this.listData = result.data.data
        this.$store.dispatch("setDataBetweenPage", {pageId: "listData", data: this.listData});
        orderNumComp.setData(this.listData[0].orderNum);
        matCodeComp.setFocus();
        this.setDropDownData();
    }
    else {
        this.detailList = [];
    }
}
this.clearInput = function () {
    matCodeComp.setData("");
    matTextComp.setData("");
    packageComp.setData("");
    spComp.setData("");
    factoryComp.setData("");
    approvalComp.setData("");
    genDateComp.setData("");
    batchComp.setData("");
    expireComp.setData("");
    numComp.setData("");
    binComp.setData("");
    matCodeComp.setFocus()
};
//点击事件'
this.hookBeforeClick = function (eventsData, element) {    //确定按钮
    if (element.propsValue.refName == "#confirm") {
        if (!matCodeComp.getContent()) {
            this.$notify.error(
                {
                    title: "提示",
                    message: "商品编号不能为空!",
                    position: "bottom-right"
                });
            matCodeComp.setFocus();
            throw {}
        }
        else if (!binComp.getContent()) {
            this.$notify.error(
                {
                    title: "提示", message: "仓位编号不能为空!", position: "bottom-right"
                });
            binComp.setFocus();
            throw {}
        } else if (!numComp.getContent()) {
            this.$notify.error({
                title: "提示", message: "数量不能为空!", position: "bottom-right"
            });
            numComp.setFocus();
            throw {}
        }
        if (!this.curData) {
            return
        }
        let foundList = this.detailList.filter(ele => {
            return ele.binCode == binComp.getContent() && ele.matCode == matCodeComp.getContent()
        });
        if (foundList.length == 1) {
            foundList[0].updateQty += numComp.getContent()
        }
        else {
            this.curData.binCode = binComp.getContent();
            this.curData.matCode = matCodeComp.getContent();
            this.curData.matText = matTextComp.getContent();
            this.curData.updateQty = numComp.getContent();
            this.detailList.push({...this.curData});
        }
        this.clearInput();
    }
    else if (element.propsValue.refName == "#detail") {
        this.$store.dispatch("setDataBetweenPage",
            {pageId: "listData", data: this.listData});
        this.$store.dispatch("setDataBetweenPage", {pageId: "detailList", data: this.detailList});
        this.$store.dispatch("setDataBetweenPage", {pageId: "orderNum", data: orderNumComp.getContent()});
        this.$store.dispatch("setDataBetweenPage", {pageId: "updateDetail", data: orderNumComp.getContent()});
        this["_event_jumpPage"]("", {events: [{url: "updateDetail"}]}, this)
    }
    else if (element.propsValue.refName == "#part") {
        this.$store.dispatch("setDataBetweenPage", {pageId: "listData", data: this.listData});
        this.$store.dispatch("setDataBetweenPage", {pageId: "detailList", data: this.detailList});
        this.$store.dispatch("setDataBetweenPage", {pageId: "orderNum", data: orderNumComp.getContent()});
        this.$store.dispatch("setDataBetweenPage", {pageId: "partList", data: orderNumComp.getContent()});
        this["_event_jumpPage"]("", {events: [{url: "partList"}]}, this)
    }
}
//执行上架
this.interceptParam = function (param, element, eventsData) {
    if (eventsData.request.api == "updateIntoStock") {
        if (!window.localStorage.globalWbCode) {
            this.$store.dispatch("showMassage",
                {type: "error", message: "请设置工位编号!",});
            throw {}
        }
        if (this.detailList.length == 0) {
            this.$store.dispatch("showMassage", {type: "error", message: "上架详情列表为空!",});
        }
        throw {}
    }
    param.data = [];
    this.detailList.forEach(ele => {
        let item = {};
        item.binCode = ele.binCode;
        item.matCode = ele.matCode;
        item.ownerCode = ele.ownerCode;
        item.matQty = ele.updateQty;
        item.orderItem = ele.orderItem;
        item.orderType = ele.orderType;
        item.orderKeyThird = ele.orderKeyThird;
        item.batchNum = ele.batchNum;
        item.batchAttr07 = ele.batchAttr07;
        item.batchAttr08 = ele.batchAttr08;
        item.orderNum = ele.orderNum;
        item.traceCode = ele.traceCode;
        item.ptlBin = ele.ptlBin;
        item.traceHeight = ele.traceHeight;
        item.boxCodes = ele.boxCodes;
        item.containerTypeCode = ele.containerTypeCode;
        param.data.push(item);
        param.podCode = item.binCode.substring(0, 6);
        param.dirCode = item.binCode.substring(8, 9);
    });
    param.avgLeaveFlag = "1"
    return param
};

主要是中间的/n 和“‘’”  的字符会混淆  网上自带的 json 转换 也不行

代码实现或者网络工具能转化均采纳

  • 写回答

3条回答 默认 最新

  • WangScaler. 2021-06-10 19:38
    关注

    [在线反编译](https://beautifier.io/),将编译完的代码复制到文本编辑器(idea、vscode、notepad++等等),将\n替换成空格(替换的快捷键ctrl+R)

    评论

报告相同问题?

悬赏问题

  • ¥15 html5+css有人可以帮吗?
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?