n20-common-lib 2.1.9 → 2.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n20-common-lib",
3
- "version": "2.1.9",
3
+ "version": "2.1.11",
4
4
  "private": false,
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -104,7 +104,8 @@ $--input-max: 224px;
104
104
  font-size: 16px;
105
105
  }
106
106
 
107
- .el-input__inner {
107
+ .el-input__inner,
108
+ .el-textarea__inner {
108
109
  padding-left: 10px;
109
110
  padding-right: 10px;
110
111
  &[oreadonly] {
@@ -29,6 +29,7 @@ $--header-color: #3d4a57;
29
29
  }
30
30
  .news-btn {
31
31
  font-size: 20px;
32
+ margin-left: 24px;
32
33
  cursor: pointer;
33
34
  }
34
35
 
@@ -3,75 +3,71 @@
3
3
  <div>
4
4
  <el-form label-position="right" :label-width="_lang === 'zh' ? '5em' : '10em'">
5
5
  <div v-if="taskId && showBtn" class="flex-box">
6
- <div v-if="authList.includes('isCarboncopy')" class="flex-1">
7
- <el-form-item :label="'抄送' | $lc">
6
+ <el-form-item v-if="authList.includes('isCarboncopy')" :label="'抄送' | $lc" class="flex-1 m-b-s">
7
+ <el-input
8
+ :value="carbonCopyList.map((c) => c.uname).join(', ')"
9
+ type="textarea"
10
+ :autosize="{ minRows: 1 }"
11
+ @focus="setCarboncopyV = true"
12
+ />
13
+ </el-form-item>
14
+ <el-form-item v-if="authList.includes('isAddtask')" :label="'加签' | $lc" :error="addMsg" class="flex-1 m-b-s">
15
+ <label slot="label">
16
+ <span>{{ '加签' | $lc }}</span>
17
+ <el-tooltip placement="top">
18
+ <span class="n20-icon-xinxitishi m-l-ss" style="position: static"></span>
19
+ <div slot="content" style="width: 16em; line-height: 1.6">
20
+ {{ '会签并行:增加一个会签节点,全部审批人同意才可通过审批' | $lc }}<br />
21
+ {{ '普通串行:按照加签人数增加节点,每个节点审批通过才可完成当前加签流程' | $lc }}
22
+ </div>
23
+ </el-tooltip>
24
+ </label>
25
+ <div class="flex-box">
26
+ <el-select v-model="addTaskType" clearable :placeholder="'请选择审批方式' | $lc" style="width: 10em">
27
+ <!-- <el-option :label="'普通节点' | $lc" value="1" /> -->
28
+ <el-option :label="'会签并行' | $lc" value="2" />
29
+ <el-option :label="'普通串行' | $lc" value="3" />
30
+ </el-select>
8
31
  <el-input
9
- :value="carbonCopyList.map((c) => c.uname).join(', ')"
32
+ class="flex-item"
10
33
  type="textarea"
34
+ :value="addTaskList.map((c) => c.uname).join(', ')"
11
35
  :autosize="{ minRows: 1 }"
12
- @focus="setCarboncopyV = true"
13
- />
14
- </el-form-item>
15
- </div>
16
- <div v-if="authList.includes('isAddtask')" class="flex-1">
17
- <el-form-item :label="'加签' | $lc" :error="addMsg">
18
- <label slot="label">
19
- <span>{{ '加签' | $lc }}</span>
20
- <el-tooltip placement="top">
21
- <span class="n20-icon-xinxitishi m-l-ss" style="position: static"></span>
22
- <div slot="content" style="width: 16em; line-height: 1.6">
23
- {{ '会签并行:增加一个会签节点,全部审批人同意才可通过审批' | $lc }}<br />
24
- {{ '普通串行:按照加签人数增加节点,每个节点审批通过才可完成当前加签流程' | $lc }}
25
- </div>
26
- </el-tooltip>
27
- </label>
28
- <div class="flex-box">
29
- <el-select v-model="addTaskType" clearable :placeholder="'请选择审批方式' | $lc" style="width: 10em">
30
- <!-- <el-option :label="'普通节点' | $lc" value="1" /> -->
31
- <el-option :label="'会签并行' | $lc" value="2" />
32
- <el-option :label="'普通串行' | $lc" value="3" />
33
- </el-select>
34
- <el-input
35
- class="flex-item"
36
- type="textarea"
37
- :value="addTaskList.map((c) => c.uname).join(', ')"
38
- :autosize="{ minRows: 1 }"
39
- @focus="setAddtaskV = true"
40
- />
41
- </div>
42
- </el-form-item>
43
- </div>
44
- </div>
45
- <el-form-item :label="'审批意见' | $lc" :error="errMsg">
46
- <el-input
47
- ref="msg-input"
48
- v-model="messageC"
49
- type="textarea"
50
- :placeholder="
51
- ('请输入操作意见(' + messageMax + '字以内),批准该意见为非必填,驳回/作废该意见为必填!') | $lc
52
- "
53
- :maxlength="messageMax"
54
- :autosize="{ minRows: 1 }"
55
- />
56
- </el-form-item>
57
- <template v-if="taskId && showBtn">
58
- <el-form-item v-if="authList.includes('showAppOpi') || authList.includes('showOtherAtt')" label=" ">
59
- <div class="flex-box">
60
- <show-app-opi
61
- v-if="authList.includes('showAppOpi')"
62
- class="flex-1"
63
- :task-id="taskId"
64
- :message.sync="messageC"
65
- />
66
- <show-other-att
67
- v-if="authList.includes('showOtherAtt')"
68
- class="flex-1"
69
- :task-id="taskId"
70
- :other-att="otherAtt"
36
+ @focus="setAddtaskV = true"
71
37
  />
72
38
  </div>
73
39
  </el-form-item>
74
- </template>
40
+ </div>
41
+ <div class="flex-box">
42
+ <el-form-item class="flex-1" :label="'审批意见' | $lc" :error="errMsg" style="width: 70%">
43
+ <el-input
44
+ ref="msg-input"
45
+ v-model="messageC"
46
+ type="textarea"
47
+ :placeholder="
48
+ ('请输入操作意见(' + messageMax + '字以内),批准该意见为非必填,驳回/作废该意见为必填!') | $lc
49
+ "
50
+ :maxlength="messageMax"
51
+ :autosize="{ rows: 1 }"
52
+ />
53
+ </el-form-item>
54
+ <template v-if="taskId && showBtn">
55
+ <show-app-opi
56
+ v-if="authList.includes('showAppOpi')"
57
+ class="flex-1 m-l-s"
58
+ :task-id="taskId"
59
+ :message.sync="messageC"
60
+ style="width: 20%"
61
+ />
62
+ <show-other-att
63
+ v-if="authList.includes('showOtherAtt')"
64
+ class="flex-1 m-l"
65
+ :task-id="taskId"
66
+ :other-att="otherAtt"
67
+ style="width: 18%"
68
+ />
69
+ </template>
70
+ </div>
75
71
  </el-form>
76
72
 
77
73
  <div class="text-c">
@@ -1,7 +1,14 @@
1
1
  <template>
2
- <div class="flex-box">
3
- <span class="m-r">管理部审批意见</span>
4
- <el-select v-model="approveMsgSlt" class="flex-item" clearable multiple collapse-tags @change="changeFn">
2
+ <div class="approve-msg-slt">
3
+ <el-select
4
+ v-model="approveMsgSlt"
5
+ class="w-100p"
6
+ clearable
7
+ multiple
8
+ collapse-tags
9
+ placeholder="请选择审批意见"
10
+ @change="changeFn"
11
+ >
5
12
  <el-option v-for="(item, i) in approveMsgList" :key="i" :label="item.suggestion" :value="item.suggestion" />
6
13
  </el-select>
7
14
  </div>
@@ -32,7 +39,7 @@ export default {
32
39
  },
33
40
  methods: {
34
41
  getData() {
35
- axios.post('/bems/activiti/actAppOpi/queryAppOpi').then(({ data }) => {
42
+ axios.post('/bems/activiti/actAppOpi/queryAppOpiAndUser').then(({ data }) => {
36
43
  this.approveMsgList = data.list || []
37
44
  })
38
45
  },
@@ -45,4 +52,11 @@ export default {
45
52
  }
46
53
  </script>
47
54
 
48
- <style></style>
55
+ <style>
56
+ .approve-msg-slt .el-select__tags {
57
+ flex-wrap: nowrap;
58
+ }
59
+ .approve-msg-slt .el-tag {
60
+ max-width: calc(100% - 36px);
61
+ }
62
+ </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="flex-box">
3
- <span class="m-l m-r">{{ otherattname || '--' }}</span>
3
+ <span class="p-t-s m-r-s">{{ otherattname || '--' }}</span>
4
4
  <el-select v-model="otherattvalue" class="flex-item" clearable @change="changeFn">
5
5
  <el-option v-for="(item, i) in otherattjson" :key="i" :label="item.name" :value="item.value" />
6
6
  </el-select>
@@ -72,7 +72,7 @@
72
72
  {{ $options.filters.fileName(row, keys.url) || row[keys.name] }}
73
73
  </slot>
74
74
  </el-table-column>
75
- <el-table-column :label="'附件上传' | $lc">
75
+ <el-table-column v-if="!readonly" :label="'附件上传' | $lc">
76
76
  <slot slot="header" slot-scope="scope" name="upload-header" :column="scope.column">{{
77
77
  '附件上传' | $lc
78
78
  }}</slot>
@@ -104,14 +104,13 @@ export default {
104
104
  value: {
105
105
  handler(val) {
106
106
  if (val && typeof val === 'string') {
107
- val = Number(val.replace(/,/g, ''))
107
+ val = NumberP(val)
108
108
 
109
109
  this.$emit('input', isNaN(val) ? undefined : val)
110
110
  this.valueStr = this.num2str(val)
111
111
  return
112
112
  }
113
113
  this.valueStr = this.num2str(val)
114
- this.preValue = this.valueStr
115
114
  },
116
115
  immediate: true
117
116
  }
@@ -133,28 +132,29 @@ export default {
133
132
  this.isFocus = true
134
133
  if (!this.disabled && this.valueStr) {
135
134
  this.valueStr = this.valueStr.replace(/,/g, '')
135
+ this.preValue = this.valueStr
136
136
  }
137
137
  },
138
138
  blurFn() {
139
139
  this.isFocus = false
140
- let val = Number(this.valueStr.replace(/,/g, ''))
141
- if (isNaN(val)) {
142
- this.valueStr = ''
143
- } else {
144
- this.valueStr = this.num2str(val)
145
- }
146
140
 
141
+ this.changeFn(this.valueStr)
147
142
  this.$emit('blur')
148
143
  },
149
144
  stepFn(ev) {
150
- if (ev.code === 'ArrowUp' || ev.code === 'ArrowDown') {
151
- let val = Number(this.valueStr.replace(/,/g, ''))
145
+ if ((ev.code === 'ArrowUp' || ev.code === 'ArrowDown') && !this.disabled) {
146
+ let val = NumberP(this.valueStr)
152
147
  if (!isNaN(val)) {
153
148
  ev.preventDefault()
154
149
  val = ev.code === 'ArrowUp' ? val + this.step : val - this.step
150
+ if (val < this.min) {
151
+ val = this.min
152
+ } else if (val > this.max) {
153
+ val = this.max
154
+ }
155
+
155
156
  let valueStr = Number(val.toFixed(9)).toString()
156
157
  this.valueStr = valueStr
157
- this.changeFn(valueStr)
158
158
  }
159
159
  }
160
160
  },
@@ -166,16 +166,22 @@ export default {
166
166
  }
167
167
  },
168
168
  changeFn(valStr) {
169
- valStr = valStr.replace(/,/g, '')
169
+ if (this.changeIng) return
170
+ this.changeIng = true
171
+ setTimeout(() => {
172
+ this.changeIng = false
173
+ })
174
+
175
+ valStr = valStr.trim()
176
+ let val = NumberP(valStr)
170
177
 
171
- if (!valStr.trim() || isNaN(valStr)) {
178
+ if (isNaN(val)) {
172
179
  this.valueStr = ''
173
180
  this.$emit('input', undefined)
174
181
  this.$emit('change', undefined)
175
182
  return
176
183
  }
177
184
 
178
- let val = Number(valStr)
179
185
  if (val < this.min) {
180
186
  val = this.min
181
187
  } else if (val > this.max) {
@@ -218,4 +224,15 @@ export default {
218
224
  }
219
225
  }
220
226
  }
227
+
228
+ function NumberP(val) {
229
+ if (typeof val === 'string') {
230
+ val = val.replace(/,/g, '').trim()
231
+ }
232
+ if (val === undefined || val === null || val === '') {
233
+ return NaN
234
+ } else {
235
+ return Number(val)
236
+ }
237
+ }
221
238
  </script>
@@ -65,7 +65,7 @@
65
65
  <span class="set-user-btn iconfont icon-kehuduanxiazai header-color m-l-lg" @click="dowApp"></span>
66
66
  </el-tooltip>
67
67
 
68
- <el-badge :hidden="noticeNum === 0" :value="noticeNum" class="m-l-lg">
68
+ <el-badge :hidden="noticeNum === 0" :value="noticeNum">
69
69
  <span v-popover:noticePop class="news-btn iconfont icon-xiaoxi header-color"></span>
70
70
  </el-badge>
71
71
 
@@ -97,7 +97,7 @@
97
97
  </el-form-item>
98
98
  <el-form-item label="系统标识图片设置" class="is-required">
99
99
  <div class="login-form-bg-box">
100
- <img :key="keyS[i]" class="login-preview" :src="systemItem.ICON || `/server-assets/N0${i + 1}.png`" />
100
+ <img :key="keyS[i]" class="login-preview" :src="systemItem | realUrl" />
101
101
  <div>
102
102
  <div class="flex-box">
103
103
  <span class="m-r">上传图片</span>
@@ -142,8 +142,19 @@
142
142
 
143
143
  <script>
144
144
  import { $lc } from '../../utils/i18n/index'
145
+ import realUrl from '../../assets/realUrl'
146
+ import IconMap from '../LoginTemporary/systemIconMap'
145
147
 
146
148
  export default {
149
+ filters: {
150
+ realUrl(item) {
151
+ if (item.ICON) {
152
+ return item.ICON
153
+ } else {
154
+ return realUrl(IconMap[item.NO])
155
+ }
156
+ }
157
+ },
147
158
  props: {
148
159
  idNo: {
149
160
  type: String,
@@ -415,6 +415,9 @@ export default {
415
415
  } else if (supplier === 'netca') {
416
416
  // 网证通
417
417
  window.sessionStorage.setItem('signType', 'netcaSign')
418
+ } else if (supplier === 'NetSM3') {
419
+ // 网证通
420
+ window.sessionStorage.setItem('signType', 'NetSM3')
418
421
  } else {
419
422
  // 信安CA
420
423
  window.sessionStorage.setItem('signType', 'inetSign')
@@ -702,12 +702,13 @@ export default {
702
702
  .login-wrap-2 .sys-item {
703
703
  width: 190px;
704
704
  height: 205px;
705
- background: linear-gradient(180deg, rgba(153, 165, 186, 0.53), rgba(96, 108, 133, 0.15));
706
- border-radius: 6px;
705
+ background: url('./item2.png');
706
+ background-size: 100% 100%;
707
707
  }
708
708
  .login-wrap-2 .sys-item:hover,
709
709
  .login-wrap-2 .sys-item.active {
710
- background: linear-gradient(180deg, #327bff, rgba(74, 102, 158, 0.3));
710
+ background: url('./item2-active.png');
711
+ background-size: 100% 100%;
711
712
  }
712
713
  .login-wrap-2 .sys-item-title {
713
714
  height: 58px;