{"version":3,"file":"form.mjs","sources":["../../../../../src/pagesDefault/sys/org/form.vue"],"sourcesContent":["<template>\r\n  <a-drawer :title=\"formData.id ? '编辑组织' : '增加组织'\" :width=\"500\" :visible=\"visible\" :destroy-on-close=\"true\"\r\n            :body-style=\"{ paddingBottom: '80px' }\" :footer-style=\"{ textAlign: 'right' }\" @close=\"onClose\">\r\n    <a-form ref=\"formRef\" :model=\"formData\" :rules=\"formRules\" layout=\"vertical\">\r\n      <a-form-item label=\"上级组织：\" name=\"parentId\">\r\n        <a-tree-select\r\n            v-model:value=\"formData.parentId\"\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=\"treeData\"\r\n            :field-names=\"{\r\n\t\t\t\t\t\tchildren: 'children',\r\n\t\t\t\t\t\tlabel: 'name',\r\n\t\t\t\t\t\tvalue: 'id'\r\n\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-form-item label=\"组织名称：\" name=\"name\">\r\n        <a-input v-model:value=\"formData.name\" placeholder=\"请输入组织名称\" allow-clear/>\r\n      </a-form-item>\r\n      <a-form-item label=\"组织分类：\" name=\"category\">\r\n        <a-select v-model:value=\"formData.category\" :options=\"orgCategoryOptions\" style=\"width: 100%\"\r\n                  placeholder=\"请选择组织分类\"></a-select>\r\n      </a-form-item>\r\n      <a-form-item label=\"排序：\" name=\"sortCode\">\r\n        <a-slider v-model:value=\"formData.sortCode\" :max=\"100\"/>\r\n      </a-form-item>\r\n      <a-form-item label=\"指定主管：\" name=\"directorId\">\r\n        <a-button type=\"link\" style=\"padding-left: 0px\" @click=\"openSelector(formData.directorId)\">选择</a-button>\r\n        <a-tag v-if=\"formData.directorId && extJson.length > 0\" color=\"orange\" closable @close=\"closeUserTag\">\r\n          {{ extJson[0].name }}\r\n        </a-tag>\r\n        <a-input v-show=\"false\" v-model:value=\"formData.directorId\"/>\r\n      </a-form-item>\r\n    </a-form>\r\n    <template #footer>\r\n      <a-button style=\"margin-right: 8px\" @click=\"onClose\">关闭</a-button>\r\n      <a-button type=\"primary\" :loading=\"submitLoading\" @click=\"onSubmit\">保存</a-button>\r\n    </template>\r\n    <userSelectorPlus ref=\"us\" page-url=\"/sys/org/us\" org-url=\"/sys/org/orgTreeSelector\"\r\n                      :radio-model=\"true\" @onBack=\"userBack\"></userSelectorPlus>\r\n  </a-drawer>\r\n</template>\r\n<script setup name=\"orgForm\">\r\nimport {required} from '@/utils/formRules'\r\nimport orgApi from '@/api/sys/orgApi'\r\nimport {getCurrentInstance} from 'vue'\r\n// 定义emit事件\r\nconst emit = defineEmits({successful: null})\r\nconst {proxy} = getCurrentInstance()\r\n// 默认是关闭状态\r\nlet visible = ref(false)\r\nlet us = ref()\r\nconst formRef = ref()\r\n// 表单数据，也就是默认给一些数据\r\nconst formData = ref({})\r\n// 定义机构元素\r\nconst treeData = ref([])\r\nconst extJson = ref([])\r\nconst submitLoading = ref(false)\r\n// 打开抽屉\r\nconst onOpen = (record) => {\r\n  visible.value = true\r\n  extJson.value = ref([])\r\n  formData.value = {\r\n    sortCode: 99\r\n  }\r\n  if (record) {\r\n    const param = {\r\n      id: record.id\r\n    }\r\n    orgApi.orgDetail(param).then((data) => {\r\n      formData.value = Object.assign({}, data)\r\n      extJson.value = JSON.parse(formData.value.extJson) || []\r\n    })\r\n  }\r\n  // 获取机构树并加入顶级\r\n  orgApi.orgTree().then((res) => {\r\n    treeData.value = [\r\n      {\r\n        id: 0,\r\n        parentId: '-1',\r\n        name: '顶级',\r\n        children: res\r\n      }\r\n    ]\r\n  })\r\n}\r\n// 关闭抽屉\r\nconst onClose = () => {\r\n  visible.value = false\r\n}\r\n// 默认要校验的\r\nconst formRules = {\r\n  name: [required('请输入组织名称')],\r\n  category: [required('请选择组织分类')],\r\n  sortCode: [required('请选择排序')]\r\n}\r\n// 机构分类字典\r\nlet orgCategoryOptions = proxy.$TOOL.dictTypeList('ORG_CATEGORY').map((item) => {\r\n  return {\r\n    value: item['dictValue'],\r\n    label: item['name']\r\n  }\r\n})\r\n// 打开人员选择器，选择主管\r\nconst openSelector = (id) => {\r\n  let checkedUserIds = []\r\n  checkedUserIds.push(id)\r\n  us.value.showUserPlusModal(checkedUserIds)\r\n}\r\n// 人员选择器回调\r\nconst userBack = (value) => {\r\n  extJson.value = value\r\n  if (value.length > 0) {\r\n    formData.value.directorId = value[0].id\r\n  } else {\r\n    formData.value.directorId = ''\r\n  }\r\n}\r\n// 通过小标签删除主管\r\nconst closeUserTag = () => {\r\n  extJson.value = []\r\n  formData.value.directorId = ''\r\n}\r\n// 验证并提交数据\r\nconst onSubmit = () => {\r\n  formRef.value.validate().then(() => {\r\n    submitLoading.value = true\r\n    formData.value.extJson = JSON.stringify(extJson.value)\r\n    orgApi\r\n        .submitForm(formData.value, !formData.value.id)\r\n        .then(() => {\r\n          visible.value = false\r\n          emit('successful')\r\n        })\r\n        .finally(() => {\r\n          submitLoading.value = false\r\n        })\r\n  })\r\n}\r\n// 调用这个函数将子组件的一些数据和方法暴露出去\r\ndefineExpose({\r\n  onOpen\r\n})\r\n</script>\r\n"],"names":["_createBlock","_unref","_createVNode","_createTextVNode","_toDisplayString"],"mappings":"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"}