cloud-web-corejs 1.0.57 → 1.0.58

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,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.57",
4
+ "version": "1.0.58",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
3
  <el-dialog
4
- title="设置文件权限"
4
+ title="设置权限"
5
5
  :append-to-body="true"
6
6
  :modal-append-to-body="true"
7
7
  :close-on-click-modal="false"
@@ -14,115 +14,137 @@
14
14
  v-el-dialog-center
15
15
  >
16
16
  <div class="cont">
17
- <div class="grid-height" style="height: 500px">
18
- <vxe-grid
19
- class="is-pointer"
20
- ref="table-m1"
21
- :data="tableData"
22
- v-bind="vxeOption"
23
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
24
- @custom="$vxeTableUtil.customHandle"
25
- >
26
- <template #form>
27
- <div class="clearfix screen-btns">
28
- <div class="fl">
29
- <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openSaleOrgAddDialog">新增机构
30
- </vxe-button>
31
- <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openPositionAddDialog">
32
- 新增岗位
33
- </vxe-button>
34
- <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openUserAddDialog">新增用户
35
- </vxe-button>
36
- <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openRoleAddDialog">新增角色
37
- </vxe-button>
38
- <!-- <vxe-button type="text" status="primary" plain class="button-sty" icon="el-icon-delete"
39
- @click="deleteRows()">{{ $t2('删除', 'components.fileLibrary.delete') }}
40
- </vxe-button>-->
41
- </div>
42
- <div class="fl screen-breadcrumb" style="margin-left: 30px;">
43
- <span style="font-size: 12px;">{{ $t2('文件路径', 'components.fileLibrary.filePath') }}:</span>
44
- <el-breadcrumb separator-class="el-icon-arrow-right">
45
- <el-breadcrumb-item v-for="(treeNode,index) in treeNodeArr" :key="index">{{
46
- treeNode.label
47
- }}
48
- </el-breadcrumb-item>
49
- </el-breadcrumb>
50
- </div>
51
- </div>
52
- </template>
53
- <template #saleOrg="{row,rowIndex}">
54
- <el-input
55
- class="search-input"
56
- v-model="row.saleOrgName"
57
- clearable
58
- @clear="
17
+ <div id="containt">
18
+ <el-tabs v-model="activeName" class="tab-box">
19
+ <el-tab-pane :label="$t1('用户权限设置')" name="first">
20
+ <div class="grid-height" style="height: 500px">
21
+ <vxe-grid
22
+ class="is-pointer"
23
+ ref="table-m1"
24
+ :data="tableData"
25
+ v-bind="vxeOption"
26
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
27
+ @custom="$vxeTableUtil.customHandle"
28
+ >
29
+ <template #form>
30
+ <div class="clearfix screen-btns">
31
+ <div class="fl">
32
+ <vxe-button status="primary" class="button-sty" icon="el-icon-plus"
33
+ @click="openSaleOrgAddDialog">
34
+ 新增机构
35
+ </vxe-button>
36
+ <vxe-button status="primary" class="button-sty" icon="el-icon-plus"
37
+ @click="openPositionAddDialog">
38
+ 新增岗位
39
+ </vxe-button>
40
+ <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openUserAddDialog">
41
+ 新增用户
42
+ </vxe-button>
43
+ <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openRoleAddDialog">
44
+ 新增角色
45
+ </vxe-button>
46
+ <!-- <vxe-button type="text" status="primary" plain class="button-sty" icon="el-icon-delete"
47
+ @click="deleteRows()">{{ $t2('删除', 'components.fileLibrary.delete') }}
48
+ </vxe-button>-->
49
+ </div>
50
+ <div class="fl screen-breadcrumb" style="margin-left: 30px;">
51
+ <span style="font-size: 12px;">{{ $t2('文件路径', 'components.fileLibrary.filePath') }}:</span>
52
+ <el-breadcrumb separator-class="el-icon-arrow-right">
53
+ <el-breadcrumb-item v-for="(treeNode,index) in treeNodeArr" :key="index">{{
54
+ treeNode.label
55
+ }}
56
+ </el-breadcrumb-item>
57
+ </el-breadcrumb>
58
+ </div>
59
+ </div>
60
+ </template>
61
+ <template #saleOrg="{row,rowIndex}">
62
+ <el-input
63
+ class="search-input"
64
+ v-model="row.saleOrgName"
65
+ clearable
66
+ @clear="
59
67
  row.saleOrgId = null;
60
68
  "
