From 836722dd114fa35967a5e96be96ba4503ebf8e1d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 29 十二月 2022 17:29:11 +0800
Subject: [PATCH] 2022-12-29

---
 src/tabviews/custom/components/module/account/index.jsx |  140 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 101 insertions(+), 39 deletions(-)

diff --git a/src/tabviews/custom/components/module/account/index.jsx b/src/tabviews/custom/components/module/account/index.jsx
index 8438606..1a9a7b6 100644
--- a/src/tabviews/custom/components/module/account/index.jsx
+++ b/src/tabviews/custom/components/module/account/index.jsx
@@ -1,12 +1,14 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-// import { Button, Select, Input, DatePicker } from 'antd'
-// import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
+import { notification, Select, Divider } from 'antd'
+import { PlusOutlined } from '@ant-design/icons'
 
 import Api from '@/api'
-// import MKEmitter from '@/utils/events.js'
+import MKEmitter from '@/utils/events.js'
 import './index.scss'
+
+const { Option } = Select
 
 class AccountModule extends Component {
   static propTpyes = {
@@ -14,37 +16,12 @@
   }
 
   state = {
-    BID: '',
-    type: '',
-    config: null
-  }
-
-  UNSAFE_componentWillMount () {
-    const { config } = this.props
-
-    let BID = ''
-    let BData = ''
-
-    if (config.wrap.supModule) {
-      BData = window.GLOB.CacheData.get(config.wrap.supModule)
-    } else {
-      BData = window.GLOB.CacheData.get(config.$pageId)
-    }
-    if (BData) {
-      BID = BData.$BID || ''
-    }
-
-    this.setState({
-      config: fromJS(config).toJS(),
-      BID: BID || '',
-      type: config.wrap.type
-    }, () => {
-      this.loadData()
-    })
+    activeItem: null,
+    books: []
   }
 
   componentDidMount () {
-
+    this.loadData()
   }
 
   shouldComponentUpdate (nextProps, nextState) {
@@ -62,22 +39,107 @@
 
   loadData = () => {
     let param = {
-      func: 's_get_fcc_account_data'
-    }
-    Api.genericInterface(param)
-
-    let _param = {
       func: 's_get_fcc_book_data'
     }
-    Api.genericInterface(_param)
+
+    Api.genericInterface(param).then(res => {
+      if (!res.status) {
+        notification.warning({
+          top: 92,
+          message: res.message,
+          duration: 5
+        })
+        return
+      }
+
+      let books = res.book || []
+      let activeItem = null
+      let map = new Map()
+      books = books.filter(item => {
+        if (!item.id) return false
+        if (map.has(item.id)) return false
+        map.set(item.id, true)
+
+        if (item.selected === 'true' && !activeItem) {
+          activeItem = item
+        }
+        if (item.months) {
+          item.date = item.months.replace('-', '骞�') + '鏈�'
+        }
+        return true
+      })
+
+      if (!activeItem && books.length > 0) {
+        activeItem = books[0]
+      }
+
+      this.setState({books, activeItem})
+
+      if (activeItem) {
+        MKEmitter.emit('resetSelectLine', this.props.config.uuid, activeItem.id, activeItem)
+      }
+    })
+  }
+
+  changeBook = (value) => {
+    const { books } = this.state
+
+    let activeItem = books.filter(item => item.id === value)[0]
+
+    this.setState({activeItem})
+
+    if (activeItem) {
+      MKEmitter.emit('resetSelectLine', this.props.config.uuid, activeItem.id, activeItem)
+    }
+  }
+
+  addBook = () => {
+    const { config } = this.props
+
+    let menuId = config.wrap.MenuID
+    let menu = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0]
+
+    if (!menu && config.wrap.MenuNo) {
+      menu = {
+        MenuID: menuId,
+        MenuName: config.wrap.MenuName,
+        MenuNo: config.wrap.MenuNo || '',
+        type: config.wrap.tabType
+      }
+    }
+
+    let newtab = {
+      ...menu,
+      param: {}
+    }
+
+    MKEmitter.emit('modifyTabs', newtab, true)
   }
 
   render() {
-    const { config } = this.state
+    const { config } = this.props
+    const { activeItem, books } = this.state
 
     return (
       <div className="menu-account-wrap" style={config.style}>
-        
+        {config.wrap.MenuID ? <Select value={activeItem ? activeItem.id : ''} placeholder="璇烽�夋嫨璐﹀" onChange={this.changeBook} dropdownRender={menu => (
+          <div>
+            {menu}
+            <Divider style={{ margin: '4px 0' }} />
+            <div className="mk-add-book" onMouseDown={this.addBook}>
+              <PlusOutlined /> 鐐瑰嚮鏂板璐﹀
+            </div>
+          </div>
+        )}>
+          {books.map(item => (
+            <Option key={item.id}>{item.account_name}</Option>
+          ))}
+        </Select> : <Select value={activeItem ? activeItem.id : ''} placeholder="璇烽�夋嫨璐﹀" onChange={this.changeBook}>
+          {books.map(item => (
+            <Option key={item.id}>{item.account_name}</Option>
+          ))}
+        </Select>}
+        {activeItem ? <span className="date">{activeItem.date}</span> : null}
       </div>
     )
   }

--
Gitblit v1.8.0