李志伟 2 years ago
parent
commit
f445414819

+ 12
- 4
src/pages/invoiceFill/components/BasicInfo.jsx View File

@@ -1,10 +1,12 @@
1 1
 import React, { useState, useRef, useEffect } from 'react';
2
-import { Form, Input, Popconfirm, Select, Button, Modal, InputNumber, message, Col, Row, Card } from 'antd';
2
+import { Form, Input, Popconfirm, Select, Button, Modal, InputNumber, message, Col, Row, DatePicker } from 'antd';
3 3
 import { PlusOutlined } from '@ant-design/icons';
4
+import moment from 'moment';
4 5
 import { saveInvoiceFill, updateInvoiceFill, getInvoiceFillDetail } from '@/services/invoiceFill'
5 6
 import { saveInvoiceItemTpl, getInvoiceItemTplList, deleteInvoiceItemTpl } from '@/services/invoiceItemTpl'
6 7
 import { history } from 'umi';
7 8
 import PageTable from '@/components/PageTable';
9
+import locale from 'antd/es/date-picker/locale/zh_CN';
8 10
 
9 11
 const FormItem = Form.Item;
10 12
 const { Option } = Select;
@@ -15,6 +17,7 @@ const goBack = () => {
15 17
 export default (props) => {
16 18
   const { invoiceId } = props
17 19
   const [form] = Form.useForm();
20
+  const dateFormat = "YYYY-MM-DD HH:mm:ss";
18 21
   const [loading, setLoading] = useState(false);
19 22
   const [formModel] = Form.useForm();
20 23
   const [editModal, setEditModal] = useState(false);
@@ -23,7 +26,7 @@ export default (props) => {
23 26
 
24 27
   //保存班级
25 28
   const onSubmit = (data) => {
26
-    var newData = { ...data };
29
+    var newData = { ...data,endDate:moment(Date(data.endDate)) };
27 30
     setLoading(true);
28 31
     if (invoiceId) {
29 32
       updateInvoiceFill(invoiceId, newData)
@@ -81,6 +84,7 @@ export default (props) => {
81 84
       message.error(err.message || err);
82 85
     });
83 86
   }
87
+
84 88
   const actions = () => [
85 89
     <Button key="add" type="primary" icon={<PlusOutlined />} onClick={showModel}>
86 90
       新增报销项目
@@ -89,7 +93,7 @@ export default (props) => {
89 93
   useEffect(() => {
90 94
     if (invoiceId) {
91 95
       getInvoiceFillDetail(invoiceId).then((res) => {
92
-        form.setFieldsValue(res)
96
+        form.setFieldsValue({...res,endDate:moment(res.endDate)})
93 97
       }).catch((err) => {
94 98
         message.error(err.message || err);
95 99
       });
@@ -132,10 +136,14 @@ export default (props) => {
132 136
             <FormItem label="班级名称" name="name" rules={[{ required: true, message: '请输入班级名称' }]}>
133 137
               <Input placeholder="请输入班级名称" style={{ width: '350px' }} />
134 138
             </FormItem>
139
+            <FormItem label="截止时间" name="endDate" rules={[{ required: true, message: '请选择班级截止时间' }]}>
140
+              <DatePicker locale={locale} showTime style={{width:'350px'}} format={dateFormat} />
141
+            </FormItem>
135 142
             <FormItem label="状态" name="status" rules={[{ required: true, message: '请选择' }]}>
136 143
               <Select placeholder="请选择发布状态" style={{ width: '350px' }}>
137
-                <Option value={1}>发布</Option>
144
+                <Option value={1}>进行中</Option>
138 145
                 <Option value={0}>未发布</Option>
146
+                <Option value={2}>已截止</Option>
139 147
               </Select>
140 148
             </FormItem>
141 149
             <FormItem label=" " colon={false}>

+ 11
- 80
src/pages/invoiceFill/components/InvoiceDetail.jsx View File

@@ -1,8 +1,7 @@
1 1
 import React, { useState, useRef, useImperativeHandle, forwardRef } from 'react';
2
-import { Form, Input, Button, Modal, message, Popconfirm } from 'antd';
3
-import { PlusOutlined } from '@ant-design/icons';
4
-import { getInvoiceDetailList, updateInvoiceDetail,deleteInvoiceDetail } from '@/services/invoiceDetail'
5
-import {getExport} from '@/services/invoiceFill'
2
+import { Form, Input, Button, Modal, message, Popconfirm, Radio } from 'antd';
3
+import { getInvoiceDetailList, updateInvoiceDetail, deleteInvoiceDetail } from '@/services/invoiceDetail'
4
+import { getExport } from '@/services/invoiceFill'
6 5
 import PageTable from '@/components/PageTable';
7 6
 
8 7
 const FormItem = Form.Item;
@@ -18,7 +17,7 @@ export default forwardRef((props, ref) => {
18 17
 
19 18
   //弹窗保存
20 19
   const Submit = (val) => {
21
-    updateInvoiceDetail(invoiceDetail.detailId,invoiceId, { ...invoiceDetail, ...val }).then((res) => {
20
+    updateInvoiceDetail(invoiceId, { ...invoiceDetail, ...val }).then((res) => {
22 21
       message.success('修改成功')
23 22
       setModelLoading(false)
24 23
       refrash()
@@ -36,8 +35,8 @@ export default forwardRef((props, ref) => {
36 35
   }
37 36
 
38 37
   const showModel = (value) => {
39
-    form.setFieldsValue(value)
40
-    setInvoiceDetail(value)
38
+    form.setFieldsValue({ ...value, name: value.itemName, mergeRemark: value.mergeRemark || 0 })
39
+    setInvoiceDetail({ ...value, name: value.itemName, mergeRemark: value.mergeRemark || 0 })
41 40
     setEditModal(true);
42 41
   }
43 42
   const refrash = () => {
@@ -60,37 +59,6 @@ export default forwardRef((props, ref) => {
60 59
       dataIndex: 'personName',
61 60
       key: 'personName',
62 61
     },
63
-    {
64
-      title: '开票单位',
65
-      dataIndex: 'orgName',
66
-      key: 'orgName',
67
-    },
68
-    {
69
-      title: '纳税识别号',
70
-      dataIndex: 'taxNo',
71
-      key: 'taxNo',
72
-    },
73
-    {
74
-      title: '地址',
75
-      dataIndex: 'address',
76
-      key: 'address',
77
-      search: false
78
-    },
79
-    {
80
-      title: '电话',
81
-      dataIndex: 'phone',
82
-      key: 'phone',
83
-    },
84
-    {
85
-      title: '开户银行',
86
-      dataIndex: 'bankName',
87
-      key: 'bankName',
88
-    },
89
-    {
90
-      title: '开户行账户',
91
-      dataIndex: 'cardNo',
92
-      key: 'cardNo',
93
-    },
94 62
     {
95 63
       title: '项目',
96 64
       dataIndex: 'itemName',
@@ -102,18 +70,6 @@ export default forwardRef((props, ref) => {
102 70
       key: 'charge',
103 71
       search: false
104 72
     },
105
-    {
106
-      title: '是否合开',
107
-      dataIndex: 'mergeRemark',
108
-      key: 'mergeRemark',
109
-      search: false
110
-    },
111
-    {
112
-      title: '住宿清单',
113
-      dataIndex: 'stayRemark',
114
-      key: 'stayRemark',
115
-      search: false
116
-    },
117 73
     {
118 74
       title: '操作',
119 75
       valueType: 'option',
@@ -146,11 +102,10 @@ export default forwardRef((props, ref) => {
146 102
         request={getInvoiceDetailList}
147 103
         actionRef={actionRef}
148 104
         columns={columns}
149
-        rowKey="detailId"
105
+        rowKey={(record, index) => (record, index)}
150 106
         expfunc={getExport}
151 107
         invoiceId={invoiceId}
152 108
         options={false}
153
-        scroll={{ x: 2000 }}
154 109
         params={{ invoiceId }}
155 110
       />
156 111
 
@@ -165,39 +120,15 @@ export default forwardRef((props, ref) => {
165 120
         footer={null}
166 121
       >
167 122
         <Form {...formItemLayout} onFinish={Submit} form={form}>
168
-          <FormItem label="姓名" name="personName" rules={[{ required: true, message: '请输入' }]}>
169
-            <Input placeholder="请输入" />
170
-          </FormItem>
171
-          <FormItem label="开票(单位全称)" name="orgName" rules={[{ required: true, message: '请输入' }]}>
172
-            <Input placeholder="请输入" />
173
-          </FormItem>
174
-          <FormItem label="纳税识别号" name="taxNo" rules={[{ required: true, message: '请输入' }]}>
175
-            <Input placeholder="请输入" />
176
-          </FormItem>
177
-          <FormItem label="地址" name="address" rules={[{ required: true, message: '请输入' }]}>
178
-            <Input placeholder="请输入" />
179
-          </FormItem>
180
-          <FormItem label="电话" name="phone" rules={[{ required: true, message: '请输入' }]}>
181
-            <Input placeholder="请输入" />
123
+          <FormItem label="姓名">
124
+            {invoiceDetail?.personName}
182 125
           </FormItem>
183
-          <FormItem label="开户银行" name="bankName" rules={[{ required: true, message: '请输入' }]}>
184
-            <Input placeholder="请输入" />
185
-          </FormItem>
186
-          <FormItem label="开户行账户" name="cardNo" rules={[{ required: true, message: '请输入' }]}>
187
-            <Input placeholder="请输入" />
188
-          </FormItem>
189
-          <FormItem label="项目" name="itemName" rules={[{ required: true, message: '请输入' }]}>
190
-            <Input placeholder="请输入" />
126
+          <FormItem label="项目" name="name">
127
+            {invoiceDetail?.name}
191 128
           </FormItem>
192 129
           <FormItem label="开票金额" name="charge" rules={[{ required: true, message: '请输入' }]}>
193 130
             <Input placeholder="请输入" />
194 131
           </FormItem>
195
-          <FormItem label="是否合开" name="mergeRemark" rules={[{ required: true, message: '请输入' }]}>
196
-            <Input placeholder="请输入" />
197
-          </FormItem>
198
-          <FormItem label="住宿清单" name="stayRemark" rules={[{ required: true, message: '请输入' }]}>
199
-            <Input placeholder="请输入" />
200
-          </FormItem>
201 132
           <FormItem label=" " colon={false}>
202 133
             <Button type="default" onClick={onCancel}>
203 134
               取消

+ 6
- 28
src/pages/invoiceFill/index.jsx View File

@@ -19,26 +19,6 @@ export default (props) => {
19 19
   const handleClick = () => {
20 20
     history.push('/invoiceFill/edit.jsx');
21 21
   }
22
-  const handleOK = (record, data) => {
23
-    const title = record.status
24
-      ? '您确定要将该班级状态变更为未发布吗? 变更后该班级将不在移动端显示'
25
-      : '您确定要将该班级状态变更为发布吗? 发布后该班级可以在移动端显示';
26
-    Modal.confirm({
27
-      title: title,
28
-      okText: '确认',
29
-      cancelText: '取消',
30
-      onOk() {
31
-        // updateBanner(record.bannerId, { ...record, status: record.status === 1 ? 0 : 1 })
32
-        //   .then((res) => {
33
-        //     message.success('操作成功');
34
-        //     actionRef.current.reload();
35
-        //   })
36
-        //   .catch((err) => {
37
-        //     console.log(err.message)
38
-        //   });
39
-      },
40
-    });
41
-  };
42 22
   const handleDelete = (id) => {
43 23
     deleteInvoiceFill(id).then((res) => {
44 24
       message.success('删除成功')
@@ -72,12 +52,13 @@ export default (props) => {
72 52
       dataIndex: 'status',
73 53
       key: 'status',
74 54
       render: (_, record) => {
75
-        return record.status === 1 ? '发布' : '未发布';
55
+        return record.status === 0 ? '未发布' :record.status === 1 ? '进行中' : '已截止';
76 56
       },
77 57
       valueType: 'select',
78 58
       valueEnum: {
79
-        1: { text: '发布' },
80
-        2: { text: '未发布' },
59
+        0: { text: '未发布' },
60
+        1: { text: '进行中' },
61
+        2: { text: '已截止' },
81 62
       },
82 63
     },
83 64
     {
@@ -86,14 +67,11 @@ export default (props) => {
86 67
       key: 'option',
87 68
       ellipsis: true,
88 69
       render: (_, record) => [
89
-        <Button type="link" key={1} onClick={() => handleOK(record)} style={{ padding: 0 }}>
90
-          {record.status === 0 ? '发布' : '取消发布'}
91
-        </Button>,
92
-        <Button type="link" key={2} onClick={() => history.push(`/invoiceFill/edit.jsx?id=${record.invoiceId}`)} style={{ padding: 0 }}>
70
+        <Button type="link" key={1} onClick={() => history.push(`/invoiceFill/edit.jsx?id=${record.invoiceId}`)} style={{ padding: 0 }}>
93 71
           编辑
94 72
         </Button>,
95 73
         <Popconfirm
96
-          key={3}
74
+          key={2}
97 75
           title="您是否确认删除 ?"
98 76
           onConfirm={() => handleDelete(record.invoiceId)}
99 77
           okText="确定"

+ 5
- 5
src/services/invoiceDetail.js View File

@@ -2,15 +2,15 @@ import request from '@/utils/request';
2 2
 
3 3
 // 获取列表
4 4
 export const getInvoiceDetailList = (params) =>
5
-  request(`/invoice/${params.invoiceId}/detail`, { params });
5
+  request(`/invoice/${params.invoiceId}/detail-tpl`, { params });
6 6
 
7 7
 // 生成明细
8 8
 export const saveInvoiceDetail = (invoiceId) =>
9
-  request(`/invoice/${invoiceId}/detail`, { method: 'post' });
9
+  request(`/invoice/${invoiceId}/detail-tpl`, { method: 'post' });
10 10
 
11 11
 // 更新信息
12
-export const updateInvoiceDetail = (id, invoiceId, data) =>
13
-  request(`/invoice/${invoiceId}/detail/${id}`, { data, method: 'put' });
12
+export const updateInvoiceDetail = (invoiceId, data) =>
13
+  request(`/invoice/${invoiceId}/detail-tpl/item`, { data, method: 'post' });
14 14
 
15 15
 /**
16 16
  * 删除报销明细
@@ -18,4 +18,4 @@ export const updateInvoiceDetail = (id, invoiceId, data) =>
18 18
  * @returns
19 19
  */
20 20
 export const deleteInvoiceDetail = (id) =>
21
-  request(`/invoice/detail/${id}`, { method: 'delete' });
21
+  request(`/invoice/detail-tpl/item/${id}`, { method: 'delete' });