Parcourir la source

Merge branch 'master' of http://221.182.8.141:11666/sujunlin/xld-gis-admin

XiaXxxxxx il y a 1 an
Parent
commit
7b98201174

+ 0 - 1
.env.development

@@ -9,7 +9,6 @@ VITE_GLOB_PUBLIC_PATH = /
 
 # 本地
 # VITE_PROXY = [["/api","http://192.168.2.225/api"]]
-
 # 测试环境
 # VITE_PROXY = [["/api","http://117.174.10.73:19200"],["/agent","http://117.174.10.73:31895"],["/iserver","http://221.182.8.141:15000/iserver"],["/onlineIde","http://106.12.170.138:4001/examples"],["/tfDemo","http://106.12.170.138:4001/demo"],["/mapTools","http://106.12.170.138:10090"],["/xldAnalysisApi","http://192.168.119.47:2214/xldanalyst"]]
 #现场环境

+ 4 - 0
src/utils/http/axios/index.ts

@@ -148,6 +148,10 @@ const transform: AxiosTransform = {
         console.log('文件下载失败!');
         return Promise.reject(error);
       }
+      if ((response?.data?.resp_code == '400'  || response?.data?.status == '400') && response.config.url.indexOf('findPageInfoByJson') > -1) {
+        console.log('请求报错:',error);
+        return Promise.reject(error);
+      }
       if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) {
         errMessage = t('sys.api.apiTimeoutMessage');
       }

+ 10 - 3
src/views/assembly/item/AssemblyData.vue

@@ -48,8 +48,9 @@
     </a-modal>
     <AssemblyDrawer @register="registerModal" />
     <!-- 弹出框 -->
-    <DetailModal v-if="showResDeatil" :nowAss="nowAss" @closeModal="showResDeatil = false" :resId="detailResId" />
-    <EmpowerInfo title="组件资源申请信息" ref="infoRef"></EmpowerInfo>
+    <!-- <DetailModal v-if="showResDeatil" :nowAss="nowAss" @closeModal="showResDeatil = false" :resId="detailResId" /> -->
+    <DetailModal @register="registerModalCK" :nowAss="nowAss" @closeModal="showResDeatil = false" :resId="detailResId" />
+    <EmpowerInfo @register="registerModalSQXX"  title="组件资源申请信息" ref="infoRef"></EmpowerInfo>
   </div>
 </template>
 <script lang="ts">
@@ -71,7 +72,7 @@ import interfaceImg from '/@/assets/images/interface.jpg';
 import DetailModal from './child/DetailModal.vue';
 import eventBus from '/@/utils/eventBus';
 import EmpowerInfo from './EmpowerInfo.vue';
