From 137fb8ea6af2789b3238b22bac31d80bced41dfe Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 28 七月 2021 11:39:39 +0800
Subject: [PATCH] 2021-07-28

---
 src/tabviews/calendar/index.jsx |   69 ++++++++++++++++++++--------------
 1 files changed, 41 insertions(+), 28 deletions(-)

diff --git a/src/tabviews/calendar/index.jsx b/src/tabviews/calendar/index.jsx
index 6141c25..b8b7c2a 100644
--- a/src/tabviews/calendar/index.jsx
+++ b/src/tabviews/calendar/index.jsx
@@ -48,6 +48,7 @@
     visible: false,       // 鏍囩椤垫帶鍒�
     triggerTime: '',      // 鐐瑰嚮鏃堕棿
     calendarYear: moment().format('YYYY'), // 鏃ュ巻骞翠唤
+    hasReqFields: false
   }
 
   /**
@@ -119,22 +120,17 @@
         config.easyCode = _curUserConfig.easyCode || config.easyCode || ''
       }
 
-      // 瀛楁鏉冮檺榛戝悕鍗曘�佸繀濉�佸瓧娈甸�忚
-      let valid = true
-      let roleId = sessionStorage.getItem('role_id') || ''
+      config.search = Utils.initSearchVal(config.search)
+
+      // 瀛楁閫忚
+      let hasReqFields = false
       config.search = config.search.map(item => {
-        item.oriInitval = item.initval
-        if (['text', 'select', 'link'].includes(item.type) && param && param.$searchkey === item.field) {
+        if (['text', 'select', 'link'].includes(item.type) && param.$searchkey === item.field) {
           item.initval = param.$searchval
         }
 
-        if (item.required === 'true' && !item.initval) {
-          valid = false
-        }
-
-        if (!item.blacklist || item.blacklist.length === 0) return item
-        if (item.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) {
-          item.Hide = 'true'
+        if (item.required) {
+          hasReqFields = true
         }
 
         return item
@@ -169,6 +165,27 @@
           config.setting.dataresource = config.setting.dataresource.replace(/@\$|\$@/ig, '')
           _customScript = _customScript.replace(/@\$|\$@/ig, '')
         }
+
+        let userName = sessionStorage.getItem('User_Name') || ''
+        let fullName = sessionStorage.getItem('Full_Name') || ''
+        let city = sessionStorage.getItem('city') || ''
+
+        if (sessionStorage.getItem('isEditState') === 'true') {
+          userName = sessionStorage.getItem('CloudUserName') || ''
+          fullName = sessionStorage.getItem('CloudFullName') || ''
+        }
+
+        let regs = [
+          { reg: /@userName@/ig, value: `'${userName}'` },
+          { reg: /@fullName@/ig, value: `'${fullName}'` },
+          { reg: /@login_city@/ig, value: `'${city}'` }
+        ]
+
+        regs.forEach(cell => {
+          config.setting.dataresource = config.setting.dataresource.replace(cell.reg, cell.value)
+          _customScript = _customScript.replace(cell.reg, cell.value)
+        })
+
         if (config.urlFields) {
           let _param = param || {}
           config.urlFields.forEach(field => {
@@ -183,6 +200,7 @@
       }
 
       this.setState({
+        hasReqFields,
         BID: param && param.$BID ? param.$BID : '',
         loadingview: false,
         config: config,
@@ -190,9 +208,9 @@
         setting: config.setting,
         searchlist: config.search,
         arr_field: config.columns.map(item => item.field).join(','),
-        search: Utils.initMainSearch(config.search) // 鎼滅储鏉′欢鍒濆鍖栵紙鍚湁鏃堕棿鏍煎紡锛岄渶瑕佽浆鍖栵級
+        search: Utils.initMainSearch(config.search)
       }, () => {
-        if (config.setting.onload !== 'false' && valid) { // 鍒濆鍖栧彲鍔犺浇
+        if (config.setting.onload !== 'false') {
           this.loadmaindata()
         }
       })
@@ -213,20 +231,15 @@
    * @description 涓昏〃鏁版嵁鍔犺浇
    */ 
   async loadmaindata () {
-    const { setting, search, BID } = this.state
+    const { setting, search, BID, hasReqFields } = this.state
     let param = ''
-    let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
 
-    if (requireFields.length > 0) {
-      let labels = requireFields.map(item => item.label)
-      labels = Array.from(new Set(labels))
-
-      notification.warning({
-        top: 92,
-        message: this.state.dict['form.required.input'] + labels.join('銆�') + ' !',
-        duration: 3
-      })
-      return
+    if (hasReqFields) {
+      let requireFields = search.filter(item => item.required && item.value === '')
+  
+      if (requireFields.length > 0) {
+        return
+      }
     }
 
     this.setState({
@@ -523,13 +536,13 @@
 
   render() {
     const { menuType } = this.props
-    const { BID, searchlist, loadingview, viewlost, config, loading, data, triggerTime } = this.state
+    const { BID, setting, searchlist, loadingview, viewlost, config, loading, data, triggerTime } = this.state
 
     return (
       <div className="calendar-page" id={this.state.ContainerId}>
         {loadingview && <Spin size="large" />}
         {searchlist && searchlist.length > 0 ?
-          <MainSearch BID={BID} searchlist={searchlist} menuType={menuType} refreshdata={this.refreshbysearch}/> : null
+          <MainSearch BID={BID} searchlist={searchlist} setting={setting} menuType={menuType} refreshdata={this.refreshbysearch}/> : null
         }
         {config && config.calendar ? <CalendarComponent calendar={config.calendar} loading={loading} data={data} triggerDate={this.triggerDate} changeDate={this.changeDate}/> : null}
         {menuType !== 'HS' ? <PagemsgComponent menu={{MenuName: this.props.MenuName, MenuNo: this.props.MenuNo}} config={config} dict={this.state.dict} /> : null}

--
Gitblit v1.8.0