UNPKG

@lcap/nasl

Version:

NetEase Application Specific Language

139 lines (138 loc) 5.36 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.genGetBlock = exports.genH5GetTemplate = exports.genGetTemplate = void 0; const config_1 = require("../config"); const utils = __importStar(require("../utils")); const utils_1 = require("./utils"); const _1 = require("."); function genGetTemplate(entity, nameGroup) { const properties = entity.properties.filter((0, _1.filterProperty)('inDetail')); return `<u-info-list> <u-info-list-group> <template #title><u-text text="基本信息"></u-text></template> ${properties .map((property) => { const valueExpression = `${nameGroup.viewVariableEntity}.${property.name}`; let formItem = ` <u-info-list-item><template #label><u-text text="${property.label || property.name}"></u-text></template>`; formItem += `<u-text :text="${valueExpression}"></u-text>`; formItem += ` </u-info-list-item>\n`; return formItem; }) .join('')} </u-info-list-group> </u-info-list>`; } exports.genGetTemplate = genGetTemplate; function genLoadLogic(getLogic, nameGroup) { const params = [(0, _1.genLogicParam)(`${getLogic.params[0].name}`, nameGroup.viewParamId)]; return utils_1.NaslNode.Logic({ name: nameGroup.viewLogicLoad, description: '', params: [], returns: [], body: [ utils_1.NaslLogicItem.Start, utils_1.NaslLogicItem.Assignment({ left: utils_1.NaslLogicItem.Identifier({ name: nameGroup.viewVariableEntity, }), right: utils_1.NaslLogicItem.CallLogic({ calleeNamespace: getLogic.getNamespace(), calleeName: getLogic.name, arguments: params, }), }), utils_1.NaslLogicItem.End, ], playground: [], }); } function genH5GetTemplate(entity, nameGroup) { const properties = entity.properties.filter((0, _1.filterProperty)('inDetail')); return `<van-cell-group> ${properties .map((property) => { const temptitle = property.label || property.name; let formItem = ` <van-cell isLink>`; formItem += `<template #title>${temptitle}</template>`; formItem += `{{ ${`${nameGroup.viewVariableEntity}.${property.name}`} }} </van-cell>\n`; return formItem; }) .join('')} </van-cell-group>`; } exports.genH5GetTemplate = genH5GetTemplate; function genGetBlock(entity, oldNode, getGetTemplate) { const likeComponent = oldNode?.likeComponent; const isBusinessComponent = likeComponent.concept === 'BusinessComponent'; const { ns } = entity; const getLogic = ns?.logics?.find((logic) => logic.name === `get`); const nameGroup = {}; nameGroup.viewParamId = likeComponent.getParamUniqueName('id'); nameGroup.viewVariableEntity = likeComponent.getVariableUniqueName(utils.firstLowerCase(entity.name)); nameGroup.viewLogicLoad = likeComponent.getLogicUniqueName('load'); const genTemplate = getGetTemplate || (config_1.config.scope === 'h5' ? genH5GetTemplate : genGetTemplate); return `<template> ${genTemplate(entity, nameGroup)} </template> <definition> { "viewParams": [ { "concept": "${isBusinessComponent ? 'ParamWithGroup' : 'Param'}", "name": "${nameGroup.viewParamId}", "typeAnnotation": ${JSON.stringify(utils_1.NaslCoreTypeAnnotation.Long)} } ], "viewVariables": [ { "concept": "Variable", "name": "${nameGroup.viewVariableEntity}", "typeAnnotation": ${JSON.stringify(utils_1.NaslTypeAnnotation.Reference({ typeNamespace: entity.getNamespace(), typeName: entity.name, }))} } ], "viewLogics": [ ${JSON.stringify(genLoadLogic(getLogic, nameGroup))} ], "viewBindEvents": [ { "concept": "BindEvent", "arguments": [], "name": "created", "calleeNamespace": "", "calleeName": "${nameGroup.viewLogicLoad}" } ] } </definition> `; } exports.genGetBlock = genGetBlock; exports.default = genGetBlock; //# sourceMappingURL=genGetBlock.js.map