-
+import { useModal } from '/@/components/Modal';
 
 
 export default defineComponent({
@@ -173,20 +174,26 @@ export default defineComponent({
       })
     }
 
+    const [registerModalCK, { openModal }] = useModal();
     function handleDetailInfo(record) {
       //打开详情弹窗
       detailResId.value = record.serviceid;
       showResDeatil.value = true;
       nowAss.value = record;
+      openModal(true)
     }
 
     //申请信息查看
     const infoRef = ref(null);
+    const [registerModalSQXX, { openModal:openModalSQXX }] = useModal();
     function showEmpowerInfo(i) {
       infoRef?.value?.showInfo(i);
+      openModalSQXX(true);
     }
 
     return {
+      registerModalSQXX,
+      registerModalCK,
       infoRef,
       showEmpowerInfo,
       nowAss,

+ 31 - 7
src/views/assembly/item/EmpowerInfo.vue

@@ -1,5 +1,6 @@
 <template>
-    <a-modal v-model:visible="show" :width="900" @cancel="() => show = false" :title="props.title" :footer="null">
+    <!-- <a-modal v-model:visible="show" :width="900" @cancel="() => show = false" :title="props.title" :footer="null"> -->
+    <BasicModal width="900px" v-bind="$attrs" :title="props.title" :showOkBtn="false" :showCancelBtn="false">
         <ul class="info">
             <li>
                 <span>审核结果:{{ info?.shzt }}</span><span>审核意见:{{ shyjInfo }}</span>
@@ -9,13 +10,15 @@
             </li>
             <li>
                 <p>文件下载:
-                    <a style="color: rgb(45, 116, 231);" target="downloadFild" v-if="info?.resInfo?.BZ?.indexOf(',') > -1" :id="info?.resInfo?.BZ" :href="getImg(info?.resInfo?.BZ)" download="grant.js">
+                    <!-- <a style="color: rgb(45, 116, 231);" target="downloadFild" v-if="info?.resInfo?.BZ?.indexOf(',') > -1" :id="info?.resInfo?.BZ" :href="getImg(info?.resInfo?.BZ)" download="grant.js">
                         下载文件
-                    </a>
+                    </a> -->
+                    <button v-if="info?.resInfo?.BZ?.indexOf(',') > -1" :id="info?.resInfo?.BZ" @click="downloadFile(info?.resInfo?.BZ)">下载文件</button>
                 </p>
             </li>
         </ul>
-    </a-modal>
+    <!-- </a-modal> -->
+    </BasicModal>
 </template>
 
 <script>
@@ -27,10 +30,11 @@ import { setHtmlImg } from '/@/views/minWidgets/CommonWay.js';
 import { getResInCar, getResViewInfo, queryServiceTags } from '/@/api/resource/plat';
 import { getAllTags } from '/@/api/sys/tag';
 import { getImgUrl } from '/@/api/dataAdmin/assembly';
+import { BasicModal } from '/@/components/Modal';
 
 export default defineComponent({
     name: 'EmpowerInfo',
-    components: {},
+    components: { BasicModal },
     props: {
         title: {
             type: String,
@@ -66,17 +70,37 @@ export default defineComponent({
             })
         }
 
-        function getImg(i) {
+        function getImg(i,callback) {
           if (i) {
             var arr = i.split(',')
             arr.length > 1 && getImgUrl(arr[0], arr[1]).then(r => {
               var d = document.getElementById(i);
-              if (d) d.href = r;
+              if (d && !callback) {
+                d.href = r;
+              }else if(callback){
+                  callback(r)
+              }
             })
           }
         }
 
+        function downloadFile(i) {
+            getImg(i,(url)=>{
+                fetch(url).then(response => response.blob())
+                    .then(blob => {
+                        const url = window.URL.createObjectURL(blob);
+                        const a = document.createElement('a');
+                        a.href = url;
+                        a.download = 'grant.js';
+                        document.body.appendChild(a);
+                        a.click();
+                        window.URL.revokeObjectURL(url);
+                });
+            })
+        }
+
         return {
+            downloadFile,
             getImg,
             shyjInfo,
             info,

+ 24 - 12
src/views/assembly/item/child/DetailModal.vue

@@ -1,6 +1,10 @@
 <template>
-    <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
-        :footer="null" wrapClassName="modal-wrap" @cancel="onClose">
+    <BasicModal width="1440px" v-bind="$attrs" :title="title" :showOkBtn="false" :showCancelBtn="false">
+    <!-- <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
+        :footer="null" wrapClassName="modal-wrap" @cancel="onClose"> -->
+        <div class="modal-wrap">
+
+        
         <div class="action-content">
             <div class="top-header">
                 <div class="img-container">
@@ -224,20 +228,21 @@
                 </div>
             </div> -->
         </div>
-    </a-modal>
+        </div>
+    <!-- </a-modal> -->
+    </BasicModal>
 </template>
 <script>
 import { defineComponent, reactive, ref, onMounted, watch, toRefs } from 'vue';
 import { message } from 'ant-design-vue';
 import { session } from '/@/utils/Memory';
 import moment from 'moment';
-
 import { getResViewInfo } from '/@/api/resource/plat';
-
+import { BasicModal } from '/@/components/Modal';
 
 export default defineComponent({
     name: 'modal',
-    components: {},
+    components: { BasicModal },
     props: {
         resId: {
             type: String,
@@ -259,12 +264,17 @@ export default defineComponent({
         }
         const baseInfo = ref({})
         const metaInfo = ref({})
+        watch(() => props.resId,() => getInfo());
         //初始化请求所需数据
-        onMounted(() => {
-            console.log(props.nowAss);
-            props.nowAss.updatedate = moment(props.nowAss.updatedate).format('YYYY-MM-DD HH:mm:ss');
-            props.nowAss.zsdz = `${window.location.origin}/mapview.html?onlineIde_${props.nowAss.servicealiasname}`;
-            baseInfo.value = props.nowAss;
+        onMounted(()=> getInfo())
+        async function getInfo() {
+            if(props?.nowAss){
+                console.log(props.nowAss);
+                props.nowAss.updatedate = moment(props.nowAss.updatedate).format('YYYY-MM-DD HH:mm:ss');
+                props.nowAss.zsdz = `${window.location.origin}/mapview.html?onlineIde_${props.nowAss.servicealiasname}`;
+                baseInfo.value = props.nowAss;
+            }
+
             // getResViewInfo(props.resId).then(res => {
             //     console.log(res);
             //     baseInfo.value = res.servicebase;
@@ -272,7 +282,9 @@ export default defineComponent({
             //     baseInfo.value.updatedate = moment(baseInfo.value.updatedate).format('YYYY-MM-DD HH:mm:ss');
             //     metaInfo.value = res.metadata
             // })
-        })
+        }
+
+
         return {
             baseInfo,
             metaInfo,

+ 12 - 5
src/views/assembly/item/child/Search.vue

@@ -13,9 +13,9 @@
             <a-checkbox v-model:checked="checked3">测试数据2</a-checkbox>
             <a-checkbox v-model:checked="checked4">测试数据3</a-checkbox> -->
         </div>
-        <a-modal v-model:visible="visible" title="申请库" @ok="handleOk" width="1440px" height="980px">
-            <library></library>
-        </a-modal>
+        <!-- <a-modal v-model:visible="visible" title="申请库" @ok="handleOk" width="1440px" height="980px"> -->
+            <library  @register="registerModal"></library>
+        <!-- </a-modal> -->
     </div>
 </template>
 
@@ -25,6 +25,7 @@ import { defineComponent, ref, computed, unref, onMounted, getCurrentInstance }
 import library from "../../library/index.vue"
 import { getAssemblyLibsTotal } from '/@/api/dataAdmin/assembly';
 import eventBus from '/@/utils/eventBus';
+import { useModal } from '/@/components/Modal';
 
 export default defineComponent({
     name: 'Search',
@@ -72,10 +73,15 @@ export default defineComponent({
             parentSetup.getDataList({ sqkzt: value.value, filterValue: key.value })
         }
 
+        const [registerModal, { openModal }] = useModal();
         const visible = ref<boolean>(false);
         const showModal = () => {
-            visible.value = true;
-            eventBus.emit("assemblyReload")
+            // visible.value = true;
+            openModal(true, {
+              isUpdate: false,
+              isCheck:false,
+            });
+            setTimeout(() => eventBus.emit("assemblyReload"), 500)
         };
         const handleOk = (e: MouseEvent) => {
             console.log(e);
@@ -98,6 +104,7 @@ export default defineComponent({
         }
 
         return {
+            registerModal,
             handleChange,
             total,
             visible,

+ 113 - 106
src/views/assembly/library/index.vue

@@ -1,104 +1,106 @@
 <template>
-  <div>
-    <BasicTable :rowSelection="{ type: 'checkbox' }" @register="registerTable" :clickToRowSelect="false" class="zjsqkList">
-      <template #toolbar>
-        <Authority>
-          <a-button style="background-color: rgb(252, 139, 1); color: rgb(255, 255, 255);border: none;" type="primary"
-            @click="handleCreate">提交申请</a-button>
-        </Authority>
-        <!-- <Authority>
-          <Popconfirm title="您确定要批量删除数据" ok-text="确定" cancel-text="取消" @confirm="handleDeleteOrBatchDelete(null)">
-            <a-button type="primary" color="error" :disabled="hasBatchDelete"> 批量删除 </a-button>
-          </Popconfirm>
-        </Authority> -->
-      </template>
-      <!-- <template #status="{ record }">
-        <Switch :checked="record.status === 1" :loading="record.pendingStatus" checkedChildren="启用" unCheckedChildren="禁用"
-          @change="(checked: boolean) => statusChange(checked, record)" />
-      </template> -->
-      <template #action="{ record }">
-        <TableAction :actions="[
-          // {
-          //   label: '浏览',
-          //   icon: '' /**clarity:note-edit-line*/,
-          //   // ifShow: record.servicealiasname,
-          //   // ifShow: ((action) => action.servicealiasname),
-          //   ifShow: record.servicealiasname,
-          //   onClick: see.bind(null, record),
-          // },
-          // {
-          //   label: '查看',
-          //   icon: '' /**clarity:note-edit-line*/,
-          //   onClick: handleEdit.bind(null, record),
-          // },
-          // {
-          //   label: '编辑',
-          //   icon: '' /**clarity:note-edit-line*/,
-          //   color: 'warning',
-          //   onClick: handleEdit.bind(null, record),
-          // },
-          // {
-          //   label: '删除',
-          //   icon: '' /**ant-design:delete-outlined'*/,
-          //   color: 'error',
-          //   ifShow: record.roleType != RoleEnum.SYS_ADMIN,
-          //   popConfirm: {
-          //     title: '是否确认删除',
-          //     confirm: handleDelete.bind(null, record),
-          //   },
-          // },
-          {
-            label: '提交申请',
-            icon: '' /**clarity:note-edit-line*/,
-            // ifShow: record.servicealiasname,
-            // ifShow: ((action) => action.servicealiasname),
-            disabled: record.shzt != '未提交' && record.shzt != '审核不通过',
-            // onClick: submitApply.bind(null, record),
-            onClick: applyHandleEdit.bind(null, record),
-          },
-          {
-            label: '移出',
-            tooltip: '移出',
-            // icon: 'ant-design:form-outlined',
-            onClick: handleDelete.bind(null, record),
-            disabled: record.shzt != '未提交' && record.shzt != '审核不通过'
-          },
-        ]" />
-      </template>
-      <template #pdate="{ record }">
-        <Tag :color="'red'">
-          {{
-            record.publishdate ? moment(record.publishdate).format('YYYY-MM-DD HH:mm:ss') : ''
-          }}
-        </Tag>
-      </template>
-      <template #systemkey="{ record }">
-        <span :id="'zjsqk' + record.id">{{ getAppName(record.systemkey, `zjsqk${record.id}`) }}</span>
-      </template>
-      <template #shr="{ record }">
-        <span :id="'shr' + record.id">{{ getUser(record, `shr${record.id}`) }}</span>
-      </template>
-      <template #tjsqsj="{ record }">
-        {{ record?.tjsqsj?.replace('.0', '') }}
-      </template>
-      <template #shyj="{ record }">
-        <span :id="'shyj' + record.id">{{ getYJ(record, `shyj${record.id}`) }}</span>
-      </template>
-      <template #index="{ index }">
-        {{ index + 1 }}
-      </template>
-      <template #status="{ record }">
-        <Tag :style="`color:${record.shzt == '未提交' ? 'red' : '#05B069'};`">
-          {{
-            record.shzt
-          }}
-        </Tag>
-      </template>
-    </BasicTable>
-    <MapSourceModal @register="registerModal" @success="handleSuccess" />
-    <!-- 申请弹出框 -->
-    <ApplyModal @register="registerModal" @success="applyHandleSuccess" />
-  </div>
+  <BasicModal width="1440px" v-bind="$attrs" title="申请库" :showOkBtn="false" :showCancelBtn="false">
+    <div>
+      <BasicTable :rowSelection="{ type: 'checkbox' }" @register="registerTable" :clickToRowSelect="false" class="zjsqkList">
+        <template #toolbar>
+          <Authority>
+            <a-button style="background-color: rgb(252, 139, 1); color: rgb(255, 255, 255);border: none;" type="primary"
+              @click="handleCreate">提交申请</a-button>
+          </Authority>
+          <!-- <Authority>
+            <Popconfirm title="您确定要批量删除数据" ok-text="确定" cancel-text="取消" @confirm="handleDeleteOrBatchDelete(null)">
+              <a-button type="primary" color="error" :disabled="hasBatchDelete"> 批量删除 </a-button>
+            </Popconfirm>
+          </Authority> -->
+        </template>
+        <!-- <template #status="{ record }">
+          <Switch :checked="record.status === 1" :loading="record.pendingStatus" checkedChildren="启用" unCheckedChildren="禁用"
+            @change="(checked: boolean) => statusChange(checked, record)" />
+        </template> -->
+        <template #action="{ record }">
+          <TableAction :actions="[
+            // {
+            //   label: '浏览',
+            //   icon: '' /**clarity:note-edit-line*/,
+            //   // ifShow: record.servicealiasname,
+            //   // ifShow: ((action) => action.servicealiasname),
+            //   ifShow: record.servicealiasname,
+            //   onClick: see.bind(null, record),
+            // },
+            // {
+            //   label: '查看',
+            //   icon: '' /**clarity:note-edit-line*/,
+            //   onClick: handleEdit.bind(null, record),
+            // },
+            // {
+            //   label: '编辑',
+            //   icon: '' /**clarity:note-edit-line*/,
+            //   color: 'warning',
+            //   onClick: handleEdit.bind(null, record),
+            // },
+            // {
+            //   label: '删除',
+            //   icon: '' /**ant-design:delete-outlined'*/,
+            //   color: 'error',
+            //   ifShow: record.roleType != RoleEnum.SYS_ADMIN,
+            //   popConfirm: {
+            //     title: '是否确认删除',
+            //     confirm: handleDelete.bind(null, record),
+            //   },
+            // },
+            {
+              label: '提交申请',
+              icon: '' /**clarity:note-edit-line*/,
+              // ifShow: record.servicealiasname,
+              // ifShow: ((action) => action.servicealiasname),
+              disabled: record.shzt != '未提交' && record.shzt != '审核不通过',
+              // onClick: submitApply.bind(null, record),
+              onClick: applyHandleEdit.bind(null, record),
+            },
+            {
+              label: '移出',
+              tooltip: '移出',
+              // icon: 'ant-design:form-outlined',
+              onClick: handleDelete.bind(null, record),
+              disabled: record.shzt != '未提交' && record.shzt != '审核不通过'
+            },
+          ]" />
+        </template>
+        <template #pdate="{ record }">
+          <Tag :color="'red'">
+            {{
+              record.publishdate ? moment(record.publishdate).format('YYYY-MM-DD HH:mm:ss') : ''
+            }}
+          </Tag>
+        </template>
+        <template #systemkey="{ record }">
+          <span :id="'zjsqk' + record.id">{{ getAppName(record.systemkey, `zjsqk${record.id}`) }}</span>
+        </template>
+        <template #shr="{ record }">
+          <span :id="'shr' + record.id">{{ getUser(record, `shr${record.id}`) }}</span>
+        </template>
+        <template #tjsqsj="{ record }">
+          {{ record?.tjsqsj?.replace('.0', '') }}
+        </template>
+        <template #shyj="{ record }">
+          <span :id="'shyj' + record.id">{{ getYJ(record, `shyj${record.id}`) }}</span>
+        </template>
+        <template #index="{ index }">
+          {{ index + 1 }}
+        </template>
+        <template #status="{ record }">
+          <Tag :style="`color:${record.shzt == '未提交' ? 'red' : '#05B069'};`">
+            {{
+              record.shzt
+            }}
+          </Tag>
+        </template>
+      </BasicTable>
+      <MapSourceModal @register="registerModal" @success="handleSuccess" />
+      <!-- 申请弹出框 -->
+      <ApplyModal @register="registerModal" @success="applyHandleSuccess" />
+    </div>
+  </BasicModal>
 </template>
 <script lang="ts">
 import { defineComponent, nextTick, onBeforeMount, createVNode, onMounted } from 'vue';
@@ -122,10 +124,11 @@ import { deleteResInCar } from '/@/api/resource/plat';
 import eventBus from '/@/utils/eventBus';
 import ApplyModal from './applyModal/ApplyModal.vue';
 import { list } from '/@/api/authorize/authorize';
+import { BasicModal } from '/@/components/Modal';
 
 export default defineComponent({
   name: 'RoleManagement',
-  components: { BasicTable, MapDrawer, ApplyModal, MapSourceModal, TableAction, Authority, Switch, Popconfirm },
+  components: { BasicTable, BasicModal, MapDrawer, ApplyModal, MapSourceModal, TableAction, Authority, Switch, Popconfirm },
   setup() {
 
     const [registerModal, { openModal }] = useModal();
@@ -150,6 +153,11 @@ export default defineComponent({
       },
       rowSelection: { type: 'checkbox' },
       rowKey: (record) => record.id,
+      canResize: false,
+      pagination: {
+          pageSize: 10,
+          hideOnSinglePage: false
+      },
       tableSetting: {
         redo: true,
         size: true,
@@ -159,8 +167,7 @@ export default defineComponent({
     });
     const moment = Moment
     const { createMessage } = useMessage();
-    const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions, resetSelectedRowKeys } =
-      useBatchDelete(delRole, handleSuccess, setProps);
+    const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions, resetSelectedRowKeys } = useBatchDelete(delRole, handleSuccess, setProps);
     selectionOptions.rowSelection.getCheckboxProps = (record: Recordable) => {
       // Demo:status为1的选择框禁用
       if (record.status === 1) {
@@ -169,9 +176,9 @@ export default defineComponent({
         return { disabled: false };
       }
     };
-    nextTick(() => {
-      setProps(selectionOptions);
-    });
+    // nextTick(() => {
+    //   if(selectionOptions) setProps(selectionOptions);
+    // });
 
     function handleEdit(record: Recordable) {
       openModal(true, {

+ 1 - 1
src/views/authorize/empower/AuditModal.vue

@@ -180,7 +180,7 @@ export default defineComponent({
                         message.error('审核失败')
                     }
                     emit('onSubmit', Number(form.ispass))
-                    eventBus.on('shsqUpdate')
+                    eventBus.emit('shsqUpdate')
                 })
             }
         }

+ 8 - 7
src/views/interface/item/AssemblyData.vue

@@ -38,26 +38,24 @@
         </Pagination>
       </div>
     </div>
-    <a-modal wrapClassName="modal-wrap" title="接口详情" width="800px" v-model:visible="visible" @cancel="onClose" centered
-      :footer="null">
+    <!-- <a-modal wrapClassName="modal-wrap" title="接口详情" width="800px" v-model:visible="visible" @cancel="onClose" centered
+      :footer="null"> -->
       <div class="content">
-        <Details :action="action"></Details>
+        <Details :action="action" @register="registerModal"></Details>
       </div>
-    </a-modal>
+    <!-- </a-modal> -->
   </div>
 </template>
 <script>
 import { defineComponent, nextTick, onMounted, ref, defineProps, watch } from 'vue';
-
 import { interfaceList, getGroupId } from '/@/api/interface/interface.ts';
 import { apply } from '/@/api/resource/plat';
-
 import { message, Pagination } from 'ant-design-vue';
-
 import Search from './child/Search.vue';
 import Details from './child/Details.vue';
 import { session } from '/@/utils/Memory';
 import interfaceImg from '/@/assets/images/count2.png';
+import { useModal } from '/@/components/Modal';
 
 const props = {
   groupId: {
@@ -84,9 +82,11 @@ export default defineComponent({
     /**
      * 显示详情
     */
+   const [registerModal, { openModal }] = useModal();
     const showDrawer = (i) => {
       action.value = i;
       visible.value = true;
+      openModal(true)
     };
     const onClose = () => {
       visible.value = false;
@@ -180,6 +180,7 @@ export default defineComponent({
     }
 
     return {
+      registerModal,
       searchRef,
       interfaceImg,
       list,

+ 5 - 2
src/views/interface/item/child/Details.vue

@@ -1,5 +1,6 @@
 <!-- 接口详情弹窗 -->
 <template>
+     <BasicModal width="1000px" v-bind="$attrs" title="接口详情" :showOkBtn="false" :showCancelBtn="false">
     <div class="assembly-detail">
         <!-- 基本信息 -->
         <div class="detail-item">
@@ -51,6 +52,7 @@
             </div>
         </div>
     </div>
+    </BasicModal>
     <a-modal v-model:visible="visible" centered title="调用说明" width="700px" :footer="null">
         <div class="content" style="padding: 20px 10px 10px;font-size: 16px;">
             <p>· 使用需鉴权的接口要在网络请求头(Http Headers)中添加参数(Authorization)项,设置已授权的令牌(JWT:JSON Web Tokens)</p>
@@ -69,6 +71,7 @@
 import { defineComponent, reactive, ref, toRefs, computed, onMounted, watch } from 'vue';
 import { getInterfaceDetail } from '/@/api/interface/interface.ts';
 import ActionMock from './ActionMock.vue';
+import { BasicModal } from '/@/components/Modal';
 
 const props = {
     action: {
@@ -79,7 +82,7 @@ const props = {
 
 export default defineComponent({
     name: 'assemblyDetail',
-    components: { ActionMock },
+    components: { ActionMock , BasicModal },
     props,
     setup(props) {
         //action数据,初始化时使用这个数据去组装需要的数据
@@ -158,7 +161,7 @@ export default defineComponent({
         ]
 
         onMounted(() => {
-            props.action && getActionData(props.action.id)
+            props.action && props.action.id && getActionData(props.action.id)
         })
         watch(
             () => props.action,

+ 61 - 56
src/views/interface/item/child/InterfaceCarModal.vue

@@ -1,65 +1,69 @@
 <template>
     <!-- 申请库弹窗 -->
-    <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
-        :footer="null" wrapClassName="modal-wrap" @cancel="onClose">
-        <div class="action-content">
-            <div class="top-search">
-                <div class="left-search-input">
-                    <div class="input">
-                        <span>关键字</span>
-                        <a-input allowClear v-model:value="searchValue" style="width: 200px;"
-                            placeholder="请输入资源名称"></a-input>
+    <BasicModal width="1440px" v-bind="$attrs" :title="title" :showOkBtn="false" :showCancelBtn="false">
+    <!-- <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
+        :footer="null" wrapClassName="modal-wrap" @cancel="onClose"> -->
+        <div class="modal-wrap">
+            <div class="action-content">
+                <div class="top-search">
+                    <div class="left-search-input">
+                        <div class="input">
+                            <span>关键字</span>
+                            <a-input allowClear v-model:value="searchValue" style="width: 200px;"
+                                placeholder="请输入资源名称"></a-input>
+                        </div>
+                        <div class="input">
+                            <span>审核状态</span>
+                            <a-select allowClear v-model:value="selectValue" style="width: 200px" :options="statusOptions">
+                            </a-select>
+                        </div>
+                        <div class="input">
+                            <span>申请时间</span>
+                            <!-- <a-date-picker v-model:value="searchTime" placeholder="申请时间" style="width: 200px" /> -->
+                            <a-range-picker placeholder="申请时间" v-model:value="searchTime" />
+                        </div>
                     </div>
-                    <div class="input">
-                        <span>审核状态</span>
-                        <a-select allowClear v-model:value="selectValue" style="width: 200px" :options="statusOptions">
-                        </a-select>
-                    </div>
-                    <div class="input">
-                        <span>申请时间</span>
-                        <!-- <a-date-picker v-model:value="searchTime" placeholder="申请时间" style="width: 200px" /> -->
-                        <a-range-picker placeholder="申请时间" v-model:value="searchTime" />
+                    <div class="right-btns">
+                        <a-button style="margin-right: 15px;" @click="handleReset">重置</a-button>
+                        <a-button type="primary" @click="handleSearch">查询</a-button>
                     </div>
                 </div>
-                <div class="right-btns">
-                    <a-button style="margin-right: 15px;" @click="handleReset">重置</a-button>
-                    <a-button type="primary" @click="handleSearch">查询</a-button>
+                <div class="bottom-table">
+                    <BasicTable @register="registerTable" class="basic-table sqkList">
+                        <!-- <template #OPT="{ record }">
+                        <span>{{ record.OPT==='login' ? '登录' : '退出' }}</span>
+                    </template> -->
+                        <template #toolbar>
+                            <a-button style="background-color: #fc8b01;color: #fff;" @click="handleAdd"
+                                :disabled="hasSelected">提交申请</a-button>
+                        </template>
+                        <template #index="{ index }">
+                            {{ index + 1 }}
+                        </template>
+                        <template #tjsqsj="{ record }">
+                            {{ record?.tjsqsj?.replace('.0', '') }}
+                        </template>
+                        <template #action="{ record }">
+                            <TableAction :actions="[
+                                {
+                                    label: '移出',
+                                    tooltip: '移出',
+                                    onClick: handleDelete.bind(null, record),
+                                    disabled: record.shzt != '未提交' && record.shzt != '审核不通过'
+                                },
+                                {
+                                    label: '提交申请',
+                                    disabled: record.shzt != '未提交' && record.shzt != '审核不通过',
+                                    onClick: handleAdd.bind(null, record),
+                                },
+                            ]" />
+                        </template>
+                    </BasicTable>
                 </div>
             </div>
-            <div class="bottom-table">
-                <BasicTable @register="registerTable" class="basic-table sqkList">
-                    <!-- <template #OPT="{ record }">
-                    <span>{{ record.OPT==='login' ? '登录' : '退出' }}</span>
-                </template> -->
-                    <template #toolbar>
-                        <a-button style="background-color: #fc8b01;color: #fff;" @click="handleAdd"
-                            :disabled="hasSelected">提交申请</a-button>
-                    </template>
-                    <template #index="{ index }">
-                        {{ index + 1 }}
-                    </template>
-                    <template #tjsqsj="{ record }">
-                        {{ record?.tjsqsj?.replace('.0', '') }}
-                    </template>
-                    <template #action="{ record }">
-                        <TableAction :actions="[
-                            {
-                                label: '移出',
-                                tooltip: '移出',
-                                onClick: handleDelete.bind(null, record),
-                                disabled: record.shzt != '未提交' && record.shzt != '审核不通过'
-                            },
-                            {
-                                label: '提交申请',
-                                disabled: record.shzt != '未提交' && record.shzt != '审核不通过',
-                                onClick: handleAdd.bind(null, record),
-                            },
-                        ]" />
-                    </template>
-                </BasicTable>
-            </div>
         </div>
-    </a-modal>
+    <!-- </a-modal> -->
+    </BasicModal>
     <a-modal v-model:visible="showSelectAppModal" centered title="选择应用" width="400px" :maskClosable="false"
         @cancel="closeSelectAppModal">
         <div class="content" style="padding: 20px 10px 10px;font-size: 16px;">
@@ -94,6 +98,7 @@ import { queryFlowInfoPage, submitExamine } from '/@/api/resource/examine';
 import { list } from '/@/api/authorize/authorize';
 import ApplyModal from './applyModal/ApplyModal.vue';
 import { useModal } from '/@/components/Modal';
+import { BasicModal } from '/@/components/Modal';
 
 const props = {
     // resId: {
@@ -103,7 +108,7 @@ const props = {
 }
 export default defineComponent({
     name: 'modal',
-    components: { BasicTable, TableAction, ExclamationCircleOutlined, ApplyModal },
+    components: { BasicTable, TableAction, ExclamationCircleOutlined, ApplyModal, BasicModal },
     props,
     emits: ['closeModal'],
     setup(props, { emit }) {
@@ -271,7 +276,7 @@ export default defineComponent({
                 hideOnSinglePage: false
             },
             rowKey: (record) => record.serviceid,
-            canResize: true,
+            canResize: false,
             showTableSetting: true,  // 显示表格设置
             tableSetting: {
                 redo: true,

+ 6 - 2
src/views/interface/item/child/Search.vue

@@ -19,7 +19,7 @@
         <!-- <a-modal style="top: 50px" v-model:visible="visible" title="申请库" @ok="handleOk" width="1440px">
             <library></library>
         </a-modal> -->
-        <InterfaceCarModal v-if="visible" @closeModal="visible = false" />
+        <InterfaceCarModal @register="registerModal" @closeModal="visible = false" />
     </div>
 </template>
 
@@ -31,6 +31,7 @@ import InterfaceCarModal from './InterfaceCarModal.vue';
 import { getResInCar } from '/@/api/resource/plat';
 import { session } from '/@/utils/Memory';
 import { message } from 'ant-design-vue';
+import { useModal } from '/@/components/Modal';
 
 const props = {
     totalNum: {
@@ -79,9 +80,11 @@ export default defineComponent({
             emit("interfaceSearch", e);
         }
 
+        const [registerModal, { openModal }] = useModal();
         const visible = ref(false);
         const showModal = () => {
-            visible.value = true;
+            // visible.value = true;
+            openModal(true);
         };
         // const handleOk = (e) => {
         //     console.log(e);
@@ -117,6 +120,7 @@ export default defineComponent({
         }
 
         return {
+            registerModal,
             num,
             resNum,
             visible,

+ 2 - 2
src/views/resource/examine/check.vue

@@ -84,10 +84,10 @@ export default defineComponent({
         if (res && res.resp_code === 0) {
           var type = res.resp_code == 0 ? 'success' : 'error';
           createMessage[type](res.resp_msg);
-          eventBus.on('shsqUpdate')
+          eventBus.emit('shsqUpdate')
           return true
         } else {
-          eventBus.on('shsqUpdate')
+          eventBus.emit('shsqUpdate')
           return false
         }
       } finally {

+ 9 - 3
src/views/resource/plat/item/FileData.vue

@@ -64,7 +64,10 @@
     </div>
     <MyPage :total="total"></MyPage>
     <!-- 弹出框 -->
-    <DetailModal v-if="showResDeatil" :type="'FILE'" @closeModal="showResDeatil = false" :resId="detailResId" />
+    <!-- <DetailModal v-if="showResDeatil" :type="'FILE'" @closeModal="showResDeatil = false" :resId="detailResId" /> -->
+    <DetailModal @register="registerModal" :type="'FILE'" @closeModal="showResDeatil = false" :resId="detailResId" />
+
+    
     <EmpowerInfo title="文件资源申请信息" ref="infoRef"></EmpowerInfo>
   </div>
 </template>
@@ -79,7 +82,7 @@ import { message, Empty } from 'ant-design-vue';
 import MyPage from './child/MyPage.vue';
 import { setHtmlImg } from '/@/views/minWidgets/CommonWay.js';
 import EmpowerInfo from './EmpowerInfo.vue';
-
+import { useModal } from '/@/components/Modal';
 
 const props = {
   listData: {
@@ -151,11 +154,13 @@ export default defineComponent({
       })
     }
 
+    const [registerModal, { openModal }] = useModal();
     function handleQuery(record, n) {
       //打开详情弹窗
       session.setItem('thumbnail2', document.getElementById(record.SERVICEID + n).src);
       detailResId.value = record.SERVICEID
-      showResDeatil.value = true
+      // showResDeatil.value = true
+      openModal(true)
     }
 
     //申请信息查看
@@ -165,6 +170,7 @@ export default defineComponent({
     }
 
     return {
+      registerModal,
       infoRef,
       showEmpowerInfo,
       setHtmlImg,

+ 7 - 3
src/views/resource/plat/item/MapData.vue

@@ -62,8 +62,9 @@
       </div>
     </div>
     <MyPage :total="total"></MyPage>
-    <DetailModal v-if="showResDeatil" :type="'MAP'" @closeModal="showResDeatil = false" :resId="detailResId"
-      :res="detailRes" />
+    <!-- <DetailModal v-if="showResDeatil" :type="'MAP'" @closeModal="showResDeatil = false" :resId="detailResId"
+      :res="detailRes" /> -->
+      <DetailModal @register="registerModal" :type="'FILE'" @closeModal="showResDeatil = false" :resId="detailResId" />
     <EmpowerInfo title="地图资源申请信息" ref="infoRef"></EmpowerInfo>
   </div>
 </template>
@@ -78,7 +79,7 @@ import { session } from '/@/utils/Memory';
 import MyPage from './child/MyPage.vue';
 import { setHtmlImg } from '/@/views/minWidgets/CommonWay.js';
 import EmpowerInfo from './EmpowerInfo.vue';
-
+import { useModal } from '/@/components/Modal';
 
 export default defineComponent({
   name: 'MapData',
@@ -144,6 +145,7 @@ export default defineComponent({
       }
     )
 
+    const [registerModal, { openModal }] = useModal();
     const detailRes = ref(null);
     function handleQuery(record, n) {
       //打开详情弹窗
@@ -152,6 +154,7 @@ export default defineComponent({
       detailResId.value = record.SERVICEID;
       detailRes.value = record;
       showResDeatil.value = true;
+      openModal(true);
     }
 
     function applyWay(i) {
@@ -183,6 +186,7 @@ export default defineComponent({
 
 
     return {
+      registerModal,
       infoRef,
       showEmpowerInfo,
       setHtmlImg,

+ 7 - 2
src/views/resource/plat/item/SceneData.vue

@@ -63,7 +63,9 @@
     </div>
     <MyPage :total="total"></MyPage>
     <!-- 弹出框 -->
-    <DetailModal v-if="showResDeatil" :type="'SCENE'" @closeModal="showResDeatil = false" :resId="detailResId"
+    <!-- <DetailModal v-if="showResDeatil" :type="'SCENE'" @closeModal="showResDeatil = false" :resId="detailResId"
+      :res="detailRes" /> -->
+    <DetailModal @register="registerModalCK" :type="'SCENE'" @closeModal="showResDeatil = false" :resId="detailResId"
       :res="detailRes" />
     <EmpowerInfo title="场景资源申请信息" ref="infoRef"></EmpowerInfo>
   </div>
@@ -85,7 +87,7 @@ import MyPage from './child/MyPage.vue';
 import DetailModal from './child/DetailModal.vue';
 import { setHtmlImg } from '/@/views/minWidgets/CommonWay.js';
 import EmpowerInfo from './EmpowerInfo.vue';
-
+import { useModal } from '/@/components/Modal';
 
 const props = {
   listData: {
@@ -139,6 +141,7 @@ export default defineComponent({
       immediate: true
     })
 
+    const [registerModalCK, { openModal }] = useModal();
     const detailRes = ref(null);
     function handleQuery(record, n) {
       console.log("11111:", record)
@@ -150,6 +153,7 @@ export default defineComponent({
       detailResId.value = record.SERVICEID
       detailRes.value = record;
       showResDeatil.value = true
+      openModal(true)
     }
     function applyWay(i) {
       console.log(i)
@@ -179,6 +183,7 @@ export default defineComponent({
     }
 
     return {
+      registerModalCK,
       infoRef,
       showEmpowerInfo,
       setHtmlImg,

+ 16 - 8
src/views/resource/plat/item/child/DetailModal.vue

@@ -1,6 +1,8 @@
 <template>
-    <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
-        :footer="null" wrapClassName="modal-wrap" @cancel="onClose">
+    <BasicModal width="1440px" v-bind="$attrs" :title="title" :showOkBtn="false" :showCancelBtn="false">
+    <!-- <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
+        :footer="null" wrapClassName="modal-wrap" @cancel="onClose"> -->
+    <div class="modal-wrap">
         <div class="action-content">
             <div class="top-header">
                 <div class="img-container">
@@ -235,7 +237,9 @@
                 </div>
             </div> -->
         </div>
-    </a-modal>
+    <!-- </a-modal> -->
+    </div>
+    </BasicModal>
 </template>
 <script>
 import { defineComponent, reactive, ref, onMounted, watch, toRefs } from 'vue';
@@ -245,6 +249,7 @@ import moment from 'moment';
 import { setHtmlImg } from '/@/views/minWidgets/CommonWay.js';
 import { getResViewInfo, queryServiceTags } from '/@/api/resource/plat';
 import { getAllTags } from '/@/api/sys/tag';
+import { BasicModal } from '/@/components/Modal';
 
 const props = {
     resId: {
@@ -258,7 +263,7 @@ const props = {
 }
 export default defineComponent({
     name: 'modal',
-    components: {},
+    components: { BasicModal },
     props,
     setup(props, { emit }) {
         const data = reactive({
@@ -276,11 +281,13 @@ export default defineComponent({
 
         var urlShow = ref(false);
         onMounted(() => {
-            urlShow.value = props.res.SFJRSQK === '审核通过' ? true : false;
+            urlShow.value = props?.res?.SFJRSQK === '审核通过' ? true : false;
         })
+        watch(() => props.resId,() => getInfo());
         //初始化请求所需数据
-        onMounted(async () => {
-            console.log(props.resId);
+        onMounted(()=>getInfo())
+        async function getInfo()  {
+            if(!props.resId) return;
             let res = await getResViewInfo(props.resId)
             console.log(res);
             seeShow.value = res.type == 'DR' ? false : true;
@@ -327,7 +334,8 @@ export default defineComponent({
                 metaInfo.value.secretlevel = secretLevelObj[metaInfo.value.secretlevel]
                 metaInfo.value.epsgCode = epsgCodeObj[metaInfo.value.epsgCode]
             }
-        })
+        }
+
         return {
             urlShow,
             seeShow,

+ 71 - 57
src/views/resource/plat/item/child/ResCarModal.vue

@@ -1,64 +1,68 @@
 <template>
     <!-- 申请库弹窗 -->
-    <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
-        :footer="null" wrapClassName="modal-wrap" @cancel="onClose">
-        <div class="action-content">
-            <div class="top-search">
-                <div class="left-search-input">
-                    <div class="input">
-                        <span>关键字</span>
-                        <a-input allowClear v-model:value="searchValue" style="width: 200px;"
-                            placeholder="请输入资源名称"></a-input>
+    <BasicModal width="1440px" v-bind="$attrs" :title="title" :showOkBtn="false" :showCancelBtn="false">
+    <!-- <a-modal :visible="true" :width="width" :maskClosable="false" :destroyOnClose="true" centered :title="title"
+        :footer="null" wrapClassName="modal-wrap" @cancel="onClose"> -->
+        <div class="modal-wrap">
+            <div class="action-content">
+                <div class="top-search">
+                    <div class="left-search-input">
+                        <div class="input">
+                            <span>关键字</span>
+                            <a-input allowClear v-model:value="searchValue" style="width: 200px;"
+                                placeholder="请输入资源名称"></a-input>
+                        </div>
+                        <div class="input">
+                            <span>审核状态</span>
+                            <a-select allowClear v-model:value="selectValue" style="width: 200px" :options="statusOptions">
+                            </a-select>
+                        </div>
+                        <div class="input">
+                            <span>申请时间</span>
+                            <!-- <a-date-picker v-model:value="searchTime" placeholder="申请时间" style="width: 200px" /> -->
+                            <a-range-picker placeholder="申请时间" v-model:value="searchTime" />
+                        </div>
                     </div>
-                    <div class="input">
-                        <span>审核状态</span>
-                        <a-select allowClear v-model:value="selectValue" style="width: 200px" :options="statusOptions">
-                        </a-select>
+                    <div class="right-btns">
+                        <a-button style="margin-right: 15px;" @click="handleReset">重置</a-button>
+                        <a-button type="primary" @click="handleSearch">查询</a-button>
                     </div>
-                    <div class="input">
-                        <span>申请时间</span>
-                        <!-- <a-date-picker v-model:value="searchTime" placeholder="申请时间" style="width: 200px" /> -->
-                        <a-range-picker placeholder="申请时间" v-model:value="searchTime" />
-                    </div>
-                </div>
-                <div class="right-btns">
-                    <a-button style="margin-right: 15px;" @click="handleReset">重置</a-button>
-                    <a-button type="primary" @click="handleSearch">查询</a-button>
                 </div>
-            </div>
 
-            <div class="bottom-table">
-                <BasicTable @register="registerTable" class="basic-table sqkList">
-                    <template #toolbar>
-                        <a-button :disabled="hasSelected" style="background-color: #fc8b01;color: #fff;"
-                            @click="handleCreate">提交申请</a-button>
-                    </template>
-                    <template #tjsqsj="{ record }">
-                        {{ record?.tjsqsj?.replace('.0', '') }}
-                    </template>
-                    <template #index="{ index }">
-                        {{ index + 1 }}
-                    </template>
-                    <template #action="{ record }">
-                        <TableAction :actions="[
-                            {
-                                label: '移出',
-                                tooltip: '移出',
-                                onClick: handleDelete.bind(null, record),
-                                disabled: record.shzt != '未提交' && record.shzt != '审核不通过'
-                            },
-                            {
-                                label: '提交申请',
-                                disabled: record.shzt != '未提交' && record.shzt != '审核不通过',
-                                onClick: applyHandleEdit.bind(null, record),
-                            },
-                        ]">
-                        </TableAction>
-                    </template>
-                </BasicTable>
+                <div class="bottom-table">
+                    <BasicTable @register="registerTable" class="basic-table sqkList">
+                        <template #toolbar>
+                            <a-button :disabled="hasSelected" style="background-color: #fc8b01;color: #fff;"
+                                @click="handleCreate">提交申请</a-button>
+                        </template>
+                        <template #tjsqsj="{ record }">
+                            {{ record?.tjsqsj?.replace('.0', '') }}
+                        </template>
+                        <template #index="{ index }">
+                            {{ index + 1 }}
+                        </template>
+                        <template #action="{ record }">
+                            <TableAction :actions="[
+                                {
+                                    label: '移出',
+                                    tooltip: '移出',
+                                    onClick: handleDelete.bind(null, record),
+                                    disabled: record.shzt != '未提交' && record.shzt != '审核不通过'
+                                },
+                                {
+                                    label: '提交申请',
+                                    disabled: record.shzt != '未提交' && record.shzt != '审核不通过',
+                                    onClick: applyHandleEdit.bind(null, record),
+                                },
+                            ]">
+                            </TableAction>
+                        </template>
+                    </BasicTable>
+                </div>
             </div>
         </div>
-    </a-modal>
+    <!-- </a-modal> -->
+    </BasicModal>
     <!-- 申请弹出框 -->
     <ApplyModal @register="registerModal" @success="applyHandleSuccess" :type="props.type" />
 </template>
@@ -76,14 +80,14 @@ import { getResInCar, clearResInCar, deleteResInCar } from '/@/api/resource/plat
 import { queryFlowInfoPage, submitExamine } from '/@/api/resource/examine';
 import ApplyModal from './applyModal/ApplyModal.vue';
 import { useModal } from '/@/components/Modal';
-import { columns } from "./ResCarModal.data"
+import { columns } from "./ResCarModal.data";
 import { list } from '/@/api/authorize/authorize';
-
+import { BasicModal } from '/@/components/Modal';
 
 
 export default defineComponent({
     name: 'modal',
-    components: { BasicTable, TableAction, ApplyModal, ExclamationCircleOutlined },
+    components: { BasicTable, TableAction, ApplyModal, ExclamationCircleOutlined, BasicModal },
     props: {
         type: {
             type: String,
@@ -104,6 +108,7 @@ export default defineComponent({
             { label: "审核通过", value: "审核通过" },
             { label: "审核不通过", value: "审核不通过" },
         ]
+
         // 请求所有申请库中的资源
         const getAllData = async () => {
             var appList = await list();
@@ -194,7 +199,7 @@ export default defineComponent({
                 hideOnSinglePage: false
             },
             rowKey: (record) => record.serviceid,
-            canResize: true,
+            canResize: false,
             showTableSetting: true,  // 显示表格设置
             tableSetting: {
                 redo: true,
@@ -367,6 +372,15 @@ export default defineComponent({
 }
 </style>
 <style lang="less" scoped>
+.modal-wrap .action-content .top-search {
+    width: 100%;
+    height: 74px;
+    border-radius: 6px;
+    background: #FFFFFF;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
 .modal-wrap {
     .action-content {
         padding: 20px;

+ 8 - 3
src/views/resource/plat/item/child/Search.vue

@@ -17,7 +17,7 @@
             <a-checkbox-group v-model:value="value4" :options="optionsTag" @change="tagChange"></a-checkbox-group>
         </div>
         <!-- 弹出框 -->
-        <ResCarModal :type="props.type" v-if="visible" @closeModal="visible = false" />
+        <ResCarModal @register="registerModal" :type="props.type" @closeModal="visible = false" />
     </div>
 </template>
 
@@ -88,9 +88,13 @@ export default defineComponent({
         }
 
         const [registerModal, { openModal }] = useModal();
-        const visible = ref(false);
+        const visible = ref(true);
         const showModal = () => {
-            visible.value = true;
+            // visible.value = true;
+            openModal(true, {
+              isUpdate: false,
+              isCheck:false,
+            });
         };
 
         //标签加载
@@ -123,6 +127,7 @@ export default defineComponent({
         };
 
         return {
+            registerModal,
             onCheckAllChange,
             indeterminate,
             checkAll,

+ 1 - 0
src/views/tips/index.vue

@@ -248,6 +248,7 @@ export default defineComponent({
                 currentMsg.value = msgData.value.filter(msg => msg.read === readTitle.value).slice((pageData.page - 1) * 10, pageData.page * 10);
                 pageData.total = msgData.value.filter(msg => msg.read === readTitle.value).length;
             }
+            eventBus.emit('shsqUpdate')
         }
         // 一键读取所有消息
         const readAllMsg = () => {