Ver Fonte

更新信息发布

libushang há 8 meses atrás
pai
commit
8402ef0ced

+ 49 - 29
src/views/informationissue/informationApproval.vue

@@ -17,9 +17,9 @@
                     </el-form-item>
 
                     <el-form-item label="信息类型:" prop="info_type">
-                      <el-input disabled placeholder="请选择类型" style="width: 468px !important">
-                        <dict-tag :options="mm_info_type" :value="formData.info_type"></dict-tag>
-                      </el-input>
+                      <el-select v-model="formData.info_type" disabled placeholder="请选择类型" style="width: 468px !important">
+                        <el-option v-for="option in opt_info_type" :key="option.value" :label="option.text" :value="option.value"></el-option>
+                      </el-select>
                     </el-form-item>
                     
                     <el-form-item label="发布单位:" prop="publish_group">
@@ -27,71 +27,78 @@
                     </el-form-item>
 
                     <el-form-item label="信息模板:" prop="template_type">
-                      <el-input disabled>
-                        <dict-tag :options="mm_info_template_type" :value="formData.template_type"></dict-tag>
-                      </el-input>
+                      <el-radio-group v-model="formData.template_type" disabled>
+                        <el-radio value="0">预设模板</el-radio>
+                        <el-radio value="1">自定义模板</el-radio>
+                      </el-radio-group>
                     </el-form-item>
                     
                     <el-form-item v-if="formData.template_type === '0'" label="预设模板:" prop="template_type">
-                      <el-select v-model="formData.template_id" placeholder="请选择预设模板" style="width: 300px !important">
+                      <el-select v-model="formData.template_id" disabled placeholder="请选择预设模板" style="width: 300px !important">
                         <el-option v-for="option in presetTemplates" :key="option.value" :label="option.label" :value="option.value"></el-option>
                       </el-select>
                       <el-text class="common-btn-text-primary" @click="showTemplateExample">样例</el-text>
                     </el-form-item>
+
                     <el-form-item v-if="formData.template_type === '1'" prop="template_url">
                       <el-input v-model="formData.template_url" placeholder="请输入自定义详情页面链接地址" style="width: 468px !important" />
                     </el-form-item>
+
                     <el-form-item label="信息内容:" prop="content">
                       <el-input
                         v-model="formData.content"
-                        :rows="4"
+                        :rows="6"
                         type="textarea"
                         disabled
                         placeholder="请输入信息内容"
                         style="width: 468px !important"
                       ></el-input>
                     </el-form-item>
+
                     <el-form-item label="查看附件:">
-                      <ul>
-                        <li v-for="(file, index) in formData.attachs" :key="index" @click="viewFile(file)">
-                          {{ file.name }}
-                        </li>
-                      </ul>
+                      <div>
+                        <div v-for="(file, index) in formData.attachs" :key="index" @click="viewFile(file)" style="color: #2C81FF;text-decoration: underline;cursor:pointer">
+                          {{ index+1 }}、{{ file.name }}
+                        </div>
+                      </div>
                     </el-form-item>
+
                   </div>
                   <h4>推送配置</h4>
                   <div class="box1">
+                    
+                    
                     <el-form-item label="发布名单:" prop="releaseList" style="width: 468px !important"
                       ><span class="highlight-text">已选择{{ formData.user_count }}人</span>
-                      <el-text class="common-btn-text-primary" @click="showReleaseDetail">发送明细</el-text>
                     </el-form-item>
                     <el-row :gutter="18">
-                      <el-col :span="6">
-                        <el-form-item label="发布时间:" prop="releaseTime">
-                          <el-button @click="publishNow">立即发布</el-button>
+                      <el-col :span="8">
+                        <el-form-item label="发布时间:" prop="publish_time">
+                          <el-button disabled type="default" @click="publishNow">立即发布</el-button>
                         </el-form-item>
                       </el-col>
-                      <el-col :span="12">
+                      <el-col :span="10">
                         <el-form-item label="定时发布:" prop="publish_time">
