From 1a176e4bdba485301385caac1a29102e598d25cc Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 13 五月 2025 11:32:02 +0800
Subject: [PATCH] 2025-05-13

---
 src/templates/sharecomponent/searchcomponent/index.jsx |   61 +++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 22 deletions(-)

diff --git a/src/templates/sharecomponent/searchcomponent/index.jsx b/src/templates/sharecomponent/searchcomponent/index.jsx
index 4d077d4..a7ed6b8 100644
--- a/src/templates/sharecomponent/searchcomponent/index.jsx
+++ b/src/templates/sharecomponent/searchcomponent/index.jsx
@@ -42,12 +42,15 @@
 
   componentDidMount () {
     MKEmitter.addListener('plusSearch', this.plusSearch)
-    // MKEmitter.addListener('revert', this.revert)
+    MKEmitter.addListener('revert', this.revert)
   }
 
-  // revert = () => {
-  //   this.setState({searchlist: fromJS(this.props.config.search).toJS()})
-  // }
+   // dms-trans
+  revert = (id, type) => {
+    if (id !== this.props.config.uuid || type !== 'search') return
+    
+    this.setState({searchlist: fromJS(this.props.config.search).toJS()})
+  }
 
   plusSearch = (MenuId, item, type) => {
     const { config } = this.props
@@ -58,6 +61,18 @@
     if (type === 'simple') {
       this.setState({
         searchlist: [...searchlist, item],
+      }, () => {
+        this.handleSearch(item)
+      })
+    } else if (type === 'replace') {
+      delete item.focus
+      this.setState({
+        searchlist: searchlist.map(cell => {
+          if (cell.field && cell.field.toLowerCase() === item.field.toLowerCase()) {
+            return item
+          }
+          return cell
+        }),
       }, () => {
         this.handleSearch(item)
       })
@@ -93,6 +108,7 @@
    * @description 鎼滅储鏉′欢缂栬緫锛岃幏鍙栨悳绱㈡潯浠惰〃鍗曚俊鎭�
    */
   handleSearch = (card) => {
+    const { config } = this.props
     const { searchlist } = this.state
     let linkableFields = []
 
@@ -108,8 +124,8 @@
     })
 
     let columns = null
-    if (this.props.config.type === 'table') {
-      columns = this.props.config.columns.map(item => {
+    if (config.columns && config.columns.length) {
+      columns = config.columns.map(item => {
         return {key: item.uuid, text: item.field, value: item.field, label: item.label}
       })
     }
@@ -204,20 +220,16 @@
         return
       }
 
-      if (['checkcard', 'select', 'multiselect', 'link'].includes(res.type) && res.resourceType === '1' && /\s/.test(res.dataSource)) {
+      if (['checkcard', 'select', 'multiselect', 'link'].includes(res.type) && res.resourceType === '1' && res.database !== 'sso' && /\s/.test(res.dataSource)) {
         this.setState({
           sqlVerifing: true
         })
 
-        let sql = res.dataSource
-        sql = sql.replace(/@\$|\$@/ig, '').replace(/@(BID|ID|LoginUID|SessionUid|UserID|Appkey|time_id)@/ig, `'1949-10-01 15:00:00'`)
-
-        let rduri = ''
-        if (window.GLOB.mainSystemApi && res.database === 'sso') {
-          rduri = window.GLOB.mainSystemApi
-        }
+        let sql = `declare @mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20)
+        ${res.dataSource}`
+        sql = sql.replace(/@\$|\$@/ig, '')
         
-        Api.sDebug(sql, rduri).then(result => {
+        Api.sDebug(sql).then(result => {
           if (result.status || result.ErrCode === '-2') {
             this.setState({
               sqlVerifing: false,
@@ -250,19 +262,19 @@
    */
   deleteElement = (card) => {
     const { config } = this.props
-    let _this = this
+    let that = this
 
     confirm({
       content: `纭畾鍒犻櫎 - ${card.label} 锛焋,
       onOk() {
-        let _searchlist = fromJS(_this.state.searchlist).toJS()
+        let _searchlist = fromJS(that.state.searchlist).toJS()
 
         _searchlist = _searchlist.filter(item => item.uuid !== card.uuid)
 
-        _this.setState({
+        that.setState({
           searchlist: _searchlist
         }, () => {
-          _this.props.updatesearch({...config, search: _searchlist})
+          that.props.updatesearch({...config, search: _searchlist})
         })
       },
       onCancel() {}
@@ -310,7 +322,7 @@
     this.setState = () => {
       return
     }
-    // MKEmitter.removeListener('revert', this.revert)
+    MKEmitter.removeListener('revert', this.revert)
     MKEmitter.removeListener('plusSearch', this.plusSearch)
   }
 
@@ -328,8 +340,13 @@
     const { config } = this.props
     const { searchlist, visible, sqlVerifing, card, showField, setVisible } = this.state
 
+    let size = ''
+    if (config.wrap && config.wrap.searchSize) {
+      size = ' mk-order-' + config.wrap.searchSize
+    }
+
     return (
-      <div className={'model-table-search-list length' + searchlist.length + (showField ? ' show-field' : '')}>
+      <div className={'model-table-search-list length' + searchlist.length + (showField ? ' show-field' : '') + size}>
         <FieldsComponent config={{uuid: config.uuid, search: searchlist}} type="search" />
         <Switch className="switch-field-show" checkedChildren="寮�" unCheckedChildren="鍏�" defaultChecked={showField} onChange={this.onFieldChange} />
         <DragElement
@@ -345,7 +362,7 @@
           title={card && card.copyType === 'search' ?  '鎼滅储鏉′欢-澶嶅埗' : '鎼滅储鏉′欢-缂栬緫'}
           wrapClassName="mk-scroll-modal"
           visible={visible}
-          width={850}
+          width={950}
           maskClosable={false}
           onOk={this.handleSubmit}
           confirmLoading={sqlVerifing}

--
Gitblit v1.8.0