From 684867142a6aa39011da24b734ce17de54407884 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 17 五月 2024 22:11:05 +0800
Subject: [PATCH] 2024-05-17

---
 src/tabviews/custom/components/module/invoice/index.jsx |  126 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 122 insertions(+), 4 deletions(-)

diff --git a/src/tabviews/custom/components/module/invoice/index.jsx b/src/tabviews/custom/components/module/invoice/index.jsx
index efe5714..e50407c 100644
--- a/src/tabviews/custom/components/module/invoice/index.jsx
+++ b/src/tabviews/custom/components/module/invoice/index.jsx
@@ -54,7 +54,12 @@
     tax_type: '',
     reqfields: [],
     requireds: [],
-    timestamp: new Date().getTime() + ''
+    invoice_no: '',
+    invoice_code: '',
+    invoice_date: '',
+    read_only: false,
+    invoice_type_name: '',
+    timestamp: ''
   }
 
   UNSAFE_componentWillMount () {
@@ -341,6 +346,17 @@
         }
       })
 
+      let invoice_type_name = ''
+      if (line.read_only === 'true') {
+        let types = book.invoice_type || []
+        types.forEach(item => {
+          if (item.value === line.invoice_type) {
+            invoice_type_name = item.label
+          }
+        })
+        invoice_type_name = invoice_type_name || line.invoice_type
+      }
+
       this.setState({
         ID: line[config.setting.primaryKey] || Utils.getguid(),
         io: line.io,
@@ -366,6 +382,11 @@
         reviewer: line.reviewer,
         drawer: line.drawer,
         details: details,
+        invoice_no: line.invoice_no,
+        invoice_code: line.invoice_code,
+        invoice_date: line.read_only === 'true' ? line.invoice_date : '',
+        read_only: line.read_only === 'true',
+        invoice_type_name: invoice_type_name,
         oriDetails: fromJS(details).toJS(),
         timestamp: new Date().getTime() + '',
         loading: false
@@ -1033,15 +1054,112 @@
   // }
 
   render() {
-    const { config, book, loading, invTypes, reqfields, saveType, date, timestamp, invoice_type, from_to_name, from_to_tax_no, from_to_addr, from_to_tel, from_to_bank_name, from_to_account_no, from_to_mob, from_to_email, orgname, tax_no, addr, tel, bank_name, account_no, remark, reviewer, drawer, payee, details, visible, tax_type } = this.state
+    const { config, book, loading, invTypes, reqfields, saveType, date, timestamp, invoice_type, from_to_name, from_to_tax_no, from_to_addr, from_to_tel, from_to_bank_name, from_to_account_no, from_to_mob, from_to_email, orgname, tax_no, addr, tel, bank_name, account_no, remark, reviewer, drawer, payee, details, visible, tax_type, invoice_no, invoice_code, invoice_date, read_only, invoice_type_name } = this.state
 
-    if (!book || (config.wrap.datatype === 'dynamic' && !tax_no)) {
+    if (!book || (config.wrap.datatype === 'dynamic' && !timestamp)) {
       return <div className="menu-invoice-wrap" style={config.style}>
         <div className="loading-mask">
           <div className="ant-spin-blur"></div>
           <Spin />
         </div>
       </div>
+    }
+
+    if (read_only) {
+      return (
+        <div className="menu-invoice-wrap read_only" style={config.style}>
+          {loading ?
+            <div className="loading-mask">
+              <div className="ant-spin-blur"></div>
+              <Spin />
+            </div> : null
+          }
+          <div className="inv-action">
+            {config.wrap.backBtn === 'show' ? <Button className="mk-back" onClick={this.goback}><LeftOutlined />杩斿洖</Button> : null}
+          </div>
+          <div className="inv-header">
+            <div className="inv-type">{invoice_type_name}</div>
+            <div className="inv-msg">
+              {invoice_no ? <div>鍙戠エ鍙风爜锛歿invoice_no}</div> : null}
+              {invoice_code ? <div>鍙戠エ浠g爜锛歿invoice_code}</div> : null}
+              {invoice_date ? <div>寮�绁ㄦ棩鏈燂細{invoice_date}</div> : null}
+            </div>
+          </div>
+          <div className="inv-body">
+            <div className="inv-main-content">
+              <div className="inv-buyer">
+                <div className="inv-label">璐拱鏂�</div>
+                <div className="inv-content">
+                  <Form.Item className="mk-name" label={<>鍚�<span></span>绉�</>}>
+                    {from_to_name}
+                  </Form.Item>
+                  <Form.Item label="绾崇◣浜鸿瘑鍒彿">
+                    {from_to_tax_no}
+                  </Form.Item>
+                  <Form.Item label={<>鍦�<span></span>鍧�<span></span>銆�<span></span>鐢�<span></span>璇�</>}>
+                    {from_to_addr + ' ' + from_to_tel}
+                  </Form.Item>
+                  <Form.Item label="寮�鎴疯鍙婅处鍙�">
+                    {from_to_bank_name + ' ' + from_to_account_no}
+                  </Form.Item>
+                </div>
+              </div>
+              <div className="inv-notice">
+                <div className="inv-label">閫氱煡鍒�</div>
+                <div className="inv-content">
+                  <Form.Item label={<>鎵�<span></span>鏈�<span></span>鍙�</>}>
+                    {from_to_mob}
+                  </Form.Item>
+                  <Form.Item label={<>閭�<span></span>绠�</>}>
+                    {from_to_email}
+                  </Form.Item>
+                </div>
+              </div>
+            </div>
+            <div className="inv-details">
+              <InvoiceTable data={details} timestamp={timestamp} read_only={true} config={config.detail} tax_type={tax_type} onChange={(details) => this.setState({details})}/>
+            </div>
+            <div className="inv-main-content">
+              <div className="inv-buyer">
+                <div className="inv-label">閿�鍞柟</div>
+                <div className="inv-content">
+                  <Form.Item label={<>鍚�<span></span>绉�</>}>
+                    {orgname}
+                  </Form.Item>
+                  <Form.Item label="绾崇◣浜鸿瘑鍒彿">
+                    {tax_no}
+                  </Form.Item>
+                  <Form.Item label={<>鍦�<span></span>鍧�<span></span>銆�<span></span>鐢�<span></span>璇�</>}>
+                    {addr + ' ' + tel}
+                  </Form.Item>
+                  <Form.Item label="寮�鎴疯鍙婅处鍙�">
+                    {bank_name + ' ' + account_no}
+                  </Form.Item>
+                </div>
+              </div>
+              <div className="inv-notice">
+                <div className="inv-label">澶囨敞</div>
+                <div className="inv-content" style={{paddingTop: '30px'}}>
+                  <Form.Item label="">
+                    {remark}
+                  </Form.Item>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div className="inv-tail">
+            <Form.Item label="鏀舵浜�">
+              {payee}
+            </Form.Item>
+            <Form.Item label="澶嶆牳浜�">
+              {reviewer}
+            </Form.Item>
+            <Form.Item label="寮�绁ㄤ汉">
+              {drawer}
+            </Form.Item>
+          </div>
+        </div>
+      )
     }
 
     return (
@@ -1105,7 +1223,7 @@
             </div>
           </div>
           <div className="inv-details">
-            <InvoiceTable data={details} timestamp={timestamp} config={config.detail} tax_type={tax_type} onChange={(details) => this.setState({details})}/>
+            <InvoiceTable data={details} timestamp={timestamp} read_only={false} config={config.detail} tax_type={tax_type} onChange={(details) => this.setState({details})}/>
           </div>
           <div className="inv-main-content">
             <div className="inv-buyer">

--
Gitblit v1.8.0