-                          <el-date-picker v-model="formData.publish_time" disabled type="datetime" placeholder="选择发布时间"></el-date-picker>
+                          <el-date-picker v-model="formData.publish_time" type="datetime" disabled placeholder="选择发布时间" style="width: 400px;"></el-date-picker>
                         </el-form-item>
                       </el-col>
                     </el-row>
                     <el-form-item label="消息反馈方式:" prop="response_type" style="width: 468px !important">
                       <el-select v-model="displayFeedbackText" disabled placeholder="请选择消息反馈方式"> </el-select>
                     </el-form-item>
+
                   </div>
                   <h4 class="common-dialog-title">审核配置</h4>
                   <div class="box1">
                     <el-form-item label="审核材料:" prop="examine_attachs">
-                      <ul>
-                        <li v-for="(file, index) in formData.examine_attachs" :key="index" @click="viewFile(file)">
-                          {{ file.name }}
-                        </li>
-                      </ul>
+                      <div>
+                        <div v-for="(file, index) in formData.examine_attachs" :key="index" @click="viewFile(file)" style="color: #2C81FF;text-decoration: underline;cursor:pointer">
+                          {{ index+1 }}、{{ file.name }}
+                        </div>
+                      </div>
                     </el-form-item>
                     <el-form-item label="审核人:" prop="examine_by">
-                      <el-input v-model="formData.examine_by" disabled placeholder="请输入审核人姓名" style="width: 368px !important" />
+                      <el-input v-model="formData.examine_user" disabled placeholder="请输入审核人姓名" style="width: 368px !important" />
                     </el-form-item>
                   </div>
                 </el-form>
@@ -128,7 +135,7 @@
                     <el-timeline style="width: 700px">
                       <template v-for="(item, index) in formData.examines" :key="index">
                         <el-timeline-item placement="top">
-                          <el-card>
+                          <el-card style="margin-top:-10px;">
                             <h4>{{ item.examine_type }}</h4>
                             <p v-if="item.nick_name">
                               处理人:<span>{{ item.nick_name }}</span
@@ -165,11 +172,21 @@ import { ElMessage } from 'element-plus';
 import ShowReleaseDetail from './showReleaseDetail.vue';
 import { getInformationView, getTemplateList, submitExamine } from '@/api/informationissue/informationissue';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+import { download2 } from '@/utils/request';
 
 const { mm_info_type, mm_info_template_type } = toRefs<any>(
   proxy?.useDict('mm_info_type', 'mm_info_template_type')
 );
 
