Browse Source

修改样式

wangwei 3 years ago
parent
commit
0bd5fa1595
39 changed files with 62 additions and 3687 deletions
  1. 4 1
      src/views/admin/admin/index.vue
  2. 3 0
      src/views/admin/group/index.vue
  3. 1 1
      src/views/department/department/customCom/member/customCom/person/index.vue
  4. 1 1
      src/views/department/department/customCom/member/customCom/unit/index.vue
  5. 1 1
      src/views/department/department/customCom/member/index.vue
  6. 4 1
      src/views/department/department/index.vue
  7. 4 1
      src/views/event/activity/index.vue
  8. 4 1
      src/views/event/meeting/index.vue
  9. 0 451
      src/views/expense/account_info/data.ts
  10. 0 311
      src/views/expense/account_info/index.vue
  11. 0 107
      src/views/expense/account_info/popup.vue
  12. 0 80
      src/views/expense/account_manage/customCom/Upload.vue
  13. 0 402
      src/views/expense/account_manage/data.ts
  14. 0 311
      src/views/expense/account_manage/index.vue
  15. 0 110
      src/views/expense/account_manage/popup.vue
  16. 0 491
      src/views/expense/membership_fee/data.ts
  17. 0 311
      src/views/expense/membership_fee/index.vue
  18. 0 107
      src/views/expense/membership_fee/popup.vue
  19. 0 206
      src/views/expense/transaction_type/data.ts
  20. 0 311
      src/views/expense/transaction_type/index.vue
  21. 0 107
      src/views/expense/transaction_type/popup.vue
  22. 0 355
      src/views/general/attachment/backup.vue
  23. 1 1
      src/views/general/attachment/index.vue
  24. 1 1
      src/views/general/config/customComponents/TimePicker.vue
  25. 5 1
      src/views/member/member/customCom/person/index.vue
  26. 5 1
      src/views/member/member/customCom/unit/index.vue
  27. 4 1
      src/views/member/member/index.vue
  28. 4 1
      src/views/member/person/index.vue
  29. 6 3
      src/views/member/unit/index.vue
  30. 1 1
      src/views/money/account/customCom/accountrecord/index.vue
  31. 1 1
      src/views/money/account/index.vue
  32. 1 1
      src/views/money/bill/customCom/account/index.vue
  33. 1 1
      src/views/money/bill/customCom/member/customCom/person/index.vue
  34. 1 1
      src/views/money/bill/customCom/member/customCom/unit/index.vue
  35. 1 1
      src/views/money/bill/customCom/member/index.vue
  36. 1 1
      src/views/money/bill/customCom/type/index.vue
  37. 2 2
      src/views/money/bill/index.vue
  38. 1 1
      src/views/money/dues/index.vue
  39. 4 1
      src/views/money/type/index.vue

+ 4 - 1
src/views/admin/admin/index.vue

@@ -357,7 +357,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -373,6 +373,9 @@
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 3 - 0
src/views/admin/group/index.vue

@@ -349,6 +349,9 @@
   .tool-btn-wrap {
     flex: 1;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 1 - 1
src/views/department/department/customCom/member/customCom/person/index.vue

@@ -137,7 +137,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/department/department/customCom/member/customCom/unit/index.vue

@@ -139,7 +139,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/department/department/customCom/member/index.vue

@@ -153,7 +153,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 4 - 1
src/views/department/department/index.vue

@@ -339,7 +339,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -358,6 +358,9 @@
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 4 - 1
src/views/event/activity/index.vue

@@ -346,7 +346,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -365,6 +365,9 @@
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 4 - 1
src/views/event/meeting/index.vue

@@ -346,7 +346,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -365,6 +365,9 @@
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 0 - 451
src/views/expense/account_info/data.ts

@@ -1,451 +0,0 @@
-import { FormProps, BasicColumn } from '/@/components/Table';
-import { FormSchema } from '/@/components/Form/index';
-import { adapt } from '/@/utils/adapt';
-import moment from 'moment';
-
-const adaptWidth = adapt();
-
-export const columns: BasicColumn[] = [
-  {
-    title: 'ID',
-    dataIndex: 'id',
-    editComponentProps: {
-      prefix: '$',
-    },
-    width: 100,
-    sorter: true,
-  },
-  {
-    title: '账户名称',
-    dataIndex: 'name',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '余额',
-    dataIndex: 'money',
-    width: 130,
-    sorter: true,
-  },
-  {
-    title: '操作人',
-    dataIndex: 'people',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '创建日期',
-    dataIndex: 'createTime',
-    width: 200,
-    customRender({ record }) {
-      return moment(record.createTime).format('YYYY-MM-DD');
-    },
-    sorter: true,
-  },
-  {
-    title: '备注',
-    dataIndex: 'remark',
-    width: 200,
-    sorter: true,
-  },
-];
-
-export function getFormConfig(): Partial<FormProps> {
-  return {
-    labelWidth: 100,
-    schemas: [
-      {
-        field: `id`,
-        label: `ID`,
-        component: 'Input',
-        componentProps: {
-          placeholder: 'ID',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `name`,
-        label: `账户名称`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '账户名称',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `money`,
-        label: `余额`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '余额',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `createTime`,
-        label: `创建日期`,
-        component: 'DatePicker',
-        componentProps: {
-          placeholder: '创建日期',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `remark`,
-        label: `备注`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '备注',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-    ],
-  };
-}
-
-// =================popup================================
-export const schemas: FormSchema[] = [
-  {
-    field: 'name',
-    component: 'Input',
-    label: '账户名称',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '账户名称',
-    },
-    required: true,
-  },
-  {
-    field: 'gender',
-    component: 'Select',
-    label: '性别',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '性别',
-      options: [
-        {
-          label: '男',
-          value: 0,
-        },
-        {
-          label: '女',
-          value: 1,
-        },
-      ],
-    },
-    required: true,
-  },
-  {
-    field: 'birthday',
-    component: 'DatePicker',
-    label: '出生年月',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '出生年月',
-    },
-    required: true,
-  },
-  {
-    field: 'origin',
-    component: 'Input',
-    label: '籍贯',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '籍贯',
-    },
-    required: true,
-  },
-  {
-    field: 'birthplace',
-    component: 'Input',
-    label: '出生地',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '出生地',
-    },
-    required: true,
-  },
-  {
-    field: 'cardNo',
-    component: 'Input',
-    label: '身份证号码',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '身份证号码',
-    },
-    required: true,
-  },
-  {
-    field: 'nation',
-    component: 'Input',
-    label: '民族',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '民族',
-    },
-    required: true,
-  },
-  {
-    field: 'party',
-    label: '党派',
-    component: 'Select',
-    componentProps: {
-      placeholder: '党派',
-      options: [
-        {
-          label: '无',
-          value: 0,
-        },
-        {
-          label: '民革',
-          value: 1,
-        },
-        {
-          label: '民盟',
-          value: 2,
-        },
-        {
-          label: '民建',
-          value: 3,
-        },
-        {
-          label: '民进',
-          value: 4,
-        },
-        {
-          label: '农工',
-          value: 5,
-        },
-        {
-          label: '致公党',
-          value: 6,
-        },
-        {
-          label: '九三学社',
-          value: 7,
-        },
-        {
-          label: '台盟',
-          value: 8,
-        },
-      ],
-    },
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    required: true,
-  },
-  {
-    field: 'edu',
-    component: 'Input',
-    label: '学历',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '学历',
-    },
-    required: true,
-  },
-  {
-    field: 'title',
-    component: 'Input',
-    label: '职称',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '职称',
-    },
-  },
-  {
-    field: 'job',
-    component: 'Input',
-    label: '职务',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '职务',
-    },
-    required: true,
-  },
-  {
-    field: 'address',
-    component: 'Input',
-    label: '地址',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '地址',
-    },
-    required: true,
-  },
-  {
-    field: 'zipcode',
-    component: 'Input',
-    label: '邮编',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '邮编',
-    },
-  },
-  {
-    field: 'tel',
-    component: 'Input',
-    label: '电话',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '电话',
-    },
-  },
-  {
-    field: 'mobile',
-    component: 'Input',
-    label: '手机',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '手机',
-    },
-    required: true,
-  },
-  {
-    field: 'old',
-    component: 'Input',
-    label: '办企业前工作单位',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '办企业前工作单位',
-    },
-  },
-  {
-    field: 'peopleJob',
-    component: 'Input',
-    label: '人大职务',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '人大职务',
-    },
-  },
-  {
-    field: 'cppccJob',
-    component: 'Input',
-    label: '政协职务',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '政协职务',
-    },
-  },
-  {
-    field: 'family',
-    component: 'ArrCom',
-    label: '家庭主要成员',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    defaultValue: [],
-    componentProps: ({ formModel }) => {
-      return {
-        placeholder: '家庭主要成员',
-        value: formModel.family,
-        onChange: () => {},
-      };
-    },
-    required: true,
-  },
-  {
-    field: 'info',
-    component: 'InputTextArea',
-    label: '本人简历',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '本人简历',
-    },
-  },
-  {
-    field: 'company',
-    component: 'Input',
-    label: '所在单位',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '所在单位',
-    },
-    required: true,
-  },
-];

+ 0 - 311
src/views/expense/account_info/index.vue

