فهرست منبع

Merge remote-tracking branch 'origin/dev' into dev

Hwf 10 ماه پیش
والد
کامیت
42f84c6770

+ 16 - 0
src/types/components.d.ts

@@ -29,9 +29,13 @@ declare module 'vue' {
     ElButton: typeof import('element-plus/es')['ElButton']
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+    ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     ElCol: typeof import('element-plus/es')['ElCol']
     ElCol: typeof import('element-plus/es')['ElCol']
+    ElCollapse: typeof import('element-plus/es')['ElCollapse']
+    ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
     ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
     ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
+    ElContainer: typeof import('element-plus/es')['ElContainer']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
     ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
     ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
     ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
@@ -44,23 +48,31 @@ declare module 'vue' {
     ElEmpty: typeof import('element-plus/es')['ElEmpty']
     ElEmpty: typeof import('element-plus/es')['ElEmpty']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
+    ElHeader: typeof import('element-plus/es')['ElHeader']
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
     ElInput: typeof import('element-plus/es')['ElInput']
+    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
     ElLink: typeof import('element-plus/es')['ElLink']
     ElLink: typeof import('element-plus/es')['ElLink']
+    ElMain: typeof import('element-plus/es')['ElMain']
     ElMenu: typeof import('element-plus/es')['ElMenu']
     ElMenu: typeof import('element-plus/es')['ElMenu']
     ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
     ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
     ElOption: typeof import('element-plus/es')['ElOption']
     ElOption: typeof import('element-plus/es')['ElOption']
     ElPagination: typeof import('element-plus/es')['ElPagination']
     ElPagination: typeof import('element-plus/es')['ElPagination']
     ElPopover: typeof import('element-plus/es')['ElPopover']
     ElPopover: typeof import('element-plus/es')['ElPopover']
     ElRadio: typeof import('element-plus/es')['ElRadio']
     ElRadio: typeof import('element-plus/es')['ElRadio']
+    ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
     ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ElRow: typeof import('element-plus/es')['ElRow']
     ElRow: typeof import('element-plus/es')['ElRow']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
+    ElSegmented: typeof import('element-plus/es')['ElSegmented']
     ElSelect: typeof import('element-plus/es')['ElSelect']
     ElSelect: typeof import('element-plus/es')['ElSelect']
     ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
     ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
     ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem']
     ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem']
     ElSlider: typeof import('element-plus/es')['ElSlider']
     ElSlider: typeof import('element-plus/es')['ElSlider']
+    ElSpace: typeof import('element-plus/es')['ElSpace']
+    ElStep: typeof import('element-plus/es')['ElStep']
+    ElSteps: typeof import('element-plus/es')['ElSteps']
     ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
     ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElTable: typeof import('element-plus/es')['ElTable']
     ElTable: typeof import('element-plus/es')['ElTable']
@@ -73,6 +85,7 @@ declare module 'vue' {
     ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
     ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTree: typeof import('element-plus/es')['ElTree']
     ElTree: typeof import('element-plus/es')['ElTree']
+    ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
     ElUpload: typeof import('element-plus/es')['ElUpload']
     ElUpload: typeof import('element-plus/es')['ElUpload']
     ExcelEditor: typeof import('./../components/ExcelEditor/index.vue')['default']
     ExcelEditor: typeof import('./../components/ExcelEditor/index.vue')['default']
     FileUpload: typeof import('./../components/FileUpload/index.vue')['default']
     FileUpload: typeof import('./../components/FileUpload/index.vue')['default']
@@ -84,6 +97,9 @@ declare module 'vue' {
     HikvisionPlayer: typeof import('./../components/HKVideo/hikvision-player.vue')['default']
     HikvisionPlayer: typeof import('./../components/HKVideo/hikvision-player.vue')['default']
     HKVideo: typeof import('./../components/HKVideo/index.vue')['default']
     HKVideo: typeof import('./../components/HKVideo/index.vue')['default']
     IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
     IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
+    IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
+    IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
+    IEpUploadFilled: typeof import('~icons/ep/upload-filled')['default']
     IFrame: typeof import('./../components/iFrame/index.vue')['default']
     IFrame: typeof import('./../components/iFrame/index.vue')['default']
     ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
     ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
     ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']
     ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']

+ 1 - 1
src/views/emergencyCommandMap/RightSection/RenWuGenZong.vue

@@ -119,7 +119,7 @@ const toggleScroll = () => {
 
 
 // 设置定时器
 // 设置定时器
 const fetchInterval = process.env.NODE_ENV === 'development' ? 60000 : 3000; // 每60秒刷新一次(刷新太频繁影响调试)
 const fetchInterval = process.env.NODE_ENV === 'development' ? 60000 : 3000; // 每60秒刷新一次(刷新太频繁影响调试)
-let intervalId: number | null = null;
+let intervalId: any | null = null;
 
 
 const startFetchingData = () => {
 const startFetchingData = () => {
   if (!intervalId) {
   if (!intervalId) {

+ 17 - 5
src/views/emergencyCommandMap/RightSection/TaskDelivery.vue

@@ -28,9 +28,10 @@
       </el-skeleton>
       </el-skeleton>
     </div>
     </div>
     <template #footer>
     <template #footer>
-      <div class="dialog-footer">
-        <div class="common-btn-primary2" @click="sendTasks" style="margin-right: 20px">确认发送H5短信</div>
-        <div class="common-btn" @click="closeDialog">取 消</div>
+      <div class="dialog-footer" style="margin-right:8px">
+        <div class="common-btn" @click="closeDialog" style="margin-right: 20px">取 消</div>
+        <div class="common-btn-primary2" @click="sendTasks">确认发送H5短信</div>
+        
       </div>
       </div>
     </template>
     </template>
   </Dialog>
   </Dialog>
@@ -60,7 +61,7 @@ watch(
   (newValue) => {
   (newValue) => {
     dialogVisible.value = newValue;
     dialogVisible.value = newValue;
     if (newValue && props.planId && props.eventId) {
     if (newValue && props.planId && props.eventId) {
-      fetchDataWithLoading(props.planId, props.eventId);
+      fetchDataWithLoading(/*props.planId, props.eventId*/);
     }
     }
   }
   }
 );
 );
@@ -92,7 +93,15 @@ const sendTasks = () => {
     return;
     return;
   }
   }
 
 
-  sendTask({ eventId: props.eventId })
+  // 领导批示内容
+  let task_list = {};
+  tasks.value.map((v)=>{
+    if(v.content2 && v.content2 != "") {
+      task_list[v.dept_id] =  v.content2
+    }
+  })
+  // console.log(tasks.value);
+  sendTask({ eventId: props.eventId, tasks: task_list })
     .then(() => {
     .then(() => {
       ElMessage.success('任务已成功发送!');
       ElMessage.success('任务已成功发送!');
       closeDialog(); // 使用关闭方法
       closeDialog(); // 使用关闭方法
@@ -105,9 +114,12 @@ const handleShowApprove = (item) => {
   item.show = !!!item.show;
   item.show = !!!item.show;
 };
 };
 const handleCancel = (item) => {
 const handleCancel = (item) => {
+  item.content2 = "";
+  item.comment = "";
   item.show = false;
   item.show = false;
 };
 };
 const handleSubmit = (item) => {
 const handleSubmit = (item) => {
+  item.comment = item.content2;
   item.show = false;
   item.show = false;
 };
 };
 </script>
 </script>

+ 31 - 22
src/views/informationissue/informationView.vue

@@ -71,7 +71,7 @@
                     <el-form-item label="信息内容:" prop="content">
                     <el-form-item label="信息内容:" prop="content">
                       <el-input
                       <el-input
                         v-model="formData.content"
                         v-model="formData.content"
-                        :rows="4"
+                        :rows="6"
                         type="textarea"
                         type="textarea"
                         disabled
                         disabled
                         placeholder="请输入信息内容"
                         placeholder="请输入信息内容"
@@ -79,11 +79,11 @@
                       ></el-input>
                       ></el-input>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item label="查看附件:">
                     <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>
                     </el-form-item>
                   </div>
                   </div>
                   <h4>推送配置</h4>
                   <h4>推送配置</h4>
@@ -92,14 +92,14 @@
                       ><span class="highlight-text">已选择{{ formData.user_count }}人</span>
                       ><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="8">
                         <el-form-item label="发布时间:" prop="publish_time">
                         <el-form-item label="发布时间:" prop="publish_time">
-                          <el-button disabled @click="publishNow">立即发布</el-button>
+                          <el-button disabled type="default" @click="publishNow">立即发布</el-button>
                         </el-form-item>
                         </el-form-item>
                       </el-col>
                       </el-col>
-                      <el-col :span="12">
+                      <el-col :span="10">
                         <el-form-item label="定时发布:" prop="publish_time">
                         <el-form-item label="定时发布:" prop="publish_time">
-                          <el-date-picker v-model="formData.publish_time" type="datetime" disabled 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-form-item>
                       </el-col>
                       </el-col>
                     </el-row>
                     </el-row>
@@ -110,14 +110,14 @@
                   <h4 class="common-dialog-title">审核配置</h4>
                   <h4 class="common-dialog-title">审核配置</h4>
                   <div class="box1">
                   <div class="box1">
                     <el-form-item label="审核材料:" prop="examine_attachs">
                     <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>
                     <el-form-item label="审核人:" prop="examine_by">
                     <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>
                     </el-form-item>
                   </div>
                   </div>
                 </el-form>
                 </el-form>
@@ -136,10 +136,10 @@
                     <div>
                     <div>
                       <p v-if="processingTime">已用时:{{ processingTime }}</p>
                       <p v-if="processingTime">已用时:{{ processingTime }}</p>
                     </div>
                     </div>
-                    <el-timeline style="width: 100%">
+                    <el-timeline style="width: 100%;">
                       <template v-for="(item, index) in formData.examines" :key="index">
                       <template v-for="(item, index) in formData.examines" :key="index">
                         <el-timeline-item placement="top">
                         <el-timeline-item placement="top">
-                          <el-card>
+                          <el-card style="margin-top:-10px;">
                             <h4>{{ item.examine_type }}</h4>
                             <h4>{{ item.examine_type }}</h4>
                             <p v-if="item.nick_name">
                             <p v-if="item.nick_name">
                               处理人:<span>{{ item.nick_name }}</span
                               处理人:<span>{{ item.nick_name }}</span
@@ -158,9 +158,11 @@
           </el-col>
           </el-col>
         </el-row>
         </el-row>
         <div class="common-dialog-footer">
         <div class="common-dialog-footer">
-          <el-button @click="$emit('close')">返回</el-button>
+          <el-button type="primary" @click="$emit('close')">返回</el-button>
+          <!--
           <el-button :disabled="true">编辑</el-button>
           <el-button :disabled="true">编辑</el-button>
           <el-button :disabled="true">提交</el-button>
           <el-button :disabled="true">提交</el-button>
+          -->
         </div>
         </div>
       </div>
       </div>
     </div>
     </div>
@@ -173,6 +175,8 @@ import { reactive, ref } from 'vue';
 import { getInformationView, getTemplateList } from '@/api/informationissue/informationissue';
 import { getInformationView, getTemplateList } from '@/api/informationissue/informationissue';
 import { ElMessage } from 'element-plus';
 import { ElMessage } from 'element-plus';
 import SendDetail from './sendDetail.vue';
 import SendDetail from './sendDetail.vue';
+import { download2 } from '@/utils/request';
+
 const processingTime = '1小时 6分22秒';
 const processingTime = '1小时 6分22秒';
 const props = defineProps({
 const props = defineProps({
   eventId: {
   eventId: {
@@ -194,6 +198,7 @@ const formData = ref({
   publish_type: '',
   publish_type: '',
   response_type: '',
   response_type: '',
   examine_by: '',
   examine_by: '',
+  examine_user: '',
   publish_time: '',
   publish_time: '',
   materials: '',
   materials: '',
   add_time: '',
   add_time: '',
@@ -204,6 +209,9 @@ const formData = ref({
   examine_attachs: []
   examine_attachs: []
 });
 });
 
 
+const baseUrl = import.meta.env.VITE_APP_BASE_API;
+const downLoadApi = import.meta.env.VITE_APP_BASE_DOWNLOAD_API;
+
 const rules = ref({});
 const rules = ref({});
 const presetTemplates = ref([]);
 const presetTemplates = ref([]);
 const feedbackTextMap = {
 const feedbackTextMap = {
@@ -227,8 +235,9 @@ let sendDetailState = reactive({
 const handleCancel = () => {
 const handleCancel = () => {
   sendDetailState.show = false;
   sendDetailState.show = false;
 };
 };
-const viewFile = (file) => {
-  window.open(file.url, '_blank'); // 打开新标签页
+
+const viewFile = (file: any) => {
+  download2(baseUrl + downLoadApi + file.url, file.name);
 };
 };
 const showSendDetails = () => {
 const showSendDetails = () => {
   sendDetailState.info_id = props.eventId; // 假设eventId是id字段
   sendDetailState.info_id = props.eventId; // 假设eventId是id字段
@@ -256,7 +265,7 @@ const fetchInformation = async () => {
 onMounted(() => {
 onMounted(() => {
   getTemplateList({}).then((res) => {
   getTemplateList({}).then((res) => {
     res.data.forEach((item, index) => {
     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 });
     });
     });
   });
   });
   fetchInformation();
   fetchInformation();

+ 5 - 4
src/views/informationissue/sendDetail.vue

@@ -56,7 +56,7 @@
           <el-table-column prop="nick_name" label="姓名"></el-table-column>
           <el-table-column prop="nick_name" label="姓名"></el-table-column>
           <el-table-column prop="yzy_account" label="手机号码"></el-table-column>
           <el-table-column prop="yzy_account" label="手机号码"></el-table-column>
           <el-table-column prop="dept_name" label="组织"></el-table-column>
           <el-table-column prop="dept_name" label="组织"></el-table-column>
-          <el-table-column prop="publish_channel" label="反馈方式"></el-table-column>
+          <el-table-column prop="response_type" label="反馈方式"></el-table-column>
           <el-table-column prop="yuezhengyiStatus" label="粤政易" width="180">
           <el-table-column prop="yuezhengyiStatus" label="粤政易" width="180">
             <template #default="{ row }">
             <template #default="{ row }">
               <el-tag
               <el-tag
@@ -165,7 +165,7 @@ const getTagType = (status) => {
 
 
 // 关闭标签时触发
 // 关闭标签时触发
 const handleTagClose = (row) => {
 const handleTagClose = (row) => {
-  ElMessage.warning(`标签关闭操作:${row.yuezhengyiFeedbackStatus}`);
+  // ElMessage.warning(`标签关闭操作:${row.yuezhengyiFeedbackStatus}`);
   // 实现标签关闭后的逻辑处理
   // 实现标签关闭后的逻辑处理
 };
 };
 
 
@@ -180,8 +180,9 @@ const initOptions = () => {
     { value: 'pending', label: '待发布' }
     { value: 'pending', label: '待发布' }
   ];
   ];
   data.feedbackStatusOptions = [
   data.feedbackStatusOptions = [
-    { value: 'approved', label: '已审批' },
-    { value: 'rejected', label: '未通过' }
+    { value: '0', label: '仅需阅读' },
+    { value: '1', label: '点击确认' },
+    { value: '2', label: '签字确认' }
   ];
   ];
 };
 };
 initOptions(); // 初始化选项数据
 initOptions(); // 初始化选项数据