From 9617d4a95093be4d25572d398c434a7746716f3f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 09 七月 2022 22:45:34 +0800
Subject: [PATCH] 2022-07-09

---
 src/templates/zshare/verifycard/baseform/index.jsx |  151 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 136 insertions(+), 15 deletions(-)

diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx
index 0ef512f..5159200 100644
--- a/src/templates/zshare/verifycard/baseform/index.jsx
+++ b/src/templates/zshare/verifycard/baseform/index.jsx
@@ -1,10 +1,13 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-// import { is, fromJS } from 'immutable'
-import { Form, Row, Col, Select, Radio, Tooltip } from 'antd'
+import { fromJS } from 'immutable'
+import { Form, Row, Col, Select, Radio, Tooltip, Input } from 'antd'
 import { QuestionCircleOutlined } from '@ant-design/icons'
 
-// import './index.scss'
+import asyncComponent from '@/utils/asyncComponent'
+import './index.scss'
+
+const ColorSketch = asyncComponent(() => import('@/mob/colorsketch'))
 
 class BillCodeForm extends Component {
   static propTpyes = {
@@ -18,10 +21,6 @@
   state = {
     wxTemps: [],
     miniTemps: [],
-  }
-
-  UNSAFE_componentWillMount() {
-    
   }
 
   componentDidMount() {
@@ -45,7 +44,10 @@
     } else if (verify.wxNote === 'true') {
       if (!verify.wxTemplateId) {
         error = '寮�鍚叕浼楀彿娑堟伅鎺ㄩ�佹椂锛岄渶瑕侀�夋嫨娑堟伅妯℃澘锛�'
+      } else if (verify.wxNoteLink === 'url' && !verify.wxNoteLinkUrl) {
+        error = '璇峰~鍐欑綉鍧�锛�'
       }
+
     }
 
     return error
@@ -65,6 +67,11 @@
     }
     if (_verify.wxNote !== 'true') {
       _verify.wxTemplateId = ''
+      _verify.wxNoteLink = ''
+      _verify.wxNoteLinkUrl = ''
+      _verify.wxNoteLinkMenuId = ''
+      _verify.wxNoteCallback = 'false'
+      _verify.wxNoteKeys = null
     }
 
     this.props.onChange(_verify)
@@ -78,17 +85,71 @@
     this.props.onChange(_verify)
   }
 
