king
2024-10-30 c96108bd84050feb01b47db3f5cae96670fda435
src/utils/utils.js
@@ -71,6 +71,7 @@
      uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1))
    }
    uuid = timestamp + uuid.join('')
    uuid = uuid.replace(/minke/ig, 'mnkie')
    return uuid
  }
@@ -416,7 +417,11 @@
          item.$first = true
        }
      }
      if (window.backend && ['select', 'link', 'multiselect', 'checkcard', 'radio'].includes(item.type) && item.resourceType === '1') {
        item.uuid = md5(config.uuid + item.uuid)
      }
      item.oriInitval = item.initval
      if (values) {
@@ -710,6 +715,157 @@
    })
    return searchText.join(' AND ')
  }
  static getSearchkeys (searches) {
    let searchText = []
    let matchs = {
      'like': '01',
      'not like': '02',
      '=': '03',
      '>': '04',
      '<': '05',
      '>=': '06',
      '<=': '07',
    }
    searches.forEach(item => {
      if (item.forbid || !item.value) return
      let cell = {
        key: item.key,
        match: item.match,
        type: 'text',
        value: item.value
      }
      if (item.type === 'text' || item.type === 'select') { // 综合搜索,文本或下拉,所有字段拼接
        if (/,/.test(item.key)) {
          cell.type = 'text_or'
        }
      } else if (item.type === 'multi') {
        cell.type = 'text_multi'
      } else if (item.type === 'date') {
        let _val = item.value
        let timetail = ''
        if (item.match === '<' || item.match === '<=') { // 时间为<=时,匹配后一天的0点,匹配方式为<
          cell.match = '<'
          if (item.precision === 'day') {
            _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD')
          }
        }
        if (item.match === '=') {
          timetail = ''
        } else if (item.precision === 'day') {
          timetail = ' 00:00:00.000'
        } else if (item.precision === 'hour') {
          timetail = ':00:00.000'
        } else if (item.precision === 'minute') {
          timetail = ':00.000'
        } else if (item.precision === 'second') {
          timetail = '.000'
        }
        cell.value = _val + timetail
      }
      if (item.type === 'datemonth') { // 月-过滤条件,从月开始至结束,结束时间为月末加一天的0点,方式为<
        if (item.match === '=') {
          searchText.push(cell)
        } else {
          let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
          let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
          searchText.push({
            key: item.key,
            match: '>=',
            type: 'text',
            value: _startval
          }, {
            key: item.key,
            match: '<',
            type: 'text',
            value: _endval
          })
        }
      } else if (item.type === 'dateweek') { // 周-过滤条件
        let _startval = moment(item.value, 'YYYY-MM-DD' ).startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000'
        let _endval = moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
        searchText.push({
          key: item.key,
          match: '>=',
          type: 'text',
          value: _startval
        }, {
          key: item.key,
          match: '<',
          type: 'text',
          value: _endval
        })
      } else if (item.type === 'daterange') {
        let val = item.value.split(',')
        let _startval = ''
        let _endval = ''
        if (item.precision === 'day') {
          _startval = val[0] + ' 00:00:00.000'
          _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
        } else if (item.precision === 'hour') {
          _startval = val[0] + ':00:00.000'
          _endval = val[1] + ':00:00.000'
        } else if (item.precision === 'minute') {
          _startval = val[0] + ':00.000'
          _endval = val[1] + ':00.000'
        } else if (item.precision === 'second') {
          _startval = val[0] + '.000'
          _endval = val[1] + '.000'
        }
        let _skey = item.key
        let _ekey = item.key
        if (/,/.test(item.key)) {
          _skey = item.key.split(',')[0]
          _ekey = item.key.split(',')[1]
        }
        searchText.push({
          key: _skey,
          match: '>=',
          type: 'text',
          value: _startval
        }, {
          key: _ekey,
          match: '<',
          type: 'text',
          value: _endval
        })
      } else if (item.type === 'range') {
        let val = item.value.split(',')
        searchText.push({
          key: item.key,
          match: '>=',
          type: 'text',
          value: val[0] || -999999999
        }, {
          key: item.key,
          match: '<=',
          type: 'text',
          value: val[1] || 999999999
        })
      } else {
        searchText.push(cell)
      }
    })
    searchText.forEach(item => {
      item.match = matchs[item.match] || '01'
    })
    return searchText
  }
  /**
@@ -2468,6 +2624,10 @@
      error = '行信息中无工作流参数'
    }
    if (!error && verify.flowSql !== 'true' && verify.flowType !== 'start' && line && line.approvalMethod === 'countersign') {
      error = '会签流程需要使用默认脚本'
    }
    if (error) {
      status = 0
      statusName = '异常'
@@ -2516,6 +2676,33 @@
        _sql += `
      /* 工作流默认sql */
      set @retmsg =''
      select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0 and userid =@userid@ and works_flow_detail_id =@works_flow_detail_id
      if @retmsg =''
      begin
          select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and userid=@userid@ and works_flow_detail_id =@works_flow_detail_id
          if @retmsg !=''
          begin
              select @ErrorCode='E', @retmsg='当前单据已审核,请刷新后重试'
              goto aaa
          end
          set @retmsg =''
          select @retmsg=userid from s_my_works_flow_role where works_flow_id=@id@ and works_flow_code=@works_flow_code@ and deleted=0 and works_flow_detail_id =@works_flow_detail_id
          if @retmsg !=''
          begin
              select @retmsg=workerCode+workerName from BD_workers where id=@retmsg
              select @retmsg='页面数据已更新,或没有当前单据的审批权限,请联系'+@retmsg+'操作'
              goto aaa
          end
          select @retmsg='页面数据已更新,或没有当前单据的审批权限'
          goto aaa
      end
      declare ${_declare},@works_flow_key_id nvarchar(50),@works_flow_key_status nvarchar(20),@s_my_works_flow_log_param  nvarchar(max),@s_my_works_flow_log_status int,@s_my_works_flow_log_statusname nvarchar(50),@s_my_works_flow_log_detail_id  nvarchar(50)
      select ${_select},@works_flow_key_id='',@works_flow_key_status ='',@s_my_works_flow_log_param='',@s_my_works_flow_log_status=0,@s_my_works_flow_log_statusname='',@s_my_works_flow_log_detail_id=''
