username@email.com
2024-05-15 c2b4e7c86e790d3880a8da9adeffafb3e6c12145
CoreCms.Net.Web.Admin/wwwroot/views/system/sysCodeGenerator/index.html
@@ -2,147 +2,242 @@
<!--当前位置结束-->
<div class="layui-card layadmin-header">
    <div class="layui-breadcrumb" lay-filter="breadcrumb">
        <script type="text/html" template lay-done="layui.data.updateMainBreadcrumb();">
        </script>
    </div>
  <div class="layui-breadcrumb" lay-filter="breadcrumb">
    <script
      type="text/html"
      template
      lay-done="layui.data.updateMainBreadcrumb();"
    ></script>
  </div>
</div>
<!--当前位置结束-->
<div class="layui-fluid">
    <div class="layui-row layui-col-space15">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-header">请选择数据库表后进行对应项目生成</div>
                <div class="layui-card-body">
                    <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="margin: 0 auto; max-width: 460px; padding-top: 40px;">
                        <div class="layui-form-item">
                            <label class="layui-form-label">数据表选择:</label>
                            <div class="layui-input-block">
                                <div id="selectBox" class="xm-select-demo"></div>
                            </div>
                        </div>
                        <div class="layui-form-item">
                            <label class="layui-form-label">生成类型</label>
                            <div class="layui-input-block">
                                <select name="fileType" id="fileType">
                                    <option value="AllFiles">全部</option>
                                    <option value="EntityFiles">实体</option>
                                    <option value="ViewFiles">视图</option>
                                    <option value="InterFaceFiles">DAL层</option>
                                    <option value="ServicesFiles">BLL层</option>
                                </select>
                            </div>
                        </div>
                        <div class="layui-form-item">
                            <div class="layui-input-block">
                                <button type="button" class="layui-btn" lay-submit lay-filter="LAY-app-codeGenerator-form-submit" id="LAY-app-codeGenerator-form-submit">立即生成</button>
                                <button type="button" class="layui-btn" lay-submit lay-filter="LAY-app-codeGenerator-GetDataBaseTablesToExcel-submit" id="LAY-app-codeGenerator-GetDataBaseTablesToExcel-submit">生成表名及说明</button>
                            </div>
                        </div>
                    </div>
                    <hr>
                    <div style="color: #666; margin-bottom: 40px; margin-top: 30px; padding-left: 30px;">
                        <h3>说明:</h3><br>
                        <h4>请注意选择表名</h4>
                        <p>如果需要,这里可以放一些关于产品的常见问题说明。</p>
                    </div>
                </div>
  <div class="layui-row layui-col-space15">
    <div class="layui-col-md12">
      <div class="layui-card">
        <div class="layui-card-header">请选择数据库表后进行对应项目生成</div>
        <div class="layui-card-body">
          <div
            class="layui-form"
            lay-filter="layuiadmin-app-form-list"
            id="layuiadmin-app-form-list"
            style="margin: 0 auto; max-width: 460px; padding-top: 40px"
          >
            <div class="layui-form-item">
              <label class="layui-form-label">数据表选择:</label>
              <div class="layui-input-block">
                <div id="selectBox" class="xm-select-demo"></div>
              </div>
            </div>
            <div class="layui-form-item">
              <label class="layui-form-label">生成类型</label>
              <div class="layui-input-block">
                <select name="fileType" id="fileType">
                  <option value="AllFiles">全部</option>
                  <option value="EntityFiles">实体</option>
                  <option value="ViewFiles">视图</option>
                  <option value="InterFaceFiles">DAL层</option>
                  <option value="ServicesFiles">BLL层</option>
                </select>
              </div>
            </div>
            <div class="layui-form-item">
              <div class="layui-input-block">
                <button
                  type="button"
                  class="layui-btn"
                  lay-submit
                  lay-filter="LAY-app-codeGenerator-form-submit"
                  id="LAY-app-codeGenerator-form-submit"
                >
                  立即生成
                </button>
                <button
                  type="button"
                  class="layui-btn"
                  lay-submit
                  lay-filter="LAY-app-codeGenerator-GetDataBaseTablesToExcel-submit"
                  id="LAY-app-codeGenerator-GetDataBaseTablesToExcel-submit"
                >
                  生成表名及说明
                </button>
              </div>
            </div>
          </div>
          <hr />
          <div
            style="
              color: #666;
              margin-bottom: 40px;
              margin-top: 30px;
              padding-left: 30px;
            "
          >
            <h3>说明:</h3>
            <br />
            <h4>请注意选择表名</h4>
            <p>如果需要,这里可以放一些关于产品的常见问题说明。</p>
          </div>
        </div>
      </div>
    </div>
    <div class="layui-col-md12">
      <button
        type="button"
        class="layui-btn layui-btn-normal layui-btn-lg"
        id="myButton"
      >
        更新数据库
      </button>
    </div>
  </div>
