liaofei 2 лет назад
Родитель
Сommit
27ee5ec867

+ 4 - 0
crmeb/app/services/system/SystemCrudServices.php

@@ -508,6 +508,10 @@ class SystemCrudServices extends BaseServices
                 //对比字段进行更新/删除字段
                 $this->diffAlter($tableName, $data['deleteField'], $tableField);
             }
+        } else {
+            if ($this->dao->count(['table_name' => $tableName])) {
+                throw new AdminException('表已经被生成过,请在列表中进行修改');
+            }
         }
         //创建数据库
         if ($tableField && (!$data['isTable'] || !$tableInfo)) {

+ 1 - 15
template/admin/src/pages/system/codeGeneration/components/FoundationFor.vue

@@ -1,21 +1,7 @@
 <template>
   <div class="main">
     <Alert closable>
-      crud生成说明
-      <template #desc>
-        <p>
-          1、字段配置中表存在生成的字段为表内列的信息,并且主键、伪删除字段不允许设置为列,主键默认展示在列表中,伪删除字段不允许展示
-        </p>
-        <p>2、在字段配置中新建表时,主键不需要增加列,会在生成的时候默认自带主键id</p>
-        <p>
-          3、在字段配置中新建表时,字段类型为addTimestamps会自动创建create_time、update_time字段,字段类型为:timestamp
-        </p>
-        <p>
-          4、在字段配置中新建表时,字段类型为addSoftDelete会字段创建delete_time字段,字段类型为:timestamp,作用是伪删除
-        </p>
-        <p>5、在字段配置中,表单类型为frameImageOne时属于图片单选,frameImages时为图片多选</p>
-        <p>6、在字段配置中,表单类型为不生成时创建后不会生成对应的表单项</p>
-      </template>
+      crud生成说明 不能生成系统自带的表;已经生成过的表还能继续生成
     </Alert>
     <Form ref="foundation" :model="foundation" :rules="foundationRules" :label-width="100">
       <FormItem label="菜单">

+ 17 - 0
template/admin/src/pages/system/codeGeneration/components/TableForm.vue

@@ -1,5 +1,22 @@
 <template>
   <div class="main">
+    <Alert closable>
+      crud生成说明
+      <template #desc>
+        <p>
+          1、字段配置中表存在生成的字段为表内列的信息,并且主键、伪删除字段不允许设置为列,主键默认展示在列表中,伪删除字段不允许展示
+        </p>
+        <p>2、在字段配置中新建表时,主键不需要增加列,会自动增加一行主键id</p>
+        <p>
+          3、在字段配置中新建表时,字段类型为addTimestamps会自动创建create_time、update_time字段,字段类型为:timestamp
+        </p>
+        <p>
+          4、在字段配置中新建表时,字段类型为addSoftDelete会字段创建delete_time字段,字段类型为:timestamp,作用是伪删除
+        </p>
+        <p>5、在字段配置中,表单类型为frameImageOne时属于图片单选,frameImages时为图片多选</p>
+        <p>6、在字段配置中,表单类型为不生成时创建后不会生成对应的表单项</p>
+      </template>
+    </Alert>
     <Button type="primary" @click="addRow">添加一行</Button>
     <div>
       <Table

+ 24 - 6
template/admin/src/pages/system/codeGeneration/index.vue

@@ -182,13 +182,34 @@ export default {
           tableField: this.$refs.TableForm.tableField,
           deleteField: this.id ? this.$refs.TableForm.deleteField : [],
         };
-        if (this.id) data.id = this.id;
-        this.reqloading = true;
-        codeCrud(data)
+        if (this.id) {
+          data.id = this.id;
+          this.$Modal.confirm({
+            title: '生成提醒',
+            content: '重新提交会重新生成文件,<span style="color: red">删除、新增、修改</span>的字段将直接从改表中进行修改,请慎重操作!!',
+            loading: true,
+            onOk:() => {
+              this.saveCodeCrud(data,true);
+            },
+          })
+        }else{
+          this.saveCodeCrud(data);
+        }
+      } else {
+        if (this.currentTab < 3) this.currentTab++;
+      }
+    },
+    saveCodeCrud(data,loading){
+      this.reqloading = true;
+      codeCrud(data)
           .then((res) => {
             this.$Message.success(res.msg);
             this.getMenusUnique();
             this.reqloading = false;
+
+            if(loading){
+              this.$Modal.remove()
+            }
             this.$router.push({
               name: 'system_code_generation_list',
             });
@@ -197,9 +218,6 @@ export default {
             this.reqloading = false;
             this.$Message.error(err.msg);
           });
-      } else {
-        if (this.currentTab < 3) this.currentTab++;
-      }
     },
     getMenusUnique() {
       getMenusUnique().then((res) => {