lisenzhou 2 years ago
parent
commit
d28f498332

+ 22
- 0
src/components/evaluateItem/index.jsx View File

@@ -0,0 +1,22 @@
1
+import React, { useState, useEffect } from "react";
2
+import { Radio } from "antd";
3
+function MyEditor(props) {
4
+  const {
5
+    // value,
6
+    // onChange = (e) => {},
7
+    options = [
8
+      { value: 2, label: "优" },
9
+      { value: 1, label: "良" },
10
+      { value: 0, label: "差" },
11
+    ],
12
+    ...leftProps
13
+  } = props;
14
+
15
+  return (
16
+    <>
17
+      <Radio.Group options={options} {...leftProps} />
18
+    </>
19
+  );
20
+}
21
+
22
+export default MyEditor;

+ 92
- 0
src/pages/evaluate/evaluateList/addeValuate.jsx View File

@@ -0,0 +1,92 @@
1
+import { PlusOutlined } from "@ant-design/icons";
2
+import {
3
+  ModalForm,
4
+  ProForm,
5
+  ProFormDateRangePicker,
6
+  ProFormSelect,
7
+  ProFormText,
8
+} from "@ant-design/pro-components";
9
+import { Button, Form, message } from "antd";
10
+// import { getPostsFilesList, savePostsFiles } from "@/services/posts";
11
+import {
12
+  getEvaluateList,
13
+  saveEvaluate
14
+} from "@/services/evaluate";
15
+import EvaluateItem from "@/components/evaluateItem";
16
+
17
+export default ({ taskId, onsuccess = () => {} }) => {
18
+  const [form] = Form.useForm();
19
+
20
+  const onFinish = async (values) => {
21
+    console.log(values);
22
+    // await waitTime(2000);
23
+
24
+    await saveEvaluate(values);
25
+    onsuccess();
26
+    return true;
27
+  };
28
+
29
+  const itemList = [
30
+    {
31
+      name: "item1",
32
+      label: "服务质量",
33
+    },
34
+    {
35
+      name: "item2",
36
+      label: "供应住宿",
37
+    },
38
+    {
39
+      name: "item3",
40
+      label: "供应餐饮",
41
+    },
42
+    {
43
+      name: "item4",
44
+      label: "洗浴评价",
45
+    },
46
+    {
47
+      name: "item5",
48
+      label: "娱乐评价",
49
+    },
50
+    {
51
+      name: "item6",
52
+      label: "军供文化",
53
+    },
54
+  ];
55
+  
56
+  return (
57
+    <ModalForm
58
+      title="新增评价"
59
+      trigger={<Button type="primary">新增</Button>}
60
+      form={form}
61
+      // open={true}
62
+      layout={"horizontal"}
63
+      labelCol={{ span: 8 }}
64
+      wrapperCol={{ span: 12 }}
65
+      modalProps={{
66
+        destroyOnClose: true,
67
+        onCancel: () => console.log("run"),
68
+      }}
69
+      initialValues={{ taskId: taskId }}
70
+      submitTimeout={2000}
71
+      onFinish={onFinish}
72
+    >
73
+      <ProFormText
74
+        width="md"
75
+        name="taskId"
76
+        label="任务ID"
77
+        readonly
78
+
79
+      />
80
+      {itemList?.map((x) => {
81
+       return <ProForm.Item
82
+          key={x.name}
83
+          name={x.name}
84
+          label={x.label}
85
+          rules={[{ required: true, message: "请选择评价" }]}
86
+        >
87
+          <EvaluateItem></EvaluateItem>
88
+        </ProForm.Item>;
89
+      })}
90
+    </ModalForm>
91
+  );
92
+};

+ 103
- 0
src/pages/evaluate/evaluateList/index.jsx View File