</div>
<script src="/lib/jquery/jquery-2.1.4.min.js"></script>
<script src="/lib/jquery/jquery.fileDownload.js"></script>
<script>
    layui.use(['admin', 'form', 'layer', 'xmSelect', 'coreHelper'], function () {
  layui.use(["admin", "form", "layer", "xmSelect", "coreHelper"], function () {
    var $ = layui.$,
      setter = layui.setter,
      admin = layui.admin,
      form = layui.form,
      layer = layui.layer,
      coreHelper = layui.coreHelper,
      router = layui.router(),
      xmSelect = layui.xmSelect,
      search = router.search;
        var $ = layui.$
            , setter = layui.setter
            , admin = layui.admin
            , form = layui.form
            , layer = layui.layer
            , coreHelper = layui.coreHelper
            , router = layui.router()
            , xmSelect = layui.xmSelect
            , search = router.search;
        var selectBox = xmSelect.render({
            el: '#selectBox',
            tips: '请选择数据库表?',
            height: '600px',
            radio: true,
            filterable: true,
            clickClose: true,
            toolbar: { show: false },
            name: 'tableName',
            prop: {
                name: 'label',
                value: 'name',
            },
            data: []
        })
        coreHelper.Post('api/CodeGenerator/GetTables', null, function (res) {
            //console.log(res);
            if (res.code === 0) {
                selectBox.update({
                    data: res.data,
                    autoRow: true,
                })
            }
        })
        //重载form
        form.render();
        //监听提交
        form.on('submit(LAY-app-codeGenerator-form-submit)',
            function (data) {
                var field = data.field; //获取提交的字段
                var headers = {};
                headers[setter.request.tokenName] = layui.data(setter.tableName)[setter.request.tokenName];
                var loadingIndex = false;
                $.fileDownload(setter.apiUrl + 'api/CodeGenerator/CodeGenDown?tableName=' + field.tableName + '&fileType=' + field.fileType,
                    {
                        httpMethod: 'POST',
                        dataType: "json",
                        contentType: "application/json",
                        //data: { tableName: field.tableName },
                        headers: headers,
                        //preparingMessageHtml: "代码正在生成中,请稍后...",
                        prepareCallback: function () {
                            loadingIndex = layer.msg('代码正在生成中,请稍后...',
                                {
                                    icon: 16,
                                    shade: 0.01
                                });
                        },
                        failCallback: function () {
                            layer.close(loadingIndex);
                            layer.msg("生成出错,请联系技术!", { icon: 5, time: 1500 });
                        },
                        //failMessageHtml: "生成出错,请联系技术!",
                        successCallback: function () {
                            layer.close(loadingIndex);
                            layer.msg("代码生成成功", { icon: 1 });
                        }
                    });
            });
        //监听提交
        form.on('submit(LAY-app-codeGenerator-GetDataBaseTablesToExcel-submit)',
            function (data) {
                layer.confirm('确定导出数据吗?',
                    function (index) {
                        coreHelper.PostForm("api/CodeGenerator/GetDataBaseTablesToExcel", null, function (e) {
                            console.log(e); //开启调试返回数据
                            if (e.code === 0) {
                                window.open(e.data);
                            } else {
                                layer.msg(e.msg);
                            }
                        });
                    });
            });
    var selectBox = xmSelect.render({
      el: "#selectBox",
      tips: "请选择数据库表?",
      height: "600px",
      radio: true,
      filterable: true,
      clickClose: true,
      toolbar: { show: false },
      name: "tableName",
      prop: {
        name: "label",
        value: "name",
      },
      data: [],
    });
</script>
    coreHelper.Post("api/CodeGenerator/GetTables", null, function (res) {
      //console.log(res);
      if (res.code === 0) {
        selectBox.update({
          data: res.data,
          autoRow: true,
        });
      }
    });
    //重载form
    form.render();
    //监听提交
    form.on("submit(LAY-app-codeGenerator-form-submit)", function (data) {
      var field = data.field; //获取提交的字段
      var headers = {};
      headers[setter.request.tokenName] = layui.data(setter.tableName)[
        setter.request.tokenName
      ];
      var loadingIndex = false;
      $.fileDownload(
        setter.apiUrl +
          "api/CodeGenerator/CodeGenDown?tableName=" +
          field.tableName +
          "&fileType=" +
          field.fileType,
        {
          httpMethod: "POST",
          dataType: "json",
          contentType: "application/json",
          //data: { tableName: field.tableName },
          headers: headers,
          //preparingMessageHtml: "代码正在生成中,请稍后...",
          prepareCallback: function () {
            loadingIndex = layer.msg("代码正在生成中,请稍后...", {
              icon: 16,
              shade: 0.01,
            });
          },
          failCallback: function () {
            layer.close(loadingIndex);
            layer.msg("生成出错,请联系技术!", { icon: 5, time: 1500 });
          },
          //failMessageHtml: "生成出错,请联系技术!",
          successCallback: function () {
            layer.close(loadingIndex);
            layer.msg("代码生成成功", { icon: 1 });
          },
        }
      );
    });
    //监听提交
    form.on(
      "submit(LAY-app-codeGenerator-GetDataBaseTablesToExcel-submit)",
      function (data) {
        layer.confirm("确定导出数据吗?", function (index) {
          coreHelper.PostForm(
            "api/CodeGenerator/GetDataBaseTablesToExcel",
            null,
            function (e) {
              console.log(e); //开启调试返回数据
              if (e.code === 0) {
                window.open(e.data);
              } else {
                layer.msg(e.msg);
              }
            }
          );
        });
      }
    );
    // 绑定按钮点击事件
    $("#myButton").on("click", function () {
      coreHelper.Post(
        "api/CodeGenerator/CreateAndUpdateDatabase",
        null,
        function (res) {
          //console.log(res);
          if (res.code === 0) {
            layer.msg(res.msg);
            layer.msg(res.msg, {
              time: 0, // 3秒后自动关闭
              shade: 0.5, // 遮罩透明度
              shadeClose: true, // 点击遮罩关闭层
              anim: 6, // 弹出动画
              icon: 6, // 图标,0-6可以选择
              btn: ["确认"], //按钮
              yes: function (index, layero) {
                // 按钮【确认】的回调函数
                layer.close(index); // 如果设定了yes回调,需进行手工关闭
              },
              btnAlign: "c", // 按钮居中
              color: "#00F", // 字体颜色
            });
          } else {
            layer.msg(res.msg, {
              time: 0, // 3秒后自动关闭
              shade: 0.5, // 遮罩透明度
              shadeClose: true, // 点击遮罩关闭层
              anim: 6, // 弹出动画
              icon: 2, // 图标,0-6可以选择
              btn: ["确认"], //按钮
              yes: function (index, layero) {
                // 按钮【确认】的回调函数
                layer.close(index); // 如果设定了yes回调,需进行手工关闭
              },
              btnAlign: "c", // 按钮居中
              color: "f00000", // 字体颜色
            });
          }
        }
      );
      layer.msg("按钮被点击了!");
    });
  });
</script>