Commit 78f597bb78205ee04378f96ac21b4bac82c7d5e0

Authored by 张志伟
2 parents b5613060 7cf041ab

Merge branch 'bug_fix' into 'master'

考评组bugfix



See merge request !187
src/pages/performance/CompensateGroupConfig/components/DraftList.tsx
... ... @@ -89,7 +89,7 @@ export default ({ type }: Props) => {
89 89 新增
90 90 </Button>
91 91 </Row>
92   - <Table loading={loading} rowKey={(row) => `id${row.id}`} dataSource={list} pagination={paginationConfig}>
  92 + <Table loading={loading} rowKey={(row) => `id${row.draftId}`} dataSource={list} pagination={paginationConfig}>
93 93 <Column title="薪酬组名称" dataIndex="name" align="center" render={(name) => name || ""} />
94 94 <Column title="岗位" dataIndex="postName" align="center" />
95 95 <Column
... ...
src/pages/performance/EvaDataImport/components/FileDatailsModal.tsx 0 → 100644
  1 +import React, { useState, useEffect } from "react";
  2 +import {
  3 + Table,
  4 + Input,
  5 + InputNumber,
  6 + Popconfirm,
  7 + Form,
  8 + Typography,
  9 + Button,
  10 + message,
  11 + Space,
  12 + Divider,
  13 + Modal,
  14 + Card,
  15 +} from "antd";
  16 +import { cloneDeep } from "lodash";
  17 +import { KpiGroupSetteing } from "@/pages/performance/KpiGroupSetting/interface";
  18 +import { TargetType, TargetTypeEnum } from "@/pages/performance/entity";
  19 +import { render } from "react-dom";
  20 +import moment from "moment";
  21 +import { ReasonsEnum } from "../entity";
  22 +import { history } from "umi";
  23 +import st from "./style.less";
  24 +
  25 +const Column = Table.Column;
  26 +
  27 +interface Props {
  28 + visible: boolean;
  29 + fileData: any;
  30 + tarOnCancel: Function;
  31 +}
  32 +const columns = [
  33 + {
  34 + title: "目标名称",
  35 + dataIndex: "indicatorName",
  36 + key: "indicatorName",
  37 + },
  38 +
  39 + {
  40 + title: "目标值",
  41 + dataIndex: "targetValue",
  42 + key: "targetValue",
  43 + render: (value: Number, record: any) => {
  44 + return record.targetType === 2 ? `${value}%` : record.targetType === 3 ? `${value}元` : `${value}台`;
  45 + },
  46 + },
  47 +];
  48 +const TargetModal = ({ visible, fileData, tarOnCancel }: Props) => {
  49 + return (
  50 + <>
  51 + <Modal title="导入数据详情" visible={visible} onCancel={() => tarOnCancel()} maskClosable={false} width={1500}>
  52 + <Table bordered dataSource={fileData.details}>
  53 + <Column title="归属人员" dataIndex="userName" align="center" render={(name) => <span>{name || "--"}</span>} />
  54 + <Column title="归属门店" dataIndex="shopName" align="center" render={(name) => <span>{name || "--"}</span>} />
  55 + <Column
  56 + title="指标名称"
  57 + dataIndex="indicatorName"
  58 + align="center"
  59 + render={(name) => <span>{name || "--"}</span>}
  60 + />
  61 + <Column
  62 + title="指标值"
  63 + dataIndex="indicatorValue"
  64 + align="center"
  65 + render={(num, record: any) => (
  66 + <span>
  67 + {num !== undefined
  68 + ? `${num}${
  69 + record.dataType == 1 ? "台" : record.dataType == 2 ? "%" : record.dataType == 3 ? "元" : ""
  70 + }`
  71 + : "--"}
  72 + </span>
  73 + )}
  74 + />
  75 + <Column
  76 + title="考核周期"
  77 + dataIndex="dataDate"
  78 + align="center"
  79 + render={(time: number) => (time ? moment(time).format("YYYY-MM-DD") : "--")}
  80 + />
  81 + <Column
  82 + title="是否导入"
  83 + dataIndex="errorType"
  84 + align="center"
  85 + render={(_: any, record: any) =>
  86 + record.errorType ? <div className={st.no}>未导入</div> : <div className={st.yes}>已导入</div>
  87 + }
  88 + />
  89 + <Column
  90 + title="未导入原因"
  91 + dataIndex="errorType"
  92 + align="center"
  93 + render={(_: any, record: any) => (record.errorType ? ReasonsEnum[record.errorType] : "--")}
  94 + />
  95 + </Table>
  96 + </Modal>
  97 + </>
  98 + );
  99 +};
  100 +
  101 +export default TargetModal;
... ...
src/pages/performance/EvaDataImport/components/style.less 0 → 100644
  1 +.no {
  2 + width: 47px;
  3 + height: 18px;
  4 + margin: 0 auto;
  5 + color: #f4333c;
  6 + font-weight: 500;
  7 + font-size: 12px;
  8 + line-height: 18px;
  9 + border: 1px solid #f8797f;
  10 + border-radius: 2px;
  11 +}
  12 +.yes {
  13 + width: 47px;
  14 + height: 18px;
  15 + margin: 0 auto;
  16 + color: #20c688;
  17 + font-weight: 500;
  18 + font-size: 12px;
  19 + line-height: 18px;
  20 + border: 1px solid #6ddab2;
  21 + border-radius: 2px;
  22 +}
... ...
src/pages/performance/EvaDataImport/index.tsx
... ... @@ -8,6 +8,7 @@ import type { UploadProps } from &quot;antd&quot;;
8 8 import { history } from "umi";
9 9 import moment from "moment";
10 10 import Filter from './components/Filter';
  11 +import FileDatailsModal from './components/FileDatailsModal';
11 12  
12 13 const Column = Table.Column;
13 14  
... ... @@ -15,6 +16,8 @@ export default () =&gt; {
15 16 const { loading, list, paginationConfig, setParams, innerParams } = usePagination(evaDataListApi, {
16 17 pageSize: 10,
17 18 });
  19 + const [fileData, setFileData] = useState({});
  20 + const [visible, setVisible] = useState<boolean>(false);
18 21 const uploadPerson: UploadProps = {
19 22 name: "file",
20 23 action: "/api/morax/erp/eval-indicator/staff-indicator",
... ... @@ -25,10 +28,12 @@ export default () =&gt; {
25 28 console.log(info.file, info.fileList);
26 29 }
27 30 if (info.file.status === "done") {
28   - message.success(`${info.file.name} 导入成功`);
  31 + message.success(`${info.file.name} 上传成功`);
29 32 setParams({ ...innerParams }, true);
  33 + // setFileData(info.file.response.data);
  34 + // setVisible(true);
30 35 } else if (info.file.status === "error") {
31   - message.error(`${info.file.name} 导入失败`);
  36 + message.error(`${info.file.name} 上传失败`);
32 37 }
33 38 },
34 39 };
... ... @@ -42,10 +47,10 @@ export default () =&gt; {
42 47 console.log(info.file, info.fileList);
43 48 }
44 49 if (info.file.status === "done") {
45   - message.success(`${info.file.name} 导入成功`);
  50 + message.success(`${info.file.name} 上传成功`);
46 51 setParams({ ...innerParams }, true);
47 52 } else if (info.file.status === "error") {
48   - message.error(`${info.file.name} 导入失败`);
  53 + message.error(`${info.file.name} 上传失败`);
49 54 }
50 55 },
51 56 };
... ... @@ -57,12 +62,20 @@ export default () =&gt; {
57 62 <Filter setParams={setParams} />
58 63 <div>
59 64 <Button type="default" style={{ marginRight: 10 }}>
60   - <a href="https://gate.feewee.cn/file/download?fid=74d1d724f9be48baa5921f3782037c3b" target="_blank" rel="noreferrer">
  65 + <a
  66 + href="https://gate.feewee.cn/file/download?fid=74d1d724f9be48baa5921f3782037c3b"
  67 + target="_blank"
  68 + rel="noreferrer"
  69 + >
61 70 下载人员模板
62 71 </a>
63 72 </Button>
64 73 <Button type="default" style={{ marginRight: 10 }}>
65   - <a href="https://gate.feewee.cn/file/download?fid=e4eb136962164264a78753bd1d6061f3" target="_blank" rel="noreferrer">
  74 + <a
  75 + href="https://gate.feewee.cn/file/download?fid=e4eb136962164264a78753bd1d6061f3"
  76 + target="_blank"
  77 + rel="noreferrer"
  78 + >
66 79 下载门店模板
67 80 </a>
68 81 </Button>
... ... @@ -76,7 +89,6 @@ export default () =&gt; {
76 89 </Upload>
77 90 </div>
78 91 </Row>
79   -
80 92 <Table
81 93 loading={loading}
82 94 rowKey={(row) => `id${row.indicatorCode}`}
... ... @@ -137,6 +149,7 @@ export default () =&gt; {
137 149 )}
138 150 />
139 151 </Table>
  152 + {/* <FileDatailsModal visible={visible} tarOnCancel={() => setVisible(false)} fileData={fileData} /> */}
140 153 </Card>
141 154 </PageHeaderWrapper>
142 155 );
... ...
src/pages/performance/EvaGroupSetting/EditComfirm/components/RankModal.tsx
... ... @@ -425,7 +425,7 @@ const TotalAmount = ({
425 425 }}
426 426 />
427 427 </Form>
428   - <div>金额可为负数</div>
  428 + <div>金额可为负数,负数为负激励</div>
