/* 编号规则 * @Author: Li Hanlin * @Date: 2022-11-09 14:44:44 * @Last Modified by: Li Hanlin * @Last Modified time: 2023-01-30 18:43:49 */ 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'; import { doFetch } from '@/utils/doFetch'; import { message } from 'antd'; import AddRules from './AddRules'; import _ from 'lodash'; function Rules(props) { let actionRef = useRef(), formRef = useRef(); const [drawer, setDrawer] = useState({ visible: false, }); const urlParams = { save: '/base/bmNumberRule/save', remove: '/base/bmNumberRule/deleteByNoTypeId', list: '/base/bmNumberRule/queryList', detail: '/base/bmNumberRule/queryByNoTypeId', }; const detail = (text, row, _, action) => { return ( { setDrawer((s) => ({ ...s, visible: true, item: row, title: '详情', val: 'detail', title: row.userName + '的详细信息', })); }, }} > 详情 ); }; const edit = (text, row, i, action) => { return ( { setDrawer((s) => ({ ...s, visible: true, detailpath: urlParams.detail, params: { noTypeId: row?.id }, title: '编辑', val: 'edit', onFinish: async (vals) => { console.log(vals); vals.nrList.other = _.pick(vals.nrList.other, [ 'formatType', 'increaseList', 'noRuleCode', 'sort', ]); vals.nrList.value = vals.nrList.value.map((it) => { return _.pick(it, [ 'formatType', 'id', 'noContent', 'noRuleCode', 'sort', 'paramList', ]); }); let params = { ...vals }; params.nrList = []; params.nrList = params.nrList.concat(vals?.nrList.value); if (vals?.nrList.other.sort) { vals.nrList.other.increaseList = Array.from( Array(vals?.nrList.value.length + 1), (_, index) => index + 1, ).filter((it) => it !== vals?.nrList.other.sort + 1); params.nrList.splice(vals?.nrList.other.sort, 0, vals?.nrList.other); params.nrList.forEach?.((it, i) => { it.sort = i + 1; }); } else { message.warning('请选择顺序递增规则的位置!'); return; } params.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(); } }, })); }, }} > 编辑 ); }; const remove = (text, row, _, action) => { return ( { let res = await doFetch({ url: urlParams.remove, params: { noTypeId: row.id } }); if (res.code === '0000') { message.success('删除成功!'); setDrawer((s) => ({ ...s, visible: false, })); actionRef.current.reload(); } }, }} btn={{ size: 'small', type: 'danger', }} > 删除 ); }; const columns = useMemo(() => { let defcolumn = getcolumns(setDrawer); return defcolumn.concat({ title: '操作', valueType: 'option', width: 150, render: (text, row, _, action) => [edit(text, row, _, action), remove(text, row, _, action)], }); }, []); return (
编号规则} columns={columns} pagination={false} path={urlParams.list} actionRef={actionRef} pageextra={'add'} resizeable={false} addconfig={{ // access: 'sysDepartment_save', btn: { type: 'primary', disabled: false, onClick: () => { setDrawer((s) => ({ ...s, visible: true, item: null, detailpath: null, title: '新增', val: 'add', onFinish: async (vals) => { console.log(vals); let params = { ...vals }; params.nrList = []; params.nrList = params.nrList.concat(vals?.nrList.value); if (vals?.nrList.other.sort) { // vals.nrList.other.increaseList = Array.from( // Array(vals?.nrList.value.length + 1), // (_, index) => index + 1, // ).filter((it) => it !== vals?.nrList.other.sort + 1); params.nrList.splice(vals?.nrList.other.sort, 0, vals?.nrList.other); let arr = []; params.nrList.forEach?.((it, i) => { it.sort = i + 1; }); console.log(arr); params.nrList.forEach((it) => { if (it.noRuleCode == 'increasing_order') { let increaseListArr = []; it.increaseList.forEach((id) => { increaseListArr = params.nrList .filter((item) => item?.id == id) .map((it) => { return it?.sort; }); }); arr = increaseListArr; } }); params.nrList.forEach((it) => { if (it.noRuleCode == 'increasing_order') { it.increaseList = arr; } }); } else { message.warning('请选择顺序递增规则的位置!'); return; } let res = await doFetch({ url: urlParams.save, params, }); if (res.code === '0000') { message.success('新增成功!'); setDrawer((s) => ({ ...s, visible: false, })); actionRef.current.reload(); } }, })); }, }, }} /> { setDrawer((s) => ({ ...s, visible: false, })); }} {...drawer} />
); } export default Rules;