From c56dd9479e4c44af4b58c5a14c6f0f3f3cc20d85 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 05 三月 2025 15:37:20 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/templates/zshare/modalform/index.jsx                       |   89 ++++++------
 src/tabviews/custom/components/card/prop-card/index.jsx        |   13 +
 src/menu/components/table/edit-table/columns/tableIn/index.jsx |    2 
 public/manifest.json                                           |    2 
 src/tabviews/custom/components/group/normal-group/index.jsx    |   49 ++++++
 src/templates/zshare/verifycard/index.jsx                      |   11 
 src/views/mkai/index.jsx                                       |   13 +
 src/tabviews/custom/components/share/braftContent/index.scss   |    4 
 src/utils/utils-custom.js                                      |   17 ++
 src/menu/components/group/normal-group/options.jsx             |   12 +
 src/menu/lowerField/index.jsx                                  |    4 
 src/tabviews/custom/components/editor/braft-editor/index.scss  |   32 +++-
 src/tabviews/zshare/mutilform/index.jsx                        |   25 ++-
 src/tabviews/custom/components/table/edit-table/index.jsx      |    1 
 src/tabviews/basetable/index.jsx                               |   11 +
 src/tabviews/custom/index.jsx                                  |   11 +
 src/views/billprint/index.jsx                                  |   25 +++
 src/menu/debug/index.jsx                                       |   11 +
 src/templates/zshare/verifycard/baseform/index.jsx             |   14 ++
 src/tabviews/zshare/actionList/normalbutton/index.jsx          |   44 ++++++
 src/views/mkai/index.scss                                      |    5 
 src/menu/components/group/normal-group/index.jsx               |   17 ++
 22 files changed, 318 insertions(+), 94 deletions(-)

diff --git a/public/manifest.json b/public/manifest.json
index 9376b3c..18d9315 100644
--- a/public/manifest.json
+++ b/public/manifest.json
@@ -6,5 +6,5 @@
   "display": "standalone",
   "theme_color": "#000000",
   "background_color": "#ffffff",
-  "mk_version": "20250205"
+  "mk_version": "20250301"
 }