@@ -1,311 +0,0 @@
-<template>
-  <CollapseContainer
-    class="sys-container"
-    title="账户信息"
-    :canExpan="false"
-    helpMessage="账户信息"
-  >
-    <BasicTable
-      ref="tableRef"
-      @register="registerTable"
-      rowKey="id"
-      @selectionChange="selectionChange"
-      @rowClick="rowClick"
-      @rowDbClick="handleEdit"
-      showTableSetting
-      :canResize="true"
-      :pagination="{
-        pageSize: 10,
-        defaultPageSize: 10,
-        showSizeChanger: false,
-      }"
-    >
-      <template #toolbar>
-        <a-button type="primary" @click="addRole"> 添加 </a-button>
-        <a-button color="error" :disabled="disable_btn" @click="deleteBatches"> 删除 </a-button>
-        <a-button @click="openModal"> 导出 </a-button>
-      </template>
-      <template #form-custom> custom-slot </template>
-      <template #action="{ record }">
-        <TableAction :actions="createActions(record)" stopButtonPropagation />
-      </template>
-    </BasicTable>
-    <ExpExcelModel @register="register" @success="defaultHeader" />
-    <Popup @register="addRegister" :popupData="popupData" @saveData="saveData" />
-  </CollapseContainer>
-</template>
-<script lang="ts">
-  import { defineComponent, reactive, ref, toRefs, unref, createVNode } from 'vue';
-  import { CollapseContainer } from '/@/components/Container/index';
-  import Popup from './popup.vue';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { useModal } from '/@/components/Modal';
-  import { jsonToSheetXlsx, ExpExcelModel, ExportModalResult } from '/@/components/Excel';
-  import { Modal } from 'ant-design-vue';
-  import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
-  import { getFormConfig, columns } from './data';
-  import moment from 'moment';
-  import {
-    getPersonList,
-    addPerson,
-    deleteBatchesPerson,
-    getPerson,
-    editPerson,
-    deletePerson,
-  } from '/@/api/sys/member';
-  import {
-    BasicTable,
-    useTable,
-    TableAction,
-    ActionItem,
-    EditRecordRow,
-    TableActionType,
-  } from '/@/components/Table';
-
-  interface PopupData {
-    title: string;
-  }
-
-  interface Btn {
-    disable_btn: boolean;
-  }
-
-  export default defineComponent({
-    name: 'AccountInfo',
-    components: { CollapseContainer, BasicTable, TableAction, Popup, ExpExcelModel },
-    setup() {
-      const { createMessage } = useMessage();
-      const { success /*, error*/ } = createMessage;
-      const tableRef = ref<Nullable<TableActionType>>(null);
-      const popupData = reactive<PopupData>({
-        title: '添加',
-      });
-      const btn = reactive<Btn>({
-        disable_btn: true,
-      });
-      const [registerTable] = useTable({
-        rowSelection: { type: 'checkbox' },
-        columns: columns,
-        // clickToRowSelect: false, // 点击行不勾选
-        api: getPersonList,
-        useSearchForm: true,
-        tableSetting: {
-          redo: false,
-          size: false,
-        },
-        beforeFetch: beforeFetch,
-        afterFetch: afterFetch,
-        formConfig: getFormConfig(),
-        actionColumn: {
-          width: 160,
-          title: '操作',
-          dataIndex: 'action',
-          slots: { customRender: 'action' },
-          fixed: undefined,
-        },
-        showIndexColumn: false,
-        bordered: true,
-      });
-      const [register, { openModal }] = useModal();
-      const [addRegister, { openModal: openPopup }] = useModal();
-      function getTableAction() {
-        // 获取组件
-        const tableAction = unref(tableRef);
-        if (!tableAction) {
-          throw new Error('tableAction is null');
-        }
-        return tableAction;
-      }
-      // 请求之前处理
-      function beforeFetch(params) {
-        for (let k in params) {
-          if (k !== 'page' && k !== 'pageSize' && k !== 'field' && k !== 'order') {
-            if (params[k] === '') {
-              delete params[k];
-            } else {
-              if (!params.filter) {
-                params.filter = {};
-              }
-              if (params.birthday) {
-                params.birthday = moment(params.birthday).format('YYYY-MM-DD');
-              } else {
-                delete params.birthday;
-              }
-              params.filter[k] = params[k];
-              delete params[k];
-            }
-          }
-        }
-        params.filter = JSON.stringify(params.filter);
-        params.offset = params.page;
-        params.limit = params.pageSize;
-        delete params.page;
-        delete params.pageSize;
-      }
-
-      function afterFetch(result) {
-        console.log(`result`, result);
-        // tableData.result = result;
-      }
-
-      function addRole() {
-        popupData.title = '添加';
-        openPopup(true, { family: [] });
-      }
-
-      async function handleEdit(record: EditRecordRow) {
-        popupData.title = '编辑';
-        getPerson({ id: record.id }).then((res) => {
-          const data = res.row;
-          console.log(`data`, data);
-          openPopup(true, data);
-        });
-      }
-
-      async function handleDelete(record: Recordable) {
-        console.log(record);
-        await deletePerson({ id: record.id }).then((res) => {
-          console.log(res);
-          getTableAction().reload();
-          success('删除成功!');
-        });
-      }
-
-      function selectionChange() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-      function rowClick() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-
-      async function deleteBatches() {
-        const keys = await getTableAction().getSelectRowKeys();
-        const count = keys.length;
-        const ids = keys.toString();
-        if (!ids) {
-          return;
-        }
-        Modal.confirm({
-          title: '删除提示',
-          icon: createVNode(ExclamationCircleOutlined),
-          content: '确定删除选中的' + count + '项?',
-          okText: '确定',
-          okType: 'danger',
-          cancelText: '取消',
-          maskClosable: true,
-          async onOk() {
-            await deleteBatchesPerson({ ids }).then((res) => {
-              console.log(res);
-              getTableAction().reload();
-              success('删除成功!');
-              getTableAction().setSelectedRowKeys([]);
-            });
-          },
-          onCancel() {
-            console.log('Cancel');
-          },
-        });
-      }
-
-      async function saveData(params: any) {
-        const data = params.data;
-        const closeModel = params.closeModal;
-        console.log(`data`, data);
-        if (!data.id) {
-          await addPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('创建成功!');
-          });
-          console.log('----------add---');
-        } else {
-          await editPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('修改成功!');
-          });
-          console.log('----------edit---');
-        }
-      }
-
-      // 导出
-      function defaultHeader({ filename, bookType }: ExportModalResult) {
-        // 默认Object.keys(data[0])作为header
-        jsonToSheetXlsx({
-          data: getTableAction().getDataSource(),
-          filename,
-          write2excelOpts: {
-            bookType,
-          },
-        });
-      }
-
-      function createActions(record: EditRecordRow): ActionItem[] {
-        return [
-          {
-            label: '编辑',
-            icon: 'ant-design:edit-outlined',
-            color: 'warning',
-            onClick: handleEdit.bind(null, record),
-          },
-          {
-            label: '删除',
-            color: 'error',
-            icon: 'ic:outline-delete-outline',
-            popConfirm: {
-              title: '是否确认删除',
-              confirm: handleDelete.bind(null, record),
-            },
-          },
-        ];
-      }
-      return {
-        popupData,
-        tableRef,
-        registerTable,
-        addRole,
-        handleEdit,
-        deleteBatches,
-        createActions,
-        getTableAction,
-        rowClick,
-        selectionChange,
-        addRegister,
-        saveData,
-        defaultHeader,
-        openModal,
-        register,
-        ...toRefs(btn),
-      };
-    },
-  });
-</script>
-<style>
-  .ant-calendar-picker {
-    width: 100%;
-  }
-
-  /* @media (max-width: 639px) {
-    .sys-container .vben-basic-table-header__toolbar > * {
-      padding: 6px !important;
-      margin-right: 3px;
-      font-size: 12px !important;
-    }
-
-    .sys-container .vben-basic-table .ant-table-wrapper {
-      padding: 3px;
-    }
-  } */
-</style>

+ 0 - 107
src/views/expense/account_info/popup.vue

@@ -1,107 +0,0 @@
-<template>
-  <BasicModal width="800px" v-bind="$attrs" @register="register" @ok="confirm" :title="title">
-    <BasicForm @register="registerForm" :model="model" />
-  </BasicModal>
-</template>
-<script lang="ts">
-  import { defineComponent, PropType, reactive, ref, toRefs } from 'vue';
-  import { BasicModal, useModalInner } from '/@/components/Modal';
-  import { BasicForm, useForm } from '/@/components/Form/index';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { schemas } from './data';
-  import moment from 'moment';
-  interface PopupData {
-    title: string;
-  }
-  interface Role {
-    id: string | number;
-  }
-
-  export default defineComponent({
-    components: { BasicModal, BasicForm },
-    props: {
-      popupData: {
-        type: Object as PropType<PopupData>,
-        default: () => {},
-      },
-    },
-    emits: ['saveData'],
-    setup(props, { emit }) {
-      const popupData = props.popupData as PopupData;
-      const modelRef = ref({});
-      const role = reactive<Role>({
-        id: 0,
-      });
-      const { createMessage } = useMessage();
-      const { error } = createMessage;
-
-      const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
-        labelWidth: 120,
-        schemas,
-        showActionButtonGroup: false,
-        actionColOptions: {
-          span: 24,
-        },
-      });
-      //   const [register, { closeModal }] = useModalInner((data) => {
-      //     modelRef.value = data;
-
-      //
-      //   });
-      const [register, { closeModal }] = useModalInner((data) => {
-        resetFields();
-        console.log(`data ----id?`, data.id);
-        if (data.id) {
-          role.id = data.id;
-        } else {
-          role.id = 0;
-        }
-        setFieldsValue(data);
-      });
-
-      async function confirm() {
-        const data = await validate();
-        console.log(`确定`, data);
-        const not_validate = data.family.some((item) => {
-          if (item.relation === '' || item.age === '' || item.job === '' || item.company === '') {
-            error('家庭成员信息不能为空');
-            return true;
-          }
-        });
-        if (not_validate) {
-          return;
-        }
-        data.id = role.id;
-        data.birthday = moment(data.birthday).format('YYYY-MM-DD');
-        data.family = JSON.stringify(data.family);
-        const popupData = { closeModal, data };
-        emit('saveData', popupData);
-        // closeModal(); // 关闭弹窗
-      }
-      return {
-        register,
-        schemas,
-        registerForm,
-        model: modelRef,
-        confirm,
-        ...toRefs(popupData),
-      };
-    },
-  });
-</script>
-<style lang="less">
-  .ant-form-item-label {
-    overflow: hidden;
-    text-align: center !important;
-    // white-space: pre-wrap !important;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-
-  @media (max-width: 639px) {
-    .ant-form-item-label {
-      line-height: 2.5715 !important;
-      text-align: center !important;
-    }
-  }
-</style>

+ 0 - 80
src/views/expense/account_manage/customCom/Upload.vue

@@ -1,80 +0,0 @@
-<template>
-  <a-upload :before-upload="beforeUpload" v-model:file-list="fileList" @change="handleChange">
-    <a-button type="primary"> Upload </a-button>
-  </a-upload>
-</template>
-<script lang="ts">
-  import { defineComponent, reactive, toRefs } from 'vue';
-  import { Upload } from 'ant-design-vue';
-  import { uploadApi } from '/@/api/sys/upload';
-
-  interface FileItem {
-    uid: string;
-    name?: string;
-    status?: string;
-    response?: string;
-    url?: string;
-  }
-  interface FileInfo {
-    file: FileItem;
-    fileList: FileItem[];
-  }
-  interface State {
-    fileList: FileItem[];
-  }
-
-  export default defineComponent({
-    components: {
-      [Upload.name]: Upload,
-    },
-    setup() {
-      const state = reactive<State>({
-        fileList: [
-          {
-            uid: '1',
-            name: 'xxx.png',
-            status: 'done',
-            response: 'Server Error 500', // custom error message to show
-            url: 'http://www.baidu.com/xxx.png',
-          },
-          {
-            uid: '2',
-            name: 'yyy.png',
-            // status: 'done',
-            url: 'http://www.baidu.com/yyy.png',
-          },
-          {
-            uid: '3',
-            name: 'zzz.png',
-            status: 'error',
-            response: 'Server Error 500', // custom error message to show
-            url: 'http://www.baidu.com/zzz.png',
-          },
-        ],
-      });
-      function beforeUpload(file) {
-        console.log(`file`, file);
-        uploadApi({ file })
-          .then((res) => {
-            console.log(`res`, res);
-          })
-          .catch((err) => {
-            console.log(`err`, err);
-          });
-        return false;
-      }
-      const handleChange = ({ file, fileList }: FileInfo) => {
-        console.log(`file`, file);
-        console.log(`fileList`, fileList);
-        if (file.status !== 'uploading') {
-          console.log(file, fileList);
-        }
-      };
-      return {
-        beforeUpload,
-        handleChange,
-        ...toRefs(state),
-      };
-    },
-  });
-</script>

+ 0 - 402
src/views/expense/account_manage/data.ts

@@ -1,402 +0,0 @@
-import { FormProps, BasicColumn } from '/@/components/Table';
-import { FormSchema } from '/@/components/Form/index';
-import { adapt } from '/@/utils/adapt';
-import moment from 'moment';
-import { h } from 'vue';
-import Upload from './customCom/Upload.vue';
-
-const adaptWidth = adapt();
-
-export const columns: BasicColumn[] = [
-  {
-    title: 'ID',
-    dataIndex: 'id',
-    editComponentProps: {
-      prefix: '$',
-    },
-    width: 100,
-    sorter: true,
-  },
-  {
-    title: '交易类型',
-    dataIndex: 'type',
-    width: 130,
-    customRender({ record }) {
-      const options = ['支出', '收入', '内部转账'];
-      return options[record.type];
-    },
-    sorter: true,
-  },
-  {
-    title: '交易名称',
-    dataIndex: 'name',
-    width: 130,
-    sorter: true,
-  },
-  {
-    title: '交易账户',
-    dataIndex: 'account',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '金额',
-    dataIndex: 'money',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '相关人员',
-    dataIndex: 'people',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '是否开票',
-    dataIndex: 'invoice',
-    width: 130,
-    customRender({ record }) {
-      const options = ['否', '是'];
-      return options[record.invoice];
-    },
-    sorter: true,
-  },
-  {
-    title: '备注',
-    dataIndex: 'remark',
-    width: 200,
-    sorter: true,
-  },
-  {
-    title: '交易日期',
-    dataIndex: 'time',
-    width: 200,
-    customRender({ record }) {
-      return moment(record.time).format('YYYY-MM-DD');
-    },
-    sorter: true,
-  },
-];
-
-export function getFormConfig(): Partial<FormProps> {
-  return {
-    labelWidth: 100,
-    schemas: [
-      {
-        field: `id`,
-        label: `ID`,
-        component: 'Input',
-        componentProps: {
-          placeholder: 'ID',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `type`,
-        label: `交易类型`,
-        component: 'Select',
-        componentProps: {
-          options: [
-            {
-              label: '支出',
-              value: 0,
-            },
-            {
-              label: '收入',
-              value: 1,
-            },
-            {
-              label: '内部转账',
-              value: 2,
-            },
-          ],
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `name`,
-        label: `交易名称`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '交易名称',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `account`,
-        label: `交易账户`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '交易账户',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `money`,
-        label: `金额`,
-        component: 'Input',
-        componentProps: {
-          type: 'number',
-          placeholder: '金额',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `people`,
-        label: `相关人员`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '相关人员',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `invoice`,
-        label: `是否开票`,
-        component: 'Select',
-        componentProps: {
-          placeholder: '是否开票',
-          options: [
-            {
-              label: '是',
-              value: 0,
-            },
-            {
-              label: '否',
-              value: 1,
-            },
-          ],
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `time`,
-        label: `交易日期`,
-        component: 'DatePicker',
-        componentProps: {
-          placeholder: '交易日期',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `remark`,
-        label: `备注`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '备注',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-    ],
-  };
-}
-
-// =================popup================================
-export const schemas: FormSchema[] = [
-  {
-    field: 'type',
-    component: 'Select',
-    label: '交易类型',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '交易类型',
-      options: [
-        {
-          label: '支出',
-          value: 0,
-        },
-        {
-          label: '收入',
-          value: 1,
-        },
-        {
-          label: '内部转账',
-          value: 2,
-        },
-      ],
-    },
-    required: true,
-  },
-  {
-    field: 'name',
-    component: 'Select',
-    label: '交易名称',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '交易名称',
-      options: [],
-    },
-    required: true,
-  },
-  {
-    field: 'inflow_account',
-    component: 'Select',
-    label: '流入账户',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '流入账户',
-      options: [],
-    },
-    required: true,
-    show: ({ values }) => {
-      if (values.type === 2) {
-        return true;
-      }
-      return false;
-    },
-  },
-  {
-    field: 'year',
-    component: 'Select',
-    label: '会费年份',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '会费年份',
-      options: [],
-    },
-    required: true,
-    show: ({ values }) => {
-      if (values.name === '会费') {
-        return true;
-      }
-      return false;
-    },
-  },
-  {
-    field: 'money',
-    component: 'Input',
-    label: '金额',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      type: 'number',
-      placeholder: '金额',
-    },
-    required: true,
-  },
-  {
-    field: 'people',
-    component: 'Select',
-    label: '相关人员',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '相关人员',
-      options: [],
-    },
-    required: true,
-  },
-  {
-    field: 'invoice',
-    component: 'Switch',
-    label: '是否开票',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '是否开票',
-      options: [
-        {
-          label: '是',
-          value: 0,
-        },
-        {
-          label: '否',
-          value: 1,
-        },
-      ],
-    },
-  },
-  {
-    field: 'invoiceNo',
-    component: 'Input',
-    label: '发票号',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '发票号',
-    },
-    show: ({ values }) => {
-      if (values.invoice) {
-        return true;
-      }
-      return false;
-    },
-  },
-  {
-    field: 'enclosure',
-    component: 'Input',
-    label: '附件',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    render: ({ model, field }) => {
-      return h(Upload, {
-        value: '',
-        placeholder: '上传',
-        onChange(value) {
-          model[field] = value;
-        },
-      });
-    },
-  },
-  {
-    field: 'remark',
-    component: 'Input',
-    label: '备注',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '备注',
-    },
-  },
-];

+ 0 - 311
src/views/expense/account_manage/index.vue

