|
@@ -21,10 +21,10 @@
|
|
<div class="send-statistics">
|
|
<div class="send-statistics">
|
|
<el-row :gutter="24">
|
|
<el-row :gutter="24">
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
- <p>选择人数 {{ totalPeople }}</p>
|
|
|
|
|
|
+ <p>选择人数 {{ formData.user_count }}</p>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
- <p>成功 {{ successCount }} | 失败 {{ failureCount }} | 发送中 {{ sendingCount }}</p>
|
|
|
|
|
|
+ <p>成功 {{ formData.user_ok_count }} | 失败 {{ formData.user_err_count }} | 发送中 {{ formData.user_sending_count }}</p>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<p>反馈 {{ feedbackCount }} | 未反馈 {{ unresponsiveCount }}</p>
|
|
<p>反馈 {{ feedbackCount }} | 未反馈 {{ unresponsiveCount }}</p>
|
|
@@ -46,35 +46,30 @@
|
|
<h4>信息内容</h4>
|
|
<h4>信息内容</h4>
|
|
<div class="box1">
|
|
<div class="box1">
|
|
<el-form-item label="标题:" prop="title">
|
|
<el-form-item label="标题:" prop="title">
|
|
- <el-input v-model="formData.title" placeholder="请输入标题" style="width: 468px !important" />
|
|
|
|
|
|
+ <el-input v-model="formData.title" disabled placeholder="请输入标题" style="width: 468px !important" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="发布单位:" prop="publishUnit">
|
|
|
|
- <el-input v-model="formData.publishUnit" placeholder="请输入发布单位" style="width: 468px !important" />
|
|
|
|
|
|
+ <el-form-item label="发布单位:" prop="publish_group">
|
|
|
|
+ <el-input v-model="formData.publish_group" disabled placeholder="请输入发布单位" style="width: 468px !important" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="信息模板:" prop="templateType">
|
|
|
|
- <el-radio-group v-model="formData.templateType">
|
|
|
|
|
|
+ <el-form-item label="信息模板:" prop="template_id">
|
|
|
|
+ <el-radio-group v-model="formData.template_id" disabled>
|
|
<el-radio label="预设模板">预设模板</el-radio>
|
|
<el-radio label="预设模板">预设模板</el-radio>
|
|
<el-radio label="自定义模板">自定义模板</el-radio>
|
|
<el-radio label="自定义模板">自定义模板</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item v-if="formData.templateType === '预设模板'" label="预设模板:" prop="presetTemplate">
|
|
|
|
|
|
+ <el-form-item v-if="formData.template_id === '预设模板'" label="预设模板:" prop="presetTemplate">
|
|
<el-select v-model="selectedPresetTemplate" placeholder="请选择预设模板" style="width: 300px !important">
|
|
<el-select v-model="selectedPresetTemplate" placeholder="请选择预设模板" style="width: 300px !important">
|
|
<el-option v-for="option in presetTemplates" :key="option.value" :label="option.label" :value="option.value"></el-option>
|
|
<el-option v-for="option in presetTemplates" :key="option.value" :label="option.label" :value="option.value"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
<el-text class="common-btn-text-primary" @click="showExample">样例</el-text>
|
|
<el-text class="common-btn-text-primary" @click="showExample">样例</el-text>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item v-if="formData.templateType === '自定义模板'" prop="customPageUrl">
|
|
|
|
|
|
+ <el-form-item v-if="formData.template_id === '自定义模板'" prop="customPageUrl">
|
|
<el-input v-model="formData.customPageUrl" placeholder="请输入自定义详情页面链接地址" style="width: 468px !important" />
|
|
<el-input v-model="formData.customPageUrl" placeholder="请输入自定义详情页面链接地址" style="width: 468px !important" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="信息内容:" prop="messageContent">
|
|
|
|
- <el-input
|
|
|
|
- v-model="formData.messageContent"
|
|
|
|
- type="textarea"
|
|
|
|
- placeholder="请输入信息内容"
|
|
|
|
- style="width: 468px !important"
|
|
|
|
- ></el-input>
|
|
|
|
|
|
+ <el-form-item label="信息内容:" prop="content">
|
|
|
|
+ <el-input v-model="formData.content" type="textarea" disabled placeholder="请输入信息内容" style="width: 468px !important"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="查看附件:">
|
|
<el-form-item label="查看附件:">
|
|
<ul>
|
|
<ul>
|
|
@@ -87,23 +82,22 @@
|
|
<h4>推送配置</h4>
|
|
<h4>推送配置</h4>
|
|
<div class="box1">
|
|
<div class="box1">
|
|
<el-form-item label="发布名单:" prop="releaseList" style="width: 468px !important"
|
|
<el-form-item label="发布名单:" prop="releaseList" style="width: 468px !important"
|
|
- ><span class="highlight-text">已选择{{ formData.releaseList }}人</span>
|
|
|
|
- <el-text class="common-btn-text-primary" @click="showReleaseList">查看详情</el-text>
|
|
|
|
|
|
+ ><span class="highlight-text">已选择{{ formData.user_count }}人</span>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-row :gutter="18">
|
|
<el-row :gutter="18">
|
|
<el-col :span="6">
|
|
<el-col :span="6">
|
|
- <el-form-item label="发布时间:" prop="releaseTime">
|
|
|
|
- <el-button type="text" @click="publishNow">立即发布</el-button>
|
|
|
|
|
|
+ <el-form-item label="发布时间:" prop="publish_time">
|
|
|
|
+ <el-button type="text" disabled @click="publishNow">立即发布</el-button>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="定时发布:" prop="timing">
|
|
|
|
- <el-date-picker v-model="formData.timing" type="datetime" placeholder="选择发布时间"></el-date-picker>
|
|
|
|
|
|
+ <el-form-item label="定时发布:" prop="publish_time">
|
|
|
|
+ <el-date-picker v-model="formData.publish_time" type="datetime" disabled placeholder="选择发布时间"></el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
- <el-form-item label="消息反馈方式:" prop="feedbackWay" style="width: 468px !important">
|
|
|
|
- <el-select v-model="formData.feedbackWay" placeholder="请选择消息反馈方式">
|
|
|
|
|
|
+ <el-form-item label="消息反馈方式:" prop="response_type" style="width: 468px !important">
|
|
|
|
+ <el-select v-model="displayFeedbackText" disabled placeholder="请选择消息反馈方式">
|
|
<el-option v-for="option in feedbackOptions" :key="option.value" :label="option.label" :value="option.value"></el-option>
|
|
<el-option v-for="option in feedbackOptions" :key="option.value" :label="option.label" :value="option.value"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -117,8 +111,8 @@
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="审核人:" prop="auditor">
|
|
|
|
- <el-input v-model="formData.auditor" placeholder="请输入审核人姓名" style="width: 368px !important" />
|
|
|
|
|
|
+ <el-form-item label="审核人:" prop="examine_by">
|
|
|
|
+ <el-input v-model="formData.examine_by" disabled placeholder="请输入审核人姓名" style="width: 368px !important" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
</el-form>
|
|
</el-form>
|
|
@@ -171,47 +165,41 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { reactive, ref } from 'vue';
|
|
import { reactive, ref } from 'vue';
|
|
|
|
+import { getInformationView } from '@/api/informationissue/informationissue';
|
|
import { ElMessage } from 'element-plus';
|
|
import { ElMessage } from 'element-plus';
|
|
import SendDetail from './sendDetail.vue';
|
|
import SendDetail from './sendDetail.vue';
|
|
-const totalPeople = 46600;
|
|
|
|
-const successCount = 29998;
|
|
|
|
-const failureCount = 13;
|
|
|
|
-const sendingCount = 9989;
|
|
|
|
const feedbackCount = 3000;
|
|
const feedbackCount = 3000;
|
|
const unresponsiveCount = 2;
|
|
const unresponsiveCount = 2;
|
|
const processingTime = '1小时 6分22秒';
|
|
const processingTime = '1小时 6分22秒';
|
|
|
|
+const props = defineProps({
|
|
|
|
+ eventId: {
|
|
|
|
+ type: String,
|
|
|
|
+ required: true
|
|
|
|
+ }
|
|
|
|
+});
|
|
const formData = ref({
|
|
const formData = ref({
|
|
title: '',
|
|
title: '',
|
|
- publishUnit: '',
|
|
|
|
- templateType: '',
|
|
|
|
- messageContent: '',
|
|
|
|
- releaseList: 0,
|
|
|
|
|
|
+ publish_group: '',
|
|
|
|
+ template_id: '',
|
|
|
|
+ content: '',
|
|
|
|
+ user_count: '',
|
|
|
|
+ user_ok_count: '',
|
|
|
|
+ user_err_count: '',
|
|
|
|
+ user_sending_count: '',
|
|
releaseTime: '',
|
|
releaseTime: '',
|
|
- feedbackWay: '',
|
|
|
|
- auditor: '',
|
|
|
|
- timing: '',
|
|
|
|
|
|
+ response_type: '',
|
|
|
|
+ examine_by: '',
|
|
|
|
+ publish_time: '',
|
|
materials: '',
|
|
materials: '',
|
|
- processingTime: ''
|
|
|
|
|
|
+ processingTime: '',
|
|
|
|
+ examines: []
|
|
});
|
|
});
|
|
|
|
|
|
const auditMaterials = ['2023年4月29日广东省发布突发事件预警信息.pdf', '审核材料2'];
|
|
const auditMaterials = ['2023年4月29日广东省发布突发事件预警信息.pdf', '审核材料2'];
|
|
-const rules = {
|
|
|
|
- title: [{ required: true, message: '请填写标题', trigger: 'blur' }],
|
|
|
|
- publishUnit: [{ required: true, message: '请填写发布单位', trigger: 'blur' }],
|
|
|
|
- releaseList: [{ required: true, message: '请选择发布名单', trigger: 'change' }],
|
|
|
|
- timing: [{ required: true, message: '请选择发布时间', trigger: 'change' }],
|
|
|
|
- feedbackWay: [{ required: true, message: '请选择消息反馈方式', trigger: 'change' }],
|
|
|
|
- auditor: [{ required: true, message: '请填写审核人', trigger: 'blur' }]
|
|
|
|
-};
|
|
|
|
const files = ref([
|
|
const files = ref([
|
|
{ name: '2023年4月29日广东省发布突发事件预警信息.pdf', url: '/path/to/file1.pdf' },
|
|
{ name: '2023年4月29日广东省发布突发事件预警信息.pdf', url: '/path/to/file1.pdf' },
|
|
- { name: '2023年5月15日上海市发布突发事件预警信息.docx', url: '/path/to/file2.docx' }
|
|
|
|
|
|
+ { name: '2023年5月15日广东省发布突发事件预警信息.docx', url: '/path/to/file2.docx' }
|
|
]);
|
|
]);
|
|
-const feedbackOptions = [
|
|
|
|
- { value: '仅需阅读', label: '仅需阅读' },
|
|
|
|
- { value: '点击确认', label: '点击确认' },
|
|
|
|
- { value: '签字确认', label: '签字确认' }
|
|
|
|
-];
|
|
|
|
const presetTemplates = [
|
|
const presetTemplates = [
|
|
{ value: 'template1', label: '模板一' },
|
|
{ value: 'template1', label: '模板一' },
|
|
{ value: 'template2', label: '模板二' }
|
|
{ value: 'template2', label: '模板二' }
|
|
@@ -254,6 +242,20 @@ const approvalSteps = ref([
|
|
comment: ''
|
|
comment: ''
|
|
}
|
|
}
|
|
]);
|
|
]);
|
|
|
|
+const feedbackTextMap = {
|
|
|
|
+ 0: '仅需阅读',
|
|
|
|
+ 1: '点击确认',
|
|
|
|
+ 2: '签字确认'
|
|
|
|
+};
|
|
|
|
+// 创建一个计算属性,根据 formData 中的 response_type 返回对应的文本
|
|
|
|
+const displayFeedbackText = computed({
|
|
|
|
+ get() {
|
|
|
|
+ return feedbackTextMap[formData.value.response_type];
|
|
|
|
+ },
|
|
|
|
+ set(value) {
|
|
|
|
+ formData.value.response_type = Object.keys(feedbackTextMap).find((key) => feedbackTextMap[key] === value);
|
|
|
|
+ }
|
|
|
|
+});
|
|
let sendDetailState = reactive({
|
|
let sendDetailState = reactive({
|
|
show: false,
|
|
show: false,
|
|
eventId: ''
|
|
eventId: ''
|
|
@@ -270,12 +272,23 @@ const showSendDetails = (row) => {
|
|
sendDetailState.show = true;
|
|
sendDetailState.show = true;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
-const showReleaseList = () => {
|
|
|
|
- ElMessage.info('点击了查看发布名单');
|
|
|
|
-};
|
|
|
|
const publishNow = () => {
|
|
const publishNow = () => {
|
|
ElMessage.info('点击了立即发布');
|
|
ElMessage.info('点击了立即发布');
|
|
};
|
|
};
|
|
|
|
+const fetchInformation = async () => {
|
|
|
|
+ try {
|
|
|
|
+ const response = await getInformationView({ info_id: props.eventId });
|
|
|
|
+ if (response && response.data) {
|
|
|
|
+ formData.value = response.data;
|
|
|
|
+ }
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.error('Failed to fetch information:', error);
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 在组件挂载时调用 fetchInformation
|
|
|
|
+onMounted(() => {
|
|
|
|
+ fetchInformation();
|
|
|
|
+});
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|