61
- v-if="!row._isParent"
62
- v-el-readonly
63
- >
64
- <i slot="suffix" class="el-input__icon el-icon-search" @click="openSaleOrgRowDialog(row,rowIndex)"></i>
65
- </el-input>
66
- <template v-else>{{ row.saleOrgName }}</template>
67
- </template>
68
- <template #position="{row,rowIndex}">
69
- <el-input
70
- class="search-input"
71
- v-model="row.positionName"
72
- clearable
73
- @clear="
69
+ v-if="!row._isParent"
70
+ v-el-readonly
71
+ >
72
+ <i slot="suffix" class="el-input__icon el-icon-search"
73
+ @click="openSaleOrgRowDialog(row,rowIndex)"></i>
74
+ </el-input>
75
+ <template v-else>{{ row.saleOrgName }}</template>
76
+ </template>
77
+ <template #position="{row,rowIndex}">
78
+ <el-input
79
+ class="search-input"
80
+ v-model="row.positionName"
81
+ clearable
82
+ @clear="
74
83
  row.positionId = null;
75
84
  "
76
- v-if="!row._isParent"
77
- v-el-readonly
78
- >
79
- <i slot="suffix" class="el-input__icon el-icon-search" @click="openPositionRowDialog(row,rowIndex)"></i>
80
- </el-input>
81
- <template v-else>{{ row.positionName }}</template>
82
- </template>
83
- <template #role="{row,rowIndex}">
84
- <el-input
85
- class="search-input"
86
- v-model="row.roleName"
87
- clearable
88
- @clear="
85
+ v-if="!row._isParent"
86
+ v-el-readonly
87
+ >
88
+ <i slot="suffix" class="el-input__icon el-icon-search"
89
+ @click="openPositionRowDialog(row,rowIndex)"></i>
90
+ </el-input>
91
+ <template v-else>{{ row.positionName }}</template>
92
+ </template>
93
+ <template #role="{row,rowIndex}">
94
+ <el-input
95
+ class="search-input"
96
+ v-model="row.roleName"
97
+ clearable
98
+ @clear="
89
99
  row.roleId = null;
90
100
  "
91
- v-if="!row._isParent"
92
- v-el-readonly
93
- >
94
- <i slot="suffix" class="el-input__icon el-icon-search" @click="openRoleRowDialog(row,rowIndex)"></i>
95
- </el-input>
96
- <template v-else>{{ row.roleName }}</template>
97
- </template>
98
- <template #user="{row,rowIndex}">
99
- <el-input
100
- class="search-input"
101
- v-model="row.nickName"
102
- clearable
103
- @clear="
101
+ v-if="!row._isParent"
102
+ v-el-readonly
103
+ >
104
+ <i slot="suffix" class="el-input__icon el-icon-search"
105
+ @click="openRoleRowDialog(row,rowIndex)"></i>
106
+ </el-input>
107
+ <template v-else>{{ row.roleName }}</template>
108
+ </template>
109
+ <template #user="{row,rowIndex}">
110
+ <el-input
111
+ class="search-input"
112
+ v-model="row.nickName"
113
+ clearable
114
+ @clear="
104
115
  row.userId = null;
105
116
  "
106
- v-if="!row._isParent"
107
- v-el-readonly
108
- >
109
- <i slot="suffix" class="el-input__icon el-icon-search" @click="openUserRowDialog(row,rowIndex)"></i>
110
- </el-input>
111
- <template v-else>{{ row.nickName }}</template>
112
- </template>
113
- <template #operate="{row}">
114
- <a
115
- href="javascript:void(0);"
116
- class="a-link"
117
- @click="openEditDialog(row.id)"
118
- >
119
- <el-tooltip :enterable="false" effect="dark" :content="$t2('查看','common.view')" placement="top"
120
- popper-class="tooltip-skin">
121
- <i class="el-icon-edit"/>
122
- </el-tooltip>
123
- </a>
124
- </template>
125
- </vxe-grid>
117
+ v-if="!row._isParent"
118
+ v-el-readonly
119
+ >
120
+ <i slot="suffix" class="el-input__icon el-icon-search"
121
+ @click="openUserRowDialog(row,rowIndex)"></i>
122
+ </el-input>
123
+ <template v-else>{{ row.nickName }}</template>
124
+ </template>
125
+ <template #operate="{row}">
126
+ <a
127
+ href="javascript:void(0);"
128
+ class="a-link"
129
+ @click="openEditDialog(row.id)"
130
+ >
131
+ <el-tooltip :enterable="false" effect="dark" :content="$t2('查看','common.view')" placement="top"
132
+ popper-class="tooltip-skin">
133
+ <i class="el-icon-edit"/>
134
+ </el-tooltip>
135
+ </a>
136
+ </template>
137
+ </vxe-grid>
138
+ </div>
139
+ </el-tab-pane>
140
+ <el-tab-pane :label="$t1('文件操作,发系统通知')" name="second" v-if="fileStoreArea.toNotify">
141
+ <div class="grid-height" style="height: 500px">
142
+ <fileObjNotifyEdit v-if="showFileObjNotifyEdit" visible-key="showFileObjNotifyEdit"
143
+ :current_prefix="current_prefix" :_dataId="fileObjId" :parent-target="_self"
144
+ @reload="$reloadHandle"></fileObjNotifyEdit>
145
+ </div>
146
+ </el-tab-pane>
147
+ </el-tabs>
126
148
  </div>