@@ -1,311 +0,0 @@
-<template>
-  <CollapseContainer
-    class="sys-container"
-    title="账目管理"
-    :canExpan="false"
-    helpMessage="账目管理"
-  >
-    <BasicTable
-      ref="tableRef"
-      @register="registerTable"
-      rowKey="id"
-      @selectionChange="selectionChange"
-      @rowClick="rowClick"
-      @rowDbClick="handleEdit"
-      showTableSetting
-      :canResize="true"
-      :pagination="{
-        pageSize: 10,
-        defaultPageSize: 10,
-        showSizeChanger: false,
-      }"
-    >
-      <template #toolbar>
-        <a-button type="primary" @click="addRole"> 添加 </a-button>
-        <a-button color="error" :disabled="disable_btn" @click="deleteBatches"> 删除 </a-button>
-        <a-button @click="openModal"> 导出 </a-button>
-      </template>
-      <template #form-custom> custom-slot </template>
-      <template #action="{ record }">
-        <TableAction :actions="createActions(record)" stopButtonPropagation />
-      </template>
-    </BasicTable>
-    <ExpExcelModel @register="register" @success="defaultHeader" />
-    <Popup @register="addRegister" :popupData="popupData" @saveData="saveData" />
-  </CollapseContainer>
-</template>
-<script lang="ts">
-  import { defineComponent, reactive, ref, toRefs, unref, createVNode } from 'vue';
-  import { CollapseContainer } from '/@/components/Container/index';
-  import Popup from './popup.vue';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { useModal } from '/@/components/Modal';
-  import { jsonToSheetXlsx, ExpExcelModel, ExportModalResult } from '/@/components/Excel';
-  import { Modal } from 'ant-design-vue';
-  import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
-  import { getFormConfig, columns } from './data';
-  import moment from 'moment';
-  import {
-    getPersonList,
-    addPerson,
-    deleteBatchesPerson,
-    getPerson,
-    editPerson,
-    deletePerson,
-  } from '/@/api/sys/member';
-  import {
-    BasicTable,
-    useTable,
-    TableAction,
-    ActionItem,
-    EditRecordRow,
-    TableActionType,
-  } from '/@/components/Table';
-
-  interface PopupData {
-    title: string;
-  }
-
-  interface Btn {
-    disable_btn: boolean;
-  }
-
-  export default defineComponent({
-    name: 'AccountManage',
-    components: { CollapseContainer, BasicTable, TableAction, Popup, ExpExcelModel },
-    setup() {
-      const { createMessage } = useMessage();
-      const { success /*, error*/ } = createMessage;
-      const tableRef = ref<Nullable<TableActionType>>(null);
-      const popupData = reactive<PopupData>({
-        title: '添加',
-      });
-      const btn = reactive<Btn>({
-        disable_btn: true,
-      });
-      const [registerTable] = useTable({
-        rowSelection: { type: 'checkbox' },
-        columns: columns,
-        // clickToRowSelect: false, // 点击行不勾选
-        api: getPersonList,
-        useSearchForm: true,
-        tableSetting: {
-          redo: false,
-          size: false,
-        },
-        beforeFetch: beforeFetch,
-        afterFetch: afterFetch,
-        formConfig: getFormConfig(),
-        actionColumn: {
-          width: 160,
-          title: '操作',
-          dataIndex: 'action',
-          slots: { customRender: 'action' },
-          fixed: undefined,
-        },
-        showIndexColumn: false,
-        bordered: true,
-      });
-      const [register, { openModal }] = useModal();
-      const [addRegister, { openModal: openPopup }] = useModal();
-      function getTableAction() {
-        // 获取组件
-        const tableAction = unref(tableRef);
-        if (!tableAction) {
-          throw new Error('tableAction is null');
-        }
-        return tableAction;
-      }
-      // 请求之前处理
-      function beforeFetch(params) {
-        for (let k in params) {
-          if (k !== 'page' && k !== 'pageSize' && k !== 'field' && k !== 'order') {
-            if (params[k] === '') {
-              delete params[k];
-            } else {
-              if (!params.filter) {
-                params.filter = {};
-              }
-              if (params.birthday) {
-                params.birthday = moment(params.birthday).format('YYYY-MM-DD');
-              } else {
-                delete params.birthday;
-              }
-              params.filter[k] = params[k];
-              delete params[k];
-            }
-          }
-        }
-        params.filter = JSON.stringify(params.filter);
-        params.offset = params.page;
-        params.limit = params.pageSize;
-        delete params.page;
-        delete params.pageSize;
-      }
-
-      function afterFetch(result) {
-        console.log(`result`, result);
-        // tableData.result = result;
-      }
-
-      function addRole() {
-        popupData.title = '添加';
-        openPopup(true, { family: [] });
-      }
-
-      async function handleEdit(record: EditRecordRow) {
-        popupData.title = '编辑';
-        getPerson({ id: record.id }).then((res) => {
-          const data = res.row;
-          console.log(`data`, data);
-          openPopup(true, data);
-        });
-      }
-
-      async function handleDelete(record: Recordable) {
-        console.log(record);
-        await deletePerson({ id: record.id }).then((res) => {
-          console.log(res);
-          getTableAction().reload();
-          success('删除成功!');
-        });
-      }
-
-      function selectionChange() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-      function rowClick() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-
-      async function deleteBatches() {
-        const keys = await getTableAction().getSelectRowKeys();
-        const count = keys.length;
-        const ids = keys.toString();
-        if (!ids) {
-          return;
-        }
-        Modal.confirm({
-          title: '删除提示',
-          icon: createVNode(ExclamationCircleOutlined),
-          content: '确定删除选中的' + count + '项?',
-          okText: '确定',
-          okType: 'danger',
-          cancelText: '取消',
-          maskClosable: true,
-          async onOk() {
-            await deleteBatchesPerson({ ids }).then((res) => {
-              console.log(res);
-              getTableAction().reload();
-              success('删除成功!');
-              getTableAction().setSelectedRowKeys([]);
-            });
-          },
-          onCancel() {
-            console.log('Cancel');
-          },
-        });
-      }
-
-      async function saveData(params: any) {
-        const data = params.data;
-        const closeModel = params.closeModal;
-        console.log(`data`, data);
-        if (!data.id) {
-          await addPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('创建成功!');
-          });
-          console.log('----------add---');
-        } else {
-          await editPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('修改成功!');
-          });
-          console.log('----------edit---');
-        }
-      }
-
-      // 导出
-      function defaultHeader({ filename, bookType }: ExportModalResult) {
-        // 默认Object.keys(data[0])作为header
-        jsonToSheetXlsx({
-          data: getTableAction().getDataSource(),
-          filename,
-          write2excelOpts: {
-            bookType,
-          },
-        });
-      }
-
-      function createActions(record: EditRecordRow): ActionItem[] {
-        return [
-          {
-            label: '编辑',
-            icon: 'ant-design:edit-outlined',
-            color: 'warning',
-            onClick: handleEdit.bind(null, record),
-          },
-          {
-            label: '删除',
-            color: 'error',
-            icon: 'ic:outline-delete-outline',
-            popConfirm: {
-              title: '是否确认删除',
-              confirm: handleDelete.bind(null, record),
-            },
-          },
-        ];
-      }
-      return {
-        popupData,
-        tableRef,
-        registerTable,
-        addRole,
-        handleEdit,
-        deleteBatches,
-        createActions,
-        getTableAction,
-        rowClick,
-        selectionChange,
-        addRegister,
-        saveData,
-        defaultHeader,
-        openModal,
-        register,
-        ...toRefs(btn),
-      };
-    },
-  });
-</script>
-<style>
-  .ant-calendar-picker {
-    width: 100%;
-  }
-
-  /* @media (max-width: 639px) {
-    .sys-container .vben-basic-table-header__toolbar > * {
-      padding: 6px !important;
-      margin-right: 3px;
-      font-size: 12px !important;
-    }
-
-    .sys-container .vben-basic-table .ant-table-wrapper {
-      padding: 3px;
-    }
-  } */
-</style>

+ 0 - 110
src/views/expense/account_manage/popup.vue

@@ -1,110 +0,0 @@
-<template>
-  <BasicModal width="800px" v-bind="$attrs" @register="register" @ok="confirm" :title="title">
-    <BasicForm @register="registerForm" :model="model" />
-  </BasicModal>
-</template>
-<script lang="ts">
-  import { defineComponent, PropType, reactive, ref, toRefs } from 'vue';
-  import { BasicModal, useModalInner } from '/@/components/Modal';
-  import { BasicForm, useForm } from '/@/components/Form/index';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { schemas } from './data';
-  import moment from 'moment';
-  interface PopupData {
-    title: string;
-  }
-  interface Role {
-    id: string | number;
-  }
-
-  export default defineComponent({
-    components: { BasicModal, BasicForm },
-    props: {
-      popupData: {
-        type: Object as PropType<PopupData>,
-        default: () => {},
-      },
-    },
-    emits: ['saveData'],
-    setup(props, { emit }) {
-      const popupData = props.popupData as PopupData;
-      const modelRef = ref({});
-      const role = reactive<Role>({
-        id: 0,
-      });
-      const { createMessage } = useMessage();
-      const { error } = createMessage;
-
-      const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
-        labelWidth: 120,
-        schemas,
-        showActionButtonGroup: false,
-        actionColOptions: {
-          span: 24,
-        },
-      });
-      //   const [register, { closeModal }] = useModalInner((data) => {
-      //     modelRef.value = data;
-
-      //
-      //   });
-      const [register, { closeModal }] = useModalInner((data) => {
-        resetFields();
-        console.log(`data ----id?`, data.id);
-        if (data.id) {
-          role.id = data.id;
-        } else {
-          role.id = 0;
-        }
-        setFieldsValue(data);
-      });
-
-      async function confirm() {
-        try {
-          const data = await validate();
-          console.log(`确定`, data);
-          const not_validate = data.family.some((item) => {
-            if (item.relation === '' || item.age === '' || item.job === '' || item.company === '') {
-              error('家庭成员信息不能为空');
-              return true;
-            }
-          });
-          if (not_validate) {
-            return;
-          }
-          data.id = role.id;
-          data.birthday = moment(data.birthday).format('YYYY-MM-DD');
-          data.family = JSON.stringify(data.family);
-          const popupData = { closeModal, data };
-          emit('saveData', popupData);
-        } catch (err) {
-          error(err.errorFields[0].errors[0]);
-        }
-      }
-      return {
-        register,
-        schemas,
-        registerForm,
-        model: modelRef,
-        confirm,
-        ...toRefs(popupData),
-      };
-    },
-  });
-</script>
-<style lang="less">
-  .ant-form-item-label {
-    overflow: hidden;
-    text-align: center !important;
-    // white-space: pre-wrap !important;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-
-  @media (max-width: 639px) {
-    .ant-form-item-label {
-      line-height: 2.5715 !important;
-      text-align: center !important;
-    }
-  }
-</style>

+ 0 - 491
src/views/expense/membership_fee/data.ts

@@ -1,491 +0,0 @@
-import { FormProps, BasicColumn } from '/@/components/Table';
-import { FormSchema } from '/@/components/Form/index';
-import { adapt } from '/@/utils/adapt';
-import moment from 'moment';
-
-const adaptWidth = adapt();
-
-export const columns: BasicColumn[] = [
-  {
-    title: 'ID',
-    dataIndex: 'id',
-    editComponentProps: {
-      prefix: '$',
-    },
-    width: 100,
-    sorter: true,
-  },
-  {
-    title: '会费年份',
-    dataIndex: 'year',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '会员职务',
-    dataIndex: 'job',
-    width: 130,
-    customRender({ record }) {
-      const options = [];
-      return options[record.job];
-    },
-    sorter: true,
-  },
-  {
-    title: '金额',
-    dataIndex: 'money',
-    width: 130,
-    sorter: true,
-  },
-  {
-    title: '操作员',
-    dataIndex: 'people',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '备注',
-    dataIndex: 'remark',
-    width: 200,
-    sorter: true,
-  },
-  {
-    title: '创建日期',
-    dataIndex: 'createTime',
-    width: 200,
-    customRender({ record }) {
-      return moment(record.createTime).format('YYYY-MM-DD');
-    },
-    sorter: true,
-  },
-];
-
-export function getFormConfig(): Partial<FormProps> {
-  return {
-    labelWidth: 100,
-    schemas: [
-      {
-        field: `id`,
-        label: `ID`,
-        component: 'Input',
-        componentProps: {
-          placeholder: 'ID',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `year`,
-        label: `会费年份`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '会费年份',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `job`,
-        label: `会员职务`,
-        component: 'Select',
-        componentProps: {
-          placeholder: '会员职务',
-          options: [
-            {
-              label: '会员',
-              value: 0,
-            },
-          ],
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `money`,
-        label: `金额`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '金额',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `people`,
-        label: `操作员`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '操作员',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `remark`,
-        label: `备注`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '备注',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `createTime`,
-        label: `创建日期`,
-        component: 'DatePicker',
-        componentProps: {
-          placeholder: '创建日期',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-    ],
-  };
-}
-
-// =================popup================================
-export const schemas: FormSchema[] = [
-  {
-    field: 'name',
-    component: 'Input',
-    label: '账户名称',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '账户名称',
-    },
-    required: true,
-  },
-  {
-    field: 'gender',
-    component: 'Select',
-    label: '性别',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '性别',
-      options: [
-        {
-          label: '男',
-          value: 0,
-        },
-        {
-          label: '女',
-          value: 1,
-        },
-      ],
-    },
-    required: true,
-  },
-  {
-    field: 'birthday',
-    component: 'DatePicker',
-    label: '出生年月',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '出生年月',
-    },
-    required: true,
-  },
-  {
-    field: 'origin',
-    component: 'Input',
-    label: '籍贯',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '籍贯',
-    },
-    required: true,
-  },
-  {
-    field: 'birthplace',
-    component: 'Input',
-    label: '出生地',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '出生地',
-    },
-    required: true,
-  },
-  {
-    field: 'cardNo',
-    component: 'Input',
-    label: '身份证号码',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '身份证号码',
-    },
-    required: true,
-  },
-  {
-    field: 'nation',
-    component: 'Input',
-    label: '民族',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '民族',
-    },
-    required: true,
-  },
-  {
-    field: 'party',
-    label: '党派',
-    component: 'Select',
-    componentProps: {
-      placeholder: '党派',
-      options: [
-        {
-          label: '无',
-          value: 0,
-        },
-        {
-          label: '民革',
-          value: 1,
-        },
-        {
-          label: '民盟',
-          value: 2,
-        },
-        {
-          label: '民建',
-          value: 3,
-        },
-        {
-          label: '民进',
-          value: 4,
-        },
-        {
-          label: '农工',
-          value: 5,
-        },
-        {
-          label: '致公党',
-          value: 6,
-        },
-        {
-          label: '九三学社',
-          value: 7,
-        },
-        {
-          label: '台盟',
-          value: 8,
-        },
-      ],
-    },
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    required: true,
-  },
-  {
-    field: 'edu',
-    component: 'Input',
-    label: '学历',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '学历',
-    },
-    required: true,
-  },
-  {
-    field: 'title',
-    component: 'Input',
-    label: '职称',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '职称',
-    },
-  },
-  {
-    field: 'job',
-    component: 'Input',
-    label: '职务',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '职务',
-    },
-    required: true,
-  },
-  {
-    field: 'address',
-    component: 'Input',
-    label: '地址',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '地址',
-    },
-    required: true,
-  },
-  {
-    field: 'zipcode',
-    component: 'Input',
-    label: '邮编',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '邮编',
-    },
-  },
-  {
-    field: 'tel',
-    component: 'Input',
-    label: '电话',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '电话',
-    },
-  },
-  {
-    field: 'mobile',
-    component: 'Input',
-    label: '手机',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '手机',
-    },
-    required: true,
-  },
-  {
-    field: 'old',
-    component: 'Input',
-    label: '办企业前工作单位',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '办企业前工作单位',
-    },
-  },
-  {
-    field: 'peopleJob',
-    component: 'Input',
-    label: '人大职务',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '人大职务',
-    },
-  },
-  {
-    field: 'cppccJob',
-    component: 'Input',
-    label: '政协职务',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '政协职务',
-    },
-  },
-  {
-    field: 'family',
-    component: 'ArrCom',
-    label: '家庭主要成员',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    defaultValue: [],
-    componentProps: ({ formModel }) => {
-      return {
-        placeholder: '家庭主要成员',
-        value: formModel.family,
-        onChange: () => {},
-      };
-    },
-    required: true,
-  },
-  {
-    field: 'info',
-    component: 'InputTextArea',
-    label: '本人简历',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '本人简历',
-    },
-  },
-  {
-    field: 'company',
-    component: 'Input',
-    label: '所在单位',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '所在单位',
-    },
-    required: true,
-  },
-];

