cloud-web-corejs 1.0.57 → 1.0.59
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 +1 -1
- package/src/components/fileLibrary/fileObjAuthDialog.vue +125 -103
- package/src/components/fileLibrary/fileObjAuthEditDialog.vue +6 -1
- package/src/components/fileLibrary/fileObjNotifyEdit.vue +192 -0
- package/src/components/fileLibrary/index.vue +2 -2
- package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +29 -7
- package/src/components/fileLibrary/mixins/fileObjAuthEditDialogMixin.js +4 -1
- package/src/components/fileLibrary/mixins/fileObjAuthEditMixin.js +1 -1
- package/src/components/fileLibrary/mixins/indexMixins.js +18 -0
- package/src/layout/components/notify_message/unreadDialog.vue +11 -5
- package/src/views/user/file_type/edit.vue +30 -1
- package/src/views/user/file_type/list.vue +28 -0
- package/src/views/user/home/index.vue +4 -2
- package/src/views/user/outLink/view.vue +21 -0
- package/src/views/user/system_notice/infoDialog.vue +25 -1
package/package.json
CHANGED
@@ -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
|
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
|
-
|
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
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
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
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
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
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
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,192 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="detail-wrap" style="margin: -6px -8px;">
|
3
|
+
<el-form ref="editForm" :model="fileObjNotify">
|
4
|
+
<div class="d-header clearfix">
|
5
|
+
<div class="fl">
|
6
|
+
<i class="el-icon-info"/>
|
7
|
+
<!--{{ isEdit ? $t1('查看文件对象通知设置') : $t1('新增文件对象通知设置') }}-->
|
8
|
+
{{ $t1('文件操作 - 发系统通知设置') }}
|
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>
|
26
|
+
<el-radio :label="0">{{ $t1('不发系统通知') }}</el-radio>
|
27
|
+
</div>
|
28
|
+
<div>
|
29
|
+
<el-radio :label="1">{{ $t1('针对当前文件夹中的文件操作') }}</el-radio>
|
30
|
+
</div>
|
31
|
+
<div>
|
32
|
+
<el-radio :label="2">{{ $t1('当前文件夹与下级所有文件夹的文件进行了操作,发系统通知') }}</el-radio>
|
33
|
+
</div>
|
34
|
+
</el-radio-group>
|
35
|
+
</el-form-item>
|
36
|
+
</div>
|
37
|
+
<div class="d-item d-i-right">
|
38
|
+
<div class="d-i-tit">
|
39
|
+
{{ $t1('不同的文件操作类型,设置对应的系统通知模板') }}
|
40
|
+
</div>
|
41
|
+
<el-form-item prop="addNtCode" :rules="[{ required: false, trigger: 'blur' }]"
|
42
|
+
:label="$t1('新增文件-通知模板编码')">
|
43
|
+
<el-input type="text" autocomplete="off" v-model="fileObjNotify.addNtCode" clearable/>
|
44
|
+
</el-form-item>
|
45
|
+
<el-form-item prop="deleteNtCode" :rules="[{ required: false, trigger: 'blur' }]"
|
46
|
+
:label="$t1('删除文件-通知模板编码')">
|
47
|
+
<el-input type="text" autocomplete="off" v-model="fileObjNotify.deleteNtCode" clearable/>
|
48
|
+
</el-form-item>
|
49
|
+
<el-form-item prop="replaceNtCode" :rules="[{ required: false, trigger: 'blur' }]"
|
50
|
+
:label="$t1('替换文件-通知模板编码')">
|
51
|
+
<el-input type="text" autocomplete="off" v-model="fileObjNotify.replaceNtCode" clearable/>
|
52
|
+
</el-form-item>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
<div class="tips">{{
|
56
|
+
$t1('注:删除文件发通知,包括从当前文件夹移动、删除文件。 新增文件发通知,包括上传、复制、移动、从回收站还原文件到当前文件夹下。')
|
57
|
+
}}
|
58
|
+
</div>
|
59
|
+
</el-form>
|
60
|
+
</div>
|
61
|
+
</template>
|
62
|
+
|
63
|
+
<script>
|
64
|
+
export default {
|
65
|
+
name: 'fileObjNotifyEdit',
|
66
|
+
props: {
|
67
|
+
_dataId: [String, Number],
|
68
|
+
current_prefix: String
|
69
|
+
},
|
70
|
+
components: {},
|
71
|
+
data() {
|
72
|
+
return {
|
73
|
+
isEdit: false,
|
74
|
+
tabIndex: 'first',
|
75
|
+
dataId: '',
|
76
|
+
fileObjNotify: {
|
77
|
+
toNotify: 0,
|
78
|
+
fileObjId: this._dataId
|
79
|
+
}
|
80
|
+
};
|
81
|
+
},
|
82
|
+
created() {
|
83
|
+
if (this._dataId && !isNaN(this._dataId)) this.dataId = this._dataId;
|
84
|
+
},
|
85
|
+
mounted() {
|
86
|
+
this.getData();
|
87
|
+
},
|
88
|
+
methods: {
|
89
|
+
getData() {
|
90
|
+
if (this.dataId && !isNaN(this.dataId)) {
|
91
|
+
|
92
|
+
this.$commonHttp({
|
93
|
+
url: this.current_prefix + `/file_obj_notify/get`,
|
94
|
+
method: `post`,
|
95
|
+
data: {
|
96
|
+
id: this.dataId
|
97
|
+
},
|
98
|
+
isLoading: true,
|
99
|
+
modalStrictly: true,
|
100
|
+
success: res => {
|
101
|
+
if (res.objx) {
|
102
|
+
this.fileObjNotify = res.objx;
|
103
|
+
this.isEdit = true;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
});
|
107
|
+
}
|
108
|
+
},
|
109
|
+
saveData() {
|
110
|
+
this.$refs.editForm.$baseValidate(valid => {
|
111
|
+
if (valid) {
|
112
|
+
this.$baseConfirm(this.$t1('您确定要保存吗?')).then(() => {
|
113
|
+
var url = this.current_prefix + `/file_obj_notify/save`;
|
114
|
+
this.$http({
|
115
|
+
url: url,
|
116
|
+
method: `post`,
|
117
|
+
data: this.fileObjNotify,
|
118
|
+
isLoading: true,
|
119
|
+
success: res => {
|
120
|
+
this.$message({
|
121
|
+
message: res.content,
|
122
|
+
type: 'success',
|
123
|
+
duration: 500,
|
124
|
+
onClose: t => {
|
125
|
+
this.$baseReload();
|
126
|
+
}
|
127
|
+
});
|
128
|
+
}
|
129
|
+
});
|
130
|
+
});
|
131
|
+
}
|
132
|
+
});
|
133
|
+
}
|
134
|
+
}
|
135
|
+
};
|
136
|
+
</script>
|
137
|
+
<style scoped lang="scss">
|
138
|
+
.noTr th {
|
139
|
+
height: 0px
|
140
|
+
}
|
141
|
+
|
142
|
+
.noTr td {
|
143
|
+
height: 0px
|
144
|
+
}
|
145
|
+
|
146
|
+
.d-cont {
|
147
|
+
display: flex;
|
148
|
+
margin: -11px -12px;
|
149
|
+
|
150
|
+
.d-i-left, .d-i-right {
|
151
|
+
border: none !important;
|
152
|
+
padding: 24px 18px 24px 14px !important
|
153
|
+
}
|
154
|
+
|
155
|
+
.d-i-left {
|
156
|
+
width: 420px;
|
157
|
+
}
|
158
|
+
|
159
|
+
.d-i-tit {
|
160
|
+
background: #f7f7f7;
|
161
|
+
line-height: 36px;
|
162
|
+
padding: 0 10px;
|
163
|
+
margin-bottom: 16px;
|
164
|
+
font-size: 13px
|
165
|
+
}
|
166
|
+
|
167
|
+
.d-i-right {
|
168
|
+
border-left: solid 1px #e9e9e9 !important;
|
169
|
+
flex: 1;
|
170
|
+
padding-left: 32px !important;
|
171
|
+
|
172
|
+
::v-deep .el-form-item {
|
173
|
+
margin-bottom: 16px;
|
174
|
+
|
175
|
+
.el-form-item__content {
|
176
|
+
.el-input {
|
177
|
+
width: 360px !important;
|
178
|
+
}
|
179
|
+
}
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
.tips {
|
185
|
+
margin-top: -156px;
|
186
|
+
background: #FFF;
|
187
|
+
position: relative;
|
188
|
+
line-height: 40px;
|
189
|
+
border-top: solid 1px #eee;
|
190
|
+
padding-left: 12px;
|
191
|
+
}
|
192
|
+
</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="
|
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="
|
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: '
|
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() {
|
@@ -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
|
-
}
|
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: {
|
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
|
76
|
-
url =
|
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 : '';
|