429 429 </>
430 430 )}
431 431 </>
... ...
src/pages/performance/EvaGroupSetting/EditComfirm/components/TotalAmountSal.tsx
... ... @@ -58,7 +58,7 @@ const TotalAmount = ({
58 58 if (dataIndex == "upper" && isPercent == 2) {
59 59 precision = 2;
60 60 }
61   - const inputNode = inputType === "number" ? <InputNumber precision={precision} min={0} /> : <Input />;
  61 + const inputNode = inputType === "number" ? <InputNumber precision={precision} /> : <Input />;
62 62  
63 63 return (
64 64 <td {...restProps}>
... ... @@ -360,24 +360,28 @@ const TotalAmount = ({
360 360 }}
361 361 />
362 362 </Form>
  363 + <div>金额可为负数,负数为负激励</div>
363 364 </Modal>
364 365 ) : (
365   - <Form form={form} component={false}>
366   - <Table
367   - components={{
368   - body: {
369   - cell: EditableCell,
370   - },
371   - }}
372   - bordered
373   - dataSource={value}
374   - columns={mergedColumns}
375   - rowClassName="editable-row"
376   - pagination={{
377   - onChange: cancel,
378   - }}
379   - />
380   - </Form>
  366 + <>
  367 + <Form form={form} component={false}>
  368 + <Table
  369 + components={{
  370 + body: {
  371 + cell: EditableCell,
  372 + },
  373 + }}
  374 + bordered
  375 + dataSource={value}
  376 + columns={mergedColumns}
  377 + rowClassName="editable-row"
  378 + pagination={{
  379 + onChange: cancel,
  380 + }}
  381 + />
  382 + </Form>
  383 + <div>金额可为负数,负数为负激励</div>
  384 + </>
381 385 )}
382 386 </>
383 387 );
... ...
src/pages/performance/EvaGroupSetting/components/DraftList.tsx
1   -import React, { useState } from "react";
  1 +import React, { useEffect, useState } from "react";