-  onWxTemplateChange = (val) => {
+  onWxTemplateChange = (val, option) => {
     const { verify } = this.props
 
     let _verify = {...verify, wxTemplateId: val}
+
+    let keys = []
+    if (option.props.content) {
+      keys = option.props.content.match(/{{[a-zA-Z0-9]+\.DATA}}/g)
+      keys = keys.map(key => key.replace(/{{|\.DATA}}/g, ''))
+    }
+
+    let index = 1
+    _verify.wxNoteKeys = keys.map(key => {
+      let item = {
+        key: key,
+        color: '#000000',
+        readonly: false
+      }
+      if (key === 'first') {
+        item.value = 'first'
+        item.readonly = true
+      } else if (key === 'remark') {
+        item.value = 'remark'
+        item.readonly = true
+      } else {
+        item.value = 'p' + index
+        index++
+      }
+
+      return item
+    })
+
+    this.props.onChange(_verify)
+  }
+
+  onWxNoteKeyChange = (key, val) => {
+    let _verify = fromJS(this.props.verify).toJS()
+
+    _verify.wxNoteKeys = _verify.wxNoteKeys.map(m => {
+      if (m.key === key) {
+        m.value = val
+      }
+
+      return m
+    })
+
+    this.props.onChange(_verify)
+  }
+
+  onWxNoteColorChange = (key, val) => {
+    let _verify = fromJS(this.props.verify).toJS()
+
+    _verify.wxNoteKeys = _verify.wxNoteKeys.map(m => {
+      if (m.key === key) {
+        m.color = val
+      }
+
+      return m
+    })
 
     this.props.onChange(_verify)
   }
 
   render() {
     const { unionFields, verify, notes, card } = this.props
-    // const { getFieldDecorator } = this.props.form
     const { wxTemps } = this.state
     const formItemLayout = {
       labelCol: {
@@ -104,7 +165,7 @@
     return (
       <Form {...formItemLayout}>
         <Row gutter={24}>
-          {card.sqlType !== 'custom' ? <Col span={8}>
+          {card.sqlType !== 'custom' && card.intertype !== 'inner' ? <Col span={8}>
             <Form.Item label={
               <Tooltip placement="bottomLeft" title={'榛樿sql鎵ц椤哄簭涓鸿嚜瀹氫箟鑴氭湰涔嬪墠'}>
                 <QuestionCircleOutlined className="mk-form-tip" />
@@ -117,22 +178,22 @@
               </Radio.Group>
             </Form.Item>
           </Col> : null}
-          <Col span={8}>
+          {card.intertype !== 'inner' ? <Col span={8}>
             <Form.Item label={'澶辨晥楠岃瘉'}>
               <Radio.Group value={verify.invalid} onChange={(e) => {this.onOptionChange(e.target.value, 'invalid')}}>
                 <Radio value="true">寮�鍚�</Radio>
                 <Radio value="false">涓嶅紑鍚�</Radio>
               </Radio.Group>
             </Form.Item>
-          </Col>
-          <Col span={8}>
+          </Col> : null}
+          {card.intertype !== 'inner' ? <Col span={8}>
             <Form.Item label={'璐︽湡楠岃瘉'}>
               <Radio.Group value={verify.accountdate} onChange={(e) => {this.onOptionChange(e.target.value, 'accountdate')}}>
                 <Radio value="true">寮�鍚�</Radio>
                 <Radio value="false">涓嶅紑鍚�</Radio>
               </Radio.Group>
             </Form.Item>
-          </Col>
+          </Col> : null}
           {verify.accountdate === 'true' ? <Col span={8}>
             <Form.Item label={'楠岃瘉鍏徃'} required>
               <Select defaultValue={verify.accountfield || ''} onChange={(val) => {this.onOptionChange(val, 'accountfield')}}>
@@ -234,13 +295,73 @@
             <Form.Item label="娑堟伅妯℃澘" required>
               <Select value={verify.wxTemplateId} onSelect={this.onWxTemplateChange}>
                 {wxTemps.map(option =>
-                  <Select.Option key={option.template_id} value={option.template_id}>
+                  <Select.Option key={option.template_id} content={option.content} value={option.template_id}>
                     {option.title}
                   </Select.Option>
                 )}
               </Select>
             </Form.Item>
           </Col> : null}
+          {verify.wxNote === 'true' ? <Col span={8}>
+            <Form.Item label={
+              <Tooltip placement="bottomLeft" title={'鏄惁灏嗘秷鎭墽琛岀粨鏋滃洖浼犵郴缁熴��'}>
+                <QuestionCircleOutlined className="mk-form-tip" />
+                娑堟伅鍥炶皟
+              </Tooltip>
+            }>
+              <Radio.Group value={verify.wxNoteCallback || 'false'} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteCallback')}}>
+                <Radio value="true">寮�鍚�</Radio>
+                <Radio value="false">涓嶅紑鍚�</Radio>
+              </Radio.Group>
+            </Form.Item>
+          </Col> : null}
+          {verify.wxNote === 'true' ? <Col span={8}>
+            <Form.Item label={
+              <Tooltip placement="bottomLeft" title={'鐐瑰嚮娑堟伅鏃剁殑璺宠浆鍦板潃銆�'}>
+                <QuestionCircleOutlined className="mk-form-tip" />
+                璺宠浆閾炬帴
+              </Tooltip>
+            }>
+              <Radio.Group value={verify.wxNoteLink || ''} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteLink')}}>
+                <Radio value="">鏃�</Radio>
+                <Radio value="url">缃戝潃</Radio>
+                <Radio value="miniProgram">灏忕▼搴�</Radio>
+              </Radio.Group>
+            </Form.Item>
+          </Col> : null}
+          {verify.wxNoteLink === 'url' ? <Col span={8}>
+            <Form.Item label="缃戝潃" required>
+              <Input placeholder="" autoComplete="off" value={verify.wxNoteLinkUrl || ''} onChange={(e) => {this.onOptionChange(e.target.value, 'wxNoteLinkUrl')}}/>
+            </Form.Item>
+          </Col> : null}
+          {verify.wxNoteLink === 'miniProgram' ? <Col span={8}>
+            <Form.Item label={
+              <Tooltip placement="bottomLeft" title={`璺宠浆鑷冲皬绋嬪簭鎸囧畾鑿滃崟锛岀┖鍊奸粯璁よ烦杞嚦灏忕▼搴忛椤点�俙}>
+                <QuestionCircleOutlined className="mk-form-tip" />
+                鑿滃崟ID
+              </Tooltip>
+            }>
+              <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)}>
+                <Select.Option value="p1">p1</Select.Option>
+                <Select.Option value="p2">p2</Select.Option>
+                <Select.Option value="p3">p3</Select.Option>
+                <Select.Option value="p4">p4</Select.Option>
+                <Select.Option value="p5">p5</Select.Option>
+                <Select.Option value="p6">p6</Select.Option>
+                <Select.Option value="p7">p7</Select.Option>
+                <Select.Option value="p8">p8</Select.Option>
+                <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}
+
         </Row>
       </Form>
     )

--
Gitblit v1.8.0