CodeGenerator/Templates/TypeScriptService.cshtml
owenchen 61714e0a91 ow
2026-05-12 10:43:31 +08:00

147 lines
8.1 KiB
Plaintext

@{
ModelData modelData = Model;
NamespaceObject namespaceObject = modelData.NamespaceObject;
SysTableSchemaViewEntity[] sysTableSchemas = modelData.sysTableSchemas;
ClassInfo classInfo= modelData.ClassInfos.FirstOrDefault();
//ClassInfo classInfo= modelData.ClassInfos.Where(x=>x.ClassName=="SecurityUserService").FirstOrDefault();
}
@if(classInfo.IsDownload)
{
<text>import { request,download } from "@@/utils/request";
</text>
}
else
{
<text>import { request } from "@@/utils/request";
</text>
}
@{
List<string> l=new List<string>();
if(classInfo.ClassMethodInfos!=null && classInfo.ClassMethodInfos.Length>0 && classInfo.ClassMethodInfos[0].Parameters!=null)
{
for (var j= 0; j< classInfo.ClassMethodInfos.Length; j++)
{
for (var i = 0; i < classInfo.ClassMethodInfos[j].Parameters.Length; i++)
{
if(!classInfo.ClassMethodInfos[j].Parameters[i].IsValueType)
{
if (!l.Contains(classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName.Replace("[]", "")))
{
l.Add(classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName.Replace("[]", ""));
}
}
}
if("dynamic" !=classInfo.ClassMethodInfos[j].MethodReturnName)
{
if(classInfo.ClassMethodInfos[j].IsValueType) continue;
if (l.Contains(classInfo.ClassMethodInfos[j].MethodReturnName.Replace("[]", ""))) continue;
l.Add(classInfo.ClassMethodInfos[j].MethodReturnName.Replace("[]", ""));
}
}
}
foreach (string s in l)
{
if(s.StringToProtectedProerty()=="string") continue;
if(s.StringToProtectedProerty()=="byte") continue;
<text>import type { @s } from "@@/data/auto/@s.StringToProtectedProerty()";
</text>
}
}
class @{@classInfo.ClassName}{
@{
if(classInfo.ClassMethodInfos!=null && classInfo.ClassMethodInfos.Length>0 && classInfo.ClassMethodInfos[0].Parameters!=null)
{
for (var j= 0; j< classInfo.ClassMethodInfos.Length; j++)
{
string methodReturnName=classInfo.ClassMethodInfos[j].MethodReturnName;
if(classInfo.ClassMethodInfos[j].IsValueType)
{
if(classInfo.ClassMethodInfos[j].MethodReturnName=="String")
methodReturnName="string";
else if(classInfo.ClassMethodInfos[j].MethodReturnName=="Int32" || classInfo.ClassMethodInfos[j].MethodReturnName=="Int64" || classInfo.ClassMethodInfos[j].MethodReturnName=="Int16" || classInfo.ClassMethodInfos[j].MethodReturnName=="Long" || classInfo.ClassMethodInfos[j].MethodReturnName=="decimal" )
methodReturnName="number";
else if(classInfo.ClassMethodInfos[j].MethodReturnName=="String[]")
methodReturnName="string[]";
else if(classInfo.ClassMethodInfos[j].MethodReturnName=="Int32[]" || classInfo.ClassMethodInfos[j].MethodReturnName=="Int64[]" || classInfo.ClassMethodInfos[j].MethodReturnName=="Int16[]" || classInfo.ClassMethodInfos[j].MethodReturnName=="Long[]" || classInfo.ClassMethodInfos[j].MethodReturnName=="decimal[]" )
methodReturnName="number[]";
else methodReturnName="any";
}
if(classInfo.ClassMethodInfos[j].Parameters.Length==0)
{
<text>
async @{@classInfo.ClassMethodInfos[j].MethodName}() {
return request<@methodReturnName.Replace("dynamic", "any")>(
{
url: "/@{@classInfo.ClassName.Replace("Service", "")}/@{@classInfo.ClassMethodInfos[j].MethodName}",
method: "@{if(classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]"){<text>post</text>}else{<text>get</text>} }",
}
)
};
</text>
}
for (var i = 0; i < classInfo.ClassMethodInfos[j].Parameters.Length; i++)
{
string parameterTypeName=classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName;
string url="\"";
if(classInfo.ClassMethodInfos[j].Parameters[i].IsValueType)
{
url="?"+classInfo.ClassMethodInfos[j].Parameters[i].ParameterName+"=\"+data";
if(classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="String")
parameterTypeName="string";
else if(classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Int32" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Int64" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Int16" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Long" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="decimal" )
parameterTypeName="number";
else if(classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="String[]")
parameterTypeName="string[]";
else if(classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Int32[]" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Int64[]" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Int16[]" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="Long[]" || classInfo.ClassMethodInfos[j].Parameters[i].ParameterTypeName=="decimal[]" )
parameterTypeName="number[]";
else parameterTypeName="any";
}
if(classInfo.ClassMethodInfos[j].Parameters.Length>1) {url="\"";parameterTypeName="any";}
if(i>0) {continue;}
<text>
async @{@classInfo.ClassMethodInfos[j].MethodName}(data: @parameterTypeName) {
@{
bool isPrintBy=false;
bool isDownloadFile=false;
if(classInfo.ClassMethodInfos[j].MethodName.StartsWith("PrintBy"))
{
isPrintBy=true;
}
if(classInfo.ClassMethodInfos[j].MethodName.StartsWith("DownloadFile"))
{
isDownloadFile=true;
}
}
return @{if(isPrintBy){<text>download</text>}else{ <text>request<@{@methodReturnName.Replace("dynamic", "any")}></text>}}(
{
url: "/@{@classInfo.ClassName.Replace("Service", "")}/@{@classInfo.ClassMethodInfos[j].MethodName}@url,
method: "@{if(classInfo.ClassMethodInfos[j].HttpName!="[HttpGet]"){<text>post</text>}else{<text>get</text>} }",
data,
@{if(isDownloadFile){<text> responseType: "arraybuffer",
</text>}else{ <text></text>}
}
@{if(isPrintBy){<text> filename:'@classInfo.ClassName.Replace("Service","")'
</text>}else{ <text></text>}
}
}
)
};
</text>
}
}
}
}
}
const @{@classInfo.ClassName.StringToProtectedProerty()}= new @{@classInfo.ClassName}();
export default @{@classInfo.ClassName.StringToProtectedProerty()};