");
#region 树和ProTable列表代码
if (!string.IsNullOrWhiteSpace(treeViewModel.TreeViewWidth))
{
int tableStart = 2;
//有打印功能的时候要增加一层dome,所以代码要再缩进一格
if (tableLayoutModel.ShowPrint)
{
tableStart = 3;
}
//获取ProTable列表代码
StringBuilder sbProTable = new StringBuilder();
BuildProTable(sbProTable, webPageCodeModel, dtGVEModel, dtGVEOtherModel, dtGridViewExRelate, dtEditor, tableStart);
//如果左侧设置了树,则加载绑定树的代码
BuildTreeAndProTable(_Index, webPageCodeModel, sbProTable.ToString());
}
else
{
//有打印功能的时候要增加一层dome
if (tableLayoutModel.ShowPrint)
{
_Index.AppendLine(CommonHelper.GetTabChar(3) + " {");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "// 打印报表");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "setPrintOut(el);");
_Index.AppendLine("");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(3) + ">");
BuildProTable(_Index, webPageCodeModel, dtGVEModel, dtGVEOtherModel, dtGridViewExRelate, dtEditor, 1);
_Index.AppendLine(CommonHelper.GetTabChar(3) + "
");
}
else
{
//加载ProTable列表代码
BuildProTable(_Index, webPageCodeModel, dtGVEModel, dtGVEOtherModel, dtGridViewExRelate, dtEditor);
}
}
#endregion
if (!string.IsNullOrWhiteSpace(tableLayoutModel.DrawerWidth))
{
#region Drawer【抽屉代码】
_Index.AppendLine(CommonHelper.GetTabChar(3) + " {");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "setCurrentRow(undefined);");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "setShowDetail(false);");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "closable={false}");
_Index.AppendLine(CommonHelper.GetTabChar(3) + ">");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "{currentRow?." +
webPageCodeModel.interfaceNameSpaceModel.DDLUniqueName.Replace(",", " && currentRow?.") + " && (");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "column={" + tableLayoutModel.EveryLineCount + "}");
if (!string.IsNullOrWhiteSpace(tableLayoutModel.DrawerTitle))
{
_Index.AppendLine(CommonHelper.GetTabChar(6) + "title={currentRow?." +
tableLayoutModel.DrawerTitle + "}");
}
_Index.AppendLine(CommonHelper.GetTabChar(6) + "request={async () => ({");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "data: currentRow || {},");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "})}");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "params={{");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "id: currentRow?." +
webPageCodeModel.interfaceNameSpaceModel.DDLUniqueName.Replace(",", " + currentRow?.") + ",");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(6) +
"columns={columns as ProDescriptionsItemProps<" + webPageCodeModel.HostModelName + ">[]}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "/>");
_Index.AppendLine(CommonHelper.GetTabChar(4) + ")}");
//显示附表内容
if (webPageCodeModel.relateInterfaceModel != null)
{
_Index.AppendLine(CommonHelper.GetTabChar(4) + "{ ({");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "data: await getSubDetail(currentRow?." +
webPageCodeModel.relateInterfaceModel.HostField + "),");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "})}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "columns={subColumns as ProDescriptionsItemProps<" +
webPageCodeModel.relateInterfaceModel.RelateModelName + ">[]}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "/>}");
}
//显示图片附件组件
if (webPageCodeModel.attachmentLayoutModel != null &&
!string.IsNullOrWhiteSpace(webPageCodeModel.attachmentLayoutModel.ShowAttachmentValue))
{
if (webPageCodeModel.attachmentLayoutModel.Attachment_Type == "1")
{
//查看图片
_Index.AppendLine(CommonHelper.GetTabChar(4) + "{/* 标题名称可以按需修改 */}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "{currentRow?." +
webPageCodeModel.attachmentLayoutModel.Attachment_Field +
" && ");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}");
}
else
{
//查看文件
_Index.AppendLine(CommonHelper.GetTabChar(4) + "{/* 标题名称可以按需修改 */}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "附件信息
");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "{");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "fileList ?");
_Index.AppendLine(CommonHelper.GetTabChar(6) + " : '-'");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}");
}
}
_Index.AppendLine(CommonHelper.GetTabChar(3) + "");
#endregion
}
if (ShowEdit)
{
#region Modal【编辑弹出框代码】
_Index.AppendLine(CommonHelper.GetTabChar(3) + " {");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "if (disabled) {");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "setDraggleDisabled(false)");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "onMouseOut={() => {");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "setDraggleDisabled(true)");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "}}");
_Index.AppendLine("");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "onFocus={() => { }}");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "onBlur={() => { }}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + ">");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "{currentRow ? '更新" + webPageCodeModel.tableLayoutModel.EditorTitle +
"' : '新建" + webPageCodeModel.tableLayoutModel.EditorTitle + "'}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "destroyOnClose={true}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "width={" + webPageCodeModel.tableLayoutModel.EditorWidth + "}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "visible={modalVisible}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "confirmLoading={confirmLoading}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "afterClose={() => {");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "formRef.current?.resetFields();");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "setCurrentRow(undefined);");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "onCancel={() => {");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "handleConfirmLoading(false)");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "handleModalVisible(false)");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}}");
_Index.AppendLine("");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "onOk={async () => { // 提交框内的数据");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "formRef?.current?.validateFields().then(()=>{");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "handleConfirmLoading(true)");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "formRef?.current?.submit()");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "})");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "modalRender={(modal) => {");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "return onDraggaleStart(event, uiData)}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + ">");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "{modal}
");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(3) + ">");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "layout={'horizontal'}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "wrapperCol={{ span: 16 }} // 表单项 填写部分所占的栅格数");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "labelCol={{ span: 6 }} // 表单项 标题所占的栅格数");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "formRef={formRef}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "autoFocusFirstInput");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "submitter={false}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "preserve={false}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "initialValues={currentRow}");
//如果有附表,则组合两个表的数据加载到编辑框中
if (webPageCodeModel.relateInterfaceModel != null)
{
_Index.AppendLine(CommonHelper.GetTabChar(5) + "request={async () => {");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "// 初始化数据 ");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "const data: any = {");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "STAFF_NAME: currentUser ? currentUser.Name : '',");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "USER_ID: currentUser ? currentUser.ID : '',");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "OPERATE_DATE: moment().format('YYYY-MM-DD hh:mm:ss'),");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "};");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "// 如果是编辑数据 则需要请求原数据");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "if (currentRow?." +
webPageCodeModel.relateInterfaceModel.HostField + ") {");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "const subData: any = await getSubDetail(currentRow?." +
webPageCodeModel.relateInterfaceModel.HostField + "); // 附表详情");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "const newData = {");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "...currentRow,");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "...subData,");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "setFields(newData);");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "return newData;");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "return { ...data };");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "}}");
}
#region 编辑页提交事件
_Index.AppendLine(CommonHelper.GetTabChar(5) + "onFinish={async (values) => {");
if (webPageCodeModel.relateInterfaceModel != null)
{
_Index.AppendLine(CommonHelper.GetTabChar(6) + "let newValue: any = { ...values };");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "if (fields && fields." +
webPageCodeModel.relateInterfaceModel.HostField + ") {");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "// 编辑数据");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "newValue = { ...fields, ...values };");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "// 如果有开关,要把开关的代码写进去");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "const success = await handleAddUpdate({ ...newValue });");
}
else
{
_Index.AppendLine(CommonHelper.GetTabChar(6) + "let newValue: " + webPageCodeModel.HostModelName + " = { ...values };");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "if (currentRow) {");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "// 编辑数据");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "newValue = { ...values, " + webPageCodeModel.interfaceNameSpaceModel.DDLUniqueName +
": currentRow." + webPageCodeModel.interfaceNameSpaceModel.DDLUniqueName + " };");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "// 如果有开关,要把开关的代码写进去");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "const success = await handleAddUpdate(newValue as " + webPageCodeModel.HostModelName + ");");
}
_Index.AppendLine("");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "handleConfirmLoading(false)");
_Index.AppendLine(CommonHelper.GetTabChar(6) + "if (success) {");
if (webPageCodeModel.attachmentLayoutModel != null &&
webPageCodeModel.attachmentLayoutModel.UploadAttachment &&
webPageCodeModel.attachmentLayoutModel.Attachment_Type == "2")
{
_Index.AppendLine(CommonHelper.GetTabChar(7) + "const waitUpload = fileList.filter(n => n.status !== 'done')");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "if (waitUpload.length > 0) {");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "setCurrentRow(success)");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "const uploadSuccess = " +
"await customUploadRequest(waitUpload, success?." + webPageCodeModel.interfaceNameSpaceModel.DDLUniqueName + ")");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "if (uploadSuccess) {");
_Index.AppendLine(CommonHelper.GetTabChar(9) + "if (actionRef.current) {");
_Index.AppendLine(CommonHelper.GetTabChar(10) + "actionRef.current.reload();");
_Index.AppendLine(CommonHelper.GetTabChar(9) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(9) + "handleModalVisible(false);");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "else {");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "if (actionRef.current) {");
_Index.AppendLine(CommonHelper.GetTabChar(9) + "actionRef.current.reload();");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "handleModalVisible(false);");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "}");
}
else
{
_Index.AppendLine(CommonHelper.GetTabChar(7) + "if (actionRef.current) {");
_Index.AppendLine(CommonHelper.GetTabChar(8) + "actionRef.current.reload();");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(7) + "handleModalVisible(false);");
}
_Index.AppendLine(CommonHelper.GetTabChar(6) + "}");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + ">");
#endregion
_Index.AppendLine(CommonHelper.GetTabChar(5) + "");
//添加编辑页字段
BuildEditModel(_Index, dtEditor, webPageCodeModel.tableLayoutModel.EveryLineCount,
webPageCodeModel.HostClassName, true, webPageCodeModel.ListType.TryParseToInt());
//获取编辑列表中不显示的字段
DataTable dtHideEditor;
//如果有附表,则添加附表中的字段
if (webPageCodeModel.relateInterfaceModel != null)
{
BuildEditModel(_Index, dtRelateEditorTable, webPageCodeModel.tableLayoutModel.EveryLineCount, "");
//获取主接口和关联接口编辑页面要隐藏的字段
dtHideEditor = CombineHideColumns(dtEditor, dtRelateEditorTable);
}
else
{
//获取主接口编辑页面要隐藏的字段
dtHideEditor = CombineHideColumns(dtEditor, null);
}
//绑定编辑页面上要隐藏的字段
if (dtHideEditor.Rows.Count > 0)
{
BuildEditModel(_Index, dtHideEditor, webPageCodeModel.tableLayoutModel.EveryLineCount, "", false);
}
#region 编辑页附件相关代码
if (webPageCodeModel.attachmentLayoutModel != null &&
(webPageCodeModel.attachmentLayoutModel.UploadAttachment ||
webPageCodeModel.attachmentLayoutModel.SearchAttachment))
{
BuildEditFileUpload(_Index, webPageCodeModel.attachmentLayoutModel);
}
#endregion
_Index.AppendLine(CommonHelper.GetTabChar(5) + "
");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "");
_Index.AppendLine(CommonHelper.GetTabChar(3) + "");
#endregion
}
if (!string.IsNullOrWhiteSpace(treeViewModel.TreeViewWidth) && !string.IsNullOrWhiteSpace(treeViewModel.UsedDefinedModeValue))
{
#region Modal【用户自定义类别弹出框代码】
_Index.AppendLine(CommonHelper.GetTabChar(3) + "{/* " + treeViewModel.UsedDefinedModeText + " */}");
_Index.AppendLine(CommonHelper.GetTabChar(3) + "{");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "handleCategoryVisible(false)");
_Index.AppendLine(CommonHelper.GetTabChar(5) + "loadType()");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "}}");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "onCancel={() => handleCategoryVisible(false)}");
_Index.AppendLine(CommonHelper.GetTabChar(3) + ">");
_Index.AppendLine(CommonHelper.GetTabChar(4) + "");
_Index.AppendLine(CommonHelper.GetTabChar(3) + "");
#endregion
}
_Index.AppendLine(CommonHelper.GetTabChar(2) + "");
_Index.AppendLine(CommonHelper.GetTabChar(1) + ");");
_Index.AppendLine("};");
#endregion
_Index.AppendLine("export default connect(({ user }: ConnectState) => ({");
_Index.AppendLine(CommonHelper.GetTabChar(1) + "currentUser: user.currentUser");
_Index.AppendLine("}))(" + webPageCodeModel.HostModelName.Replace("Model", "") + "Table);");
return _Index;
}
#region 获取树对应的接口
///