2 2 import { PageHeaderWrapper } from "@ant-design/pro-layout";
3 3 import { Button, Card, Table, Row, Space, Typography, Divider, Popconfirm, message } from "antd";
4 4 import usePagination from "@/hooks/usePagination";
... ... @@ -22,6 +22,9 @@ export default ({ type }: Props) =&gt; {
22 22 status: 2,
23 23 type: 1,
24 24 });
  25 + useEffect(() => {
  26 + console.log("list", list);
  27 + }, [list]);
25 28 const [visibleDetail, setVisibleDetail] = useState(false);
26 29 const [item, setItem] = useState<any>({});
27 30 //删除
... ... @@ -69,7 +72,7 @@ export default ({ type }: Props) =&gt; {
69 72 </Row>
70 73 <Table
71 74 loading={loading}
72   - rowKey={(row) => `id${row.id}`}
  75 + rowKey={(row) => `id${row.draftId}`}
73 76 dataSource={list}
74 77 pagination={paginationConfig}
75 78 scroll={{ x: 500 }}
... ...
src/pages/performance/KpiGroupSetting/components/DraftList.tsx
... ... @@ -92,7 +92,7 @@ export default ({ type }: Props) =&gt; {
92 92 </Row>
93 93 <Table
94 94 loading={loading}
95   - rowKey={(row) => `id${row.id}`}
  95 + rowKey={(row) => `id${row.draftId}`}
96 96 dataSource={list}
97 97 pagination={paginationConfig}
98 98 scroll={{ x: 500 }}
... ...