+ 0 - 311
src/views/expense/membership_fee/index.vue

@@ -1,311 +0,0 @@
-<template>
-  <CollapseContainer
-    class="sys-container"
-    title="会费管理"
-    :canExpan="false"
-    helpMessage="会费管理"
-  >
-    <BasicTable
-      ref="tableRef"
-      @register="registerTable"
-      rowKey="id"
-      @selectionChange="selectionChange"
-      @rowClick="rowClick"
-      @rowDbClick="handleEdit"
-      showTableSetting
-      :canResize="true"
-      :pagination="{
-        pageSize: 10,
-        defaultPageSize: 10,
-        showSizeChanger: false,
-      }"
-    >
-      <template #toolbar>
-        <a-button type="primary" @click="addRole"> 添加 </a-button>
-        <a-button color="error" :disabled="disable_btn" @click="deleteBatches"> 删除 </a-button>
-        <a-button @click="openModal"> 导出 </a-button>
-      </template>
-      <template #form-custom> custom-slot </template>
-      <template #action="{ record }">
-        <TableAction :actions="createActions(record)" stopButtonPropagation />
-      </template>
-    </BasicTable>
-    <ExpExcelModel @register="register" @success="defaultHeader" />
-    <Popup @register="addRegister" :popupData="popupData" @saveData="saveData" />
-  </CollapseContainer>
-</template>
-<script lang="ts">
-  import { defineComponent, reactive, ref, toRefs, unref, createVNode } from 'vue';
-  import { CollapseContainer } from '/@/components/Container/index';
-  import Popup from './popup.vue';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { useModal } from '/@/components/Modal';
-  import { jsonToSheetXlsx, ExpExcelModel, ExportModalResult } from '/@/components/Excel';
-  import { Modal } from 'ant-design-vue';
-  import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
-  import { getFormConfig, columns } from './data';
-  import moment from 'moment';
-  import {
-    getPersonList,
-    addPerson,
-    deleteBatchesPerson,
-    getPerson,
-    editPerson,
-    deletePerson,
-  } from '/@/api/sys/member';
-  import {
-    BasicTable,
-    useTable,
-    TableAction,
-    ActionItem,
-    EditRecordRow,
-    TableActionType,
-  } from '/@/components/Table';
-
-  interface PopupData {
-    title: string;
-  }
-
-  interface Btn {
-    disable_btn: boolean;
-  }
-
-  export default defineComponent({
-    name: 'MembershipFee',
-    components: { CollapseContainer, BasicTable, TableAction, Popup, ExpExcelModel },
-    setup() {
-      const { createMessage } = useMessage();
-      const { success /*, error*/ } = createMessage;
-      const tableRef = ref<Nullable<TableActionType>>(null);
-      const popupData = reactive<PopupData>({
-        title: '添加',
-      });
-      const btn = reactive<Btn>({
-        disable_btn: true,
-      });
-      const [registerTable] = useTable({
-        rowSelection: { type: 'checkbox' },
-        columns: columns,
-        // clickToRowSelect: false, // 点击行不勾选
-        api: getPersonList,
-        useSearchForm: true,
-        tableSetting: {
-          redo: false,
-          size: false,
-        },
-        beforeFetch: beforeFetch,
-        afterFetch: afterFetch,
-        formConfig: getFormConfig(),
-        actionColumn: {
-          width: 160,
-          title: '操作',
-          dataIndex: 'action',
-          slots: { customRender: 'action' },
-          fixed: undefined,
-        },
-        showIndexColumn: false,
-        bordered: true,
-      });
-      const [register, { openModal }] = useModal();
-      const [addRegister, { openModal: openPopup }] = useModal();
-      function getTableAction() {
-        // 获取组件
-        const tableAction = unref(tableRef);
-        if (!tableAction) {
-          throw new Error('tableAction is null');
-        }
-        return tableAction;
-      }
-      // 请求之前处理
-      function beforeFetch(params) {
-        for (let k in params) {
-          if (k !== 'page' && k !== 'pageSize' && k !== 'field' && k !== 'order') {
-            if (params[k] === '') {
-              delete params[k];
-            } else {
-              if (!params.filter) {
-                params.filter = {};
-              }
-              if (params.birthday) {
-                params.birthday = moment(params.birthday).format('YYYY-MM-DD');
-              } else {
-                delete params.birthday;
-              }
-              params.filter[k] = params[k];
-              delete params[k];
-            }
-          }
-        }
-        params.filter = JSON.stringify(params.filter);
-        params.offset = params.page;
-        params.limit = params.pageSize;
-        delete params.page;
-        delete params.pageSize;
-      }
-
-      function afterFetch(result) {
-        console.log(`result`, result);
-        // tableData.result = result;
-      }
-
-      function addRole() {
-        popupData.title = '添加';
-        openPopup(true, { family: [] });
-      }
-
-      async function handleEdit(record: EditRecordRow) {
-        popupData.title = '编辑';
-        getPerson({ id: record.id }).then((res) => {
-          const data = res.row;
-          console.log(`data`, data);
-          openPopup(true, data);
-        });
-      }
-
-      async function handleDelete(record: Recordable) {
-        console.log(record);
-        await deletePerson({ id: record.id }).then((res) => {
-          console.log(res);
-          getTableAction().reload();
-          success('删除成功!');
-        });
-      }
-
-      function selectionChange() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-      function rowClick() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-
-      async function deleteBatches() {
-        const keys = await getTableAction().getSelectRowKeys();
-        const count = keys.length;
-        const ids = keys.toString();
-        if (!ids) {
-          return;
-        }
-        Modal.confirm({
-          title: '删除提示',
-          icon: createVNode(ExclamationCircleOutlined),
-          content: '确定删除选中的' + count + '项?',
-          okText: '确定',
-          okType: 'danger',
-          cancelText: '取消',
-          maskClosable: true,
-          async onOk() {
-            await deleteBatchesPerson({ ids }).then((res) => {
-              console.log(res);
-              getTableAction().reload();
-              success('删除成功!');
-              getTableAction().setSelectedRowKeys([]);
-            });
-          },
-          onCancel() {
-            console.log('Cancel');
-          },
-        });
-      }
-
-      async function saveData(params: any) {
-        const data = params.data;
-        const closeModel = params.closeModal;
-        console.log(`data`, data);
-        if (!data.id) {
-          await addPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('创建成功!');
-          });
-          console.log('----------add---');
-        } else {
-          await editPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('修改成功!');
-          });
-          console.log('----------edit---');
-        }
-      }
-
-      // 导出
-      function defaultHeader({ filename, bookType }: ExportModalResult) {
-        // 默认Object.keys(data[0])作为header
-        jsonToSheetXlsx({
-          data: getTableAction().getDataSource(),
-          filename,
-          write2excelOpts: {
-            bookType,
-          },
-        });
-      }
-
-      function createActions(record: EditRecordRow): ActionItem[] {
-        return [
-          {
-            label: '编辑',
-            icon: 'ant-design:edit-outlined',
-            color: 'warning',
-            onClick: handleEdit.bind(null, record),
-          },
-          {
-            label: '删除',
-            color: 'error',
-            icon: 'ic:outline-delete-outline',
-            popConfirm: {
-              title: '是否确认删除',
-              confirm: handleDelete.bind(null, record),
-            },
-          },
-        ];
-      }
-      return {
-        popupData,
-        tableRef,
-        registerTable,
-        addRole,
-        handleEdit,
-        deleteBatches,
-        createActions,
-        getTableAction,
-        rowClick,
-        selectionChange,
-        addRegister,
-        saveData,
-        defaultHeader,
-        openModal,
-        register,
-        ...toRefs(btn),
-      };
-    },
-  });
-</script>
-<style>
-  .ant-calendar-picker {
-    width: 100%;
-  }
-
-  /* @media (max-width: 639px) {
-    .sys-container .vben-basic-table-header__toolbar > * {
-      padding: 6px !important;
-      margin-right: 3px;
-      font-size: 12px !important;
-    }
-
-    .sys-container .vben-basic-table .ant-table-wrapper {
-      padding: 3px;
-    }
-  } */
-</style>

