4424f41c
monkeyhouyi
网信执法、清单管理静态页面
|
1
|
<template>
|
93186f57
monkeyhouyi
前端整改页面
|
2
3
4
5
6
7
|
<el-dialog
:title="!dataForm.id ? '新建' : isDetail ? '详情' : '编辑'"
:close-on-click-modal="false"
:visible.sync="visible"
class="NCC-dialog NCC-dialog_center"
lock-scroll
|
73755355
monkeyhouyi
优化
|
8
|
width="60%"
|
61009cfc
monkeyhouyi
2024/8/8
|
9
|
v-loading="loading"
|
93186f57
monkeyhouyi
前端整改页面
|
10
|
>
|
87e6927c
monkeyhouyi
弹框样式
|
11
|
<el-row :gutter="15" class="NCC-dialog-content">
|
93186f57
monkeyhouyi
前端整改页面
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<el-form
ref="elForm"
:model="dataForm"
size="small"
label-width="100px"
label-position="right"
:disabled="!!isDetail"
:rules="rules"
>
<el-col :span="23" v-if="false">
<el-form-item label="主键" prop="id">
<el-input
v-model="dataForm.id"
placeholder="请输入"
clearable
:style="{ width: '100%' }"
>
</el-input>
</el-form-item>
</el-col>
|
ff36c85d
monkeyhouyi
1
|
32
|
<el-col :span="23" v-if="ncc.hasFormP('title')">
|
93186f57
monkeyhouyi
前端整改页面
|
33
34
35
36
37
38
39
40
41
42
43
|
<el-form-item label="标题" prop="title">
<el-input
v-model="dataForm.title"
placeholder="请输入"
clearable
required
:style="{ width: '100%' }"
>
</el-input>
</el-form-item>
</el-col>
|
ff36c85d
monkeyhouyi
1
|
44
|
<el-col :span="23" v-if="ncc.hasFormP('content')">
|
ce1de261
monkeyhouyi
专项行动
|
45
|
<el-form-item label="内容" prop="content">
|
73755355
monkeyhouyi
优化
|
46
47
|
<NCC-Quill v-model="dataForm.content" placeholder="请输入内容...">
</NCC-Quill>
|
ce1de261
monkeyhouyi
专项行动
|
48
49
|
</el-form-item>
</el-col>
|
ff36c85d
monkeyhouyi
1
|
50
|
<el-col :span="23" v-if="ncc.hasFormP('annex')">
|
93186f57
monkeyhouyi
前端整改页面
|
51
52
53
54
55
56
57
58
59
60
61
|
<el-form-item label="附件" prop="annex">
<NCC-UploadFz
v-model="dataForm.annex"
:fileSize="5"
sizeUnit="MB"
:limit="9"
buttonText="点击上传"
>
</NCC-UploadFz>
</el-form-item>
</el-col>
|
fcbf44a0
monkeyhouyi
1
|
62
|
<el-col :span="23" v-if="ncc.hasFormP('communicationArea')">
|
93186f57
monkeyhouyi
前端整改页面
|
63
64
65
66
67
68
|
<el-form-item label="传达区域" prop="communicationArea">
<el-checkbox-group v-model="dataForm.communicationArea" :style="{}">
<el-checkbox
v-for="(item, index) in areaOptions"
:key="index"
:label="item.id"
|
ff36c85d
monkeyhouyi
1
|
69
|
:disabled="editType == '已发布并部署' || editType == '已发布'"
|
93186f57
monkeyhouyi
前端整改页面
|
70
71
72
|
>{{ item.fullName }}</el-checkbox
>
</el-checkbox-group>
|
ff36c85d
monkeyhouyi
1
|
73
|
<div style="margin-top: 10px" v-if="!editType || editType == '已存档'">
|
ce1de261
monkeyhouyi
专项行动
|
74
75
|
<el-button size="mini" @click="selectAreaAll('area')">全选</el-button>
<el-button size="mini" @click="closeAreaAll('area')">反选</el-button>
|
93186f57
monkeyhouyi
前端整改页面
|
76
77
78
|
</div>
</el-form-item>
</el-col>
|
fcbf44a0
monkeyhouyi
1
|
79
|
<el-col :span="23" v-if="ncc.hasFormP('communicationOut')">
|
ce1de261
monkeyhouyi
专项行动
|
80
81
|
<el-form-item label="传达外协" prop="communicationOut">
<el-checkbox-group v-model="dataForm.communicationOut" :style="{}">
|
93186f57
monkeyhouyi
前端整改页面
|
82
|
<el-checkbox
|
ce1de261
monkeyhouyi
专项行动
|
83
|
v-for="(item, index) in communicationOutOptions"
|
93186f57
monkeyhouyi
前端整改页面
|
84
85
|
:key="index"
:label="item.id"
|
ff36c85d
monkeyhouyi
1
|
86
|
:disabled="editType == '已发布并部署' || editType == '已发布'"
|
93186f57
monkeyhouyi
前端整改页面
|
87
88
89
|
>{{ item.fullName }}</el-checkbox
>
</el-checkbox-group>
|
ff36c85d
monkeyhouyi
1
|
90
|
<div style="margin-top: 10px" v-if="!editType || editType == '已存档'">
|
ce1de261
monkeyhouyi
专项行动
|
91
92
93
94
95
|
<el-button size="mini" @click="selectAreaAll">全选</el-button>
<el-button size="mini" @click="closeAreaAll">反选</el-button>
</div>
</el-form-item>
</el-col>
|
ff36c85d
monkeyhouyi
1
|
96
|
<el-col :span="23" v-if="ncc.hasFormP('relationId')">
|
ce1de261
monkeyhouyi
专项行动
|
97
|
<el-form-item label="填报表单" prop="relationId">
|
ff36c85d
monkeyhouyi
1
|
98
|
<el-select v-model="dataForm.relationId" placeholder="请选择专项行动填报表单" style="margin-right: 10px;width: 300px;" :disabled="editType == '已发布并部署'">
|
ce1de261
monkeyhouyi
专项行动
|
99
100
101
102
103
104
|
<el-option v-for="item in BaseList" :key="item.id" :label="item.fullName" :value="item.id">
</el-option>
</el-select>
<el-button size="mini" type="text" @click="dialogVisible = true">没有找到表单?点击设计表单</el-button>
</el-form-item>
</el-col>
|
ff36c85d
monkeyhouyi
1
|
105
|
<el-col :span="23" v-if="ncc.hasFormP('deadline')">
|
73755355
monkeyhouyi
优化
|
106
|
<el-form-item label="截止时间" prop="deadline">
|
ce1de261
monkeyhouyi
专项行动
|
107
108
|
<el-date-picker
v-model="dataForm.deadline"
|
73755355
monkeyhouyi
优化
|
109
|
type="datetime"
|
ff36c85d
monkeyhouyi
1
|
110
|
:disabled="editType == '已发布并部署'"
|
73755355
monkeyhouyi
优化
|
111
|
placeholder="选择截止时间">
|
ce1de261
monkeyhouyi
专项行动
|
112
|
</el-date-picker>
|
93186f57
monkeyhouyi
前端整改页面
|
113
114
|
</el-form-item>
</el-col>
|
73755355
monkeyhouyi
优化
|
115
|
|
93186f57
monkeyhouyi
前端整改页面
|
116
117
118
|
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
|
ff36c85d
monkeyhouyi
1
|
119
120
121
122
|
<el-button type="primary" @click="visible = false">取 消</el-button>
<el-button type="primary" @click="dataFormSubmit(0)" v-if="!isDetail" :loading="btnLoading">保 存</el-button>
<el-button type="primary" @click="dataFormSubmit(1)" v-if="!isDetail" :loading="btnLoading">发 布</el-button>
<el-button type="primary" @click="dataFormSubmit(2)" v-if="!isDetail" :loading="btnLoading">发布并反馈</el-button>
|
93186f57
monkeyhouyi
前端整改页面
|
123
|
</span>
|
ce1de261
monkeyhouyi
专项行动
|
124
125
126
127
128
129
130
131
132
|
<el-dialog class="zxDialog" title="专项行动表单设计" :visible.sync="dialogVisible" fullscreen @close="handleClose" :modal="false">
<iframe
:src="nestedPageUrl"
width="100%"
:height="viewportHeight - 58 + 'px'"
frameborder="0"
allowfullscreen>
</iframe>
</el-dialog>
|
93186f57
monkeyhouyi
前端整改页面
|
133
|
</el-dialog>
|
4424f41c
monkeyhouyi
网信执法、清单管理静态页面
|
134
135
|
</template>
<script>
|
93186f57
monkeyhouyi
前端整改页面
|
136
137
138
139
140
141
142
|
import request from "@/utils/request";
import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
import { previewDataInterface } from "@/api/systemData/dataInterface";
export default {
components: {},
props: [],
data() {
|
ff36c85d
monkeyhouyi
1
|
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
var validatecommunicationArea = (rule, value, callback) => {
if (!this.dataForm.communicationOut.length && !value.length) {
callback(new Error('传输区域和传输外协不能同时为空!'));
} else {
callback();
}
};
var validatecommunicationOut = (rule, value, callback) => {
if (!this.dataForm.communicationArea.length && !value.length) {
callback(new Error('传输区域和传输外协不能同时为空!'));
} else {
callback();
}
};
|
93186f57
monkeyhouyi
前端整改页面
|
157
158
159
160
|
return {
loading: false,
visible: false,
isDetail: false,
|
ff36c85d
monkeyhouyi
1
|
161
|
editType: '', // 修改类型
|
93186f57
monkeyhouyi
前端整改页面
|
162
163
164
|
dataForm: {
id: "",
id: undefined,
|
93186f57
monkeyhouyi
前端整改页面
|
165
166
167
|
title: undefined,
content: undefined,
releaseTime: undefined,
|
93186f57
monkeyhouyi
前端整改页面
|
168
169
|
annex: [],
communicationArea: [],
|
ce1de261
monkeyhouyi
专项行动
|
170
|
communicationOut: [],
|
93186f57
monkeyhouyi
前端整改页面
|
171
172
173
174
175
|
state: undefined,
creatorUserId: undefined,
creatorTime: undefined,
lastModifyUserId: undefined,
lastModifyTime: undefined,
|
ce1de261
monkeyhouyi
专项行动
|
176
|
deadline: undefined,
|
2201a66b
monkeyhouyi
专项性行动-首页联动
|
177
|
relationId: undefined,
|
93186f57
monkeyhouyi
前端整改页面
|
178
179
|
},
rules: {
|
ff36c85d
monkeyhouyi
1
|
180
181
182
183
184
185
|
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
content: [{ required: true, message: "请输入内容", trigger: "blur" }],
communicationArea: [{validator: validatecommunicationArea, trigger: 'blur'}],
communicationOut: [{validator: validatecommunicationOut, trigger: 'blur'}],
relationId: [{ required: true, message: "请选择专项行动填报表单", trigger: "blur"}],
deadline: [{ required: true, message: "请选择截止日期", trigger: "blur" }],
|
93186f57
monkeyhouyi
前端整改页面
|
186
187
|
},
areaOptions: [],
|
ce1de261
monkeyhouyi
专项行动
|
188
189
190
191
192
|
communicationOutOptions: [],
BaseList:[],
viewportHeight: 0,
nestedPageUrl:"http://8.130.38.56:8043/old/#/onlineDev/webDesign/indexNew",
dialogVisible: false,
|
2201a66b
monkeyhouyi
专项性行动-首页联动
|
193
|
btnLoading: false
|
93186f57
monkeyhouyi
前端整改页面
|
194
195
196
197
198
199
|
};
},
computed: {},
watch: {},
created() {
this.initAreaTypeList();
|
ce1de261
monkeyhouyi
专项行动
|
200
201
202
203
204
|
this.initCommunicationOutOptions();
this.updateViewportHeight();
this.getDataForm();
// 监听窗口大小变化事件
window.addEventListener('resize', this.updateViewportHeight);
|
93186f57
monkeyhouyi
前端整改页面
|
205
206
|
},
mounted() {},
|
ce1de261
monkeyhouyi
专项行动
|
207
208
209
210
|
beforeDestroy() {
// 移除窗口大小变化事件监听器
window.removeEventListener('resize', this.updateViewportHeight);
},
|
93186f57
monkeyhouyi
前端整改页面
|
211
|
methods: {
|
ce1de261
monkeyhouyi
专项行动
|
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
updateViewportHeight() {
// 获取页面显示高度
this.viewportHeight = window.innerHeight || document.documentElement.clientHeight;
},
handleClose() {
// 这里是对话框关闭后需要执行的代码
this.getDataForm();
// 例如,你可以在这里添加任何其他的逻辑
},
//查询表单
getDataForm() {
request({
url: "/visualdev/Base?type=1",
method: "get",
}).then((res) => {
this.BaseList = res.data.list[0].children;
|
ce1de261
monkeyhouyi
专项行动
|
228
229
|
});
},
|
93186f57
monkeyhouyi
前端整改页面
|
230
231
232
233
234
|
async initAreaTypeList() {
let list = this.$store.state.meta.area;
!list && (list = await this.$store.dispatch("getTypeListByCode", "area"));
this.areaOptions = list;
},
|
ce1de261
monkeyhouyi
专项行动
|
235
236
237
238
|
async initCommunicationOutOptions() {
let list = this.$store.state.meta.externalAssistanceList;
!list && (list = await this.$store.dispatch("getTypeListByCode", "externalAssistance"));
this.communicationOutOptions = list;
|
93186f57
monkeyhouyi
前端整改页面
|
239
|
},
|
ce1de261
monkeyhouyi
专项行动
|
240
241
242
243
244
245
246
247
248
249
250
|
// 全选
selectAreaAll(type) {
if(type == 'area') {
this.dataForm.communicationArea = this.areaOptions.map(
(option) => option.id
);
} else {
this.dataForm.communicationOut = this.communicationOutOptions.map(
(option) => option.id
);
}
|
93186f57
monkeyhouyi
前端整改页面
|
251
|
},
|
ce1de261
monkeyhouyi
专项行动
|
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
// 反选
closeAreaAll(type) {
if(type == 'area') {
this.dataForm.communicationArea = this.areaOptions
.filter(
(option) => !this.dataForm.communicationArea.includes(option.id)
)
.map((option) => option.id);
} else {
this.dataForm.communicationOut = this.communicationOutOptions
.filter(
(option) => !this.dataForm.communicationOut.includes(option.id)
)
.map((option) => option.id);
}
},
|
93186f57
monkeyhouyi
前端整改页面
|
269
270
271
|
goBack() {
this.$emit("refresh");
},
|
61009cfc
monkeyhouyi
2024/8/8
|
272
|
init(row, isDetail) {
|
8f1d4460
monkeyhouyi
实现专项行动详情查看
|
273
|
this.dataForm.id = row ? row.id : '';
|
93186f57
monkeyhouyi
前端整改页面
|
274
275
|
this.visible = true;
this.isDetail = isDetail || false;
|
ff36c85d
monkeyhouyi
1
|
276
|
this.editType = row ? row.state : '';
|
93186f57
monkeyhouyi
前端整改页面
|
277
278
|
this.$nextTick(() => {
this.$refs["elForm"].resetFields();
|
61009cfc
monkeyhouyi
2024/8/8
|
279
|
if(this.dataForm.id) {
|
ff36c85d
monkeyhouyi
1
|
280
281
282
283
284
285
286
|
request({
url: `/Extend/BaseSpecialAction/${this.dataForm.id} `,
method: "GET",
}).then((res) => {
this.dataForm = res.data;
this.dataForm.annex = res.data.annex == null ? [] : res.data.annex;
})
|
61009cfc
monkeyhouyi
2024/8/8
|
287
|
}
|
93186f57
monkeyhouyi
前端整改页面
|
288
289
|
});
},
|
ff36c85d
monkeyhouyi
1
|
290
|
dataFormSubmit(type) {
|
73755355
monkeyhouyi
优化
|
291
292
293
|
console.log(this.dataForm);
return
|
ff36c85d
monkeyhouyi
1
|
294
295
296
297
|
this.validateForm(type, () => {
let obj = {
...this.dataForm,
state: type
|
93186f57
monkeyhouyi
前端整改页面
|
298
|
}
|
ff36c85d
monkeyhouyi
1
|
299
300
301
|
let url = !this.dataForm.id ? '/Extend/BaseSpecialAction/Release' : '/Extend/BaseSpecialAction/Update';
let method = !this.dataForm.id ? 'PUT' : 'POST';
this.toPostForm(url, method, obj);
|
93186f57
monkeyhouyi
前端整改页面
|
302
303
|
});
},
|
ff36c85d
monkeyhouyi
1
|
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
|
validateForm(type, callback) {
let list = ['title', 'content'];
switch (type) {
case 0:
list = ['title', 'content'];
break;
case 1:
list = ['title', 'content', 'communicationArea', 'communicationOut'];
break;
case 2:
list = ['title', 'content', 'communicationArea', 'communicationOut', 'relationId', 'deadline'];
break;
default:
break;
}
let Promises = list.map(v => new Promise((resolve, reject) => this.$refs["elForm"].validateField(v, err => resolve(err))));
Promise.all(Promises).then(values => {
if(values.filter(item =>item).length) {
return
} else {
callback && callback(values);
}
});
},
toPostForm(url, method, obj, callback) {
this.btnLoading = true;
request({
url,
method,
data: obj,
}).then((res) => {
this.$message({
message: res.msg,
type: "success",
duration: 1000,
onClose: () => {
callback && callback();
this.btnLoading = false;
(this.visible = false), this.$emit("refresh", true);
},
});
}).catch(() => this.btnLoading = false);
}
|
93186f57
monkeyhouyi
前端整改页面
|
348
349
|
},
};
|
ff36c85d
monkeyhouyi
1
|
350
|
|
4424f41c
monkeyhouyi
网信执法、清单管理静态页面
|
351
|
</script>
|
ce1de261
monkeyhouyi
专项行动
|
352
|
<style lang="scss" scoped>
|
ce1de261
monkeyhouyi
专项行动
|
353
|
</style>
|