houzhongjian
2024-08-08 820397e43a0b64d35c6d31d2a55475061438593b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/**
 * todo
 */
export const arrToStr = (arr?: [{ name: string }]) => {
  if (arr) {
    return arr
      .map((item) => {
        return item.name
      })
      .toString()
  }
}
 
export const setApproverStr = (nodeConfig: any) => {
  if (nodeConfig.settype == 1) {
    if (nodeConfig.nodeUserList.length == 1) {
      return nodeConfig.nodeUserList[0].name
    } else if (nodeConfig.nodeUserList.length > 1) {
      if (nodeConfig.examineMode == 1) {
        return arrToStr(nodeConfig.nodeUserList)
      } else if (nodeConfig.examineMode == 2) {
        return nodeConfig.nodeUserList.length + '人会签'
      }
    }
  } else if (nodeConfig.settype == 2) {
    const level =
      nodeConfig.directorLevel == 1 ? '直接主管' : '第' + nodeConfig.directorLevel + '级主管'
    if (nodeConfig.examineMode == 1) {
      return level
    } else if (nodeConfig.examineMode == 2) {
      return level + '会签'
    }
  } else if (nodeConfig.settype == 4) {
    if (nodeConfig.selectRange == 1) {
      return '发起人自选'
    } else {
      if (nodeConfig.nodeUserList.length > 0) {
        if (nodeConfig.selectRange == 2) {
          return '发起人自选'
        } else {
          return '发起人从' + nodeConfig.nodeUserList[0].name + '中自选'
        }
      } else {
        return ''
      }
    }
  } else if (nodeConfig.settype == 5) {
    return '发起人自己'
  } else if (nodeConfig.settype == 7) {
    return '从直接主管到通讯录中级别最高的第' + nodeConfig.examineEndDirectorLevel + '个层级主管'
  }
}
 
export const copyerStr = (nodeConfig: any) => {
  if (nodeConfig.nodeUserList.length != 0) {
    return arrToStr(nodeConfig.nodeUserList)
  } else {
    if (nodeConfig.ccSelfSelectFlag == 1) {
      return '发起人自选'
    }
  }
}
export const conditionStr = (nodeConfig, index) => {
  const { conditionList, nodeUserList } = nodeConfig.conditionNodes[index]
  if (conditionList.length == 0) {
    return index == nodeConfig.conditionNodes.length - 1 &&
      nodeConfig.conditionNodes[0].conditionList.length != 0
      ? '其他条件进入此流程'
      : '请设置条件'
  } else {
    let str = ''
    for (let i = 0; i < conditionList.length; i++) {
      const {
        columnId,
        columnType,
        showType,
        showName,
        optType,
        zdy1,
        opt1,
        zdy2,
        opt2,
        fixedDownBoxValue
      } = conditionList[i]
      if (columnId == 0) {
        if (nodeUserList.length != 0) {
          str += '发起人属于:'
          str +=
            nodeUserList
              .map((item) => {
                return item.name
              })
              .join('或') + ' 并且 '
        }
      }
      if (columnType == 'String' && showType == '3') {
        if (zdy1) {
          str += showName + '属于:' + dealStr(zdy1, JSON.parse(fixedDownBoxValue)) + ' 并且 '
        }
      }
      if (columnType == 'Double') {
        if (optType != 6 && zdy1) {
          const optTypeStr = ['', '<', '>', '≤', '=', '≥'][optType]
          str += `${showName} ${optTypeStr} ${zdy1} 并且 `
        } else if (optType == 6 && zdy1 && zdy2) {
          str += `${zdy1} ${opt1} ${showName} ${opt2} ${zdy2} 并且 `
        }
      }
    }
    return str ? str.substring(0, str.length - 4) : '请设置条件'
  }
}
 
export const dealStr = (str: string, obj) => {
  const arr = []
  const list = str.split(',')
  for (const elem in obj) {
    list.map((item) => {
      if (item == elem) {
        arr.push(obj[elem].value)
      }
    })
  }
  return arr.join('或')
}
 
export const removeEle = (arr, elem, key = 'id') => {
  let includesIndex
  arr.map((item, index) => {
    if (item[key] == elem[key]) {
      includesIndex = index
    }
  })
  arr.splice(includesIndex, 1)
}
 
export const bgColors = ['87, 106, 149', '255, 148, 62', '50, 150, 250']
export const placeholderList = ['发起人', '审核人', '抄送人']
export const setTypes = [
  { value: 1, label: '指定成员' },
  { value: 2, label: '主管' },
  { value: 4, label: '发起人自选' },
  { value: 5, label: '发起人自己' },
  { value: 7, label: '连续多级主管' }
]
 
export const selectModes = [
  { value: 1, label: '选一个人' },
  { value: 2, label: '选多个人' }
]
 
export const selectRanges = [
  { value: 1, label: '全公司' },
  { value: 2, label: '指定成员' },
  { value: 3, label: '指定角色' }
]
 
export const optTypes = [
  { value: '1', label: '小于' },
  { value: '2', label: '大于' },
  { value: '3', label: '小于等于' },
  { value: '4', label: '等于' },
  { value: '5', label: '大于等于' },
  { value: '6', label: '介于两个数之间' }
]