@@ -2572,32 +2759,45 @@
        _sql += `
      /* 工作流默认sql */
      set @retmsg =''
      select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0 and userid =@userid@
      select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0 and userid =@userid@ and works_flow_detail_id =@works_flow_detail_id
      if @retmsg =''
      begin
          select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and userid=@userid@
          select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and userid=@userid@ and works_flow_detail_id =@works_flow_detail_id
          if @retmsg !=''
          begin
              select @ErrorCode='E', @retmsg='当前单据已审核,请刷新后重试'
            goto aaa
              goto aaa
          end
          if @dataM@ !='' 
          begin
            set @retmsg =''
            select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0
            select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0 and works_flow_detail_id =@works_flow_detail_id
            if @retmsg != ''
            begin
                goto goto_mk
            end
          end
          else
          begin
              set @retmsg =''
              select @retmsg=userid from s_my_works_flow_role where works_flow_id=@id@ and works_flow_code=@works_flow_code@ and deleted=0 and works_flow_detail_id =@works_flow_detail_id
              if @retmsg !=''
              begin
                  select @retmsg=workerCode+workerName from BD_workers where id=@retmsg
                  select @retmsg='页面数据已更新,或没有当前单据的审批权限,请联系'+@retmsg+'操作'
                  goto aaa
              end
          end
          select @retmsg='页面数据已更新,或没有当前单据的审批权限'
            goto aaa
      end
          goto aaa
      end
      goto_mk:
@@ -2611,7 +2811,7 @@
      update s_my_works_flow_role set deleted=10,modifydate=getdate(),upid=@time_id@,modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname 
      where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0
      ${line.mknode === 'startEdge' ? `update s_my_works_flow_role set deleted=0,modifydate=getdate(),upid=@time_id@,modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname
      ${line.mknode === 'startEdge' ? `update s_my_works_flow_role set deleted=0,modifydate=getdate(),upid=@time_id@,modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname,works_flow_detail_id=@works_flow_detail_id@
      where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and typecharone='begin'` : ''}
      if @check_userids@ != ''