127
149
  </div>
128
150
  <span slot="footer" class="dialog-footer">
@@ -130,7 +152,7 @@
130
152
  <i class="el-icon-close el-icon"></i>
131
153
  取 消
132
154
  </el-button>
133
- <el-button type="primary" @click="saveData" class="button-sty">
155
+ <el-button type="primary" @click="saveData" class="button-sty" v-if="activeName=='first'">
134
156
  <i class="el-icon-check el-icon"></i>
135
157
  确 定
136
158
  </el-button>
@@ -13,7 +13,7 @@
13
13
  v-el-dialog-center
14
14
  @close="handleClose"
15
15
  >
16
- <div class="cont">
16
+ <div class="cont" style="height: 550px;">
17
17
  <el-form ref="editForm" :model="fileObjAuth" label-width="110px" class="adSearchForm"
18
18
  style="width: 362px;height: auto;">
19
19
  <el-form-item label="文件路径">
@@ -150,6 +150,11 @@
150
150
  <el-switch v-model="fileObjAuth.shareAuth" :active-value="1" :inactive-value="0"
151
151
  :disabled="fileObjAuth._isParent"/>
152
152
  </el-form-item>
153
+ <el-form-item v-if="fileStoreArea.toDownWatermark" prop="downWatermarkAuth" :label="$t1('下载打水印')"
154
+ :rules="[{ required: false, trigger: 'blur' }]">
155
+ <el-switch v-model="fileObjAuth.downWatermarkAuth" :active-value="1" :inactive-value="0"
156
+ :disabled="fileObjAuth._isParent"/>
157
+ </el-form-item>
153
158
  </el-form>
154
159
  </div>
155
160
  <span slot="footer" class="dialog-footer">