+ 0 - 107
src/views/expense/membership_fee/popup.vue

@@ -1,107 +0,0 @@
-<template>
-  <BasicModal width="800px" v-bind="$attrs" @register="register" @ok="confirm" :title="title">
-    <BasicForm @register="registerForm" :model="model" />
-  </BasicModal>
-</template>
-<script lang="ts">
-  import { defineComponent, PropType, reactive, ref, toRefs } from 'vue';
-  import { BasicModal, useModalInner } from '/@/components/Modal';
-  import { BasicForm, useForm } from '/@/components/Form/index';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { schemas } from './data';
-  import moment from 'moment';
-  interface PopupData {
-    title: string;
-  }
-  interface Role {
-    id: string | number;
-  }
-
-  export default defineComponent({
-    components: { BasicModal, BasicForm },
-    props: {
-      popupData: {
-        type: Object as PropType<PopupData>,
-        default: () => {},
-      },
-    },
-    emits: ['saveData'],
-    setup(props, { emit }) {
-      const popupData = props.popupData as PopupData;
-      const modelRef = ref({});
-      const role = reactive<Role>({
-        id: 0,
-      });
-      const { createMessage } = useMessage();
-      const { error } = createMessage;
-
-      const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
-        labelWidth: 120,
-        schemas,
-        showActionButtonGroup: false,
-        actionColOptions: {
-          span: 24,
-        },
-      });
-      //   const [register, { closeModal }] = useModalInner((data) => {
-      //     modelRef.value = data;
-
-      //
-      //   });
-      const [register, { closeModal }] = useModalInner((data) => {
-        resetFields();
-        console.log(`data ----id?`, data.id);
-        if (data.id) {
-          role.id = data.id;
-        } else {
-          role.id = 0;
-        }
-        setFieldsValue(data);
-      });
-
-      async function confirm() {
-        const data = await validate();
-        console.log(`确定`, data);
-        const not_validate = data.family.some((item) => {
-          if (item.relation === '' || item.age === '' || item.job === '' || item.company === '') {
-            error('家庭成员信息不能为空');
-            return true;
-          }
-        });
-        if (not_validate) {
-          return;
-        }
-        data.id = role.id;
-        data.birthday = moment(data.birthday).format('YYYY-MM-DD');
-        data.family = JSON.stringify(data.family);
-        const popupData = { closeModal, data };
-        emit('saveData', popupData);
-        // closeModal(); // 关闭弹窗
-      }
-      return {
-        register,
-        schemas,
-        registerForm,
-        model: modelRef,
-        confirm,
-        ...toRefs(popupData),
-      };
-    },
-  });
-</script>
-<style lang="less">
-  .ant-form-item-label {
-    overflow: hidden;
-    text-align: center !important;
-    // white-space: pre-wrap !important;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-
-  @media (max-width: 639px) {
-    .ant-form-item-label {
-      line-height: 2.5715 !important;
-      text-align: center !important;
-    }
-  }
-</style>

+ 0 - 206
src/views/expense/transaction_type/data.ts

@@ -1,206 +0,0 @@
-import { FormProps, BasicColumn } from '/@/components/Table';
-import { FormSchema } from '/@/components/Form/index';
-import { adapt } from '/@/utils/adapt';
-import moment from 'moment';
-
-const adaptWidth = adapt();
-
-export const columns: BasicColumn[] = [
-  {
-    title: 'ID',
-    dataIndex: 'id',
-    editComponentProps: {
-      prefix: '$',
-    },
-    width: 100,
-    sorter: true,
-  },
-  {
-    title: '交易名称',
-    dataIndex: 'name',
-    width: 130,
-    sorter: true,
-  },
-  {
-    title: '收支类型',
-    dataIndex: 'type',
-    width: 130,
-    customRender({ record }) {
-      const options = ['支出', '收入', '内部转账'];
-      return options[record.type];
-    },
-    sorter: true,
-  },
-  {
-    title: '操作人',
-    dataIndex: 'people',
-    width: 150,
-    sorter: true,
-  },
-  {
-    title: '备注',
-    dataIndex: 'remark',
-    width: 200,
-    sorter: true,
-  },
-  {
-    title: '创建日期',
-    dataIndex: 'createTime',
-    width: 200,
-    customRender({ record }) {
-      return moment(record.createTime).format('YYYY-MM-DD');
-    },
-    sorter: true,
-  },
-];
-
-export function getFormConfig(): Partial<FormProps> {
-  return {
-    labelWidth: 100,
-    schemas: [
-      {
-        field: `id`,
-        label: `ID`,
-        component: 'Input',
-        componentProps: {
-          placeholder: 'ID',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `name`,
-        label: `交易名称`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '交易名称',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `type`,
-        label: `收支类型`,
-        component: 'Select',
-        componentProps: {
-          placeholder: '收支类型',
-          options: [
-            {
-              label: '支出',
-              value: 0,
-            },
-            {
-              label: '收入',
-              value: 1,
-            },
-            {
-              label: '内部转账',
-              value: 2,
-            },
-          ],
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `people`,
-        label: `操作人`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '操作人',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `remark`,
-        label: `备注`,
-        component: 'Input',
-        componentProps: {
-          placeholder: '备注',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-      {
-        field: `createTime`,
-        label: `创建时间`,
-        component: 'DatePicker',
-        componentProps: {
-          placeholder: '创建时间',
-        },
-        colProps: {
-          xl: 12,
-          xxl: 8,
-        },
-      },
-    ],
-  };
-}
-
-// =================popup================================
-export const schemas: FormSchema[] = [
-  {
-    field: 'name',
-    component: 'Input',
-    label: '交易名称',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '交易名称',
-    },
-    required: true,
-  },
-  {
-    field: 'type',
-    component: 'Select',
-    label: '收支类型',
-    labelWidth: adaptWidth.labelWidth,
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '收支类型',
-      options: [
-        {
-          label: '支出',
-          value: 0,
-        },
-        {
-          label: '收入',
-          value: 1,
-        },
-        {
-          label: '内部转账',
-          value: 2,
-        },
-      ],
-    },
-    required: true,
-  },
-  {
-    field: 'remark',
-    component: 'Input',
-    label: '备注',
-    labelWidth: adaptWidth.labelWidth,
-    defaultValue: '',
-    colProps: {
-      span: adaptWidth.elContainer,
-    },
-    componentProps: {
-      placeholder: '备注',
-    },
-  },
-];

+ 0 - 311
src/views/expense/transaction_type/index.vue

@@ -1,311 +0,0 @@
-<template>
-  <CollapseContainer
-    class="sys-container"
-    title="交易类型设置"
-    :canExpan="false"
-    helpMessage="交易类型设置"
-  >
-    <BasicTable
-      ref="tableRef"
-      @register="registerTable"
-      rowKey="id"
-      @selectionChange="selectionChange"
-      @rowClick="rowClick"
-      @rowDbClick="handleEdit"
-      showTableSetting
-      :canResize="true"
-      :pagination="{
-        pageSize: 10,
-        defaultPageSize: 10,
-        showSizeChanger: false,
-      }"
-    >
-      <template #toolbar>
-        <a-button type="primary" @click="addRole"> 添加 </a-button>
-        <a-button color="error" :disabled="disable_btn" @click="deleteBatches"> 删除 </a-button>
-        <a-button @click="openModal"> 导出 </a-button>
-      </template>
-      <template #form-custom> custom-slot </template>
-      <template #action="{ record }">
-        <TableAction :actions="createActions(record)" stopButtonPropagation />
-      </template>
-    </BasicTable>
-    <ExpExcelModel @register="register" @success="defaultHeader" />
-    <Popup @register="addRegister" :popupData="popupData" @saveData="saveData" />
-  </CollapseContainer>
-</template>
-<script lang="ts">
-  import { defineComponent, reactive, ref, toRefs, unref, createVNode } from 'vue';
-  import { CollapseContainer } from '/@/components/Container/index';
-  import Popup from './popup.vue';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { useModal } from '/@/components/Modal';
-  import { jsonToSheetXlsx, ExpExcelModel, ExportModalResult } from '/@/components/Excel';
-  import { Modal } from 'ant-design-vue';
-  import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
-  import { getFormConfig, columns } from './data';
-  import moment from 'moment';
-  import {
-    getPersonList,
-    addPerson,
-    deleteBatchesPerson,
-    getPerson,
-    editPerson,
-    deletePerson,
-  } from '/@/api/sys/member';
-  import {
-    BasicTable,
-    useTable,
-    TableAction,
-    ActionItem,
-    EditRecordRow,
-    TableActionType,
-  } from '/@/components/Table';
-
-  interface PopupData {
-    title: string;
-  }
-
-  interface Btn {
-    disable_btn: boolean;
-  }
-
-  export default defineComponent({
-    name: 'TransactionType',
-    components: { CollapseContainer, BasicTable, TableAction, Popup, ExpExcelModel },
-    setup() {
-      const { createMessage } = useMessage();
-      const { success /*, error*/ } = createMessage;
-      const tableRef = ref<Nullable<TableActionType>>(null);
-      const popupData = reactive<PopupData>({
-        title: '添加',
-      });
-      const btn = reactive<Btn>({
-        disable_btn: true,
-      });
-      const [registerTable] = useTable({
-        rowSelection: { type: 'checkbox' },
-        columns: columns,
-        // clickToRowSelect: false, // 点击行不勾选
-        api: getPersonList,
-        useSearchForm: true,
-        tableSetting: {
-          redo: false,
-          size: false,
-        },
-        beforeFetch: beforeFetch,
-        afterFetch: afterFetch,
-        formConfig: getFormConfig(),
-        actionColumn: {
-          width: 160,
-          title: '操作',
-          dataIndex: 'action',
-          slots: { customRender: 'action' },
-          fixed: undefined,
-        },
-        showIndexColumn: false,
-        bordered: true,
-      });
-      const [register, { openModal }] = useModal();
-      const [addRegister, { openModal: openPopup }] = useModal();
-      function getTableAction() {
-        // 获取组件
-        const tableAction = unref(tableRef);
-        if (!tableAction) {
-          throw new Error('tableAction is null');
-        }
-        return tableAction;
-      }
-      // 请求之前处理
-      function beforeFetch(params) {
-        for (let k in params) {
-          if (k !== 'page' && k !== 'pageSize' && k !== 'field' && k !== 'order') {
-            if (params[k] === '') {
-              delete params[k];
-            } else {
-              if (!params.filter) {
-                params.filter = {};
-              }
-              if (params.birthday) {
-                params.birthday = moment(params.birthday).format('YYYY-MM-DD');
-              } else {
-                delete params.birthday;
-              }
-              params.filter[k] = params[k];
-              delete params[k];
-            }
-          }
-        }
-        params.filter = JSON.stringify(params.filter);
-        params.offset = params.page;
-        params.limit = params.pageSize;
-        delete params.page;
-        delete params.pageSize;
-      }
-
-      function afterFetch(result) {
-        console.log(`result`, result);
-        // tableData.result = result;
-      }
-
-      function addRole() {
-        popupData.title = '添加';
-        openPopup(true, { family: [] });
-      }
-
-      async function handleEdit(record: EditRecordRow) {
-        popupData.title = '编辑';
-        getPerson({ id: record.id }).then((res) => {
-          const data = res.row;
-          console.log(`data`, data);
-          openPopup(true, data);
-        });
-      }
-
-      async function handleDelete(record: Recordable) {
-        console.log(record);
-        await deletePerson({ id: record.id }).then((res) => {
-          console.log(res);
-          getTableAction().reload();
-          success('删除成功!');
-        });
-      }
-
-      function selectionChange() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-      function rowClick() {
-        const keys = getTableAction().getSelectRowKeys();
-        if (keys.length) {
-          btn.disable_btn = false;
-        } else {
-          btn.disable_btn = true;
-        }
-      }
-
-      async function deleteBatches() {
-        const keys = await getTableAction().getSelectRowKeys();
-        const count = keys.length;
-        const ids = keys.toString();
-        if (!ids) {
-          return;
-        }
-        Modal.confirm({
-          title: '删除提示',
-          icon: createVNode(ExclamationCircleOutlined),
-          content: '确定删除选中的' + count + '项?',
-          okText: '确定',
-          okType: 'danger',
-          cancelText: '取消',
-          maskClosable: true,
-          async onOk() {
-            await deleteBatchesPerson({ ids }).then((res) => {
-              console.log(res);
-              getTableAction().reload();
-              success('删除成功!');
-              getTableAction().setSelectedRowKeys([]);
-            });
-          },
-          onCancel() {
-            console.log('Cancel');
-          },
-        });
-      }
-
-      async function saveData(params: any) {
-        const data = params.data;
-        const closeModel = params.closeModal;
-        console.log(`data`, data);
-        if (!data.id) {
-          await addPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('创建成功!');
-          });
-          console.log('----------add---');
-        } else {
-          await editPerson(data).then((res) => {
-            console.log(res);
-            getTableAction().reload();
-            closeModel();
-            success('修改成功!');
-          });
-          console.log('----------edit---');
-        }
-      }
-
-      // 导出
-      function defaultHeader({ filename, bookType }: ExportModalResult) {
-        // 默认Object.keys(data[0])作为header
-        jsonToSheetXlsx({
-          data: getTableAction().getDataSource(),
-          filename,
-          write2excelOpts: {
-            bookType,
-          },
-        });
-      }
-
-      function createActions(record: EditRecordRow): ActionItem[] {
-        return [
-          {
-            label: '编辑',
-            icon: 'ant-design:edit-outlined',
-            color: 'warning',
-            onClick: handleEdit.bind(null, record),
-          },
-          {
-            label: '删除',
-            color: 'error',
-            icon: 'ic:outline-delete-outline',
-            popConfirm: {
-              title: '是否确认删除',
-              confirm: handleDelete.bind(null, record),
-            },
-          },
-        ];
-      }
-      return {
-        popupData,
-        tableRef,
-        registerTable,
-        addRole,
-        handleEdit,
-        deleteBatches,
-        createActions,
-        getTableAction,
-        rowClick,
-        selectionChange,
-        addRegister,
-        saveData,
-        defaultHeader,
-        openModal,
-        register,
-        ...toRefs(btn),
-      };
-    },
-  });
-</script>
-<style>
-  .ant-calendar-picker {
-    width: 100%;
-  }
-
-  /* @media (max-width: 639px) {
-    .sys-container .vben-basic-table-header__toolbar > * {
-      padding: 6px !important;
-      margin-right: 3px;
-      font-size: 12px !important;
-    }
-
-    .sys-container .vben-basic-table .ant-table-wrapper {
-      padding: 3px;
-    }
-  } */
-</style>

