From 08cce3334a2dc81d690b518136b0aaea64e48b0b Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 14 六月 2023 09:55:50 +0800
Subject: [PATCH] 2023-06-14

---
 src/templates/zshare/verifycard/baseform/index.jsx |  164 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 116 insertions(+), 48 deletions(-)

diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx
index a0f5892..00171d3 100644
--- a/src/templates/zshare/verifycard/baseform/index.jsx
+++ b/src/templates/zshare/verifycard/baseform/index.jsx
@@ -5,10 +5,9 @@
 import { QuestionCircleOutlined } from '@ant-design/icons'
 
 import Api from '@/api'
-import asyncComponent from '@/utils/asyncComponent'
 import './index.scss'
 
-const ColorSketch = asyncComponent(() => import('@/mob/colorsketch'))
+const sysTempsIds = ['8IFltwzyKcu15iA8fqSyb6m-pMa88a3ZTu0No3vDHgo', 'LOB-bbt9jVncGh7IOAUdESh1Sgzcbt62UwOqSqcK9ok']
 
 class BillCodeForm extends Component {
   static propTpyes = {
@@ -26,7 +25,6 @@
   }
 
   componentDidMount() {
-    const { verify } = this.props
     let wxTemps = sessionStorage.getItem('wxTemplates')
 
     if (window.GLOB.WXAppID && window.GLOB.nginx && !wxTemps) {
@@ -38,21 +36,22 @@
           Api.wxNginxRequest(`cgi-bin/template/get_all_private_template?access_token=${wxtoken}`, 'get').then(res => {
             let temps = []
             if (res.template_list) {
-              temps = res.template_list.filter(item => item.primary_industry)
-              let selectTemp = temps.filter(item => item.template_id === verify.wxTemplateId)[0]
+              temps = res.template_list.filter(item => {
+                if (!item.primary_industry || sysTempsIds.includes(item.template_id)) return false
+                if (item.content) {
+                  item.content = item.content.replace('{{first.DATA}}\n', '').replace('\n{{remark.DATA}}', '')
+                }
 
-              if (selectTemp) {
-                selectTemp.content = selectTemp.content.replace(/\r\n|\n/g, '<br/>')
-                selectTemp.example = selectTemp.example.replace(/\r\n|\n/g, '<br/>')
-              }
-
-              this.setState({wxTemps: temps, selectTemp})
+                return true
+              })
             }
-
+            
             sessionStorage.setItem('wxTemplates', JSON.stringify(temps))
             localStorage.setItem('wxTemplates', JSON.stringify(temps))
 
             localStorage.removeItem('wxTemplates')
+
+            this.resetTemps(temps)
           })
         } else {
           sessionStorage.setItem('wxTemplates', JSON.stringify([]))
@@ -75,15 +74,50 @@
     } else if (wxTemps) {
       wxTemps = JSON.parse(wxTemps)
 
-      let selectTemp = wxTemps.filter(item => item.template_id === verify.wxTemplateId)[0]
-
-      if (selectTemp) {
-        selectTemp.content = selectTemp.content.replace(/\r\n|\n/g, '<br/>')
-        selectTemp.example = selectTemp.example.replace(/\r\n|\n/g, '<br/>')
-      }
-  
-      this.setState({wxTemps, selectTemp})
+      this.resetTemps(wxTemps)
     }
+  }
+
+  resetTemps = (wxTemps) => {
+    const { verify } = this.props
+
+    let sysTemps = [
+      {
+        template_id: '8IFltwzyKcu15iA8fqSyb6m-pMa88a3ZTu0No3vDHgo',
+        title: '璁㈠崟鍙楃悊閫氱煡锛堟槑绉戜簯锛�',
+        primary_industry: 'IT绉戞妧',
+        deputy_industry: 'IT杞欢涓庢湇鍔�',
+        content: '璁㈠崟鍙凤細{{keyword1.DATA}}\n璁㈠崟绫诲瀷锛歿{keyword2.DATA}}\n璁㈠崟鐘舵�侊細{{keyword3.DATA}}\n閫氱煡鏃堕棿锛歿{keyword4.DATA}}',
+        example: '璁㈠崟鍙凤細20190101001\r\n璁㈠崟绫诲瀷锛氳。鏌淺r\n璁㈠崟鐘舵�侊細璁捐瀹屾垚\r\n閫氱煡鏃堕棿锛�2019骞�1鏈�1鏃�12:30'
+      },
+      {
+        template_id: 'LOB-bbt9jVncGh7IOAUdESh1Sgzcbt62UwOqSqcK9ok',
+        title: '璁㈠崟杩涘害鎻愰啋锛堟槑绉戜簯锛�',
+        primary_industry: 'IT绉戞妧',
+        deputy_industry: 'IT杞欢涓庢湇鍔�',
+        content: '璁㈠崟绫诲瀷锛歿{keyword1.DATA}}\n璁㈠崟鍙凤細{{keyword2.DATA}}\n璁㈠崟鐘舵�侊細{{keyword3.DATA}}',
+        example: '璁㈠崟绫诲瀷锛氶��绉熺敵璇穃r\n璁㈠崟鍙凤細TZ16101909\r\n璁㈠崟鐘舵�侊細寰呭彇璐�'
+      },
+      {
+        template_id: 'mk_category_temp',
+        title: '绫荤洰妯℃澘',
+        primary_industry: '',
+        deputy_industry: '',
+        content: '',
+        example: ''
+      }
+    ]
+    
+    let _wxTemps = [...wxTemps, ...sysTemps]
+
+    let selectTemp = _wxTemps.filter(item => item.template_id === verify.wxTemplateId)[0]
+
+    if (selectTemp) {
+      selectTemp.content = selectTemp.content.replace(/\r\n|\n/g, '<br/>')
+      selectTemp.example = selectTemp.example.replace(/\r\n|\n/g, '<br/>')
+    }
+
+    this.setState({wxTemps: _wxTemps, selectTemp})
   }
 
   handleConfirm = () => {
@@ -97,10 +131,11 @@
     } else if (verify.wxNote === 'true') {
       if (!verify.wxTemplateId) {
         error = '寮�鍚叕浼楀彿娑堟伅鎺ㄩ�佹椂锛岄渶瑕侀�夋嫨娑堟伅妯℃澘锛�'
+      } else if (verify.wxTemplateId === 'mk_category_temp' && !verify.wxCustomTempId) {
+        error = '寮�鍚叕浼楀彿娑堟伅鎺ㄩ�佹椂锛岄渶瑕佸~鍐欐秷鎭ā鏉縄D锛�'
       } else if (verify.wxNoteLink === 'url' && !verify.wxNoteLinkUrl) {
         error = '璇峰~鍐欑綉鍧�锛�'
       }
-
     }
 
     return error
@@ -125,6 +160,8 @@
       _verify.wxNoteLinkMenuId = ''
       _verify.wxNoteCallback = 'false'
       _verify.wxNoteKeys = null
+
+      delete _verify.wxCustomTempId
 
       if (this.state.selectTemp) {
         this.setState({selectTemp: null})
@@ -155,7 +192,7 @@
     const { verify } = this.props
 
     let _verify = {...verify, wxTemplateId: val}
-    let selectTemp = {content: option.props.content.replace(/\r\n|\n/g, '<br/>'), example: option.props.example.replace(/\r\n|\n/g, '<br/>')}
+    let selectTemp = {template_id: val, content: option.props.content.replace(/\r\n|\n/g, '<br/>'), example: option.props.example.replace(/\r\n|\n/g, '<br/>')}
 
     let keys = []
     if (option.props.content) {
@@ -163,26 +200,27 @@
       keys = keys.map(key => key.replace(/{{|\.DATA}}/g, ''))
     }
 
-    let index = 1
-    _verify.wxNoteKeys = keys.map(key => {
-      let item = {
-        key: key,
-        color: '#000000',
-        readonly: false
+    delete _verify.wxCustomTempId
+
+    if (selectTemp.template_id === 'mk_category_temp') {
+      _verify.wxNoteKeys = []
+      for (let i = 1; i <= 10; i++) {
+        _verify.wxNoteKeys.push({
+          key: '',
+          value: 'p' + i
+        })
       }
-      if (key === 'first') {
-        item.value = 'first'
-        item.readonly = true
-      } else if (key === 'remark') {
-        item.value = 'remark'
-        item.readonly = true
-      } else {
+    } else {
+      let index = 1
+      _verify.wxNoteKeys = keys.map(key => {
+        let item = { key: key }
+        
         item.value = 'p' + index
         index++
-      }
-
-      return item
-    })
+  
+        return item
+      })
+    }
 
     this.setState({selectTemp})
 
@@ -203,16 +241,24 @@
     this.props.onChange(_verify)
   }
 
-  onWxNoteColorChange = (key, val) => {
+  onWxNoteValueChange = (value, val) => {
     let _verify = fromJS(this.props.verify).toJS()
 
     _verify.wxNoteKeys = _verify.wxNoteKeys.map(m => {
-      if (m.key === key) {
-        m.color = val
+      if (m.value === value) {
+        m.key = val.replace(/\s+/ig, '')
       }
 
       return m
     })
+
+    this.props.onChange(_verify)
+  }
+
+  onWxNoteTempIdChange = (value) => {
+    let _verify = fromJS(this.props.verify).toJS()
+
+    _verify.wxCustomTempId = value.replace(/\s+/ig, '')
 
     this.props.onChange(_verify)
   }
@@ -413,9 +459,9 @@
               <Input placeholder="" autoComplete="off" value={verify.wxNoteLinkMenuId || ''} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteLinkMenuId')}}/>
             </Form.Item>
           </Col> : null}
-          {verify.wxNote === 'true' && verify.wxNoteKeys ? verify.wxNoteKeys.map(item => <Col span={8} key={item.key}>
-            <Form.Item className="mk-note-keyword" label={item.key} required>
-              <Select value={item.value} disabled={item.readonly} onSelect={(val) => this.onWxNoteKeyChange(item.key, val)}>
+          {verify.wxNote === 'true' && verify.wxNoteKeys && (!selectTemp || selectTemp.template_id !== 'mk_category_temp') ? verify.wxNoteKeys.map((item, index) => <Col span={8} key={'mk' + index}>
+            <Form.Item label={item.key} required>
+              <Select value={item.value} onSelect={(val) => this.onWxNoteKeyChange(item.key, val)}>
                 <Select.Option value="p1">p1</Select.Option>
                 <Select.Option value="p2">p2</Select.Option>
                 <Select.Option value="p3">p3</Select.Option>
@@ -427,10 +473,19 @@
                 <Select.Option value="p9">p9</Select.Option>
                 <Select.Option value="p10">p10</Select.Option>
               </Select>
-              <ColorSketch value={item.color || '#ffffff'} onChange={(val, hex) => {this.onWxNoteColorChange(item.key, hex)}} />
             </Form.Item>
           </Col>) : null}
-          {selectTemp && verify.wxNoteKeys ? <Col span={24} className="wx-note">
+          {verify.wxNote === 'true' && verify.wxNoteKeys && (selectTemp && selectTemp.template_id === 'mk_category_temp') ? <Col span={8}>
+            <Form.Item label="妯℃澘ID" required>
+              <Input placeholder="" defaultValue={verify.wxCustomTempId} autoComplete="off" onChange={(e) => {this.onWxNoteTempIdChange(e.target.value)}}/>
+            </Form.Item>
+          </Col> : null}
+          {verify.wxNote === 'true' && verify.wxNoteKeys && (selectTemp && selectTemp.template_id === 'mk_category_temp') ? verify.wxNoteKeys.map((item, index) => <Col span={8} key={'mk' + index}>
+            <Form.Item label={item.value}>
+              <Input placeholder="" defaultValue={item.key} autoComplete="off" onChange={(e) => {this.onWxNoteValueChange(item.value, e.target.value)}}/>
+            </Form.Item>
+          </Col>) : null}
+          {selectTemp && selectTemp.template_id !== 'mk_category_temp' && verify.wxNoteKeys ? <Col span={24} className="wx-note">
             <div className="note-wrap">
               <div className="note">
                 <p>鍐呭绀轰緥</p>
@@ -449,12 +504,25 @@
                 <div>
                   <p>openid:&nbsp;&nbsp;"鎺ユ敹鑰卭penid",</p>
                   <p>send_id:&nbsp;&nbsp;"闃查噸鍏d",</p>
-                  {verify.wxNoteKeys.map(item => <p>{item.value}:&nbsp;&nbsp;"=&gt; {item.key}",</p>)}
+                  {verify.wxNoteKeys.map((item, i) => <p key={'index' + i}>{item.value}:&nbsp;&nbsp;"=&gt; {item.key}",</p>)}
                   <p>bid:&nbsp;&nbsp;"璺宠浆灏忕▼搴忔椂锛屽彲浣滀负BID銆�"</p>
                 </div>
               </div>
             </div>
           </Col> : null}
+          {selectTemp && selectTemp.template_id === 'mk_category_temp' && verify.wxNoteKeys ? <Col span={24} className="wx-note">
+            <div className="note-wrap">
+              <div className="note">
+                <p>娑堟伅浣�</p>
+                <div>
+                  <p>openid:&nbsp;&nbsp;"鎺ユ敹鑰卭penid",</p>
+                  <p>send_id:&nbsp;&nbsp;"闃查噸鍏d",</p>
+                  <p>bid:&nbsp;&nbsp;"璺宠浆灏忕▼搴忔椂锛屽彲浣滀负BID銆�"</p>
+                  <p style={{color: '#1890ff'}}>璇峰湪閫氱敤瀛楁涓紙p1~p10锛夊~鍏ユā鏉夸腑瀵瑰簲鐨勫瓧娈靛悕锛屽 time1.DATA 鍒欏~鍐� time1銆�</p>
+                </div>
+              </div>
+            </div>
+          </Col> : null}
         </Row>
       </Form>
     )

--
Gitblit v1.8.0