@@ -0,0 +1,153 @@
1
+ <template>
2
+ <div class="detail-wrap" style="margin: -6px -8px;">
3
+ <el-form ref="editForm" :model="fileObjNotify" label-position=top>
4
+ <div class="d-header clearfix">
5
+ <div class="fl">
6
+ <i class="el-icon-info"/>
7
+ <!--{{ isEdit ? $t1('查看文件对象通知设置') : $t1('新增文件对象通知设置') }}-->
8
+ 文件操作 - 发系统通知设置
9
+ </div>
10
+ <div class="fr">
11
+ <el-button type="primary" plain class="button-sty" @click="$baseReload()" icon="el-icon-refresh-right">
12
+ {{ $t1('重置') }}
13
+ </el-button>
14
+ <el-button type="primary" class="button-sty" icon="el-icon-check" @click="saveData">{{ $t1('保存') }}
15
+ </el-button>
16
+ </div>
17
+ </div>
18
+ <div class="d-cont">
19
+ <div class="d-item d-i-left">
20
+ <div class="d-i-tit">
21
+ {{ $t1('文件操作,是否发系统通知') }}
22
+ </div>
23
+ <el-form-item prop="toNotify" :rules="[{ required: true, trigger: 'blur' }]">
24
+ <el-radio-group v-model="fileObjNotify.toNotify">
25
+ <div><el-radio :label="0">{{ $t1('不发系统通知;') }}</el-radio></div>
26
+ <div><el-radio :label="1">{{ $t1('针对当前文件夹中的文件操作') }}</el-radio></div>
27
+ <div><el-radio :label="2">{{ $t1('当前文件夹与下级所有文件夹的文件进行了操作,发系统通知') }}</el-radio></div>
28
+ </el-radio-group>
29
+ </el-form-item>
30
+ </div>
31
+ <div class="d-item d-i-right">
32
+ <div class="d-i-tit">
33
+ {{ $t1('不同的文件操作类型,设置对应的系统通知模板') }}
34
+ </div>
35
+ <el-form-item prop="addNtCode" :rules="[{ required: false, trigger: 'blur' }]" :label="$t1('新增文件-通知模板编码')">
36
+ <el-input type="text" autocomplete="off" v-model="fileObjNotify.addNtCode" clearable/>
37
+ </el-form-item>
38
+ <el-form-item prop="deleteNtCode" :rules="[{ required: false, trigger: 'blur' }]" :label="$t1('删除文件-通知模板编码') ">
39
+ <el-input type="text" autocomplete="off" v-model="fileObjNotify.deleteNtCode" clearable/>
40
+ </el-form-item>
41
+ <el-form-item prop="replaceNtCode" :rules="[{ required: false, trigger: 'blur' }]" :label=" $t1('替换文件-通知模板编码') ">
42
+ <el-input type="text" autocomplete="off" v-model="fileObjNotify.replaceNtCode" clearable/>
43
+ </el-form-item>
44
+ </div>
45
+ </div>
46
+ </el-form>
47
+ </div>
48
+ </template>
49
+
50
+ <script>
51
+ export default {
52
+ name: 'fileObjNotifyEdit',
53
+ props: {
54
+ _dataId: [String, Number],
55
+ current_prefix: String
56
+ },
57
+ components: {},
58
+ data() {
59
+ return {
60
+ isEdit: false,
61
+ tabIndex: 'first',
62
+ dataId: '',
63
+ fileObjNotify: {
64
+ toNotify: 0,
65
+ fileObjId: this._dataId
66
+ }
67
+ };
68
+ },
69
+ created() {
70
+ if (this._dataId && !isNaN(this._dataId)) this.dataId = this._dataId;
71
+ },
72
+ mounted() {
73
+ this.getData();
74
+ },
75
+ methods: {
76
+ getData() {
77
+ if (this.dataId && !isNaN(this.dataId)) {
78
+
79
+ this.$commonHttp({
80
+ url: this.current_prefix + `/file_obj_notify/get`,
81
+ method: `post`,
82
+ data: {
83
+ id: this.dataId
84
+ },
85
+ isLoading: true,
86
+ modalStrictly: true,
87
+ success: res => {
88
+ if (res.objx) {
89
+ this.fileObjNotify = res.objx;
90
+ this.isEdit = true;
91
+ }
92
+ }
93
+ });
94
+ }
95
+ },
96
+ saveData() {
97
+ this.$refs.editForm.$baseValidate(valid => {
98
+ if (valid) {
99
+ this.$baseConfirm(this.$t1('您确定要保存吗?')).then(() => {
100
+ var url = this.current_prefix + `/file_obj_notify/save`;
101
+ debugger
102
+ let a = 1;
103
+ this.$http({
104
+ url: url,
105
+ method: `post`,
106
+ data: this.fileObjNotify,
107
+ isLoading: true,
108
+ success: res => {
109
+ this.$message({
110
+ message: res.content,
111
+ type: 'success',
112
+ duration: 500,
113
+ onClose: t => {
114
+ this.$baseReload();
115
+ }
116
+ });
117
+ }
118
+ });
119
+ });
120
+ }
121
+ });
122
+ }
123
+ }
124
+ };
125
+ </script>
126
+ <style scoped lang="scss">
127
+ .noTr th {
128
+ height: 0px
129
+ }
130
+
131
+ .noTr td {
132
+ height: 0px
133
+ }
134
+ .d-cont{display: flex;margin: -11px -12px;
135
+ .d-i-left,.d-i-right{border:none !important;padding:24px 18px 24px 14px !important}
136
+ .d-i-left{width:420px;}
137
+ .d-i-tit{
138
+ background:#f7f7f7;line-height: 36px;padding: 0 10px;margin-bottom: 16px;
139
+ }
140
+ .d-i-right{
141
+ border-left:solid 1px #e9e9e9 !important;flex:1;padding-left:32px !important;
142
+ ::v-deep .el-form-item{margin-bottom:16px;
143
+ .el-form-item__label{font-size:14px;}
144
+ .el-form-item__content{
145
+ .el-input{width:360px !important;
146
+ .el-input__inner{height:38px !important}
147
+ }
148
+ }
149
+ }
150
+ }
151
+ }
152
+
153
+ </style>
@@ -192,7 +192,7 @@
192
192
  href="javascript:void(0);"
193
193
  class="a-link ico"
194
194
  v-if="!attachment.dirs && fileObjAuth.downloadAuth"
195
- @click="$commonFileUtil.downloadFile(attachment.domain + attachment.url, attachment.fileName)"
195
+ @click="downloadSingerFile(attachment)"
196
196
  >