+const opt_info_type = [
+  { text: "全部", value: "" },
+  { text: "预警信息", value: "0" },
+  { text: "灾情信息", value: "1" },
+  { text: "处置信息", value: "2" },
+  { text: "指挥救援", value: "3" },
+  { text: "公众防范", value: "4" }
+];
+
 const processingTime = '1小时 6分22秒';
 const props = defineProps({
   eventId: {
@@ -197,6 +214,9 @@ const formData = ref({
   examine_attachs: []
 });
 
+const baseUrl = import.meta.env.VITE_APP_BASE_API;
+const downLoadApi = import.meta.env.VITE_APP_BASE_DOWNLOAD_API;
+
 const presetTemplates = ref([]);
 
 const feedbackTextMap = {
@@ -227,8 +247,8 @@ const handleCancel = () => {
 const showTemplateExample = () => {
   ElMessage.info('点击了查看模板样例');
 };
-const viewFile = (file) => {
-  window.open(file.url, '_blank'); // 打开新标签页
+const viewFile = (file: any) => {
+  download2(baseUrl + downLoadApi + file.url, file.name);
 };
 const fetchInformation = async () => {
   try {
@@ -281,7 +301,7 @@ onMounted(() => {
   fetchInformation();
   getTemplateList({}).then((res) => {
     res.data.forEach((item, index) => {
-      presetTemplates.value.push({ value: item.name, label: item.name, content: item.content });
+      presetTemplates.value.push({ value: item.id+"", label: item.name, content: item.content });
     });
   });
 });

+ 2 - 0
src/views/informationissue/informationList.vue

@@ -119,6 +119,7 @@ const initFormData = reactive({
   user_ok_count: '',
   user_err_count: '',
   user_sending_count: '',
+  info_type: '',
   id: ''
 });
 // 表单数据
@@ -252,6 +253,7 @@ const getList = () => {
         // 映射返回的数据到 tableData
         tableData.value = res.data.map((item) => ({
           id: item.id,
+          info_type: item.info_type,
           publish_group: item.publish_group || '未知',
           content: item.content || '未知',
           publish_time: item.publish_time || '未知',

+ 28 - 0
src/views/informationissue/informationView.vue

@@ -49,6 +49,12 @@
                       <el-input v-model="formData.title" disabled placeholder="请输入标题" style="width: 468px !important" />
                     </el-form-item>
 
+                    <el-form-item label="信息类型:" prop="info_type">
+                      <el-select v-model="formData.info_type" disabled placeholder="请选择类型" style="width: 468px !important">
+                        <el-option v-for="option in opt_info_type" :key="option.value" :label="option.text" :value="option.value"></el-option>
+                      </el-select>
+                    </el-form-item>
+
                     <el-form-item label="发布单位:" prop="publish_group">
                       <el-input v-model="formData.publish_group" disabled placeholder="请输入发布单位" style="width: 468px !important" />
                     </el-form-item>
@@ -59,15 +65,18 @@
                         <el-radio value="1">自定义模板</el-radio>
                       </el-radio-group>
                     </el-form-item>
+                    
                     <el-form-item v-if="formData.template_type === '0'" label="预设模板:" prop="template_type">
                       <el-select v-model="formData.template_id" disabled placeholder="请选择预设模板" style="width: 300px !important">
                         <el-option v-for="option in presetTemplates" :key="option.value" :label="option.label" :value="option.value"></el-option>
                       </el-select>
                       <el-text class="common-btn-text-primary" @click="showTemplateExample">样例</el-text>
                     </el-form-item>
+
                     <el-form-item v-if="formData.template_type === '1'" prop="template_url">
                       <el-input v-model="formData.template_url" placeholder="请输入自定义详情页面链接地址" style="width: 468px !important" />
                     </el-form-item>
+                    
                     <el-form-item label="信息内容:" prop="content">
                       <el-input
                         v-model="formData.content"
@@ -78,6 +87,7 @@
                         style="width: 468px !important"
                       ></el-input>
                     </el-form-item>
+
                     <el-form-item label="查看附件:">
                       <div>
                         <div v-for="(file, index) in formData.attachs" :key="index" @click="viewFile(file)" style="color: #2C81FF;text-decoration: underline;cursor:pointer">
@@ -85,9 +95,11 @@
                         </div>
                       </div>
                     </el-form-item>
+
                   </div>
                   <h4>推送配置</h4>
                   <div class="box1">
+
                     <el-form-item label="发布名单:" prop="releaseList" style="width: 468px !important"
                       ><span class="highlight-text">已选择{{ formData.user_count }}人</span>
                     </el-form-item>
@@ -106,6 +118,7 @@
                     <el-form-item label="消息反馈方式:" prop="response_type" style="width: 468px !important">
                       <el-select v-model="displayFeedbackText" disabled placeholder="请选择消息反馈方式"> </el-select>
                     </el-form-item>
+                    
                   </div>
                   <h4 class="common-dialog-title">审核配置</h4>
                   <div class="box1">
@@ -176,6 +189,20 @@ import { getInformationView, getTemplateList } from '@/api/informationissue/info
 import { ElMessage } from 'element-plus';
 import SendDetail from './sendDetail.vue';
 import { download2 } from '@/utils/request';
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+
+const { mm_info_type, mm_info_template_type } = toRefs<any>(
+  proxy?.useDict('mm_info_type', 'mm_info_template_type')
+);
+
+const opt_info_type = [
+  { text: "全部", value: "" },
+  { text: "预警信息", value: "0" },
+  { text: "灾情信息", value: "1" },
+  { text: "处置信息", value: "2" },
+  { text: "指挥救援", value: "3" },
+  { text: "公众防范", value: "4" }
+];
 
 const processingTime = '1小时 6分22秒';
 const props = defineProps({
@@ -186,6 +213,7 @@ const props = defineProps({
 });
 const formData = ref({
   title: '',
+  info_type: '',
   publish_group: '',
   template_id: '',
   template_url: '',