@@ -0,0 +1,103 @@
1
+import { getEvaluateList } from "@/services/evaluate";
2
+import { queryTable } from "@/utils/request";
3
+import { PageContainer, ProTable } from "@ant-design/pro-components";
4
+import { Link, useNavigate, useSearchParams } from "react-router-dom";
5
+
6
+import { Button, message, Popconfirm } from "antd";
7
+import moment from "moment";
8
+import { useRef, useState } from "react";
9
+import AddeValuate from "./addeValuate";
10
+
11
+const EvaluateList = (props) => {
12
+  const [searchParams] = useSearchParams();
13
+  const id = searchParams.get("id");
14
+  const navigate = useNavigate();
15
+
16
+  // const [storeTypeDict, setStoreTypeDict] = useState([]);
17
+  const actionRef = useRef();
18
+  const formRef = useRef();
19
+
20
+  const  valueEnum= {
21
+    2: { text: "优", status: "Success" },
22
+    1: { text: "良", status: "Processing" },
23
+    0: { text: "差", status: "Default" },
24
+  }
25
+
26
+  const columns = [
27
+    // {
28
+    //   title: "任务ID",
29
+    //   dataIndex: "taskId",
30
+    // },
31
+
32
+    {
33
+      title: "服务质量",
34
+      dataIndex: "item1",
35
+      search: false,
36
+      valueEnum
37
+    },
38
+    {
39
+      title: "供应住宿",
40
+      dataIndex: "item2",
41
+      search: false,
42
+      valueEnum
43
+    },
44
+    {
45
+      title: "供应餐饮",
46
+      dataIndex: "item3",
47
+      search: false,
48
+      valueEnum
49
+    },
50
+    {
51
+      title: "洗浴评价",
52
+      dataIndex: "item4",
53
+      search: false,
54
+      valueEnum
55
+    },
56
+    {
57
+      title: "娱乐评价",
58
+      dataIndex: "item5",
59
+      search: false,
60
+      valueEnum
61
+    },
62
+    {
63
+      title: "军供文化",
64
+      dataIndex: "item6",
65
+      search: false,
66
+      valueEnum
67
+    },
68
+  ];
69
+
70
+  return (
71
+    <PageContainer>
72
+      <ProTable
73
+        actionRef={actionRef}
74
+        formRef={formRef}
75
+        search={false}
76
+        params={{ taskId: id }}
77
+        rowKey="id"
78
+        toolBarRender={() => [
79
+          <AddeValuate
80
+            taskId={id}
81
+            key="2"
82
+            onsuccess={() => {
83
+              actionRef.current.reload();
84
+            }}
85
+          ></AddeValuate>,
86
+          // <Button
87
+          //   key="2"
88
+          //   type="primary"
89
+          //   onClick={() => {
90
+
91
+          //   }}
92
+          // >
93
+          //   新增评价
94
+          // </Button>,
95
+        ]}
96
+        request={queryTable(getEvaluateList)}
97
+        columns={columns}
98
+      />
99
+    </PageContainer>
100
+  );
101
+};
102
+
103
+export default EvaluateList;

+ 114
- 0
src/pages/evaluate/index.jsx View File