197
197
  <el-tooltip effect="dark" content="下载" placement="top"
198
198
  popper-class="tooltip-skin">
@@ -353,7 +353,7 @@
353
353
  href="javascript:void(0);"
354
354
  class="a-link"
355
355
  v-if="fileObjAuth.downloadAuth == 1"
356
- @click="$commonFileUtil.downloadFile(row.domain + row.url,row.fileName)"
356
+ @click="downloadSingerFile(row)"
357
357
  >
358
358
  <el-tooltip :enterable="false" effect="dark" :content="$t2('下载','components.fileLibrary.download')"
359
359
  placement="top"
@@ -4,6 +4,7 @@ import positionDialog from "../../../views/user/position/dialog";
4
4
  import saleOrgDialog from "../../../views/user/sale_org/dialog";
5
5
  import roleDialog from "../../../views/user/role/dialog";
6
6
  import fileObjAuthEditDialog from "../../../components/fileLibrary/fileObjAuthEditDialog.vue";
7
+ import fileObjNotifyEdit from "@base/components/fileLibrary/fileObjNotifyEdit.vue";
7
8
 
8
9
 
9
10
  let modules = {};
@@ -14,9 +15,9 @@ modules = {
14
15
  treeNodeArr: Array
15
16
  },
16
17
  components: {
17
- editView, userDialog, positionDialog, saleOrgDialog, roleDialog,fileObjAuthEditDialog
18
+ editView, userDialog, positionDialog, saleOrgDialog, roleDialog, fileObjAuthEditDialog, fileObjNotifyEdit
18
19
  },
19
- inject: ['current_prefix'],
20
+ inject: ['current_prefix', 'getFileStoreArea'],
20
21
  mounted() {
21
22
  this.initTableList();
22
23
  },
