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"
|
aab9afee
monkeyhouyi
时间传值
|
109
110
|
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
|
73755355
monkeyhouyi
优化
|
111
|
type="datetime"
|
ff36c85d
monkeyhouyi
1
|
112
|
:disabled="editType == '已发布并部署'"
|
73755355
monkeyhouyi
优化
|
113
|
placeholder="选择截止时间">
|
ce1de261
monkeyhouyi
专项行动
|
114
|
</el-date-picker>
|
93186f57
monkeyhouyi
前端整改页面
|
115
116
|
</el-form-item>
</el-col>
|
73755355
monkeyhouyi
优化
|
117
|
|
93186f57
monkeyhouyi
前端整改页面
|
118
119
120
|
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
|
ff36c85d
monkeyhouyi
1
|
121
122
123
124
|
<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
前端整改页面
|
125
|
</span>
|
ce1de261
monkeyhouyi
专项行动
|
126
127
128
129
130
131
132
133
134
|
<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
前端整改页面
|
135
|
</el-dialog>
|
4424f41c
monkeyhouyi
网信执法、清单管理静态页面
|
136
137
|
</template>
<script>
|
93186f57
monkeyhouyi
前端整改页面
|
138
|
import request from "@/utils/request";
|
6cd34f81
monkeyhouyi
对接接口优化
|
139
|
import ncc from "@/utils/ncc.js"
|
93186f57
monkeyhouyi
前端整改页面
|
140
141
142
143
144
145
|
import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
import { previewDataInterface } from "@/api/systemData/dataInterface";
export default {
components: {},
props: [],
data() {
|
ff36c85d
monkeyhouyi
1
|
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
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
前端整改页面
|
160
161
162
163
|
return {
loading: false,
visible: false,
isDetail: false,
|
ff36c85d
monkeyhouyi
1
|
164
|
editType: '', // 修改类型
|
93186f57
monkeyhouyi
前端整改页面
|
165
166
167
|
dataForm: {
id: "",
id: undefined,
|
93186f57
monkeyhouyi
前端整改页面
|
168
169
170
|
title: undefined,
content: undefined,
releaseTime: undefined,
|
93186f57
monkeyhouyi
前端整改页面
|
171
172
|
annex: [],
communicationArea: [],
|
ce1de261
monkeyhouyi
专项行动
|
173
|
communicationOut: [],
|
93186f57
monkeyhouyi
前端整改页面
|
174
175
176
177
178
|
state: undefined,
creatorUserId: undefined,
creatorTime: undefined,
lastModifyUserId: undefined,
lastModifyTime: undefined,
|
ce1de261
monkeyhouyi
专项行动
|
179
|
deadline: undefined,
|
2201a66b
monkeyhouyi
专项性行动-首页联动
|
180
|
relationId: undefined,
|
93186f57
monkeyhouyi
前端整改页面
|
181
182
|
},
rules: {
|
ff36c85d
monkeyhouyi
1
|
183
184
185
186
187
188
|
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
前端整改页面
|
189
190
|
},
areaOptions: [],
|
ce1de261
monkeyhouyi
专项行动
|
191
192
193
194
195
|
communicationOutOptions: [],
BaseList:[],
viewportHeight: 0,
nestedPageUrl:"http://8.130.38.56:8043/old/#/onlineDev/webDesign/indexNew",
dialogVisible: false,
|
2201a66b
monkeyhouyi
专项性行动-首页联动
|
196
|
btnLoading: false
|
93186f57
monkeyhouyi
前端整改页面
|
197
198
199
200
201
202
|
};
},
computed: {},
watch: {},
created() {
this.initAreaTypeList();
|
ce1de261
monkeyhouyi
专项行动
|
203
204
205
206
207
|
this.initCommunicationOutOptions();
this.updateViewportHeight();
this.getDataForm();
// 监听窗口大小变化事件
window.addEventListener('resize', this.updateViewportHeight);
|
93186f57
monkeyhouyi
前端整改页面
|
208
209
|
},
mounted() {},
|
ce1de261
monkeyhouyi
专项行动
|
210
211
212
213
|
beforeDestroy() {
// 移除窗口大小变化事件监听器
window.removeEventListener('resize', this.updateViewportHeight);
},
|
93186f57
monkeyhouyi
前端整改页面
|
214
|
methods: {
|
ce1de261
monkeyhouyi
专项行动
|
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
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
专项行动
|
231
232
|
});
},
|
93186f57
monkeyhouyi
前端整改页面
|
233
234
235
236
237
|
async initAreaTypeList() {
let list = this.$store.state.meta.area;
!list && (list = await this.$store.dispatch("getTypeListByCode", "area"));
this.areaOptions = list;
},
|
ce1de261
monkeyhouyi
专项行动
|
238
239
240
241
|
async initCommunicationOutOptions() {
let list = this.$store.state.meta.externalAssistanceList;
!list && (list = await this.$store.dispatch("getTypeListByCode", "externalAssistance"));
this.communicationOutOptions = list;
|
93186f57
monkeyhouyi
前端整改页面
|
242
|
},
|
ce1de261
monkeyhouyi
专项行动
|
243
244
245
246
247
248
249
250
251
252
253
|
// 全选
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
前端整改页面
|
254
|
},
|
ce1de261
monkeyhouyi
专项行动
|
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
|
// 反选
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
前端整改页面
|
272
273
274
|
goBack() {
this.$emit("refresh");
},
|
61009cfc
monkeyhouyi
2024/8/8
|
275
|
init(row, isDetail) {
|
8f1d4460
monkeyhouyi
实现专项行动详情查看
|
276
|
this.dataForm.id = row ? row.id : '';
|
93186f57
monkeyhouyi
前端整改页面
|
277
278
|
this.visible = true;
this.isDetail = isDetail || false;
|
ff36c85d
monkeyhouyi
1
|
279
|
this.editType = row ? row.state : '';
|
93186f57
monkeyhouyi
前端整改页面
|
280
281
|
this.$nextTick(() => {
this.$refs["elForm"].resetFields();
|
61009cfc
monkeyhouyi
2024/8/8
|
282
|
if(this.dataForm.id) {
|
ff36c85d
monkeyhouyi
1
|
283
284
285
286
287
|
request({
url: `/Extend/BaseSpecialAction/${this.dataForm.id} `,
method: "GET",
}).then((res) => {
this.dataForm = res.data;
|
6cd34f81
monkeyhouyi
对接接口优化
|
288
|
this.dataForm.deadline = new Date(ncc.dateFormat(res.data.deadline, 'YYYY-MM-DD HH:mm:ss'));
|
ff36c85d
monkeyhouyi
1
|
289
290
|
this.dataForm.annex = res.data.annex == null ? [] : res.data.annex;
})
|
61009cfc
monkeyhouyi
2024/8/8
|
291
|
}
|
93186f57
monkeyhouyi
前端整改页面
|
292
293
|
});
},
|
ff36c85d
monkeyhouyi
1
|
294
|
dataFormSubmit(type) {
|
ff36c85d
monkeyhouyi
1
|
295
296
297
298
|
this.validateForm(type, () => {
let obj = {
...this.dataForm,
state: type
|
93186f57
monkeyhouyi
前端整改页面
|
299
|
}
|
ff36c85d
monkeyhouyi
1
|
300
301
302
|
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
前端整改页面
|
303
304
|
});
},
|
ff36c85d
monkeyhouyi
1
|
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
348
|
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
前端整改页面
|
349
350
|
},
};
|
ff36c85d
monkeyhouyi
1
|
351
|
|
4424f41c
monkeyhouyi
网信执法、清单管理静态页面
|
352
|
</script>
|
ce1de261
monkeyhouyi
专项行动
|
353
|
<style lang="scss" scoped>
|
21303a31
monkeyhouyi
修改设计表单页面(由于admin账...
|
354
355
356
357
358
|
.zxDialog {
:deep(.el-dialog__body) {
max-height: 90vh !important;
}
}
|
ce1de261
monkeyhouyi
专项行动
|
359
|
</style>
|