{"version":3,"file":"basic.mjs","sources":["../../../../src/pagesDefault/gen/basic.vue"],"sourcesContent":["<template>\r\n  <a-card :bordered=\"false\">\r\n    <a-form ref=\"formRef\" :model=\"formData\" :rules=\"formRules\" layout=\"vertical\">\r\n      <a-row :gutter=\"16\">\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"选择主表：\" name=\"dbTable\">\r\n            <a-select v-model:value=\"formData.dbTable\" :options=\"tableList\" style=\"width: 100%\" placeholder=\"请选择主表\"\r\n                      @select=\"selectTableColumnsData(formData.dbTable, false)\"></a-select>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"选择主键：\" name=\"dbTableKey\">\r\n            <a-select v-model:value=\"formData.dbTableKey\" :options=\"tableColumns\" style=\"width: 100%\"\r\n                      placeholder=\"选择主键\"></a-select>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"表前缀移除：\" name=\"tablePrefix\">\r\n            <a-radio-group v-model:value=\"formData.tablePrefix\" :options=\"tablePrefixOptions\"\r\n                           @change=\"tablePrefixChange\"></a-radio-group>\r\n          </a-form-item>\r\n        </a-col>\r\n      </a-row>\r\n      <a-row :gutter=\"16\">\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"生成方式：\" name=\"generateType\">\r\n            <a-radio-group v-model:value=\"formData.generateType\" :options=\"generateTypeOptions\"></a-radio-group>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"所属模块：\" name=\"module\">\r\n            <a-select v-model:value=\"formData.module\" :options=\"moduleOptions\" style=\"width: 100%\"\r\n                      placeholder=\"请选择所属模块\" @change=\"moduleChange(formData.module, false)\"></a-select>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"上级目录：\" name=\"menuPid\">\r\n            <a-tree-select\r\n                v-model:value=\"formData.menuPid\"\r\n                style=\"width: 100%\"\r\n                :dropdown-style=\"{ maxHeight: '400px', overflow: 'auto' }\"\r\n                placeholder=\"请选择上级目录\"\r\n                allow-clear\r\n                tree-default-expand-all\r\n                :tree-data=\"menuTreeData\"\r\n                :field-names=\"{\r\n\t\t\t\t\t\t\t\tchildren: 'children',\r\n\t\t\t\t\t\t\t\tlabel: 'title',\r\n\t\t\t\t\t\t\t\tvalue: 'id'\r\n\t\t\t\t\t\t\t}\"\r\n                selectable=\"false\"\r\n                tree-line\r\n            ></a-tree-select>\r\n          </a-form-item>\r\n        </a-col>\r\n      </a-row>\r\n      <a-row :gutter=\"16\">\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"功能名：\" name=\"functionName\">\r\n            <a-input v-model:value=\"formData.functionName\" placeholder=\"请输入功能名\" allow-clear/>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"业务名：\" name=\"busName\">\r\n            <a-input v-model:value=\"formData.busName\" placeholder=\"请输入业务名\" allow-clear/>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"类名：\" name=\"className\">\r\n            <a-input v-model:value=\"formData.className\" placeholder=\"请输入类名\" allow-clear/>\r\n          </a-form-item>\r\n        </a-col>\r\n      </a-row>\r\n      <a-row :gutter=\"16\">\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"表单布局：\" name=\"formLayout\">\r\n            <a-radio-group v-model:value=\"formData.formLayout\" :options=\"formLayoutOptions\"/>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"使用栅格：\" name=\"gridWhether\">\r\n            <a-radio-group v-model:value=\"formData.gridWhether\" :options=\"gridWhetherOptions\"/>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"排序：\" name=\"sortCode\">\r\n            <a-slider v-model:value=\"formData.sortCode\" :max=\"100\" style=\"width: 100%\"/>\r\n          </a-form-item>\r\n        </a-col>\r\n      </a-row>\r\n      <a-row :gutter=\"16\">\r\n        <a-col :span=\"8\">\r\n          <a-form-item label=\"作者：\" name=\"authorName\">\r\n            <a-input v-model:value=\"formData.authorName\" placeholder=\"请输入作者名\" allow-clear/>\r\n          </a-form-item>\r\n        </a-col>\r\n        <a-col :span=\"8\" v-if=\"formData.generateType === 'BIZ'\">\r\n          <a-form-item label=\"包名：\" name=\"packageName\">\r\n            <a-input v-model:value=\"formData.packageName\" placeholder=\"请输入包名\" allow-clear/>\r\n          </a-form-item>\r\n        </a-col>\r\n      </a-row>\r\n    </a-form>\r\n  </a-card>\r\n</template>\r\n<script setup name=\"genBasic\">\r\nimport {required} from '@/utils/formRules'\r\nimport {tool} from 'elead-ui-tool-v3'\r\nimport genBasicApi from '@/api/gen/genBasicApi'\r\nconst formRef = ref()\r\n// 表单数据\r\nconst formData = ref({})\r\n// 定义\r\nconst tableList = ref([])\r\nconst tableColumns = ref([])\r\nconst menuTreeData = ref([])\r\nconst submitLoading = ref(false)\r\nconst moduleOptions = ref()\r\nconst generateTypeOptions = ref([\r\n  {\r\n    label: '压缩包',\r\n    value: 'ZIP'\r\n  },\r\n  {\r\n    label: '项目内',\r\n    value: 'PRO'\r\n  }\r\n])\r\nconst tablePrefixOptions = ref([\r\n  {\r\n    label: '移除',\r\n    value: 'Y'\r\n  },\r\n  {\r\n    label: '不移除',\r\n    value: 'N'\r\n  }\r\n])\r\nconst formLayoutOptions = ref([\r\n  {\r\n    label: '垂直',\r\n    value: 'vertical'\r\n  },\r\n  {\r\n    label: '水平',\r\n    value: 'horizontal'\r\n  }\r\n])\r\nconst gridWhetherOptions = ref([\r\n  {\r\n    label: '栅格布局',\r\n    value: 'Y'\r\n  },\r\n  {\r\n    label: '不使用',\r\n    value: 'N'\r\n  }\r\n])\r\n// 打开抽屉\r\nconst onOpen = (record) => {\r\n  // 加载默认的模块\r\n  moduleOptions.value = tool.data.get('MENU').map((item) => {\r\n    return {\r\n      label: item.name,\r\n      value: item.id\r\n    }\r\n  })\r\n  // 获取数据库中的所有表\r\n  genBasicApi.basicTables().then((data) => {\r\n    tableList.value = data.map((item) => {\r\n      return {\r\n        value: item['tableName'],\r\n        label: `${item['tableRemark']}-${item['tableName']}`,\r\n        tableRemark: item['tableRemark'] || item['tableName'],\r\n        tableColumns: []\r\n      }\r\n    })\r\n  })\r\n  if (record) {\r\n    const params = {\r\n      id: record.id\r\n    }\r\n    submitLoading.value = true\r\n    genBasicApi\r\n        .basicDetail(params)\r\n        .then((data) => {\r\n          formData.value = data\r\n          // 让主键选中\r\n          selectTableColumnsData(data.dbTable, true)\r\n          // 让模块旁边的上级菜单选中\r\n          moduleChange(data.module, true)\r\n        })\r\n        .finally(() => {\r\n          submitLoading.value = false\r\n        })\r\n  } else {\r\n    formData.value = {\r\n      sortCode: 99,\r\n      tablePrefix: 'Y',\r\n      generateType: 'ZIP',\r\n      packageName: 'vip.xiaonuo',\r\n      formLayout: 'vertical',\r\n      gridWhether: 'N'\r\n    }\r\n  }\r\n}\r\n// 默认要校验的\r\nconst formRules = {\r\n  tablePrefix: [required('请选择是否移除表前缀')],\r\n  dbTable: [required('请选择主表')],\r\n  dbTableKey: [required('请选择主表主键')],\r\n  generateType: [required('请选择生成方式')],\r\n  module: [required('请选择所属模块')],\r\n  menuPid: [required('请选择上级目录')],\r\n  functionName: [required('请输入功能名')],\r\n  busName: [required('请输入业务名')],\r\n  className: [required('请输入类名')],\r\n  packageName: [required('请输入包名')],\r\n  sortCode: [required('请选择排序')],\r\n  formLayout: [required('请选择表单布局')],\r\n  gridWhether: [required('请选择是否使用栅格')],\r\n  authorName: [required('请输入作者名')]\r\n}\r\n// 选择模板的回调\r\nconst moduleChange = (value, assign) => {\r\n  if (!assign) {\r\n    // 先去掉值\r\n    formData.value.menuPid = undefined\r\n  }\r\n  // 加载默认的模块\r\n  const menuTree = tool.data.get('MENU').find((item) => {\r\n    if (item.id === value) {\r\n      return item\r\n    }\r\n  })\r\n  menuTreeData.value = [\r\n    {\r\n      id: '0',\r\n      title: '顶级',\r\n      menuType: 'CATALOG',\r\n      children: traverseChildren(menuTree.children)\r\n    }\r\n  ]\r\n}\r\n// 遍历增加属性\r\nconst traverseChildren = (data = []) => {\r\n  // 递归遍历控件树\r\n  const traverse = (array) => {\r\n    array.forEach((element) => {\r\n      if (element.menuType === 'CATALOG') {\r\n        if (element.children) {\r\n          traverse(element.children)\r\n        }\r\n      } else {\r\n        // 设置不可用\r\n        element.disabled = true\r\n        element.selectable = false\r\n      }\r\n    })\r\n  }\r\n  traverse(data)\r\n  return data\r\n}\r\n// 获取表字段\r\nconst selectTableColumnsData = (tableName, assign) => {\r\n  if (!assign) {\r\n    formData.value.dbTableKey = undefined\r\n  }\r\n  formFieldAssign(tableName)\r\n  // 通过这个 tableName 查到这个表下的字段\r\n  const param = {\r\n    tableName: tableName\r\n  }\r\n  genBasicApi.basicTableColumns(param).then((data) => {\r\n    tableColumns.value = data.map((item) => {\r\n      return {\r\n        value: item['columnName'],\r\n        label: item['columnRemark'] || item['columnName']\r\n      }\r\n    })\r\n  })\r\n}\r\n// 点击选择是否移除前缀\r\nconst tablePrefixChange = () => {\r\n  const tableName = formData.value.dbTable\r\n  if (tableName) {\r\n    const tableNameHump = getTableNameToHump(tableName)\r\n    formData.value.busName = tableNameHump.toLowerCase()\r\n  }\r\n}\r\n// 表单内设置默认的值\r\nconst formFieldAssign = (value) => {\r\n  const data = tableList.value.find((item) => item.value === value)\r\n  formData.value.functionName = data.tableRemark\r\n  const tableNameHump = getTableNameToHump(data.value)\r\n  formData.value.busName = tableNameHump.toLowerCase()\r\n  formData.value.className = getClassName(data.value)\r\n}\r\n// 获取数据库表的驼峰命名\r\nconst getTableNameToHump = (tableName) => {\r\n  if (tableName) {\r\n    const arr = tableName.toLowerCase().split('_')\r\n    if (formData.value.tablePrefix === 'Y') {\r\n      arr.splice(0, 1)\r\n    }\r\n    for (let i = 0; i < arr.length; i++) {\r\n      // charAt()方法得到第一个字母，slice()得到第二个字母以后的字符串\r\n      arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1)\r\n    }\r\n    return arr.join('')\r\n  }\r\n  return ''\r\n}\r\n// 获取数据库表的驼峰命名\r\nconst getClassName = (tableName) => {\r\n  if (tableName) {\r\n    const arr = tableName.toLowerCase().split('_')\r\n    for (let i = 0; i < arr.length; i++) {\r\n      // charAt()方法得到第一个字母，slice()得到第二个字母以后的字符串\r\n      arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1)\r\n    }\r\n    return arr.join('')\r\n  }\r\n  return ''\r\n}\r\n// 验证并提交数据\r\nconst onSubmit = () => {\r\n  return new Promise((resolve, reject) => {\r\n    formRef.value\r\n        .validate()\r\n        .then(() => {\r\n          submitLoading.value = true\r\n          genBasicApi\r\n              .submitForm(formData.value, !formData.value.id)\r\n              .then((data) => {\r\n                resolve(data)\r\n              })\r\n              .finally(() => {\r\n                submitLoading.value = false\r\n              })\r\n        })\r\n        .catch((err) => {\r\n          reject(err)\r\n        })\r\n  })\r\n}\r\n// 调用这个函数将子组件的一些数据和方法暴露出去\r\ndefineExpose({\r\n  onOpen,\r\n  onSubmit\r\n})\r\n</script>\r\n<style scoped>\r\n.childAddButton {\r\n  margin-bottom: 10px;\r\n}\r\n.form-row {\r\n  background-color: var(--item-hover-bg);\r\n  margin-left: 0px !important;\r\n}\r\n.form-row-con {\r\n  padding-bottom: 5px;\r\n  padding-top: 5px;\r\n  padding-left: 15px;\r\n}\r\n.form-div {\r\n  padding-top: 10px;\r\n}\r\n</style>\r\n"],"names":["_createBlock","_createVNode","_unref"],"mappings":"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"}