diff --git a/src/menu/components/group/normal-group/index.jsx b/src/menu/components/group/normal-group/index.jsx
index aa41f27..dee11cf 100644
--- a/src/menu/components/group/normal-group/index.jsx
+++ b/src/menu/components/group/normal-group/index.jsx
@@ -116,9 +116,20 @@
   }
 
   getWrapForms = () => {
-    const { setting } = this.state.group
+    const { group } = this.state
 
-    return getSettingForm(setting)
+    let list = []
+    group.components.forEach(item => {
+      if (item.type === 'card' && item.subtype === 'propcard') {
+        list.push({
+          value: item.uuid,
+          label: item.name,
+          disabled: item.wrap.empty !== 'hidden'
+        })
+      }
+    })
+
+    return getSettingForm(group.setting, list)
   }
 
   updateWrap = (res) => {
@@ -175,7 +186,7 @@
         <NormalHeader hideSearch="true" config={group} updateComponent={this.updateComponent}/>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            <NormalForm title="鍒嗙粍璁剧疆" width={700} update={this.updateWrap} getForms={this.getWrapForms}>
+            <NormalForm title="鍒嗙粍璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
               <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="group" card={group}/>
diff --git a/src/menu/components/group/normal-group/options.jsx b/src/menu/components/group/normal-group/options.jsx
index 521a003..abad0cf 100644
--- a/src/menu/components/group/normal-group/options.jsx
+++ b/src/menu/components/group/normal-group/options.jsx
@@ -1,7 +1,7 @@
 /**
  * @description Wrap琛ㄥ崟閰嶇疆淇℃伅
  */
-export default function (setting) {
+export default function (setting, list) {
   let roleList = sessionStorage.getItem('sysRoles')
   let appType = sessionStorage.getItem('appType')
 
@@ -42,6 +42,16 @@
       precision: 0,
       required: true
     },
+    {
+      type: 'select',
+      field: 'bindPropId',
+      label: '鏄剧ず鐘舵�佺粦瀹�',
+      initval: setting.bindPropId || '',
+      tooltip: '鍒嗙粍鍙粦瀹氳鏈夌┖鍊奸殣钘忕殑灞炴�у崱锛屽綋灞炴�у崱闅愯棌鏃跺垎缁勪竴鍚岄殣钘忋��',
+      required: false,
+      options: list,
+      forbid: appType === 'mob'
+    },
     // {
     //   type: 'radio',
     //   field: 'print',
diff --git a/src/menu/components/table/edit-table/columns/tableIn/index.jsx b/src/menu/components/table/edit-table/columns/tableIn/index.jsx
index adb600f..9dead8d 100644
--- a/src/menu/components/table/edit-table/columns/tableIn/index.jsx
+++ b/src/menu/components/table/edit-table/columns/tableIn/index.jsx
@@ -512,6 +512,8 @@
     forms.forEach(col => {
       if (/date/.test(col.datatype)) {
         vals.push(`'1949-10-01'`)
+      } else if (col.editType && ['select', 'popSelect'].includes(col.editType)) {
+        vals.push(`'0'`)
       } else if (col.type === 'number') {
         vals.push(`1`)
       } else {
diff --git a/src/menu/debug/index.jsx b/src/menu/debug/index.jsx
index 75a83a4..f6567bd 100644
--- a/src/menu/debug/index.jsx
+++ b/src/menu/debug/index.jsx
@@ -76,9 +76,14 @@
         render: (_, record) => {
           return <span className="anticon anticon-deepseek" onClick={() => {
             if (record.sql) {
-              sessionStorage.setItem('deepseek_sql', record.sql)
+              sessionStorage.setItem('deepseek_sql', `璇锋鏌ヤ互涓嬩唬鐮侊紝鎸囧嚭鍏跺彲浼樺寲鐨勫湴鏂筡n${record.sql}`)
+              
+              window.open('#/ai')
+              
+              setTimeout(() => {
+                sessionStorage.removeItem('deepseek_sql')
+              }, 0)
             }
-            window.open('#/ai')
           }}>
             <svg viewBox="0 0 1391 1024" width="1.5em" height="1.5em" fill="currentColor">
               <path d="M1361.92 83.136c-14.272-7.04-20.416 6.272-28.736 12.992-2.816 2.24-5.248 5.12-7.68 7.68-20.8 22.336-45.056 36.864-76.8 35.136-46.464-2.56-86.08 12.032-121.152 47.616-7.552-43.904-32.256-70.08-69.888-86.912-19.712-8.768-39.68-17.472-53.376-36.48-9.664-13.44-12.288-28.48-17.216-43.264-3.008-8.96-6.08-18.112-16.32-19.712-11.2-1.728-15.552 7.68-19.968 15.424-17.536 32.128-24.32 67.52-23.68 103.296 1.6 80.448 35.52 144.576 103.04 190.144 7.68 5.312 9.6 10.56 7.168 18.176-4.608 15.68-10.048 30.976-14.912 46.592-3.072 10.112-7.68 12.352-18.304 8a308.224 308.224 0 0 1-97.28-66.176c-48-46.4-91.392-97.664-145.472-137.792a655.36 655.36 0 0 0-38.528-26.432c-55.232-53.76 7.232-97.792 21.632-103.04 15.104-5.376 5.312-24.128-43.52-23.936C652.032 24.704 607.36 41.024 550.4 62.72a156.8 156.8 0 0 1-26.048 7.68 542.016 542.016 0 0 0-161.408-5.696c-105.6 11.904-189.888 61.824-251.904 147.2C36.608 314.24 19.072 430.848 40.512 552.32c22.528 128 87.808 234.048 188.16 316.992 104 85.888 223.808 128 360.512 120 82.944-4.864 175.424-16 279.68-104.32 26.368 13.056 53.888 18.24 99.712 22.272 35.2 3.328 69.184-1.792 95.424-7.232 41.216-8.704 38.4-46.848 23.424-53.888-120.576-56.32-94.208-33.408-118.272-51.84 61.376-72.768 153.792-148.224 189.952-392.768 2.816-19.392 0.384-31.552 0-47.36-0.256-9.536 1.92-13.312 12.8-14.4a231.04 231.04 0 0 0 86.592-26.56c78.272-42.88 109.696-113.024 117.184-197.184 1.088-12.928-0.256-26.24-13.76-32.96z m-681.408 757.76c-116.928-92.096-173.696-122.368-197.12-120.96-21.888 1.152-17.984 26.304-13.184 42.624 5.12 16.128 11.648 27.328 20.8 41.408 6.464 9.408 10.752 23.424-6.272 33.92-37.76 23.424-103.232-7.872-106.24-9.472-76.288-44.8-140.032-104.192-184.96-185.344-43.264-78.08-68.48-161.92-72.576-251.328-1.152-21.632 5.184-29.312 26.688-33.152a265.6 265.6 0 0 1 85.696-2.24c119.296 17.472 220.928 71.04 306.048 155.52 48.768 48.32 85.504 105.92 123.392 162.176 40.256 59.776 83.648 116.672 138.88 163.392 19.392 16.32 35.072 28.8 49.92 37.952-44.928 5.056-119.872 6.08-171.008-34.496z m56.064-361.024a17.152 17.152 0 1 1 2.752 9.6 16.896 16.896 0 0 1-2.752-9.664z m174.08 89.472a102.72 102.72 0 0 1-33.024 8.96 70.528 70.528 0 0 1-44.736-14.272c-15.296-12.8-26.176-19.968-30.848-42.496a99.264 99.264 0 0 1 0.832-32.96c4.032-18.368-0.384-30.08-13.248-40.768-10.624-8.768-23.872-11.072-38.592-11.072a31.168 31.168 0 0 1-14.272-4.416c-6.144-3.072-11.136-10.752-6.336-20.16 1.536-3.008 8.96-10.304 10.752-11.712 19.84-11.328 42.88-7.68 64.192 0.896 19.712 8.064 34.56 22.848 56 43.776 21.952 25.28 25.792 32.384 38.4 51.328 9.856 14.848 18.816 30.208 24.96 47.616 3.776 10.88-1.152 19.776-14.08 25.28z"></path>
@@ -2101,6 +2106,8 @@
     forms.forEach(col => {
       if (/date/.test(col.datatype)) {
         vals.push(`'1949-10-01'`)
+      } else if (col.editType && ['select', 'popSelect'].includes(col.editType)) {
+        vals.push(`'0'`)
       } else if (col.type === 'number') {
         vals.push(`1`)
       } else {
diff --git a/src/menu/lowerField/index.jsx b/src/menu/lowerField/index.jsx
index 7822765..3b0516c 100644
--- a/src/menu/lowerField/index.jsx
+++ b/src/menu/lowerField/index.jsx
@@ -66,7 +66,7 @@
       })
     }
     let resetElement = (m) => {
-      if (m.field) {
+      if (m.field && m.field !== '$Index') {
         m.field = m.field.toLowerCase()
       }
       if (m.posterField) {
@@ -219,7 +219,7 @@
         if (item.subcards) {
           item.subcards.forEach(card => {
             if (card.setting) {
-              if (card.setting.controlField) {
+              if (card.setting.controlField && card.setting.controlField !== '$Index') {
                 card.setting.controlField = card.setting.controlField.toLowerCase()
               }
               if (card.setting.bgField) {
diff --git a/src/tabviews/basetable/index.jsx b/src/tabviews/basetable/index.jsx
index 4472ee5..17ca612 100644
--- a/src/tabviews/basetable/index.jsx
+++ b/src/tabviews/basetable/index.jsx
@@ -180,6 +180,15 @@
         }
       }
 
+      if (config.urlFields && config.urlFields.length) {
+        config.urlFields.forEach(field => {
+          let key = field.toLowerCase()
+          if (urlparam[key] !== undefined) return
+
+          urlparam[key] = ''
+        })
+      }
+
       window.GLOB.CacheData.set(MenuID, urlparam)
 
       if (window.backend && config.allSqls) {
@@ -213,7 +222,7 @@
       }
       if (config.urlFields) {
         config.urlFields.forEach(field => {
-          let val = `'${urlparam[field.toLowerCase()] || ''}'`
+          let val = `'${urlparam[field.toLowerCase()]}'`
           regs.push({
             reg: new RegExp('@' + field + '@', 'ig'),
             value: val
diff --git a/src/tabviews/custom/components/card/prop-card/index.jsx b/src/tabviews/custom/components/card/prop-card/index.jsx
index 001d66e..0035cff 100644
--- a/src/tabviews/custom/components/card/prop-card/index.jsx
+++ b/src/tabviews/custom/components/card/prop-card/index.jsx
@@ -211,6 +211,8 @@
               this.setState({data: _data}, () => {
                 if (selected !== 'false') {
                   this.checkTopLine()
+                } else if (config.wrap.empty === 'hidden') {
+                  MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid || '', _data)
                 }
               })
             })
@@ -286,7 +288,7 @@
         } else {
           if (selected !== 'false') {
             this.checkTopLine()
-          } else if (data.$$uuid) {
+          } else {
             this.transferLine()
           }
           this.autoExec()
@@ -340,7 +342,7 @@
       } else {
         if (selected !== 'false') {
           this.checkTopLine()
-        } else if (_data.$$uuid) {
+        } else {
           this.transferLine()
         }
         this.autoExec()
@@ -432,7 +434,12 @@
   transferLine = () => {
     const { config, data } = this.state
 
-    if (config.wrap.cardType) return
+    if (config.wrap.cardType) {
+      if (config.wrap.empty === 'hidden') {
+        MKEmitter.emit('resetSelectLine', config.uuid, data.$$uuid || '', data)
+      }
+      return
+    }
 
     MKEmitter.emit('resetSelectLine', config.uuid, data.$$uuid || '', data)
   }
diff --git a/src/tabviews/custom/components/editor/braft-editor/index.scss b/src/tabviews/custom/components/editor/braft-editor/index.scss
index fcbf6a0..89c786e 100644
--- a/src/tabviews/custom/components/editor/braft-editor/index.scss
+++ b/src/tabviews/custom/components/editor/braft-editor/index.scss
@@ -26,14 +26,26 @@
       background: #ffffff;
     }
   }
-  .braft-content table.no-border {
-    td, th {
-      border: none;
+  .braft-content {
+    table.no-border {
+      td, th {
+        border: none;
+      }
     }
-  }
-  .braft-content table.align-center {
-    td, th {
-      text-align: center;
+    table.align-center {
+      td, th {
+        text-align: center;
+      }
+    }
+    table.deep-border {
+      td, th {
+        border-color: rgba(0, 0, 0, 0.85);
+      }
+    }
+    table.word-break {
+      td, th {
+        word-break: break-all;
+      }
     }
   }
 }
@@ -49,7 +61,7 @@
 }
 .custom-braft-editor-box.no-border {
   .braft-content {
-    table:not(.border) {
+    table:not(.border):not(.deep-border) {
       td, th {
         border: none!important;
       }
@@ -79,7 +91,7 @@
 }
 .custom-braft-editor-box.word-break {
   .braft-content {
-    table {
+    table:not(.no-break) {
       td, th {
         word-break: break-all!important;
       }
@@ -88,7 +100,7 @@
 }
 .custom-braft-editor-box.tb-flex {
   .braft-content {
-    table {
+    table:not(.no-flex) {
       table-layout: fixed;
     }
   }
diff --git a/src/tabviews/custom/components/group/normal-group/index.jsx b/src/tabviews/custom/components/group/normal-group/index.jsx
index 3868f59..daaf5c3 100644
--- a/src/tabviews/custom/components/group/normal-group/index.jsx
+++ b/src/tabviews/custom/components/group/normal-group/index.jsx
@@ -3,6 +3,7 @@
 import { DoubleLeftOutlined, DoubleRightOutlined } from '@ant-design/icons'
 
 import asyncComponent from '@/utils/asyncComponent'
+import MKEmitter from '@/utils/events.js'
 import './index.scss'
 
 const TabTransfer = asyncComponent(() => import('@/tabviews/custom/components/share/tabtransfer'))
@@ -14,24 +15,64 @@
 
   state = {
     visible: true,
+    hidden: this.props.config.setting.bindPropId ? null : false,
     mergeAble: this.props.config.setting.mergeAble === 'true'
+  }
+
+  componentDidMount () {
+    const { config } = this.props
+
+    if (config.setting.bindPropId) {
+      MKEmitter.addListener('resetSelectLine', this.resetStatus)
+    }
+  }
+
+  componentWillUnmount () {
+    this.setState = () => {
+      return
+    }
+    MKEmitter.removeListener('resetSelectLine', this.resetStatus)
+  }
+
+  resetStatus = (MenuID, _, data) => {
+    const { config } = this.props
+
+    if (config.setting.bindPropId !== MenuID) return
+
+    if (!data || data.$$empty) {
+      this.setState({hidden: true})
+    } else {
+      this.setState({hidden: false})
+    }
   }
 
   render() {
     const { config, style } = this.props
-    const { visible, mergeAble } = this.state
+    const { visible, mergeAble, hidden } = this.state
 
     if (config.components.length === 0) return (<div className={'ant-col ant-col-' + config.width} style={style}><div style={config.style}></div></div>)
+
+    let _wrapStyle = style
+    if (hidden) {
+      _wrapStyle = {...style}
+      _wrapStyle.display = 'none'
+    }
+
+    let title = config.setting && config.setting.title
+
+    if (title && hidden === null) {
+      title = ''
+    }
     
     return (
-      <div className={`ant-col ant-col-${config.width} ${mergeAble ? ' mk-merge-able mk-ctrl-' + (config.setting.ctrlNumber || 1) : ''} ${visible ? '' : ' close'}`} style={style}>
+      <div className={`ant-col ant-col-${config.width} ${mergeAble ? ' mk-merge-able mk-ctrl-' + (config.setting.ctrlNumber || 1) : ''} ${visible ? '' : ' close'}`} style={_wrapStyle}>
         <div className={'normal-group-wrap ' + (config.setting.layout || '')} id={'anchor' + config.uuid} style={config.style}>
           <div className="mk-control">
             <DoubleLeftOutlined onClick={() => this.setState({visible: false})}/>
             <DoubleRightOutlined onClick={() => this.setState({visible: true})}/>
           </div>
-          {config.setting && config.setting.title ? <div className="group-header" style={config.headerStyle}>
-            <span className="title">{config.setting.title}</span>
+          {title ? <div className="group-header" style={config.headerStyle}>
+            <span className="title">{title}</span>
           </div> : null}
           <TabTransfer config={config}/>
         </div>
diff --git a/src/tabviews/custom/components/share/braftContent/index.scss b/src/tabviews/custom/components/share/braftContent/index.scss
index 5064a93..745de72 100644
--- a/src/tabviews/custom/components/share/braftContent/index.scss
+++ b/src/tabviews/custom/components/share/braftContent/index.scss
@@ -32,12 +32,14 @@
     border-collapse: collapse;
     border-spacing: 0;
     margin: 10px 0px;
+    --table-font-size: 16px;
+
     tr:first-child {
       background-color: #f0f0f0;
     }
     td, th {
       padding: 5px 10px;
-      font-size: 16px;
+      font-size: var(--table-font-size, 16px);
       border: 1px solid #ddd;
     }
   }
diff --git a/src/tabviews/custom/components/table/edit-table/index.jsx b/src/tabviews/custom/components/table/edit-table/index.jsx
index 2d4019f..1ce2b6a 100644
--- a/src/tabviews/custom/components/table/edit-table/index.jsx
+++ b/src/tabviews/custom/components/table/edit-table/index.jsx
@@ -437,6 +437,7 @@
         total: 0
       })
       reset && MKEmitter.emit('resetTable', config.uuid, 'true') // 鍒楄〃閲嶇疆
+      MKEmitter.emit('transferData' + setting.tableId, [])
 
       this.requestId = ''
       return
diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index 949577d..746f9c8 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -225,6 +225,15 @@
         }
       }
 
+      if (config.urlFields && config.urlFields.length) {
+        config.urlFields.forEach(field => {
+          let key = field.toLowerCase()
+          if (urlparam[key] !== undefined) return
+
+          urlparam[key] = ''
+        })
+      }
+
       window.GLOB.CacheData.set(MenuID, urlparam)
 
       if (window.backend && config.allSqls) {
@@ -258,7 +267,7 @@
       }
       if (config.urlFields) {
         config.urlFields.forEach(field => {
-          let val = `'${urlparam[field.toLowerCase()] || ''}'`
+          let val = `'${urlparam[field.toLowerCase()]}'`
           regs.push({
             reg: new RegExp('@' + field + '@', 'ig'),
             value: val
diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx
index ab1d815..a85684f 100644
--- a/src/tabviews/zshare/actionList/normalbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -425,6 +425,13 @@
         duration: 5
       })
       return false
+    } else if (btn.Ot !== 'notRequired' && data[0] && !data[0].$$uuid) {
+      notification.warning({
+        top: 92,
+        message: dict['id_required'] || '鏈幏鍙栧埌ID鍊硷紒',
+        duration: 5
+      })
+      return false
     } else if (btn.Ot === 'requiredSgl' && data.length !== 1) {
       // 闇�瑕侀�夋嫨鍗曡鏃讹紝鏍¢獙鏁版嵁
       notification.warning({
@@ -3124,7 +3131,7 @@
     const { btn } = this.props
 
     if (!btn.verify) return
-    if (btn.verify.noteEnable !== 'true' && btn.verify.wxNote !== 'true' && btn.verify.printEnable !== 'true' && btn.verify.emailEnable !== 'true') return
+    if (btn.verify.noteEnable !== 'true' && btn.verify.wxNote !== 'true' && btn.verify.printEnable !== 'true' && btn.verify.emailEnable !== 'true' && btn.verify.DeepSeekable !== 'true') return
 
     let id = ''
     if (btn.output) {
@@ -3151,6 +3158,9 @@
     }
     if (btn.verify.emailEnable === 'true') {
       this.sendEmail(btn.verify, id)
+    }
+    if (btn.verify.DeepSeekable === 'true') {
+      this.openDeepSeek(id)
     }
     if (btn.verify.wxNote === 'true') {
       if (btn.verify.wxTemplateId === 'mk_category_temp') {
@@ -3632,6 +3642,38 @@
     })
   }
 
+  openDeepSeek = (id) => {
+    let param = {
+      func: 's_get_deepseek_local',
+      upid: id
+    }
+
+    param.LText = Utils.getuuid()
+    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+    param.secretkey = Utils.encrypt(param.LText, param.timestamp)
+
+    Api.genericInterface(param).then(res => {
+      if (!res.status) {
+        notification.warning({
+          top: 92,
+          message: res.message,
+          duration: 5
+        })
+        return
+      }
+
+      if (res.deepseek_text) {
+        sessionStorage.setItem('deepseek_sql', res.deepseek_text)
+
+        window.open('#/ai')
+
+        setTimeout(() => {
+          sessionStorage.removeItem('deepseek_sql')
+        }, 0)
+      }
+    })
+  }
+
   /**
    * @description 鎿嶄綔澶辫触鍚庡鐞�
    * 1銆佺姸鎬佺爜涓� E銆丯銆丗銆丯M 鏃讹紝鏄剧ず鐩稿簲鎻愮ず淇℃伅
diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx
index fbc3454..b604438 100644
--- a/src/tabviews/zshare/mutilform/index.jsx
+++ b/src/tabviews/zshare/mutilform/index.jsx
@@ -193,12 +193,21 @@
 
       if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type)) {
         item.options = item.options || []
-        item.options = item.options.filter(cell => {
-          cell.value = cell.Value
-          cell.label = cell.Text
-
-          return !cell.Hide
-        })
+        item.$select = true
+        if (item.type === 'checkcard') {
+          item.options = item.options.filter(cell => {
+            cell.$value = cell.$value + ''
+            return !cell.Hide
+          })
+        } else {
+          item.options = item.options.filter(cell => {
+            cell.value = cell.Value + ''
+            cell.label = cell.Text
+  
+            return !cell.Hide
+          })
+        }
+        
         if (item.setAll === 'true' && ['select', 'link', 'radio'].includes(item.type)) { // 娣诲姞绌哄��
           item.options.unshift({
             key: Utils.getuuid(),
@@ -309,6 +318,8 @@
             newval = ''
           }
         }
+      } else if (item.$select && item.resourceType === '0') {
+        newval = newval + ''
       }
 
       if (newval !== '$empty') {
@@ -321,7 +332,7 @@
         if (isNaN(item.initval) || item.initval === '') {
           item.initval = 0
         }
-      } else if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type) && item.resourceType === '1') {
+      } else if (item.$select && item.resourceType === '1') {
         deForms.push(item)
       } else if (item.type === 'rate') {
         item.rateCount = item.rateCount || 5
diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx
index de7bc87..63636ae 100644
--- a/src/templates/zshare/modalform/index.jsx
+++ b/src/templates/zshare/modalform/index.jsx
@@ -896,51 +896,51 @@
     return fields
   }
 
-  transfer = (options) => {
-    if (options.length === 0) return options
+  // transfer = (options) => {
+  //   if (options.length === 0) return options
 
-    let isNumber = true
-    options.forEach(item => {
-      if (!item.Value || isNaN(item.Value)) {
-        isNumber = false
-      }
-    })
+  //   let isNumber = true
+  //   options.forEach(item => {
+  //     if (!item.Value || isNaN(item.Value)) {
+  //       isNumber = false
+  //     }
+  //   })
 
-    if (isNumber) {
-      return options.map(item => {
-        item.Value = +item.Value
-        return item
-      })
-    } else {
-      return options.map(item => {
-        item.Value = item.Value + ''
-        return item
-      })
-    }
-  }
+  //   if (isNumber) {
+  //     return options.map(item => {
+  //       item.Value = +item.Value
+  //       return item
+  //     })
+  //   } else {
+  //     return options.map(item => {
+  //       item.Value = item.Value + ''
+  //       return item
+  //     })
+  //   }
+  // }
 
-  transferCard = (options) => {
-    if (options.length === 0) return options
+  // transferCard = (options) => {
+  //   if (options.length === 0) return options
 
-    let isNumber = true
-    options.forEach(item => {
-      if (!/^([0-9]|[1-9]\d{0,2})$/.test(item.$value)) {
-        isNumber = false
-      }
-    })
+  //   let isNumber = true
+  //   options.forEach(item => {
+  //     if (!/^([0-9]|[1-9]\d{0,2})$/.test(item.$value)) {
+  //       isNumber = false
+  //     }
+  //   })
 
-    if (isNumber) {
-      return options.map(item => {
-        item.$value = +item.$value
-        return item
-      })
-    } else {
-      return options.map(item => {
-        item.$value = item.$value + ''
-        return item
-      })
-    }
-  }
+  //   if (isNumber) {
+  //     return options.map(item => {
+  //       item.$value = +item.$value
+  //       return item
+  //     })
+  //   } else {
+  //     return options.map(item => {
+  //       item.$value = item.$value + ''
+  //       return item
+  //     })
+  //   }
+  // }
 
   handleConfirm = () => {
     const { card, fields } = this.props
@@ -976,13 +976,17 @@
           if (['multiselect', 'select', 'link', 'radio', 'checkbox'].includes(values.type)) {
             if (values.resourceType === '0') {
               values.options = values.options || []
+              values.options = values.options.map(item => {
+                item.Value = item.Value + ''
+                return item
+              })
               values.dataSource = ''
               let type = values.type
               if (values.type === 'radio' && values.linkField) {
                 type = 'link'
               }
 
-              values.options = this.transfer(values.options)
+              // values.options = this.transfer(values.options)
 
               if (values.options.filter(op => op.Text === '').length > 0) {
                 notification.warning({
@@ -1030,6 +1034,7 @@
               let linkSubFields = values.linkSubField || []
               values.options = values.options.map(m => {
                 m.ParentID = m.ParentID || ''
+                m.$value = m.$value + ''
 
                 linkSubFields.forEach(n => {
                   m[n] = m[n] || ''
@@ -1037,7 +1042,7 @@
                 return m
               })
 
-              values.options = this.transferCard(values.options)
+              // values.options = this.transferCard(values.options)
 
               let type = values.type
               if (values.linkField) {
diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx
index cbfc412..5b72732 100644
--- a/src/templates/zshare/verifycard/baseform/index.jsx
+++ b/src/templates/zshare/verifycard/baseform/index.jsx
@@ -467,6 +467,20 @@
           <Col span={24}></Col>
           <Col span={8}>
             <Form.Item label={
+              <Tooltip placement="bottomLeft" title="鎸夐挳鎵ц瀹屾垚鍚庢墦寮�DeepSeek锛岃鏁寸悊濂介渶瑕佹彁闂殑璇彞銆�">
+                <QuestionCircleOutlined className="mk-form-tip" />
+                DeekSeek
+              </Tooltip>
+            }>
+              <Radio.Group value={verify.DeepSeekable} onChange={(e) => {this.onOptionChange(e.target.value, 'DeepSeekable')}}>
+                <Radio value="true">寮�鍚�</Radio>
+                <Radio value="false">涓嶅紑鍚�</Radio>
+              </Radio.Group>
+            </Form.Item>
+          </Col>
+          <Col span={24}></Col>
+          <Col span={8}>
+            <Form.Item label={
               <Tooltip placement="bottomLeft" title={'閫夋嫨鍙戦�佺煭淇℃椂锛岄渶瀹屽杽鐭俊璁剧疆銆�'}>
                 <QuestionCircleOutlined className="mk-form-tip" />
                 鍙戦�佺煭淇�
diff --git a/src/templates/zshare/verifycard/index.jsx b/src/templates/zshare/verifycard/index.jsx
index 1b2627f..e9d94b8 100644
--- a/src/templates/zshare/verifycard/index.jsx
+++ b/src/templates/zshare/verifycard/index.jsx
@@ -637,11 +637,12 @@
     }
 
     _verify.default = _verify.default || 'true'
-    _verify.wxNote = _verify.wxNote || 'false'           // 鍏紬鍙锋秷鎭帹閫佹槸鍚﹀紑鍚�
-    _verify.noteEnable = _verify.noteEnable || 'false'   // 鐭俊鍙戦�佹槸鍚﹀紑鍚�
-    _verify.emailEnable = _verify.emailEnable || 'false' // 閭欢鍙戦�佹槸鍚﹀紑鍚�
-    _verify.printEnable = _verify.printEnable || 'false' // 鍗曟嵁鎵撳嵃鏄惁寮�鍚�
-    _verify.preHandle = _verify.preHandle || 'false'     // 鎸夐挳棰勫鐞嗘槸鍚﹀紑鍚�
+    _verify.wxNote = _verify.wxNote || 'false'            // 鍏紬鍙锋秷鎭帹閫佹槸鍚﹀紑鍚�
+    _verify.noteEnable = _verify.noteEnable || 'false'    // 鐭俊鍙戦�佹槸鍚﹀紑鍚�
+    _verify.DeepSeekable = _verify.DeepSeekable || 'false'// DeepSeek鏄惁寮�鍚�
+    _verify.emailEnable = _verify.emailEnable || 'false'  // 閭欢鍙戦�佹槸鍚﹀紑鍚�
+    _verify.printEnable = _verify.printEnable || 'false'  // 鍗曟嵁鎵撳嵃鏄惁寮�鍚�
+    _verify.preHandle = _verify.preHandle || 'false'      // 鎸夐挳棰勫鐞嗘槸鍚﹀紑鍚�
     _verify.invalid = _invalid
     _verify.uniques = _verify.uniques || []
     _verify.contrasts = _verify.contrasts || []
diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index fd5c790..dc7f0de 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -1936,8 +1936,12 @@
     if (['pop', 'prompt', 'exec'].includes(cell.OpenType) && cell.verify && !cell.output) {
       if (cell.verify.noteEnable === 'true') {
         errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濇湭璁剧疆杩斿洖鍊肩煭淇″彂閫佹棤鏁堬紒`})
+      } else if (cell.verify.wxNote === 'true') {
+        errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濇湭璁剧疆杩斿洖鍊煎叕浼楀彿娑堟伅鏃犳晥锛乣})
       } else if (cell.verify.emailEnable === 'true') {
         errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濇湭璁剧疆杩斿洖鍊奸偖浠跺彂閫佹棤鏁堬紒`})
+      } else if (cell.verify.DeepSeekable === 'true') {
+        errors.push({ level: 0, detail: `鎸夐挳鈥�${cell.label}鈥濇湭璁剧疆杩斿洖鍊糄eekSeek鏃犳晥锛乣})
       }
     }
 
@@ -2131,8 +2135,12 @@
       if (item.subButton.verify && !item.subButton.output) {
         if (item.subButton.verify.noteEnable === 'true') {
           errors.push({ level: 0, detail: `${item.subButton.label} 鎸夐挳鏈缃繑鍥炲�肩煭淇″彂閫佹棤鏁堬紒`})
+        } else if (item.subButton.verify.wxNote === 'true') {
+          errors.push({ level: 0, detail: `${item.subButton.label} 鎸夐挳鏈缃繑鍥炲�煎叕浼楀彿娑堟伅鏃犳晥锛乣})
         } else if (item.subButton.verify.emailEnable === 'true') {
           errors.push({ level: 0, detail: `${item.subButton.label} 鎸夐挳鏈缃繑鍥炲�奸偖浠跺彂閫佹棤鏁堬紒`})
+        } else if (item.subButton.verify.DeepSeekable === 'true') {
+          errors.push({ level: 0, detail: `${item.subButton.label} 鎸夐挳鏈缃繑鍥炲�糄eekSeek鏃犳晥锛乣})
         }
       }
 
@@ -2334,9 +2342,16 @@
     })
     return false
   } else if (/\sdecimal\(8,/ig.test(sql)) {
+    let lines = ''
+    sql.split(/\n/).forEach((s, i) => {
+      if (/(^|\s)decimal\(8,/ig.test(s)) {
+        lines = '绗�' + (i + 1) + '琛屼腑'
+      }
+    })
+
     notification.warning({
       top: 92,
-      message: `涓嶅彲浣跨敤 decimal(8`,
+      message: `${lines}涓嶅彲浣跨敤 decimal(8`,
       duration: 5
     })
     return false
diff --git a/src/views/billprint/index.jsx b/src/views/billprint/index.jsx
index 47cdcbf..a202327 100644
--- a/src/views/billprint/index.jsx
+++ b/src/views/billprint/index.jsx
@@ -66,11 +66,22 @@
         let param = JSON.parse(window.decodeURIComponent(window.atob(params.param)))
   
         sessionStorage.setItem('dataM', param.dataM || '')
+        let urlParam = {...param}
+
+        delete urlParam.tempId
+        delete urlParam.pageId
+        delete urlParam.dataM
+
+        Object.keys(urlParam).forEach(key => {
+          if (key === key.toLowerCase()) return
+          urlParam[key.toLowerCase()] = urlParam[key]
+          delete urlParam[key]
+        })
 
         this.setState({
           BID: param.id || '',
           tempId: param.tempId,
-          urlParam: param,
+          urlParam: urlParam,
           pageId: param.pageId || ''
         }, () => {
           setTimeout(() => {
@@ -321,8 +332,16 @@
 
         config.components = config.components.filter(item => !['tabs', 'search'].includes(item.type))
 
+        let urlparam = urlParam ? {...urlParam} : {}
+        if (config.urlFields && config.urlFields.length) {
+          config.urlFields.forEach(field => {
+            let key = field.toLowerCase()
+            if (urlparam[key] !== undefined) return
+            urlparam[key] = ''
+          })
+        }
+
         if (window.backend && config.allSqls) {
-          let urlparam = urlParam || {}
           let keys = Object.keys(urlparam)
           config.allSqls.forEach(item => {
             item.id = md5(window.GLOB.appkey + item.v_id)
@@ -354,7 +373,7 @@
 
         if (config.urlFields) {
           config.urlFields.forEach(field => {
-            let val = `'${urlParam ? (urlParam[field] || '') : ''}'`
+            let val = `'${urlparam[field.toLowerCase()]}'`
             regs.push({
               reg: new RegExp('@' + field + '@', 'ig'),
               value: val
diff --git a/src/views/mkai/index.jsx b/src/views/mkai/index.jsx
index 91102ed..05fddfb 100644
--- a/src/views/mkai/index.jsx
+++ b/src/views/mkai/index.jsx
@@ -129,7 +129,7 @@
   if (status) {
     return (
       <div className="item-title edit">
-        <Input value={val} onChange={chanVal} onBlur={submit} onPressEnter={submit}/>
+        <Input value={val} autoFocus onChange={chanVal} onBlur={submit} onPressEnter={submit}/>
       </div>
     )
   }
@@ -233,7 +233,7 @@
     UserID: '',
     LoginUID: '',
     textInput: '',
-    type: 'deepseek-chat', // deepseek-chat deepseek-reasoner
+    type: 'deepseek-reasoner', // deepseek-chat deepseek-reasoner
     currentChat: {id: '', list: [], title: ''},
     chats: []
   }
@@ -429,7 +429,7 @@
       if (!item.loading) {
         list.push({
           role: item.role,
-          content: item.content
+          content: item.oriText || item.content
         })
       }
     })
@@ -449,12 +449,15 @@
       delete _chat.loading
       _chat.list.pop()
 
-      let _val = ''
-      let _html = '鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇曘��'
+      let _val = '鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇曘��'
+      let _html = _val
       let tokens_count = 0
       if (res.success && res.choices && res.choices[0]) {
         _val = res.choices[0].message.content
         _html = this.getAssistVal(_val)
+      } else if (!res.success && res.rawStatusCode === 400 && res.message && /This\s*model's\s*maximum\s*context\s*length/.test(res.message)) {
+        _html = `褰撳墠瀵硅瘽宸茶秴鍑�${type === 'deepseek-reasoner' ? '娣卞害鎬濊�冪殑' : ''}鏈�澶ч暱搴﹂檺鍒讹紝寮�鍚竴涓柊瀵硅瘽缁х画鎬濊�冨惂~`
+        _val = _html
       }
 
       if (res.usage && res.usage.total_tokens) {
diff --git a/src/views/mkai/index.scss b/src/views/mkai/index.scss
index ba19fa4..2c4c8c6 100644
--- a/src/views/mkai/index.scss
+++ b/src/views/mkai/index.scss
@@ -481,10 +481,13 @@
           }
         }
         .input-wrap {
-          width: 800px;
+          width: 802px;
           position: sticky;
           bottom: 30px;
           z-index: 2;
+          border-top-left-radius: 24px;
+          border-top-right-radius: 24px;
+          background-color: #ffffff;
           .c9dd4ww {
             cursor: text;
             box-sizing: border-box;

--
Gitblit v1.8.0