be009217
monkeyhouyi
处理,通知公告,任务中心
|
1
|
<template>
|
5a14192c
monkeyhouyi
1
|
2
3
4
5
6
7
8
9
|
<el-dialog
:title="isDetail ? '通知详情' : '发布通知'"
:close-on-click-modal="false"
:visible.sync="visible"
class="NCC-dialog NCC-dialog_center msg-dialog"
lock-scroll
width="50%"
>
|
e4af99a2
monkeyhouyi
1
|
10
|
<div style="padding-top: 10px" v-if="!isDetail">
|
5a14192c
monkeyhouyi
1
|
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
|
<el-form
ref="elForm"
:model="dataForm"
size="small"
label-width="80px"
label-position="right"
:disabled="!!isDetail"
:rules="rules"
>
<el-col :span="24">
<el-form-item label="通知标题" prop="title">
<el-input v-model="dataForm.title"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="内容" prop="bodyContent">
<NCC-Quill
v-model="dataForm.bodyContent"
placeholder="请输入内容..."
:disabled="!!isDetail"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="附件上传" prop="imgUrl">
<NCC-UploadFz
v-model="dataForm.imgUrl"
:fileSize="5"
sizeUnit="MB"
:limit="9"
buttonText="点击上传"
/>
</el-form-item>
</el-col>
<el-col :span="24">
|
fcbf44a0
monkeyhouyi
1
|
46
47
|
<el-form-item label="传达区域" prop="communicationAreas">
<el-checkbox-group v-model="dataForm.communicationAreas" :style="{}">
|
5a14192c
monkeyhouyi
1
|
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
<el-checkbox
v-for="(item, index) in areaOptions"
:key="index"
:label="item.id"
>{{ item.fullName }}</el-checkbox
>
</el-checkbox-group>
<div style="margin-top: 10px">
<el-button size="mini" @click="selectAreaAll('area')"
>全选</el-button
>
<el-button size="mini" @click="closeAreaAll('area')"
>反选</el-button
>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
|
fcbf44a0
monkeyhouyi
1
|
66
67
|
<el-form-item label="传达外协" prop="communicationOuts">
<el-checkbox-group v-model="dataForm.communicationOuts" :style="{}">
|
5a14192c
monkeyhouyi
1
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
<el-checkbox
v-for="(item, index) in communicationOutOptions"
:key="index"
:label="item.id"
>{{ item.fullName }}</el-checkbox
>
</el-checkbox-group>
<div style="margin-top: 10px">
<el-button size="mini" @click="selectAreaAll">全选</el-button>
<el-button size="mini" @click="closeAreaAll">反选</el-button>
</div>
</el-form-item>
</el-col>
</el-form>
|
e4af99a2
monkeyhouyi
1
|
82
83
|
</div>
<div
|
5a14192c
monkeyhouyi
1
|
84
85
86
87
|
style="padding-top: 10px"
class="msg-box"
v-loading="loading"
v-else
|
be009217
monkeyhouyi
处理,通知公告,任务中心
|
88
|
>
|
5a14192c
monkeyhouyi
1
|
89
90
91
|
<div class="msg-title">{{ dataForm.title }}</div>
<div class="content" v-html="dataForm.bodyContent"></div>
<div class="files"></div>
|
e4af99a2
monkeyhouyi
1
|
92
|
</div>
|
5a14192c
monkeyhouyi
1
|
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
|
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取 消</el-button>
<el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"
>确 定</el-button
>
</span>
</el-dialog>
</template>
<script>
import request from "@/utils/request";
export default {
components: {},
props: [],
data() {
return {
loading: false,
visible: false,
isDetail: false,
dataForm: {
id: "",
title: "",
bodyContent: "",
imgUrl: [],
categoryId: "cc225c68421644f79037aaf624ccccc0",
isType: "0",
|
fcbf44a0
monkeyhouyi
1
|
118
119
|
communicationAreas: [],
communicationOuts: [],
|
5a14192c
monkeyhouyi
1
|
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
},
rules: {
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
bodyContent: [
{ required: true, message: "请输入内容", trigger: "blur" },
],
},
areaOptions: [],
communicationOutOptions: [],
};
},
computed: {},
watch: {},
created() {
this.initAreaTypeList();
this.initCommunicationOutOptions();
},
mounted() {},
beforeDestroy() {},
methods: {
goBack() {
this.$emit("refresh");
|
be009217
monkeyhouyi
处理,通知公告,任务中心
|
142
|
},
|
5a14192c
monkeyhouyi
1
|
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
init(id, isDetail) {
this.dataForm.id = id || 0;
this.visible = true;
this.isDetail = isDetail || false;
this.$nextTick(() => {
!this.dataForm.id && this.$refs["elForm"].resetFields();
if (this.dataForm.id) {
this.loading = true;
request({
url: `/SubDev/ZyOaArticle/${this.dataForm.id}`,
method: "GET",
}).then((res) => {
this.dataForm = res.data;
this.loading = false;
});
}
});
|
be009217
monkeyhouyi
处理,通知公告,任务中心
|
160
|
},
|
5a14192c
monkeyhouyi
1
|
161
162
163
164
|
async initAreaTypeList() {
let list = this.$store.state.meta.area;
!list && (list = await this.$store.dispatch("getTypeListByCode", "area"));
this.areaOptions = list;
|
be009217
monkeyhouyi
处理,通知公告,任务中心
|
165
|
},
|
5a14192c
monkeyhouyi
1
|
166
167
168
169
170
171
172
173
|
async initCommunicationOutOptions() {
let list = this.$store.state.meta.externalAssistanceList;
!list &&
(list = await this.$store.dispatch(
"getTypeListByCode",
"externalAssistance"
));
this.communicationOutOptions = list;
|
be009217
monkeyhouyi
处理,通知公告,任务中心
|
174
|
},
|
5a14192c
monkeyhouyi
1
|
175
176
177
|
// 全选
selectAreaAll(type) {
if (type == "area") {
|
fcbf44a0
monkeyhouyi
1
|
178
|
this.dataForm.communicationAreas = this.areaOptions.map(
|
5a14192c
monkeyhouyi
1
|
179
180
181
|
(option) => option.id
);
} else {
|
fcbf44a0
monkeyhouyi
1
|
182
|
this.dataForm.communicationOuts = this.communicationOutOptions.map(
|
5a14192c
monkeyhouyi
1
|
183
184
185
186
187
188
189
|
(option) => option.id
);
}
},
// 反选
closeAreaAll(type) {
if (type == "area") {
|
fcbf44a0
monkeyhouyi
1
|
190
|
this.dataForm.communicationAreas = this.areaOptions
|
5a14192c
monkeyhouyi
1
|
191
|
.filter(
|
fcbf44a0
monkeyhouyi
1
|
192
|
(option) => !this.dataForm.communicationAreas.includes(option.id)
|
5a14192c
monkeyhouyi
1
|
193
194
195
|
)
.map((option) => option.id);
} else {
|
fcbf44a0
monkeyhouyi
1
|
196
|
this.dataForm.communicationOuts = this.communicationOutOptions
|
5a14192c
monkeyhouyi
1
|
197
|
.filter(
|
fcbf44a0
monkeyhouyi
1
|
198
|
(option) => !this.dataForm.communicationOuts.includes(option.id)
|
5a14192c
monkeyhouyi
1
|
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
)
.map((option) => option.id);
}
},
dataFormSubmit() {
this.$refs["elForm"].validate((valid) => {
if (valid) {
request({
url: `/SubDev/ZyOaArticle`,
method: "post",
data: this.dataForm,
}).then((res) => {
this.$message({
message: res.msg,
type: "success",
duration: 1000,
onClose: () => {
(this.visible = false), this.$emit("refresh", true);
},
});
});
}
});
},
},
};
</script>
<style lang="scss" scoped>
|
5a14192c
monkeyhouyi
1
|
227
228
229
230
231
232
233
234
235
|
.msg-box {
.msg-title {
text-align: center;
font-size: 14px;
font-weight: 700;
line-height: 30px;
border-bottom: #e8e8e8 1px solid;
margin-bottom: 8px;
color: #000;
|
be009217
monkeyhouyi
处理,通知公告,任务中心
|
236
|
}
|
5a14192c
monkeyhouyi
1
|
237
238
|
}
</style>
|