Ben Lin
2024-06-07 aa0bc81d06736cc1a1bd210dde61f57736585d43
src/views/components/NormalModal.vue
@@ -11,7 +11,7 @@
        <BasicForm @register="registerForm" :model="model" />
      </div> -->
    <div>
      <BasicTable @register="registerTable">
      <BasicTable @register="registerTable" @row-dbClick="rowDbClick">
        <!-- <template #toolbar>
                  <a-button type="primary" @click="handleCreate"> 新增盘点 </a-button>
                </template> -->
@@ -31,6 +31,7 @@
  const title = ref('');
  const tableName = ref('');
  const rowKey = ref('');
  const returnFieldName = ref('');
  const schemas = ref([] as FormSchema[]);
  //列表
@@ -38,6 +39,7 @@
  const emit = defineEmits(['success', 'register']);
  const checkedKeys = ref<Array<string | number>>([]);
  const checkedIds = ref<Array<string | number>>([]);
  const [registerTable, { reload, getForm }] = useTable({
    title: '列表信息',
    api: getListByPage,
@@ -92,6 +94,7 @@
    ItemColumns.value = data?.ItemColumns;
    tableName.value = data?.tableName;
    rowKey.value = data?.rowKey;
    returnFieldName.value = data?.returnFieldName;
    checkedKeys.value = [];
    getForm().resetFields();
    reload();
@@ -101,17 +104,33 @@
  //   v && props.userData && nextTick(() => onDataReceive(props.userData));
  // }
  function rowDbClick(record, index, event) {
    try {
      closeModal();
      emit('success', {
        isUpdate: unref(false),
        values: { val: record[rowKey.value], id: record['ID'] },
        returnFieldName: returnFieldName.value,
      });
    } finally {
      setModalProps({ confirmLoading: false });
    }
  }
  async function handleSubmit() {
    try {
      var values = '';
      var ids = '';
      // checkedKeys.value.forEach(element => {
      //   values+=element;
      // });
      values = checkedKeys.value.join(',');
      ids = checkedIds.value.join(',');
      closeModal();
      emit('success', {
        isUpdate: unref(false),
        values: { values, id: 0 },
        values: { val: values, id: ids },
        returnFieldName: returnFieldName.value,
      });
    } finally {
      setModalProps({ confirmLoading: false });
@@ -120,16 +139,23 @@
  function onSelect(record, selected) {
    if (selected) {
      checkedKeys.value = [...checkedKeys.value, record[rowKey.value]];
      checkedIds.value = [...checkedIds.value, record['ID']];
    } else {
      checkedKeys.value = checkedKeys.value.filter((code) => code !== record[rowKey.value]);
      checkedIds.value = checkedIds.value.filter((code) => code !== record['ID']);
    }
  }
  function onSelectAll(selected, selectedRows, changeRows) {
    const changeIds = changeRows.map((item) => item[rowKey.value]);
    const changeVals = changeRows.map((item) => item[rowKey.value]);
    const changeIds = changeRows.map((item) => item['ID']);
    if (selected) {
      checkedKeys.value = [...checkedKeys.value, ...changeIds];
      checkedKeys.value = [...checkedKeys.value, ...changeVals];
      checkedIds.value = [...checkedIds.value, ...changeIds];
    } else {
      checkedKeys.value = checkedKeys.value.filter((code) => {
        return !changeVals.includes(code);
      });
      checkedIds.value = checkedIds.value.filter((code) => {
        return !changeIds.includes(code);
      });
    }