@@ -24,7 +25,7 @@ modules = {
24
25
  let that = this;
25
26
  return {
26
27
  showDialog: true,
27
- activeName: 'second',
28
+ activeName: 'first',
28
29
  value10: '',
29
30
  dataId: '',
30
31
  showEdit: false,
@@ -50,11 +51,16 @@ modules = {
50
51
  showSaleOrgAddDialog: false,
51
52
  showPositionAddDialog: false,
52
53
  showRoleAddDialog: false,
53
- showDetailDialog:false,
54
- currentRow:null,
55
-
54
+ showDetailDialog: false,
55
+ currentRow: null,
56
+ showFileObjNotifyEdit: true
56
57
  };
57
58
  },
59
+ computed: {
60
+ fileStoreArea() {
61
+ return this.getFileStoreArea();
62
+ }
63
+ },
58
64
  methods: {
59
65
  searchEvent() {
60
66
  this.$refs['table-m1'].commitProxy('reload');
@@ -76,6 +82,8 @@ modules = {
76
82
  0: this.$t2('否', 'components.fileLibrary.auThLaebl0'),
77
83
  1: this.$t2('是', 'components.fileLibrary.auThLaebl1')
78
84
  };
85
+ let a = this.fileStoreArea.toDownWatermark;
86
+ debugger
79
87
  let tableOption = {
80
88
  vue: this,
81
89
  tableRef: 'table-m1',
@@ -284,6 +292,19 @@ modules = {
284
292
  }
285
293
  }
286
294
  },
295
+ ...(this.fileStoreArea.toDownWatermark ? [{
296
+ title: this.$t1('下载打水印 '),
297
+ field: 'downWatermarkAuth',
298
+ width: 150,
299
+ slots: {
300
+ default: ({row}) => {
301
+ return [
302
+ <el-switch v-model={row.downWatermarkAuth} active-value={1} inactive-value={0}
303
+ disabled={row._isParent}></el-switch>
304
+ ];
305
+ }
306
+ }
307
+ }] : []),
287
308
  {title: this.$t2('创建人', 'system.label.createBy'), field: 'createBy', width: 150},
288
309
  {title: this.$t2('创建时间', 'system.label.createDate'), field: 'createDate', width: 150},
289
310
  {title: this.$t2('更新人', 'system.label.modifyBy'), field: 'modifyBy', width: 150},
@@ -603,6 +624,7 @@ modules = {
603
624
  deleteDirAuth: 1,
604
625
  historyAuth: 1,
605
626
  shareAuth: 1,
627
+ downWatermarkAuth: 0,
606
628
  fileObjId: this.fileObjId
607
629
  }
608
630
  return row;
@@ -613,7 +635,7 @@ modules = {
613
635
  this.showDetailDialog = true;
614
636
  },
615
637
  confirmDetailDialog(row) {
616
- this.tableData.splice(this.operateIndex,1,row)
638
+ this.tableData.splice(this.operateIndex, 1, row)
617
639
  this.showDetailDialog = false;
618
640
  }
619
641
  }
@@ -14,7 +14,7 @@ modules = {
14
14
  components: {
15
15
  userDialog, positionDialog, saleOrgDialog, roleDialog
16
16
  },
17
- inject: ['current_prefix'],
17
+ inject: ['current_prefix', 'getFileStoreArea'],
18
18
  data() {
19
19
  return {
20
20
  isEdit: false,
@@ -56,6 +56,9 @@ modules = {
56
56
  let prevTitle = this.currentRow ? this.$t2('查看', 'system.button.check') : this.$t2('新增', 'system.button.add')
57
57
  let title = prevTitle + this.$t2('文件权限', 'components.fileLibrary.fileAuth')
58
58
  return title;
59
+ },
60
+ fileStoreArea(){
61
+ return this.getFileStoreArea();
59
62
  }
60
63
  },
61
64
  mounted() {
@@ -13,7 +13,7 @@ modules = {
13
13
  components: {
14
14
  userDialog, positionDialog, saleOrgDialog, roleDialog
15
15
  },
16
- inject: ['current_prefix'],
16
+ inject: ['current_prefix', 'getFileStoreArea'],
17
17
  data() {
18
18
  return {
19
19
  isEdit: false,
@@ -7,6 +7,7 @@ import shareDialog from "../shareDialog";
7
7
  import recycleBinDialog from "../recycleBinDialog";
8
8
  import videoDialog from "../../../components/video/dialog";
9
9
  import userDialog from "../../../views/user/user/dialog";
10
+ import {encode} from "js-base64";
10
11
 
11
12
  let modules;
12
13
  modules = {
@@ -43,6 +44,9 @@ modules = {
43
44
  getObjectForeignId: () => {
44
45
  return this.objectForeignId;
45
46
  },
47
+ getFileStoreArea: () => {
48
+ return this.fileStoreArea;
49
+ }
46
50
  };
47
51
  },
48
52
  async created() {
@@ -72,6 +76,7 @@ modules = {
72
76
  billDialogContent: null,
73
77
  checkBillDatas: [],
74
78
  title: "",
79
+ fileStoreArea: {},
75
80
  folderStatus: false,
76
81
  filterText: "",
77
82
  defaultProps: {
@@ -1402,6 +1407,7 @@ modules = {
1402
1407
  success: (res) => {
1403
1408
  let fileStoreArea = res.objx;
1404
1409
  if (fileStoreArea) {
1410
+ this.fileStoreArea = fileStoreArea;
1405
1411
  this.title = fileStoreArea.storeAreaName;
1406
1412
  this.$nextTick(() => {
1407
1413
  treeScollx({target: this, type: "default"});
@@ -1746,6 +1752,18 @@ modules = {
1746
1752
  } else {
1747
1753
  return customFileButton.visable;
1748
1754
  }
1755
+ },
1756
+ downloadSingerFile(attachment) {
1757
+
1758
+ let fileObjAuth = this.fileObjAuth;
1759
+ if (attachment.dirs || !fileObjAuth.downloadAuth) return
1760
+ let url = attachment.domain + attachment.url;
1761
+ debugger
1762
+ if (this.fileStoreArea.toDownWatermark && fileObjAuth.downWatermarkAuth) {
1763
+ let loginAccount = this.$store.getters.loginAccount;
1764
+ url += '?_w=' + encode(loginAccount)
1765
+ }
1766
+ this.$commonFileUtil.downloadFile(url, attachment.fileName)
1749
1767
  }
1750
1768
  },
1751
1769
  };
@@ -32,12 +32,13 @@
32
32
  </div>
33
33
  </el-dialog>
34
34
  <systemNoticeInfoDialog v-if="showSystemNoticeInfoDialog" :visiable.sync="showSystemNoticeInfoDialog"
35
- :appendToTop="true"></systemNoticeInfoDialog>
35
+ :appendToTop="true" :queryParam="systemNoticeInfoDialogParam"></systemNoticeInfoDialog>
36
36
  </div>
37
37
  </template>
38
38
 
39
39
  <script>
40
40
  import systemNoticeInfoDialog from "@base/views/user/system_notice/infoDialog.vue";
41
+ import settingConfig from "@/settings";
41
42
 
42
43
  export default {
43
44
  name: 'notifyMessageDialog',
@@ -55,7 +56,8 @@ export default {
55
56
  tableDatas: [],
56
57
  currentIndex: 0,
57
58
  currentRow: {},
58
- showSystemNoticeInfoDialog: false
59
+ showSystemNoticeInfoDialog: false,
60
+ systemNoticeInfoDialogParam: {}
59
61
  };
60
62
  },
61
63
 
@@ -72,9 +74,9 @@ export default {
72
74
  this.checkLine(0, () => {
73
75
  this.showDialog = true;
74
76
  });
75
- }/* else {
77
+ } else {
76
78
  this.initSystemNoticeInfoDialog();
77
- } */
79
+ }
78
80
  }
79
81
  });
80
82
  },
@@ -115,14 +117,18 @@ export default {
115
117
 
116
118
  },
117
119
  initSystemNoticeInfoDialog() {
120
+ if (!settingConfig.systemNoticeAutoTip) return
121
+ let userFlag = this.$store.getters.userFlag
122
+ if (userFlag == 6 || userFlag == 7 || userFlag == 8) return;
118
123
  this.$http({
119
124
  url: USER_PREFIX + '/system_notice/listPage',
120
- data: {publish: true, important: true, size: 1},
125
+ data: {publish: true, important: true, readed: 0, size: 1},
121
126
  method: 'post',
122
127
  success: res => {
123
128
  this.systemNotices = res.objx && res.objx.records ? res.objx.records : [];
124
129
  let rows = res?.objx?.records || []
125
130
  if (rows.length > 0) {
131
+ this.systemNoticeInfoDialogParam = {publish: true, important: true, readed: 0};
126
132
  this.showSystemNoticeInfoDialog = true;
127
133
  }
128
134
  }
@@ -55,6 +55,30 @@
55
55
  </el-radio-group>
56
56
  </el-form-item>
57
57
  </td>
58
+ <th>
59
+ <em class="f-red">*</em>
60
+ {{ $t1('文件操作,是否发系统通知') }}
61
+ </th>
62
+ <td>
63
+ <el-form-item prop="toNotify" :rules="[{ required: true, trigger: 'blur' }]">
64
+ <el-radio-group v-model="fileStoreArea.toNotify">
65
+ <el-radio :label="1">{{ $t1('是') }}</el-radio>
66
+ <el-radio :label="0">{{ $t1('否') }}</el-radio>
67
+ </el-radio-group>
68
+ </el-form-item>
69
+ </td>
70
+ <th>
71
+ <em class="f-red">*</em>
72
+ {{ $t1('文件下载,是否打水印') }}
73
+ </th>
74
+ <td>
75
+ <el-form-item prop="toDownWatermark" :rules="[{ required: true, trigger: 'blur' }]">
76
+ <el-radio-group v-model="fileStoreArea.toDownWatermark">
77
+ <el-radio :label="1">{{ $t1('是') }}</el-radio>
78
+ <el-radio :label="0">{{ $t1('否') }}</el-radio>
79
+ </el-radio-group>
80
+ </el-form-item>
81
+ </td>
58
82
  </tr>
59
83
  <tr>
60
84
  <th>{{ $t1('备注') }}</th>
@@ -94,7 +118,12 @@ export default {
94
118
  tabIndex: 0,
95
119
  isEdit: false,
96
120
  dataId: '',
97
- fileStoreArea: {storeAreaType: 0, hasAuth: 0},
121
+ fileStoreArea: {
122
+ storeAreaType: 0,
123
+ hasAuth: 0,
124
+ toNotify: 0,
125
+ toDownWatermark: 0
126
+ },
98
127
  };
99
128
  },
100
129
  created() {
@@ -154,6 +154,34 @@ export default {
154
154
  }
155
155
  }
156
156
  },
157
+ {
158
+ field: 'toNotify',
159
+ title: this.$t1('文件操作,是否发系统通知'),
160
+ width: 220,
161
+ slots: {
162
+ default: ({row}) => {
163
+ if (row.toNotify == 1) {
164
+ return [<div class="txt-status">{this.$t1('是')}</div>];
165
+ } else {
166
+ return [<div class="txt-status s-3">{this.$t1('否')}</div>];
167
+ }
168
+ }
169
+ }
170
+ },
171
+ {
172
+ field: 'toDownWatermark',
173
+ title: this.$t1('文件下载,是否打水印'),
174
+ width: 200,
175
+ slots: {
176
+ default: ({row}) => {
177
+ if (row.toDownWatermark == 1) {
178
+ return [<div class="txt-status">{this.$t1('是')}</div>];
179
+ } else {
180
+ return [<div class="txt-status s-3">{this.$t1('否')}</div>];
181
+ }
182
+ }
183
+ }
184
+ },
157
185
  {
158
186
  title: this.$t1('备注'),
159
187
  field: 'note',
@@ -21,6 +21,7 @@ export default {
21
21
  flag: 0,
22
22
  homeContent: null,
23
23
  showHomeContent: false,
24
+ userInfo: {}
24
25
  };
25
26
  },
26
27
  created() {
@@ -33,6 +34,7 @@ export default {
33
34
  method: 'post',
34
35
  success: res => {
35
36
  let userInfo = res.objx;
37
+ this.userInfo = userInfo;
36
38
  let flag = userInfo.flag;
37
39
  if (flag !== 6 && flag !== 7 && flag !== 8) {
38
40
  this.initHome();
@@ -72,8 +74,8 @@ export default {
72
74
  if (menuUrl) {
73
75
  url = menuUrl + '.vue';
74
76
  } else {
75
- let homeConfig = corejsConfig.homeConfig || {}
76
- url = homeConfig.url ? homeConfig.url : '@base/views/user/home/default.vue'
77
+ let defaultHomePage = this.userInfo.defaultHomePage;
78
+ url = defaultHomePage ? defaultHomePage : '@base/views/user/home/default.vue'
77
79
  }
78
80
  if (url.startsWith(str1)) {
79
81
  let a = url.slice(str1.length);
@@ -55,6 +55,25 @@ export default {
55
55
 
56
56
  delete queryParam.urlmobile;
57
57
  delete queryParam.url;
58
+
59
+ if(purl.indexOf('.html')>=0){
60
+ let eUrl = purl;
61
+ let pstr = Object.keys(queryParam).map(key=>{
62
+ return key+"="+queryParam[key]
63
+ }).join("&")
64
+
65
+ if(pstr){
66
+ if(purl.indexOf('.html?')>=0){
67
+ eUrl = eUrl+'&'+pstr
68
+ }else{
69
+ eUrl = eUrl+'?'+pstr
70
+ }
71
+ }
72
+
73
+ location.href = eUrl;
74
+ return
75
+ }
76
+
58
77
  delete queryParam.dataId;
59
78
  delete queryParam.showWfContent;
60
79
  delete queryParam.access_token;
@@ -62,6 +81,8 @@ export default {
62
81
  delete queryParam.thirdparty_info;
63
82
  delete queryParam.i18nLang;
64
83
 
84
+
85
+
65
86
  let url = purl + '.vue';
66
87
  this.queryParam = queryParam;
67
88
  this.showWfContent = true;
@@ -51,6 +51,9 @@ export default {
51
51
  },
52
52
  param: {
53
53
  default: null
54
+ },
55
+ queryParam: {
56
+ default: null
54
57
  }
55
58
  },
56
59
  created() {
@@ -102,7 +105,8 @@ export default {
102
105
  url: url,
103
106
  data: {
104
107
  publish: true,
105
- current: pageNumber
108
+ current: pageNumber,
109
+ ...this.queryParam
106
110
  },
107
111
  success: res => {
108
112
  let page = res.objx;
@@ -121,9 +125,11 @@ export default {
121
125
  });
122
126
  this.currentRow = currentRow;
123
127
  this.currentIndex = currentIndex;
128
+ this.handleRead(this.currentIndex)
124
129
  } else {
125
130
  this.currentIndex = 0;
126
131
  this.currentRow = page.records.length > 0 ? page.records[0] : {};
132
+ this.handleRead(this.currentIndex)
127
133
  }
128
134
  }
129
135
  });
@@ -132,6 +138,24 @@ export default {
132
138
  this.flag = 0;
133
139
  this.currentIndex = index;
134
140
  this.currentRow = item;
141
+ this.handleRead(index)
142
+ },
143
+ handleRead(index, callback) {
144
+ let row = this.page.records[index];
145
+ if (row.readed !== 1) {
146
+ this.$http({
147
+ url: USER_PREFIX + `/system_notice/read`,
148
+ method: `post`,
149
+ data: {id: row.id},
150
+ isLoading: true,
151
+ success: res => {
152
+ row.readed = 1;
153
+ callback && callback()
154
+ }
155
+ });
156
+ } else {
157
+ callback && callback()
158
+ }
135
159
  },
136
160
  initAttachfo() {
137
161
  let id = this.currentRow && this.currentRow.id ? this.currentRow.id : '';