@@ -0,0 +1,114 @@
1
+import {
2
+  deleteGuaranteeTask,
3
+  getGuaranteeTaskList,
4
+} from "@/services/guaranteeTask";
5
+import { queryTable } from "@/utils/request";
6
+import { PageContainer, ProTable } from "@ant-design/pro-components";
7
+import { Link, useNavigate } from "react-router-dom";
8
+
9
+import { Button, message, Popconfirm } from "antd";
10
+import moment from "moment";
11
+import { useRef, useState } from "react";
12
+
13
+const GuaranteeTaskList = (props) => {
14
+  const navigate = useNavigate();
15
+  const [isOpen, setIsOpen] = useState(false);
16
+  const [modalData, setModalData] = useState({});
17
+  // const [storeTypeDict, setStoreTypeDict] = useState([]);
18
+  const actionRef = useRef();
19
+  const formRef = useRef();
20
+
21
+  const handleDelete = (id) => {
22
+    if (id) {
23
+      deleteGuaranteeTask(id).then((res) => {
24
+        message.success("删除成功");
25
+        actionRef.current.reload();
26
+      });
27
+    }
28
+  };
29
+
30
+  const onCancel = () => {
31
+    setIsOpen(false);
32
+    setModalData({});
33
+  };
34
+
35
+  const columns = [
36
+    {
37
+      title: "保障序号",
38
+      dataIndex: "guaranteeNo",
39
+    },
40
+    {
41
+      title: "受领人",
42
+      dataIndex: "receiver",
43
+    },
44
+    {
45
+      title: "时间区间",
46
+      dataIndex: "dateRange",
47
+      valueType: "dateRange",
48
+      search: {
49
+        transform: (value) => {
50
+          console.log(value, value[0].valueOf(), "valuevalue");
51
+
52
+          return {
53
+            startDate: moment(value[0]).format("yyyy-MM-DD"),
54
+            endDate: moment(value[1]).format("yyyy-MM-DD"),
55
+          };
56
+        },
57
+      },
58
+    },
59
+    {
60
+      title: "保障地点",
61
+      dataIndex: "address",
62
+      search: false,
63
+    },
64
+    {
65
+      title: "保障人数",
66
+      dataIndex: "totalPersonNum",
67
+      search: false,
68
+    },
69
+    {
70
+      title: "伙食标准",
71
+      dataIndex: "standard",
72
+      search: false,
73
+    },
74
+
75
+    {
76
+      title: "操作",
77
+      valueType: "option",
78
+      width: 200,
79
+      render: (_, record) => [
80
+        <Button
81
+          key={2}
82
+          style={{ padding: 0 }}
83
+          type="link"
84
+          onClick={() => {
85
+            navigate(`/task/evaluate/list?id=${record.id}`);
86
+          }}
87
+        >
88
+          评价
89
+        </Button>,
90
+      ],
91
+    },
92
+  ];
93
+
94
+  return (
95
+    <PageContainer>
96
+      <ProTable
97
+        actionRef={actionRef}
98
+        formRef={formRef}
99
+        postData={(data) => {
100
+          return data.map((x) => ({
101
+            dateRange: [x.startDate, x.endDate],
102
+            ...x,
103
+          }));
104
+        }}
105
+        rowKey="id"
106
+       
107
+        request={queryTable(getGuaranteeTaskList)}
108
+        columns={columns}
109
+      />
110
+    </PageContainer>
111
+  );
112
+};
113
+
114
+export default GuaranteeTaskList;

+ 12
- 2
src/routes/routes.jsx View File

@@ -18,6 +18,8 @@ import BasicTable from "@/pages/sample/table";
18 18
 import GuaranteeTaskList from "@/pages/guaranteeTask";
19 19
 import GuaranteeTaskEdit from "@/pages/guaranteeTask/Edit";
20 20
 import GuaranteeTaskPrint from "@/pages/guaranteeTask/print";
21
+import GuaranteeTaskEvaluate from "@/pages/evaluate";
22
+import GuaranteeTaskEvaluateList from "@/pages/evaluate/evaluateList";
21 23
 import DishList from "@/pages/dish/list";
22 24
 import DishEdit from "@/pages/dish/edit";
23 25
 import PackageList from "@/pages/package";
@@ -96,10 +98,18 @@ export const authRoutes = [
96 98
         },
97 99
       },
98 100
       {
99
-        path: "guaranteeTask/print",
100
-        element: <GuaranteeTaskPrint />,
101
+        path: "evaluate",
102
+        element: <GuaranteeTaskEvaluate />,
103
+        meta: {
104
+          title: "任务评价",
105
+        },
106
+      },
107
+      {
108
+        path: "evaluate/list",
109
+        element: <GuaranteeTaskEvaluateList />,
101 110
         meta: {
102 111
           title: "任务评价",
112
+          hideInMenu: true,
103 113
         },
104 114
       },
105 115
     ],

+ 21
- 0
src/services/evaluate.js View File

@@ -0,0 +1,21 @@
1
+import { restful } from "@/utils/request";
2
+
3
+/**
4
+ * 构造 Service
5
+ * @returns
6
+ */
7
+const [
8
+  getEvaluateList,
9
+  geEvaluateDetail,
10
+  saveEvaluate,
11
+  updateEvaluate,
12
+  deleteEvaluate,
13
+] = restful("/evaluate");
14
+
15
+export {
16
+  getEvaluateList,
17
+  geEvaluateDetail,
18
+  saveEvaluate,
19
+  updateEvaluate,
20
+  deleteEvaluate,
21
+};