Ben Lin
2024-06-20 de7e6c408b6209158b08991d729c4bcc72055eec
src/views/tigerprojects/system/role/RoleDrawer.vue
@@ -33,6 +33,19 @@
          title="组织分配"
        />
      </template>
      <template #fty="{ model, field }">
        <BasicTree
          v-model:value="model[field]"
          :treeData="treeDataProd"
          :renderIcon="createIconOrg"
          :fieldNames="{ title: 'NAME', key: 'ID' }"
          @gethalfCheckedKeys="gethalfCheckedKeysFty"
          :expanded-keys="expandedKeysFty"
          checkable
          toolbar
          title="工厂分配"
        />
      </template>
      <template #wh="{ model, field }">
        <BasicTree
          v-model:value="model[field]"
@@ -56,21 +69,34 @@
  import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
  import { BasicTree, TreeItem } from '/@/components/Tree';
  import { getMenuList, SaveRole, getRMList, getROList, getWhList } from '/@/api/tigerapi/system';
  import { getTreeList } from '/@/api/tigerapi/dept';
  import {
    getMenuList,
    SaveRole,
    getRMList,
    getROList,
    getWhList,
    getProdList,
    getEntity,
    convertToTree,
  } from '/@/api/tigerapi/system';
  import { getProdTreeList, getTreeList } from '/@/api/tigerapi/dept';
  import { getTreeList as getTreeListWh } from '/@/api/tigerapi/wms/house';
  type CheckKeys = KeyType[] | { checked: string[] | number[]; halfChecked: string[] | number[] };
  type _expandAll = KeyType[] | undefined;
  const emits = defineEmits(['success', 'register']);
  const isUpdate = ref(true);
  const treeData = ref<TreeItem[]>([]);
  const treeDataOrg = ref<TreeItem[]>([]);
  const treeDataProd = ref<TreeItem[]>([]);
  const treeDataWh = ref<TreeItem[]>([]);
  const expandedKeys = ref<_expandAll>([]);
  const expandedKeysOrg = ref<_expandAll>([]);
  const expandedKeysFty = ref<_expandAll>([]);
  const expandedKeysWh = ref<_expandAll>([]);
  const halfCheckedKeys = ref<CheckKeys>([]);
  const halfCheckedKeysOrg = ref<CheckKeys>([]);
  const halfCheckedKeysFty = ref<CheckKeys>([]);
  const halfCheckedKeysWh = ref<CheckKeys>([]);
  const gethalfCheckedKeys = (obj) => {
    halfCheckedKeys.value = obj;
@@ -78,6 +104,10 @@
  };
  const gethalfCheckedKeysOrg = (obj) => {
    halfCheckedKeysOrg.value = obj;
    console.log(obj);
  };
  const gethalfCheckedKeysFty = (obj) => {
    halfCheckedKeysFty.value = obj;
    console.log(obj);
  };
  const gethalfCheckedKeysWh = (obj) => {
@@ -100,6 +130,11 @@
    }
    if (unref(treeDataOrg).length === 0) {
      treeDataOrg.value = (await getTreeList()) as any as TreeItem[];
    }
    if (unref(treeDataProd).length === 0) {
      // treeDataProd.value = (await getProdTreeList()) as any as TreeItem[];
      let prodTreeData = await getEntity({sqlcmd: '', entityName: 'V_PROD_TREE'});
      treeDataProd.value = convertToTree(prodTreeData.Data.Items,'PARENT_CODE', 'CODE', '');
    }
    if (unref(treeDataWh).length === 0) {
      treeDataWh.value = (await getTreeListWh()) as any as TreeItem[];
@@ -124,6 +159,7 @@
      expandedKeys.value = list;
      await getRuleOrg(data);
      await getRuleWh(data);
      await getRuleProd(data);
      setFieldsValue({
        ...data.record,
      });
@@ -132,7 +168,7 @@
  //获取角色对应的组织
  async function getRuleOrg(data) {
    const orgList = await getROList(data.record.ID);
    const orgList = await getROList(data.record.ID);
    var hfList = [];
    var list = [];
    for (var key in orgList) {
@@ -150,7 +186,7 @@
  //获取角色对应的仓库
  async function getRuleWh(data) {
    const whList = await getWhList(data.record.ID);
    const whList = await getWhList(data.record.ID);
    var hfList = [];
    var list = [];
    for (var key in whList) {
@@ -166,6 +202,23 @@
    expandedKeysWh.value = list;
  }
  async function getRuleProd(data) {
    const prodList = await getProdList(data.record.ID);
    var hfList = [];
    var list = [];
    for (var key in prodList) {
      if (prodList[key].HALF_CHECK == 'N') {
        var item2 = prodList[key].PROD_CODE as never;
        hfList.push(item2);
      } else {
        var item = prodList[key].PROD_CODE as never;
        list.push(item);
      }
    }
    data.record.fty = hfList;
    expandedKeysFty.value = list;
  }
  const getTitle = computed(() => (!unref(isUpdate) ? '新增角色' : '编辑角色'));
  async function handleSubmit() {
@@ -176,6 +229,8 @@
      values.menu = { checked: values.menu, halfChecked: currentValue };
      let curOrgValue = halfCheckedKeysOrg.value as [];
      values.org = { checked: values.org, halfChecked: curOrgValue };
      let curFtyValue = halfCheckedKeysFty.value as [];
      values.fty = { checked: values.fty, halfChecked: curFtyValue };
      let curWhValue = halfCheckedKeysWh.value as [];
      values.wh = { checked: values.wh, halfChecked: curWhValue };
      // TODO custom api