From 4d3b655509f84e4afa334eeff20f7aab053e5900 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 01 七月 2024 16:23:02 +0800
Subject: [PATCH] #
---
zy-asrs-framework/src/main/resources/templates/vue/Edit.txt | 137 +++++++++++-----------
zy-asrs-admin/src/views/system/userLogin/edit.vue | 2
zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java | 125 ++++++--------------
zy-asrs-admin/src/router/index.js | 9 +
zy-asrs-framework/src/main/resources/templates/vue/Index.txt | 30 ----
5 files changed, 119 insertions(+), 184 deletions(-)
diff --git a/zy-asrs-admin/src/router/index.js b/zy-asrs-admin/src/router/index.js
index 11e6fb7..00836f2 100644
--- a/zy-asrs-admin/src/router/index.js
+++ b/zy-asrs-admin/src/router/index.js
@@ -3,6 +3,7 @@
import MenuView from '../views/system/menu/index.vue'
import LoginView from '../views/login/LoginView.vue'
import UserLoginView from '../views/system/userLogin/index.vue'
+import UserView from '../views/system/user/index.vue'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@@ -36,6 +37,14 @@
keepAlive: true // 璁剧疆keepAlive锛岃姝よ矾鐢遍〉闈㈣缂撳瓨
},
},
+ {
+ path: '/system/user',
+ name: '鐢ㄦ埛绠$悊',
+ component: UserView,
+ meta: {
+ keepAlive: true // 璁剧疆keepAlive锛岃姝よ矾鐢遍〉闈㈣缂撳瓨
+ },
+ },
]
})
diff --git a/zy-asrs-admin/src/views/system/userLogin/edit.vue b/zy-asrs-admin/src/views/system/userLogin/edit.vue
index 235a3c9..e2bc9a9 100644
--- a/zy-asrs-admin/src/views/system/userLogin/edit.vue
+++ b/zy-asrs-admin/src/views/system/userLogin/edit.vue
@@ -70,7 +70,7 @@
</a-form-item>
<a-form-item label="绫诲瀷" name="type" style="width: 250px;"
:rules="[{ required: true, message: '绫诲瀷涓嶈兘涓虹┖!' }]">
- <a-select ref="select" v-model:value="formData.type" :options="[
+ <a-select v-model:value="formData.type" :options="[
{ label: '鐧诲綍鎴愬姛', value: 0 },
{ label: '鐧诲綍澶辫触', value: 1 },
{ label: '閫�鍑虹櫥褰�', value: 2 },
diff --git a/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java b/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java
index 23373e9..3fe2222 100644
--- a/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java
+++ b/zy-asrs-framework/src/main/java/com/zy/asrs/framework/generators/VueGenerator.java
@@ -120,12 +120,12 @@
break;
case "Index":
pass = vue;
- directory = frontendPrefixPath + "/src/views/" + simpleEntityName + "/";
+ directory = frontendPrefixPath + "/src/views/" + itemName + "/" + simpleEntityName + "/";
fileName = "index.vue";
break;
case "Edit":
pass = vue;
- directory = frontendPrefixPath + "/src/views/" + simpleEntityName + "/";
+ directory = frontendPrefixPath + "/src/views/" + itemName + "/" + simpleEntityName + "/";
fileName = "edit.vue";
break;
default:
@@ -787,18 +787,19 @@
}
sb.append("',\n")
.append(" width: 140,\n");
- if (!Cools.isEmpty(column.getEnums())) {
- sb.append(" customRender: (column) => {\n");
- sb.append(" let typeMap = {");
- for (Map<String, Object> map : column.getEnums()) {
- for (Map.Entry<String, Object> entry : map.entrySet()){
- sb.append(" ").append(entry.getKey()).append(": ");
- sb.append(" { text: '").append(entry.getValue()).append("'").append(" },\n");
- }
- }
- sb.append(" }\n");
- sb.append(" }\n");
- }
+// if (!Cools.isEmpty(column.getEnums())) {
+// sb.append(" customRender: (column) => {\n");
+// sb.append(" let typeMap = {");
+// for (Map<String, Object> map : column.getEnums()) {
+// for (Map.Entry<String, Object> entry : map.entrySet()){
+// sb.append(" ").append(entry.getKey()).append(": ");
+// sb.append(" { text: '").append(entry.getValue()).append("'").append(" },\n");
+// }
+// }
+// sb.append(" }\n");
+// sb.append(" return typeMap[column.value].text;");
+// sb.append(" }\n");
+// }
sb.append(" },\n");
}
return sb.toString();
@@ -846,8 +847,6 @@
private String createFormEditColumns() {
StringBuilder sb = new StringBuilder();
- int times = 0;
- boolean has = false;boolean init = false;
for (Column column : columns) {
if (column.isPrimaryKey()
|| column.getHumpName().equals("deleted")
@@ -855,99 +854,55 @@
) {
continue;
}
- if (times%2 == 0) {
- sb.append(" <ProForm.Group>\n");
- has = true;init=true;
- }
- String itemType = "ProFormText";
- String precision = "";
- switch (column.getType()) {
- case "Boolean":
- itemType = "ProFormText";
- break;
- case "Short":
- itemType = "ProFormDigit";
- precision = "0";
- break;
- case "Integer":
- itemType = "ProFormDigit";
- precision = "0";
- break;
- case "Long":
- itemType = "ProFormDigit";
- precision = "0";
- break;
- case "Double":
- itemType = "ProFormDigit";
- precision = "2";
- break;
- case "String":
- itemType = "ProFormText";
- break;
- case "Date":
- itemType = "ProFormDateTimePicker";
- break;
- default:
- break;
- }
- if (!Cools.isEmpty(column.getEnums())) {
- itemType = "ProFormSelect";
- }
- if (!Cools.isEmpty(column.getForeignKey())) {
- itemType = "ProFormSelect";
- }
-
- sb.append(" <").append(itemType).append("\n")
- .append(" name=\"").append(column.getHumpName()).append("\"\n")
- .append(" label=\"").append(column.getComment()).append("\"\n")
- .append(" colProps={{ md: 12, xl: 12 }}\n");
- // 鏁板瓧灏忔暟鐐�
- if (!Cools.isEmpty(precision) && Cools.isEmpty(column.getEnums())) {
- sb.append(" fieldProps={{ precision: ").append(precision).append(" }}\n");
- }
+ sb.append(" <a-form-item \n");
+ sb.append(" label=\"").append(column.getComment()).append("\" \n");
+ sb.append(" name=\"").append(column.getHumpName()).append("\" \n");
+ sb.append(" style=\"width: 250px;\" \n");
// 闈炵┖
if (column.isNotNull()) {
- sb.append(" rules={[{ required: true }]}\n");
+ sb.append(" :rules=\"[{ required: true }]\"\n");
}
+ sb.append(" >\n");
// 鏋氫妇
if (!Cools.isEmpty(column.getEnums())) {
- sb.append(" options={[\n");
+ sb.append(" <a-select \n");
+ sb.append(" v-model:value=\"formData.").append(column.getHumpName()).append("\" \n");
+ sb.append(" :options=\"[\n");
for (Map<String, Object> map : column.getEnums()) {
for (Map.Entry<String, Object> entry : map.entrySet()){
sb.append(" { label: '").append(entry.getValue()).append("', value: ").append(entry.getKey()).append(" },\n");
}
}
- sb.append(" ]}\n");
+ sb.append(" ]\"\n");
+ sb.append(" >\n");
+ sb.append(" </a-select>\n");
}
// 鏃堕棿
if ("Date".equals(column.getType())) {
- sb.append(" transform={(value) => moment(value).toISOString()}\n");
+ sb.append(" <a-select \n");
+ sb.append(" v-model:value=\"formData.").append(column.getHumpName()).append("\" \n");
+ sb.append(" show-time \n");
+ sb.append(" format=\"YYYY-MM-DD HH:mm:ss\" \n");
+ sb.append(" value-format=\"YYYY-MM-DD HH:mm:ss\" \n");
+ sb.append(" /> \n");
}
// 鍏宠仈琛�
if (!Cools.isEmpty(column.getForeignKey())) {
- sb.append(" showSearch\n")
- .append(" debounceTime={300}\n")
- .append(" request={async ({ keyWords }) => {\n")
- .append(" const resp = await Http.doPostForm('api/").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("/query', { condition: keyWords });\n")
- .append(" return resp.data;\n")
- .append(" }}\n");
+// sb.append(" showSearch\n")
+// .append(" debounceTime={300}\n")
+// .append(" request={async ({ keyWords }) => {\n")
+// .append(" const resp = await Http.doPostForm('api/").append(GeneratorUtils.firstCharConvert(column.getForeignKey())).append("/query', { condition: keyWords });\n")
+// .append(" return resp.data;\n")
+// .append(" }}\n");
}
- sb.append(" />\n");
+ sb.append(" </a-form-item>\n");
- if (times%2 != 0) {
- sb.append(" </ProForm.Group>\n");
- has = false;
- }
- times++;
- }
- if (init && has) {
- sb.append(" </ProForm.Group>\n");
}
return sb.toString();
}
diff --git a/zy-asrs-framework/src/main/resources/templates/vue/Edit.txt b/zy-asrs-framework/src/main/resources/templates/vue/Edit.txt
index cf8b9f5..0e82260 100644
--- a/zy-asrs-framework/src/main/resources/templates/vue/Edit.txt
+++ b/zy-asrs-framework/src/main/resources/templates/vue/Edit.txt
@@ -1,72 +1,71 @@
-import React, { useState, useRef, useEffect } from 'react';
-import {
- ProForm,
- ProFormDigit,
- ProFormText,
- ProFormSelect,
- ProFormDateTimePicker
-} from '@ant-design/pro-components';
-import { Form, Modal } from 'antd';
-import { FormattedMessage, useIntl } from '@umijs/max';
-import moment from 'moment';
-import Http from '@/utils/http';
+<script setup>
+import { ref, nextTick } from 'vue';
+import { get, post } from '@/utils/request.js'
+import { formatMessage } from '@/utils/localeUtils.js';
-const Edit = (props) => {
- const intl = useIntl();
- const [form] = Form.useForm();
- const { } = props;
-
- useEffect(() => {
- form.resetFields();
- form.setFieldsValue({
- ...props.values
- })
- }, [form, props])
-
- const handleCancel = () => {
- props.onCancel();
- };
-
- const handleOk = () => {
- form.submit();
- }
-
- const handleFinish = async (values) => {
- props.onSubmit({ ...values });
- }
-
- return (
- <>
- <Modal
- title={
- Object.keys(props.values).length > 0
- ? intl.formatMessage({ id: 'page.edit', defaultMessage: '缂栬緫' })
- : intl.formatMessage({ id: 'page.add', defaultMessage: '娣诲姞' })
- }
- width={640}
- forceRender
- destroyOnClose
- open={props.open}
- onCancel={handleCancel}
- onOk={handleOk}
- >
- <ProForm
- form={form}
- submitter={false}
- onFinish={handleFinish}
- layout="horizontal"
- grid={true}
- >
- <ProFormDigit
- name="id"
- disabled
- hidden={true}
- />
-@{FORMEDITCOLUMNS}
- </ProForm>
- </Modal>
- </>
- )
+const submitButton = ref(null);
+const isSave = ref(true);
+const open = ref(false);
+const initFormData = {
+ name: null
}
+let formData = ref(initFormData);
+const treeData = ref(null);
-export default Edit;
\ No newline at end of file
+const emit = defineEmits(['tableReload'])
+
+const handleOk = (e) => {
+ nextTick(() => {
+ setTimeout(() => {
+ submitButton.value.$el.click();
+ }, 100);
+ });
+};
+
+const onFinish = values => {
+ // console.log('Success:', values);
+ open.value = false;
+ post(isSave.value ? '/api/@{SIMPLEENTITYNAME}/save' : '/api/@{SIMPLEENTITYNAME}/update', formData.value).then((result) => {
+ console.log(result);
+ emit('tableReload', 'reload')
+ })
+};
+const onFinishFailed = errorInfo => {
+ console.log('Failed:', errorInfo);
+};
+
+defineExpose({
+ open,
+ formData,
+ initFormData,
+ treeData,
+ isSave,
+})
+
+</script>
+
+<script>
+export default {
+ name: '@{TABLEDESC}-edit'
+}
+</script>
+
+<template>
+ <div>
+ <a-modal v-model:open="open"
+ :title="isSave ? formatMessage('page.add', '娣诲姞') : formatMessage('page.edit', '缂栬緫')" @ok="handleOk"
+ style="width: 600px;">
+ <a-form :model="formData" name="formTable" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
+ style="display: flex;justify-content: space-between;flex-wrap: wrap;" autocomplete="off"
+ @finish="onFinish" @finishFailed="onFinishFailed">
+@{FORMEDITCOLUMNS}
+ <a-form-item>
+ <a-button type="primary" html-type="submit" ref="submitButton"
+ style="visibility: hidden;">Submit</a-button>
+ </a-form-item>
+ </a-form>
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
\ No newline at end of file
diff --git a/zy-asrs-framework/src/main/resources/templates/vue/Index.txt b/zy-asrs-framework/src/main/resources/templates/vue/Index.txt
index 093d3a0..2a376f4 100644
--- a/zy-asrs-framework/src/main/resources/templates/vue/Index.txt
+++ b/zy-asrs-framework/src/main/resources/templates/vue/Index.txt
@@ -118,37 +118,9 @@
<script>
export default {
- name: '@{fullEntityName}'
+ name: '@{TABLEDESC}'
}
</script>
-
-<template>
- <div>
- <EditView ref="editChild" @tableReload="handleTableReload" />
- <div class="table-header">
- <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')" style="width: 200px;" @search="onSearch" />
- <div class="table-header-right">
- <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
- <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
- </div>
- </div>
- <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"
- :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"
- :pagination="{ total: tableData.total, onChange: onPageChange }"
- :scroll="{ y: 768, scrollToFirstRowOnChange: true }">
- @{TABLECOLUMNS}
- <a-table-column title="绫诲瀷" key="type" data-index="type" />
- <a-table-column title="鎿嶄綔" key="oper" data-index="oper">
- <template #default="{ record }">
- <div style="display: flex;justify-content: space-evenly;">
- <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '缂栬緫') }}</a-button>
- <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '鍒犻櫎') }}</a-button>
- </div>
- </template>
- </a-table-column>
- </a-table>
- </div>
-</template>
<template>
<div>
--
Gitblit v1.9.1