+ 0 - 107
src/views/expense/transaction_type/popup.vue

@@ -1,107 +0,0 @@
-<template>
-  <BasicModal width="800px" v-bind="$attrs" @register="register" @ok="confirm" :title="title">
-    <BasicForm @register="registerForm" :model="model" />
-  </BasicModal>
-</template>
-<script lang="ts">
-  import { defineComponent, PropType, reactive, ref, toRefs } from 'vue';
-  import { BasicModal, useModalInner } from '/@/components/Modal';
-  import { BasicForm, useForm } from '/@/components/Form/index';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { schemas } from './data';
-  import moment from 'moment';
-  interface PopupData {
-    title: string;
-  }
-  interface Role {
-    id: string | number;
-  }
-
-  export default defineComponent({
-    components: { BasicModal, BasicForm },
-    props: {
-      popupData: {
-        type: Object as PropType<PopupData>,
-        default: () => {},
-      },
-    },
-    emits: ['saveData'],
-    setup(props, { emit }) {
-      const popupData = props.popupData as PopupData;
-      const modelRef = ref({});
-      const role = reactive<Role>({
-        id: 0,
-      });
-      const { createMessage } = useMessage();
-      const { error } = createMessage;
-
-      const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
-        labelWidth: 120,
-        schemas,
-        showActionButtonGroup: false,
-        actionColOptions: {
-          span: 24,
-        },
-      });
-      //   const [register, { closeModal }] = useModalInner((data) => {
-      //     modelRef.value = data;
-
-      //
-      //   });
-      const [register, { closeModal }] = useModalInner((data) => {
-        resetFields();
-        console.log(`data ----id?`, data.id);
-        if (data.id) {
-          role.id = data.id;
-        } else {
-          role.id = 0;
-        }
-        setFieldsValue(data);
-      });
-
-      async function confirm() {
-        const data = await validate();
-        console.log(`确定`, data);
-        const not_validate = data.family.some((item) => {
-          if (item.relation === '' || item.age === '' || item.job === '' || item.company === '') {
-            error('家庭成员信息不能为空');
-            return true;
-          }
-        });
-        if (not_validate) {
-          return;
-        }
-        data.id = role.id;
-        data.birthday = moment(data.birthday).format('YYYY-MM-DD');
-        data.family = JSON.stringify(data.family);
-        const popupData = { closeModal, data };
-        emit('saveData', popupData);
-        // closeModal(); // 关闭弹窗
-      }
-      return {
-        register,
-        schemas,
-        registerForm,
-        model: modelRef,
-        confirm,
-        ...toRefs(popupData),
-      };
-    },
-  });
-</script>
-<style lang="less">
-  .ant-form-item-label {
-    overflow: hidden;
-    text-align: center !important;
-    // white-space: pre-wrap !important;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-
-  @media (max-width: 639px) {
-    .ant-form-item-label {
-      line-height: 2.5715 !important;
-      text-align: center !important;
-    }
-  }
-</style>

+ 0 - 355
src/views/general/attachment/backup.vue

@@ -1,355 +0,0 @@
-<template>
-  <CollapseContainer
-    class="attachment-container"
-    title="附件管理"
-    :canExpan="false"
-    helpMessage="主要用于管理上传到服务器或第三方存储的数据"
-  >
-    <a-button type="default" class="mr-2"> 全部 </a-button>
-    <a-button type="default" class="mr-2"> 图片 </a-button>
-    <a-button type="default" class="mr-2"> 音频 </a-button>
-    <a-button type="default" class="mr-2"> 视频 </a-button>
-    <a-button type="default" class="mr-2"> 文档 </a-button>
-    <a-button type="default" class="mr-2"> 应用 </a-button>
-    <a-button type="default" class="mr-2"> 压缩包 </a-button>
-    <BasicTable ref="tableRef" :canResize="true" @register="registerTable">
-      <template #action="{ record, column }">
-        <TableAction :actions="createActions(record, column)" stopButtonPropagation />
-      </template>
-      <template #toolbar>
-        <a-upload
-          :showUploadList="false"
-          :multiple="false"
-          :before-upload="beforeUpload"
-          @change="handleChange"
-        >
-          <a-button type="primary" :disabled="disabled">
-            {{ t('component.upload.upload') }}
-          </a-button>
-        </a-upload>
-        <a-button color="error" @click="deleteBatches">
-          {{ t('common.delText') }}
-        </a-button>
-      </template>
-      <a-modal :visible="progress_show" :footer="null" :closable="false">
-        <div class="upload-progress">
-          <p><strong>文件上传中</strong></p>
-          <a-progress :percent="percent" />
-        </div>
-      </a-modal>
-    </BasicTable>
-  </CollapseContainer>
-</template>
-<script lang="ts">
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { defineComponent, nextTick, reactive, ref, toRefs, unref } from 'vue';
-  // import Upload from '/@/components/customComponents/upload.vue';
-  import { Upload, Progress, Modal } from 'ant-design-vue';
-  import { CollapseContainer } from '/@/components/Container/index';
-  import { adapt } from '/@/utils/adapt';
-  import { useI18n } from '/@/hooks/web/useI18n';
-  import md5 from 'crypto-js/md5';
-  import {
-    BasicTable,
-    useTable,
-    TableAction,
-    ActionItem,
-    EditRecordRow,
-    TableActionType,
-  } from '/@/components/Table';
-  import { columns } from './data';
-  import { getAttachmentList } from '/@/api/sys/general';
-  import { uploadApi } from '/@/api/sys/upload';
-
-  interface FileItem {
-    uid: string;
-    name?: string;
-    status?: string;
-    response?: string;
-    url?: string;
-    type?: string;
-    size: number;
-    originFileObj: any;
-  }
-
-  export default defineComponent({
-    name: 'Attchment',
-    components: {
-      CollapseContainer,
-      BasicTable,
-      TableAction,
-      [Upload.name]: Upload,
-      [Modal.name]: Modal,
-      [Progress.name]: Progress,
-    },
-    setup() {
-      const { t } = useI18n();
-      const { createMessage } = useMessage();
-      const { success /*, error */ } = createMessage;
-      const tableHeight = adapt().tableHeight;
-      const state = reactive({
-        groupList: [] as object[],
-        group: 'basic',
-        disabled: false,
-        tempThreads: 5,
-        progress_show: false,
-        percent: 0,
-        chunkRetry: 4, // 重试次数限制
-      });
-      const tableRef = ref<Nullable<TableActionType>>(null);
-      const [registerTable] = useTable({
-        columns: columns,
-        maxHeight: tableHeight,
-        afterFetch: afterFetch,
-        api: getAttachmentList,
-        actionColumn: {
-          width: 160,
-          title: '操作',
-          dataIndex: 'action',
-          slots: { customRender: 'action' },
-          fixed: undefined,
-        },
-        showIndexColumn: false,
-        pagination: true,
-      });
-      function afterFetch(res) {
-        console.log(`res`, res);
-      }
-      function getTableAction() {
-        // 获取组件
-        const tableAction = unref(tableRef);
-        if (!tableAction) {
-          throw new Error('tableAction is null');
-        }
-        return tableAction;
-      }
-
-      function getFileMD5(file) {
-        return md5(file.name + file.size + file.lastModifiedDate);
-      }
-
-      async function mergeRequest(fileMd5) {
-        return new Promise((resolve, reject) => {
-          const mergeFormData = new FormData();
-          mergeFormData.append('fileMd5', fileMd5);
-        });
-      }
-
-      function createFileChunk(file, size) {
-        const fileChunkList: object[] = [];
-        let count = 0;
-        let index = 0;
-        while (count < file.size) {
-          fileChunkList.push({
-            file: file.slice(count, count + size),
-            hash: file.name + '-' + index, // 生成切片名称
-          });
-          count += size;
-          index += 1;
-        }
-        return fileChunkList;
-      }
-      // 判断文件是否上传过,获取fileId
-      async function checkFile(file) {
-        const md5 = getFileMD5(file);
-        file.md5 = md5;
-        const formData = new FormData();
-        formData.append('fileMd5', md5);
-        formData.append('fileName', file.name);
-        formData.append('fileSize', file.size);
-        await uploadChunks(file);
-      }
-      async function uploadChunks(file) {
-        // let chunkSize = updateCchunkSize(file);
-        let chunkSize = 64 * 1024;
-        console.log(`chunkSize`, chunkSize);
-        const fileChunkList = createFileChunk(file, chunkSize);
-        console.log(`fileChunkList`, fileChunkList);
-        file.chunkList = fileChunkList.map(({ file, hash }, index) => {
-          console.log(`filessssss`, file);
-          return {
-            index,
-            source: file,
-            hash: hash,
-            size: file.size,
-          };
-        });
-        var chunkData = file.chunkList;
-        console.log(`chunkData`, chunkData);
-        return new Promise((resolve, reject) => {
-          const requestDataList = chunkData.map((value) => {
-            const formData = new FormData();
-            formData.append('fileMd5', file.md5);
-            formData.append('chunk', value.index);
-            formData.append('hash', value.hash);
-            formData.append('file', value.source);
-            console.log(`formData`, formData);
-            return { formData, index: value.index, md5: file.md5, file };
-          });
-          try {
-            console.log(`requestDataList1111`, requestDataList);
-            const ret = sendRequest(requestDataList);
-            // console.log('上传结束,参数:', ret, chunkData, file.md5);
-            resolve(ret);
-          } catch (error) {
-            // reject('sendRequest 失败', error);
-            console.log(`error`, error);
-            reject(error);
-          }
-        }).then(async (res) => {
-          if (res == file.md5) {
-            // console.log('--- ' + file.name + ' 文件开始合并----')
-            await mergeRequest(file.md5);
-          }
-        });
-      }
-
-      function beforeUpload(file: FileItem) {
-        file.status = 'uploading';
-        checkFile(file);
-        return false;
-      }
-      // 根据文件大小,分配上传分片大小
-      function updateCchunkSize(file) {
-        let chunkSize = 0;
-        if (file.size > 2000 * 1024 * 1024) {
-          chunkSize = 1024 * 1024 * 15;
-        } else if (file.size > 1000 * 1024 * 1024) {
-          chunkSize = 1024 * 1024 * 10;
-        } else if (file.size > 500 * 1024 * 1024) {
-          chunkSize = 1024 * 1024 * 8;
-        } else {
-          chunkSize = 2 * 1024 * 1024;
-        }
-        return chunkSize;
-      }
-
-      // 并发,重试请求
-      async function sendRequest(list) {
-        var finished = 0;
-        const retryArr: any[] = []; // retryArr.length代表请求数,值代表重试次数
-        var currentFileInfo;
-        const total = list.length;
-        // 所有请求都存放这个promise中
-        console.log(`list`, list);
-        console.log(`total`, total);
-        state.progress_show = true;
-        return new Promise((resolve, reject) => {
-          const handler = () => {
-            if (list.length) {
-              const formInfo = list.shift();
-              const index = formInfo.index;
-              console.log(`list`, list);
-              console.log(`formInfo`, formInfo);
-              uploadApi(formInfo)
-                .then((res) => {
-                  console.log(`res`, res);
-                  if (res) {
-                    state.percent = parseInt((finished / total) * 100);
-                    currentFileInfo = formInfo;
-                    finished++;
-                    console.log(`finished`, finished);
-                    console.log(`total`, total);
-                    handler();
-                  }
-                  return res;
-                })
-                .catch((err) => {
-                  console.log(`err`, err);
-                  if (typeof retryArr[index] !== 'number') {
-                    retryArr[index] = 1;
-                  }
-                  if (retryArr[index] >= state.chunkRetry) {
-                    return reject(retryArr);
-                  }
-                  retryArr[index]++; // 累加
-                  state.tempThreads++; // 释放当前占用的通道
-                  list.push(formInfo); // 将失败的重新加入队列
-                  handler();
-                });
-            }
-            if (finished >= total) {
-              state.progress_show = false;
-              state.percent = 0;
-              getTableAction().reload();
-              success('文件上传成功');
-              resolve(currentFileInfo.md5); // 输出当前完成上传的文件信息
-            }
-          };
-          // 控制并发
-          for (let i = 0; i < state.tempThreads; i++) {
-            handler();
-          }
-        });
-      }
-
-      function handleChange(info) {
-        console.log(`info`, info);
-      }
-
-      async function handleGroupBtn(group) {
-        await nextTick();
-        getTableAction().reload();
-        state.group = group.toLowerCase();
-      }
-
-      function handleTableReset() {
-        getTableAction().reload();
-      }
-
-      async function handleEdit(record: Recordable) {
-        console.log(`record`, record);
-        console.log('=====编辑');
-      }
-      async function handleDelete(record: Recordable) {
-        console.log(`record`, record);
-        console.log('删除=====');
-      }
-
-      function createActions(record: EditRecordRow): ActionItem[] {
-        return [
-          {
-            label: '编辑',
-            icon: 'ant-design:edit-outlined',
-            color: 'warning',
-            onClick: handleEdit.bind(null, record),
-          },
-          {
-            label: '删除',
-            color: 'error',
-            icon: 'ic:outline-delete-outline',
-            popConfirm: {
-              title: '是否确认删除',
-              confirm: handleDelete.bind(null, record),
-            },
-          },
-        ];
-      }
-      return {
-        t,
-        createActions,
-        tableRef,
-        registerTable,
-        beforeUpload,
-        handleChange,
-        handleGroupBtn,
-        handleTableReset,
-        ...toRefs(state),
-      };
-    },
-  });
-</script>
-<style>
-  .attachment-container {
-    position: relative;
-  }
-
-  .vben-collapse-container__body > .mr-2 {
-    margin-top: 5px;
-    font-weight: 550 !important;
-  }
-
-  .upload-progress {
-    padding: 20px 30px;
-  }
-</style>

+ 1 - 1
src/views/general/attachment/index.vue

@@ -173,7 +173,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .attachment-container {
     position: relative;
   }

+ 1 - 1
src/views/general/config/customComponents/TimePicker.vue

@@ -50,7 +50,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .wrap-time {
     display: flex;
   }

+ 5 - 1
src/views/member/member/customCom/person/index.vue

@@ -130,7 +130,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -150,6 +150,10 @@
     justify-content: space-between;
   }
 
