eoss-ui 0.8.30 → 0.8.31

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": "eoss-ui",
3
- "version": "0.8.30",
3
+ "version": "0.8.31",
4
4
  "description": "eoss内部业务组件",
5
5
  "main": "lib/eoss-ui.common.js",
6
6
  "files": [
@@ -0,0 +1,453 @@
1
+ <template>
2
+ <div class="commonOpinion">
3
+ <el-form :model="form" :rules="rules" ref="ruleForm" label-width="0">
4
+ <div class="opinion-input">
5
+ <el-tooltip
6
+ :disabled="tooltipDisabled || !pendingItemHandleDescription"
7
+ placement="top"
8
+ >
9
+ <div slot="content">{{ pendingItemHandleDescription }}</div>
10
+ <el-input
11
+ v-model="form.value"
12
+ :disabled="isBanInputOpinion == '1' || disabled"
13
+ type="textarea"
14
+ clear="inp"
15
+ :placeholder="pendingItemHandleDescription || '请输入意见'"
16
+ @change="changeOpinion"
17
+ @blur="handleBlur"
18
+ @focus="handleFocus"
19
+ :rows="rows"
20
+ ></el-input>
21
+ </el-tooltip>
22
+ <!-- <div class="es-flow__opinions--group-assist">
23
+ <el-form-item
24
+ class="es-flow__opinions--tag-box"
25
+ label="猜您想写:"
26
+ icon="es-icon-zhishidian"
27
+ labelWidth="auto"
28
+ >
29
+ <el-tag
30
+ size="medium"
31
+ class="es-flow__opinions--tag"
32
+ v-for="item in tags"
33
+ :key="item.id"
34
+ :type="form.value !== item ? 'info' : ''"
35
+ @click="handleClickTag(item)"
36
+ >{{ item.content }}</el-tag
37
+ >
38
+ <el-dropdown
39
+ class="es-flow__opinions--dropdown"
40
+ trigger="click"
41
+ label-key="content"
42
+ :contents="optionList"
43
+ @command="handleCommand"
44
+ ></el-dropdown>
45
+
46
+ </el-form-item>
47
+
48
+ </div> -->
49
+ <div class="es-flow__opinions--group-assist">
50
+ <span>猜您想写:</span>
51
+ <div style="flex:1">
52
+ <el-tag
53
+ size="medium"
54
+ class="es-flow__opinions--tag"
55
+ v-for="item in tags"
56
+ :key="item.id"
57
+ :type="form.value !== item ? 'info' : ''"
58
+ @click="handleClickTag(item)"
59
+ >{{ item.content }}</el-tag
60
+ >
61
+
62
+ </div>
63
+ <el-dropdown trigger="click" @command="handleClickTag">
64
+ <span class="el-dropdown-link">
65
+ <i class="el-icon-arrow-down el-icon--right"></i>
66
+ </span>
67
+ <el-dropdown-menu slot="dropdown">
68
+ <el-dropdown-item v-for="item in optionList" :key="item.id" :command="item.content">{{item.content}}</el-dropdown-item>
69
+ </el-dropdown-menu>
70
+ </el-dropdown>
71
+ <el-button
72
+ type="text"
73
+ class="es-flow__opinions--edit"
74
+ icon="es-icon-xiugai"
75
+ @click="dialogVisible = true"
76
+ >
77
+ </el-button>
78
+ </div>
79
+ </div>
80
+
81
+ </el-form>
82
+ <!-- <el-input
83
+ v-model="input3"
84
+ placeholder="请输入内容"
85
+ class="input-with-select"
86
+ >
87
+ <el-select
88
+ v-model="selectValue"
89
+ slot="prepend"
90
+ :disabled="isBanInputOpinion == '1'"
91
+ placeholder="--请选择常用语--"
92
+ @change="selectChange"
93
+ >
94
+ <el-option
95
+ v-for="item in optionList"
96
+ :key="item.id"
97
+ :label="item.content"
98
+ :value="item.content"
99
+ ></el-option>
100
+ </el-select>
101
+ <el-button
102
+ :disabled="disabled"
103
+ slot="append"
104
+ icon="el-icon-edit"
105
+ @click="dialogVisible = true"
106
+ ></el-button>
107
+ </el-input> -->
108
+
109
+ <!-- 弹窗内容 -->
110
+ <es-dialog
111
+ append-to-body
112
+ title="常用意见设置"
113
+ :close-on-click-modal="false"
114
+ :visible.sync="dialogVisible"
115
+ >
116
+ <div class="commonOpinion-set">
117
+ <div style="text-align: right">
118
+ <el-button
119
+ style="margin-right: 22px;"
120
+ type="primary"
121
+ size="small"
122
+ @click="
123
+ () => {
124
+ addVisible = true;
125
+ (FormData.sep = optionList.length + 1),
126
+ (FormData.content = ''),
127
+ (FormData.id = null);
128
+ }
129
+ "
130
+ >
131
+ 新增
132
+ </el-button>
133
+ </div>
134
+ <Table
135
+ style="flex: 1; display: flex; flex-direction: column"
136
+ v-if="dialogVisible"
137
+ :data-list="optionList"
138
+ @upDateClick="upDate"
139
+ @delClick="del"
140
+ />
141
+ </div>
142
+ </es-dialog>
143
+
144
+ <es-dialog
145
+ append-to-body
146
+ :close-on-click-modal="false"
147
+ title="添加常用意见"
148
+ :visible.sync="addVisible"
149
+ :showScale="false"
150
+ v-if="addVisible"
151
+ width="600"
152
+ height="auto"
153
+ >
154
+ <ideas :data="FormData" @subMit="submit" />
155
+ </es-dialog>
156
+ </div>
157
+ </template>
158
+
159
+ <script>
160
+ import {
161
+ saveCommonOpinion,
162
+ updateCommonOpinion,
163
+ commonOpion,
164
+ findSysParam,
165
+ deleteCommonOpion
166
+ } from 'eoss-ui/src/config/api';
167
+ import Table from '../table.vue';
168
+ import ideas from '../form.vue';
169
+ import util from 'eoss-ui/src/utils/util';
170
+ export default {
171
+ name: 'Opinions',
172
+ components: {
173
+ [ideas.name]: ideas,
174
+ [Table.name]: Table
175
+ },
176
+ data() {
177
+ return {
178
+ value: '',
179
+ tooltipDisabled: false,
180
+ form: {
181
+ value: ''
182
+ },
183
+ input3: '',
184
+ selectValue: '',
185
+ optionList: [],
186
+ dialogVisible: false,
187
+ addVisible: false,
188
+ disabled: false,
189
+ FormData: {
190
+ id: null
191
+ }
192
+ };
193
+ },
194
+ props: {
195
+ isBanInputOpinion: {
196
+ type: Number,
197
+ default: 0
198
+ },
199
+ opinion: {
200
+ type: String,
201
+ default: ''
202
+ },
203
+ pendingItemHandleDescription: {
204
+ type: String,
205
+ default: ''
206
+ },
207
+ nodeFixedOpinionSelectList: {
208
+ type: Array,
209
+ default: () => []
210
+ },
211
+ rows: {
212
+ type: [Number, String],
213
+ default: 10
214
+ },
215
+ required: { type: Boolean, default: false }
216
+ },
217
+ computed: {
218
+ tags() {
219
+ return this.optionList.slice(0, 3);
220
+ },
221
+ rules() {
222
+ return {
223
+ value: [
224
+ {
225
+ required: this.required,
226
+ message: '请输入意见',
227
+ trigger: 'blur'
228
+ }
229
+ ]
230
+ };
231
+ }
232
+ },
233
+ mounted() {
234
+ this.form.value = this.opinion;
235
+ if (this.nodeFixedOpinionSelectList.length > 0) {
236
+ this.optionList = this.nodeFixedOpinionSelectList;
237
+ this.disabled = true;
238
+ } else {
239
+ this.getCommonOpion();
240
+ }
241
+ },
242
+ watch: {
243
+ opinion(val) {
244
+ this.form.value = val;
245
+ this.changeOpinion();
246
+ }
247
+ },
248
+ methods: {
249
+ handleClickTag(item) {
250
+ this.form.value = typeof item === 'object' ? item.content : item;
251
+ },
252
+ handleBlur() {
253
+ this.$emit('blur', this.form.value);
254
+ this.tooltipDisabled = false;
255
+ },
256
+ handleFocus() {
257
+ this.$emit('focus', this.form.value);
258
+ this.tooltipDisabled = true;
259
+ },
260
+ validate() {
261
+ let validSate = true;
262
+ this.$refs.ruleForm.validate((valid) => {
263
+ if (valid) {
264
+ validSate = true;
265
+ } else {
266
+ validSate = false;
267
+ }
268
+ });
269
+ return validSate;
270
+ },
271
+ /**
272
+ * changeOpinion
273
+ * @desc:监听意见变化
274
+ * @author liufan
275
+ * @date 2022年10月28日
276
+ **/
277
+ changeOpinion() {
278
+ this.$emit('change', this.form.value);
279
+ },
280
+ /**
281
+ * getCommonOpion
282
+ * @desc:获取意见
283
+ * @author liufan
284
+ * @date 2022年5月25日
285
+ **/
286
+ getCommonOpion() {
287
+ util
288
+ .ajax({
289
+ url: commonOpion,
290
+ params: {
291
+ userId: util.getStorage('userId')
292
+ },
293
+ method: 'post'
294
+ })
295
+ .then((res) => {
296
+ const { status, data, msg } = res;
297
+ if (status === 'success') {
298
+ this.optionList = data.list;
299
+ this.FormData.sep = this.optionList.length + 1;
300
+ } else {
301
+ this.$message.error(msg || '系统错误,请联系管理员!');
302
+ }
303
+ })
304
+ .catch((err) => {
305
+ if (err.message && err.message !== 'canceled') {
306
+ this.$message.error(err.message);
307
+ }
308
+ });
309
+ },
310
+ /**
311
+ * upDate
312
+ * @desc:修改常用语
313
+ * @author liufan
314
+ * @param {Object} val 修改值
315
+ * @date 2022年5月25日
316
+ **/
317
+ upDate(val) {
318
+ this.FormData.id = val.id;
319
+ this.addVisible = true;
320
+ },
321
+ handleCommand(command) {
322
+ const val = command.content;
323
+ util.ajax({
324
+ url: findSysParam,
325
+ params: { cpName: 'commonOpinionsSelectType' }
326
+ }).then((res) => {
327
+ if (res.status == 'success') {
328
+ res.data == 2 ? (this.form.value += val) : (this.form.value = val);
329
+ } else {
330
+ this.form.value = val;
331
+ }
332
+ });
333
+ },
334
+ /**
335
+ * selectChange
336
+ * @desc:常用语选择
337
+ * @author liufan
338
+ * @param {String} val 选中值
339
+ * @date 2022年5月25日
340
+ **/
341
+ selectChange(val) {
342
+ const that = this;
343
+ util
344
+ .ajax({
345
+ url: findSysParam,
346
+ params: { cpName: 'commonOpinionsSelectType' }
347
+ })
348
+ .then((res) => {
349
+ if (res.status == 'success') {
350
+ res.data == 2
351
+ ? (that.form.value = that.form.value + val)
352
+ : (that.form.value = val);
353
+ } else {
354
+ that.form.value = val;
355
+ }
356
+ this.$emit('change', that.form.value);
357
+ });
358
+ },
359
+ /**
360
+ * del
361
+ * @desc:删除常用语
362
+ * @author liufan
363
+ * @param {Object} val 删除的数据
364
+ * @date 2022年5月25日
365
+ **/
366
+ del(val) {
367
+ this.$confirm('您确定要删除此信息吗?', '提示', {
368
+ confirmButtonText: '确定',
369
+ cancelButtonText: '取消',
370
+ type: 'warning'
371
+ })
372
+ .then(() => {
373
+ this.loading = util.loading(this.$loading, '删除中...');
374
+ util
375
+ .ajax({
376
+ url: deleteCommonOpion,
377
+ params: {
378
+ id: val.id
379
+ }
380
+ })
381
+ .then((res) => {
382
+ const { status, message } = res;
383
+ if (status == 'success') {
384
+ this.$message({
385
+ type: 'success',
386
+ message: '删除成功!'
387
+ });
388
+ this.getCommonOpion();
389
+ } else {
390
+ this.$message({
391
+ type: 'error',
392
+ message: message || '系统错误,请联系管理员!'
393
+ });
394
+ }
395
+ this.loading.close();
396
+ })
397
+ .catch((err) => {
398
+ if (err.message && err.message !== 'canceled') {
399
+ this.$message.error(err.message);
400
+ }
401
+ this.loading.close();
402
+ });
403
+ })
404
+ .catch((e) => {});
405
+ },
406
+ /**
407
+ * submit
408
+ * @desc:新增/编辑意见保存
409
+ * @author liufan
410
+ * @param {Object} val 保存数据
411
+ * @date 2022年5月25日
412
+ **/
413
+ submit(val) {
414
+ const { addVisible, data } = val;
415
+ let info = {};
416
+ for (let key in data) {
417
+ info[`bean.${key}`] = data[key];
418
+ }
419
+ this.loading = util.loading(this.$loading, '提交中...');
420
+ util
421
+ .ajax({
422
+ url: data.id ? updateCommonOpinion : saveCommonOpinion,
423
+ data: info,
424
+ header: { 'Content-Type': 'multipart/form-data' },
425
+ method: 'post'
426
+ })
427
+ .then((res) => {
428
+ const { rCode, msg } = res;
429
+ this.loading.close();
430
+ if (!rCode) {
431
+ if (this.FormData.id) {
432
+ this.$message.success('修改成功');
433
+ } else {
434
+ this.$message.success('新增成功');
435
+ }
436
+ this.getCommonOpion();
437
+ } else {
438
+ this.$message.error(msg || '系统错误,请联系管理员!');
439
+ }
440
+ this.addVisible = addVisible;
441
+ })
442
+ .catch((err) => {
443
+ this.loading.close();
444
+ if (err.message && err.message !== 'canceled') {
445
+ this.$message.error(err.message);
446
+ }
447
+ });
448
+ }
449
+ }
450
+ };
451
+ </script>
452
+
453
+ <style></style>
@@ -165,7 +165,7 @@
165
165
  <!-- <span>{{ infoList.noticeInfo }}</span> -->
166
166
  </el-form-item>
167
167
  </el-form>
168
- <div style="text-align: right">
168
+ <div style="text-align: right" v-show="!hideBtn">
169
169
  <el-button type="primary" @click="subMit"> 确定 </el-button>
170
170
  <el-button @click="quit" > 取消 </el-button>
171
171
  </div>
@@ -208,6 +208,7 @@ export default {
208
208
  disabled: { type: Boolean, default: false },
209
209
  simpleTips: { type: Boolean, default: true },
210
210
  multiple: { type: Boolean, default: true },
211
+ hideBtn: { type: Boolean, default: false },
211
212
  selectorParams: {
212
213
  type: Object,
213
214
  default: () => {
@@ -332,7 +333,7 @@ export default {
332
333
  nextUserId: nextOtherOrgObj.join(','),
333
334
  notificationType: noticeType.join(','),
334
335
  notificationMsg: noticeInfo,
335
- opinion,
336
+ opinion:this.isSinglePage?opinion : this.oldOption,
336
337
  isSubFlow,
337
338
  businessId,
338
339
  currentOrgProcessKey,
@@ -549,6 +550,9 @@ export default {
549
550
  }
550
551
  });
551
552
  },
553
+ subProcess() {
554
+ this.subMit();
555
+ },
552
556
  subMit() {
553
557
  // if (
554
558
  // this.infoList.nextOtherOrgObjName == '' ||
@@ -610,7 +614,7 @@ export default {
610
614
  ? taskTakeAdvice
611
615
  : taskUnionExamine,
612
616
  data: {
613
- opinion,
617
+ opinion:this.hideBtn?this.oldOption:opinion,
614
618
  pendingId,
615
619
 
616
620
  nextOtherOrgObj: