index.jsx 4.99 KB
Newer Older
TZW's avatar
TZW committed
1 2 3
/* 工厂管理
 * @Author: Li Hanlin
 * @Date: 2022-11-09 14:44:44
TZW's avatar
TZW committed
4 5
 * @Last Modified by: Li Hanlin
 * @Last Modified time: 2022-11-10 15:41:24
TZW's avatar
TZW committed
6 7
 */

wuhao's avatar
wuhao committed
8 9 10 11 12 13
import * as React from 'react';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
TZW's avatar
TZW committed
14 15
import { doFetch } from '@/utils/doFetch';
import { message } from 'antd';
wuhao's avatar
wuhao committed
16 17 18 19

function Factory(props) {
  const actionRef = useRef(),
    formRef = useRef();
TZW's avatar
TZW committed
20
  const [drawer, setDrawer] = useState({
wuhao's avatar
wuhao committed
21 22 23
    visible: false,
  });

TZW's avatar
TZW committed
24 25 26 27 28 29 30
  const urlParams = {
    save: '/auth/sysFactory/saveOrUpdate',
    remove: '/auth/sysFactory/delete',
    list: '/auth/sysFactory/queryPage',
    detail: '/auth/sysFactory/getById',
  };

wuhao's avatar
wuhao committed
31 32 33 34 35 36 37
  const detail = (text, row, _, action) => {
    return (
      <PremButton
        btn={{
          size: 'small',
          type: 'link',
          onClick: () => {
TZW's avatar
TZW committed
38
            setDrawer((s) => ({
wuhao's avatar
wuhao committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
              ...s,
              visible: true,
              item: row,
              title: '详情',
              val: 'detail',
              title: row.userName + '的详细信息',
            }));
          },
        }}
      >
        详情
      </PremButton>
    );
  };

  const edit = (text, row, _, action) => {
    return (
      <PremButton
        btn={{
          size: 'small',
          onClick: () => {
TZW's avatar
TZW committed
60
            setDrawer((s) => ({
wuhao's avatar
wuhao committed
61 62 63 64 65
              ...s,
              visible: true,
              item: row,
              title: '编辑',
              val: 'edit',
TZW's avatar
TZW committed
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
              onFinish: async (vals) => {
                console.log(1);
                let params = {
                  ...vals,
                  id: row.id,
                };
                let res = await doFetch({
                  url: urlParams.save,
                  params,
                });
                if (res.code === '0000') {
                  message.success('新增成功!');
                  setDrawer((s) => ({
                    ...s,
                    visible: false,
                  }));
                  actionRef.current.reload();
                }
              },
wuhao's avatar
wuhao committed
85 86 87 88 89 90 91 92 93 94 95 96 97
            }));
          },
        }}
      >
        编辑
      </PremButton>
    );
  };

  const remove = (text, row, _, action) => {
    return (
      <PremButton
        pop={{
TZW's avatar
TZW committed
98
          title: '是否删除该工厂?',
wuhao's avatar
wuhao committed
99 100
          okText: '确认',
          cancelText: '取消',
TZW's avatar
TZW committed
101 102 103 104
          onConfirm: async () => {
            let res = await doFetch({ url: urlParams.remove, params: { id: row.id } });
            if (res.code === '0000') {
              message.success('删除成功!');
TZW's avatar
TZW committed
105
              setDrawer((s) => ({
TZW's avatar
TZW committed
106 107 108 109 110
                ...s,
                visible: false,
              }));
              actionRef.current.reload();
            }
wuhao's avatar
wuhao committed
111 112 113 114 115 116 117 118 119 120 121 122 123
          },
        }}
        btn={{
          size: 'small',
          type: 'danger',
        }}
      >
        删除
      </PremButton>
    );
  };

  const columns = useMemo(() => {
TZW's avatar
TZW committed
124
    let defcolumn = getcolumns(setDrawer);
wuhao's avatar
wuhao committed
125 126 127 128
    return defcolumn.concat({
      title: '操作',
      valueType: 'option',
      width: 150,
TZW's avatar
TZW committed
129
      render: (text, row, _, action) => [edit(text, row, _, action), remove(text, row, _, action)],
wuhao's avatar
wuhao committed
130 131 132 133 134 135
    });
  }, []);

  return (
    <div style={{ position: 'relative' }}>
      <AutoTable
TZW's avatar
TZW committed
136
        pagetitle={<h3 className="page-title">工厂管理</h3>}
wuhao's avatar
wuhao committed
137
        columns={columns}
TZW's avatar
TZW committed
138
        path={urlParams.list}
wuhao's avatar
wuhao committed
139 140 141 142 143 144
        actionRef={actionRef}
        pageextra={'add'}
        resizeable={false}
        addconfig={{
          // access: 'sysDepartment_save',
          btn: {
TZW's avatar
TZW committed
145
            type: 'primary',
wuhao's avatar
wuhao committed
146 147
            disabled: false,
            onClick: () => {
TZW's avatar
TZW committed
148
              setDrawer((s) => ({
wuhao's avatar
wuhao committed
149 150 151
                ...s,
                visible: true,
                item: null,
TZW's avatar
TZW committed
152
                detailpath: null,
wuhao's avatar
wuhao committed
153 154
                title: '新增',
                val: 'add',
TZW's avatar
TZW committed
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
                onFinish: async (vals) => {
                  console.log(1);
                  let params = {
                    ...vals,
                  };
                  let res = await doFetch({
                    url: urlParams.save,
                    params,
                  });
                  if (res.code === '0000') {
                    message.success('新增成功!');
                    setDrawer((s) => ({
                      ...s,
                      visible: false,
                    }));
                    actionRef.current.reload();
                  }
                },
wuhao's avatar
wuhao committed
173 174 175 176 177 178 179 180
              }));
            },
          },
        }}
      />

      <DrawerPro
        fields={columns}
TZW's avatar
TZW committed
181 182 183
        // detailpath={urlParams.detail}
        // params={{ id: drawer?.item?.id }}
        defaultFormValue={drawer?.item ?? {}}
wuhao's avatar
wuhao committed
184 185 186
        formRef={formRef}
        placement="right"
        onClose={() => {
TZW's avatar
TZW committed
187
          setDrawer((s) => ({
wuhao's avatar
wuhao committed
188 189 190 191 192 193 194 195 196 197 198
            ...s,
            visible: false,
          }));
        }}
        {...drawer}
      />
    </div>
  );
}

export default Factory;