+  .tool-btn-wrap {
+    flex: 1;
+  }
+
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 5 - 1
src/views/member/member/customCom/unit/index.vue

@@ -131,7 +131,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -140,6 +140,10 @@
     justify-content: space-between;
   }
 
+  .tool-btn-wrap {
+    flex: 1;
+  }
+
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 4 - 1
src/views/member/member/index.vue

@@ -337,13 +337,16 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 4 - 1
src/views/member/person/index.vue

@@ -357,7 +357,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -376,6 +376,9 @@
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }

+ 6 - 3
src/views/member/unit/index.vue

@@ -362,7 +362,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .search-wrap {
     display: flex;
     width: 90%;
@@ -376,16 +376,19 @@
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }
 
-  .rowClass {
+  /deep/ table .rowClass {
     background: #dce7ae;
   }
 
   /* 鼠标悬停不变色 */
-  table tbody .rowClass:hover > td {
+  /deep/ table tbody .rowClass:hover > td {
     background-color: #dce7ae !important;
   }
 </style>

+ 1 - 1
src/views/money/account/customCom/accountrecord/index.vue

@@ -89,7 +89,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/money/account/index.vue

@@ -343,7 +343,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/money/bill/customCom/account/index.vue

@@ -137,7 +137,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/money/bill/customCom/member/customCom/person/index.vue

@@ -137,7 +137,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/money/bill/customCom/member/customCom/unit/index.vue

@@ -139,7 +139,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/money/bill/customCom/member/index.vue

@@ -153,7 +153,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/money/bill/customCom/type/index.vue

@@ -152,7 +152,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 2 - 2
src/views/money/bill/index.vue

@@ -63,7 +63,7 @@
   }
 
   export default defineComponent({
-    name: 'Bill',
+    // name: 'Bill',
     components: { CollapseContainer, BasicTable, TableAction, Popup, ExpExcelModel },
     setup() {
       const { createMessage } = useMessage();
@@ -284,7 +284,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 1 - 1
src/views/money/dues/index.vue

@@ -353,7 +353,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }

+ 4 - 1
src/views/money/type/index.vue

@@ -327,7 +327,7 @@
     },
   });
 </script>
-<style>
+<style scoped>
   .ant-calendar-picker {
     width: 100%;
   }
@@ -346,6 +346,9 @@
   .vben-basic-table-header__toolbar {
     justify-content: space-between;
   }
+  .tool-btn-wrap {
+    flex: 1;
+  }
   .tool-btn-wrap button {
     margin-right: 5px;
   }