소스 검색

修复bug

yangyuxuan 1 개월 전
부모
커밋
fcc5cd8795

+ 2 - 0
src/components/Dialog/index.vue

@@ -3,6 +3,7 @@
     v-if="modelValue || customShow"
     v-drag="{ draggable: draggable, position: 'fixed', scale: containerScale, handle: '.dialog-header' }"
     class="common-dialog"
+    :class="customClass"
     :style="{ width: computedWidth, height: computedHeight, zIndex: zIndex }"
   >
     <div :class="type === 'xs' || headerType === 'header2' ? 'dialog-header2' : 'dialog-header'">
@@ -59,6 +60,7 @@ interface Props {
   headerType?: string;
   getTagId?: string;
   draggable?: boolean;
+  customClass?: string;
 }
 const containerScale = inject('containerScale');
 const props = withDefaults(defineProps<Props>(), {

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

@@ -24,24 +24,16 @@ declare module 'vue' {
     DistributionMap: typeof import('./../components/Map/YztMap/DistributionMap.vue')['default']
     DrawMap: typeof import('./../components/Map/YztMap/DrawMap.vue')['default']
     Editor: typeof import('./../components/Editor/index.vue')['default']
-    ElAnchor: typeof import('element-plus/es')['ElAnchor']
-    ElAnchorLink: typeof import('element-plus/es')['ElAnchorLink']
     ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete']
     ElBadge: typeof import('element-plus/es')['ElBadge']
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
-    ElCheckboxButton: typeof import('element-plus/es')['ElCheckboxButton']
     ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     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']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
-    ElContainer: typeof import('element-plus/es')['ElContainer']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
-    ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
-    ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
     ElDialog: typeof import('element-plus/es')['ElDialog']
     ElDivider: typeof import('element-plus/es')['ElDivider']
     ElDrawer: typeof import('element-plus/es')['ElDrawer']
@@ -51,20 +43,16 @@ declare module 'vue' {
     ElEmpty: typeof import('element-plus/es')['ElEmpty']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
-    ElHeader: typeof import('element-plus/es')['ElHeader']
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
     ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
-    ElLink: typeof import('element-plus/es')['ElLink']
-    ElMain: typeof import('element-plus/es')['ElMain']
     ElMenu: typeof import('element-plus/es')['ElMenu']
     ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
     ElOption: typeof import('element-plus/es')['ElOption']
     ElPagination: typeof import('element-plus/es')['ElPagination']
     ElPopover: typeof import('element-plus/es')['ElPopover']
     ElRadio: typeof import('element-plus/es')['ElRadio']
-    ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
     ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ElRow: typeof import('element-plus/es')['ElRow']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
@@ -73,20 +61,14 @@ declare module 'vue' {
     ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
     ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem']
     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']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElTable: typeof import('element-plus/es')['ElTable']
     ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
-    ElTabPane: typeof import('element-plus/es')['ElTabPane']
-    ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
     ElText: typeof import('element-plus/es')['ElText']
     ElTimeline: typeof import('element-plus/es')['ElTimeline']
     ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
-    ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTree: typeof import('element-plus/es')['ElTree']
     ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
@@ -104,7 +86,6 @@ declare module 'vue' {
     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']
     ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
     ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']

+ 108 - 0
src/views/comprehensiveGuarantee/MaterialReserveManagement/MaterialDetails.vue

@@ -0,0 +1,108 @@
+<template>
+  <div>
+    <div class="app-container">
+      <div style="display: flex">
+        <el-form ref="queryFormRef" :model="queryParams" :inline="true">
+          <el-form-item label="区县:" prop="district" label-width="auto">
+            <el-select v-model="queryParams.district" placeholder="全部" clearable>
+              <el-option v-for="item in district_type" :label="item.label" :value="item.value" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="仓库:" prop="district" label-width="auto">
+            <el-select v-model="queryParams.warehouse_id" placeholder="全部" clearable>
+              <el-option v-for="item in district_type" :label="item.label" :value="item.value" />
+            </el-select>
+          </el-form-item>
+        </el-form>
+        <div>数据来源:应急物资物流管理系统</div>
+        <div style="margin-left: 40px;">最近更新:2025年03月21日</div>
+        <el-button type="primary" style="margin-left: 150px">同步</el-button>
+      </div>
+      <el-row :gutter="30" style="height: 50px">
+        <el-col :span="6">
+          <div class="count">账面数量:333302项</div>
+        </el-col>
+        <el-col :span="6">
+          <div class="count">账面金额:66636788.468元</div>
+        </el-col>
+        <el-col :span="3">
+          <el-button>批量申请出库</el-button>
+        </el-col>
+        <el-col :span="3">
+          <el-button type="primary">导出清单</el-button>
+        </el-col>
+      </el-row>
+
+    </div>
+    <el-table ref="multipleTable" v-loading="loading" :data="tableData" border class="image-table" :max-height="maxHeight">
+      <el-table-column label="物资名称" align="center" prop="material_name" />
+      <el-table-column label="规格/型号" align="center" prop="model" />
+      <el-table-column label="入库日期" align="center" prop="indate" width="150px" />
+      <el-table-column label="使用状态" align="center" prop="active_state" />
+      <el-table-column label="单位" align="center" prop="unit" />
+      <el-table-column label="账面数">
+        <el-table-column label="数量" align="center" prop="quantity" />
+        <el-table-column label="单价" align="center" prop="unit_price" />
+        <el-table-column label="金额" align="center" prop="amount_money" />
+      </el-table-column>
+      <el-table-column label="情况说明" align="center" prop="situation_description" />
+      <el-table-column label="仓库" align="center" prop="warehouse" />
+      <el-table-column label="所属单位" align="center" prop="affiliated_unit" />
+      <el-table-column label="所属区域" align="center" prop="region" />
+      <el-table-column label="操作" align="center" width="140px" fixed="right" class-name="small-padding fixed-width">
+        <template #default="scope">
+          <el-button type="text" class="common-btn-text-primary" @click="applyOutbound(scope.row.material_id)">申请出库</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <ApplyOutbound v-if="isApply" @close="handleCancel" />
+  </div>
+
+</template>
+
+<script setup lang="ts">
+import ApplyOutbound from '@/views/comprehensiveGuarantee/MaterialReserveManagement/applyOutbound.vue';
+
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const { district_type } = toRefs<any>(proxy?.useDict('district_type'));
+
+const isApply = ref(false);
+const queryParams= {
+  page: 1,
+  pageSize: 10,
+  district: '',
+  warehouse_id: '',
+  from_sys: ''
+}
+const tableData = ref([
+  {
+    material_name: '橡皮艇',
+    model: '船只',
+    indate: '2025年3月26日',
+    active_state: '正在使用',
+    unit: '应急局',
+    quantity: '1',
+    unit_price: '999',
+    amount_money: '999',
+    situation_description: '正常',
+    warehouse: '仓库1',
+    affiliated_unit: '1',
+    region: '茂南区'
+  }
+]);
+const applyOutbound = () => {
+  isApply.value = true;
+}
+const handleCancel = () => {
+  isApply.value = false;
+}
+</script>
+
+
+
+<style scoped lang="scss">
+.count {
+  background-color: #f2f2f2;
+  padding: 10px 30px;
+}
+</style>

+ 87 - 0
src/views/comprehensiveGuarantee/MaterialReserveManagement/applyOutbound.vue

@@ -0,0 +1,87 @@
+<template>
+  <div class="common-dialog">
+    <div class="common-dialog-content">
+      <div class="common-dialog-title-box">
+        <i class="common-dialog-title-icon" />
+        <div>确认调拨信息</div>
+      </div>
+      <div class="common-dialog-box">
+        <div style="display: flex">
+          <el-form ref="eventFormRef" :model="form" :rules="rules" label-width="200px" style="margin-right: 15px;">
+            <el-form-item label="调拨处理办法:" prop="treatment">
+              <el-radio-group v-model="form.treatment">
+                <el-radio value="1" size="large">无偿调拨</el-radio>
+                <el-radio value="2" size="large">有偿调拨</el-radio>
+              </el-radio-group>
+            </el-form-item>
+
+            <el-form-item label="申请单位:" prop="applicant">
+              <el-input v-model="form.applicant" placeholder="请输入申请单位" style="width: 468px !important" />
+            </el-form-item>
+
+            <el-form-item label="接收单位:" prop="receiving_unit">
+              <el-input v-model="form.receiving_unit" placeholder="请输入接收单位" style="width: 468px !important" />
+            </el-form-item>
+
+            <el-form-item label="接收地点:" prop="receiving_location">
+              <el-input v-model="form.receiving_location" placeholder="请输入接收地点" style="width: 468px !important" />
+            </el-form-item>
+
+            <el-form-item label="出动物资用处:" prop="use">
+              <el-input v-model="form.use" placeholder="请输入出动物资用处" style="width: 468px !important" />
+            </el-form-item>
+
+            <el-form-item label="接收联系人:" prop="contact_person">
+              <el-input v-model="form.contact_person" placeholder="请输入接收联系人" style="width: 468px !important" />
+            </el-form-item>
+
+            <el-form-item label="接收联系人电话:" prop="contact_phone">
+              <el-input v-model="form.contact_phone" placeholder="请输入接收联系人电话" style="width: 468px !important" />
+            </el-form-item>
+
+            <el-form-item label="备注:" prop="notes">
+              <el-input type="textarea" v-model="form.notes" placeholder="请输入备注" style="width: 468px !important" />
+            </el-form-item>
+          </el-form>
+          <div style="display:flex; flex-direction: column; margin-top: 10px">
+            <div style="display: flex; justify-content: space-between">
+              <div>物资列表</div>
+              <div>合计: 元</div>
+            </div>
+            <el-table ref="multipleTable" v-loading="loading" :data="tableData" border class="image-table" :max-height="maxHeight">
+              <el-table-column label="物资名称" align="center" prop="material_name" />
+              <el-table-column label="规格/型号" align="center" prop="model" />
+              <el-table-column label="单位" align="center" prop="unit" />
+              <el-table-column label="数量" align="center" prop="quantity" />
+              <el-table-column label="金额" align="center" prop="amount_money" />
+              <el-table-column label="合计" align="center" prop="amount" />
+            </el-table>
+          </div>
+
+        </div>
+        <div class="common-dialog-footer">
+          <el-button @click="closeDialog">取消</el-button>
+          <el-button :loading="buttonLoading" type="primary" @click="submitForm(eventFormRef)">确定</el-button>
+        </div>
+
+      </div>
+
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+
+const emits = defineEmits(['close']);
+const form = ref({});
+
+const closeDialog = () => {
+  emits('close');
+};
+</script>
+
+
+
+<style scoped lang="scss">
+
+</style>

+ 10 - 13
src/views/informationissue/informationView.vue

@@ -22,21 +22,18 @@
                         <div class="statistic-info">{{ formData.user_count }}</div>
                       </div>
                       <div style="display: flex;margin-right: 100px">
-                        <p style="color: #62dea3">成功&nbsp</p>
-                        <div class="statistic-info">{{ formData.user_ok_count }}</div>
-                        <p>&nbsp&nbsp|&nbsp&nbsp</p>
-                        <p style="color: #fa0000">失败&nbsp</p>
-                        <div class="statistic-info">{{ formData.user_err_count }}</div>
-                        <p>&nbsp&nbsp|&nbsp&nbsp</p>
-                        <p style="color: #2c81ff">发送中&nbsp</p>
-                        <div class="statistic-info">{{ formData.user_sending_count }}</div>
+                        <p >成功&nbsp</p>
+                        <div class="statistic-info" style="color: #62dea3">{{ formData.user_ok_count }}</div>
+                        <p>&nbsp&nbsp|&nbsp&nbsp失败&nbsp</p>
+                        <div class="statistic-info" style="color: #fa0000">{{ formData.user_err_count }}</div>
+                        <p>&nbsp&nbsp|&nbsp&nbsp发送中&nbsp</p>
+                        <div class="statistic-info" style="color: #2c81ff">{{ formData.user_sending_count }}</div>
                       </div>
                       <div style="display: flex;margin-right: 100px">
-                        <p style="color: #62dea3">反馈&nbsp</p>
-                        <div class="statistic-info">{{ formData.feedback_count }}</div>
-                        <p>&nbsp&nbsp|&nbsp&nbsp</p>
-                        <p style="color: #fa0000">未反馈&nbsp</p>
-                        <div class="statistic-info">{{ formData.unresponsive_count }}</div>
+                        <p>反馈&nbsp</p>
+                        <div class="statistic-info" style="color: #62dea3">{{ formData.feedback_count }}</div>
+                        <p>&nbsp&nbsp|&nbsp&nbsp未反馈&nbsp</p>
+                        <div class="statistic-info" style="color: #fa0000">{{ formData.unresponsive_count }}</div>
                       </div>
                     </el-row>
                   </div>

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

@@ -7,21 +7,21 @@
             <el-form ref="queryFormRef" :model="queryParams" label-width="100px" style="margin-left: -50px">
               <el-row :gutter="20">
                 <el-col :span="4">
-                  <el-form-item label="渠道:">
+                  <el-form-item label="渠道:" style="width: 220px">
                     <el-select v-model="queryParams.channel" placeholder="全部" clearable>
                       <el-option v-for="(option, index) in channelOptions" :key="index" :label="option.label" :value="option.value"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
                 <el-col :span="4">
-                  <el-form-item label="发布状态:">
+                  <el-form-item label="发布状态:" style="width: 220px">
                     <el-select v-model="queryParams.publishStatus" placeholder="请选择" clearable>
                       <el-option v-for="(option, index) in publishStatusOptions" :key="index" :label="option.label" :value="option.value"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
                 <el-col :span="4">
-                  <el-form-item label="反馈状态:">
+                  <el-form-item label="反馈状态:" style="width: 220px">
                     <el-select v-model="queryParams.feedbackStatus" placeholder="请选择" clearable>
                       <el-option
                         v-for="(option, index) in feedbackStatusOptions"
@@ -33,7 +33,7 @@
                   </el-form-item>
                 </el-col>
                 <el-col :span="5">
-                  <el-form-item label="搜索:">
+                  <el-form-item label="搜索:" style="width: 220px">
                     <el-input v-model="queryParams.searchInput" placeholder="请输入内容" clearable></el-input>
                   </el-form-item>
                 </el-col>

+ 94 - 76
src/views/routineCommandMap/PositionMap.vue

@@ -1,91 +1,95 @@
 <template>
-  <Dialog type="md" :title="!!id ? '修改灾害信息' : '请选择事发地点'" draggable height="780px" customShow @close="handleClose" @confirm="submit">
-    <div class="custom-dialog">
-      <el-form ref="queryFormRef" :model="form">
-        <div class="form">
-          <div class="line">
-            <div class="form-item" style="margin-right: 20px">
-              <div class="text">灾害事件</div>
-              <el-input v-model="form.event_title" class="custom-input" placeholder="请输入" />
+  <div class="dialog">
+
+
+    <Dialog type="md" :title="!!id ? '修改灾害信息' : '请选择事发地点'" draggable height="780px" customShow @close="handleClose" @confirm="submit">
+      <div class="custom-dialog">
+        <el-form ref="queryFormRef" :model="form">
+          <div class="form">
+            <div class="line">
+              <div class="form-item" style="margin-right: 20px">
+                <div class="text">灾害事件</div>
+                <el-input v-model="form.event_title" class="custom-input" placeholder="请输入" />
+              </div>
             </div>
-          </div>
-          <div class="line">
-            <div class="form-item" style="margin-right: 20px">
-              <div class="text">灾害级别</div>
-              <el-select
-                v-model="form.event_level"
-                placeholder="请选择"
-                class="custom-select"
-                popper-class="custom-select-popper"
-                :teleported="false"
-                clearable
-              >
-                <el-option v-for="item in mm_event_level" :key="item.value" :label="item.label" :value="item.value" />
-              </el-select>
+            <div class="line">
+              <div class="form-item" style="margin-right: 20px">
+                <div class="text">灾害级别</div>
+                <el-select
+                  v-model="form.event_level"
+                  placeholder="请选择"
+                  class="custom-select"
+                  popper-class="custom-select-popper"
+                  :teleported="false"
+                  clearable
+                >
+                  <el-option v-for="item in mm_event_level" :key="item.value" :label="item.label" :value="item.value" />
+                </el-select>
+              </div>
             </div>
-          </div>
-          <div class="line">
-            <div class="form-item" style="margin-right: 10px">
-              <div class="text">详细地址</div>
-              <el-input v-model="form.address" class="custom-input" placeholder="请输入" />
-              <div v-if="searchPop" class="scroll_box">
-                <div style="height: 30px; line-height: 30px">
-                  <span style="font-weight: bold">搜索结果列表</span>
-                  <i class="el-icon-close" style="float: right; font-size: 12px; cursor: pointer" @click="closeSearchList()" />
-                </div>
+            <div class="line">
+              <div class="form-item" style="margin-right: 10px">
+                <div class="text">详细地址</div>
+                <el-input v-model="form.address" class="custom-input" placeholder="请输入" @input="handleInput" />
+                <div v-if="searchPop" class="scroll_box" style="width: 640px; height: 580px">
+                  <div style="height: 30px; line-height: 30px">
+                    <span style="font-weight: bold">搜索结果列表</span>
+                    <i class="el-icon-close" style="float: right; font-size: 12px; cursor: pointer" @click="closeSearchList()" />
+                  </div>
 
-                <el-scrollbar class="scroll">
-                  <div v-for="(item, index) in searchList" v-show="searchList.length" :key="index" class="item" @click="handlePanTo(index)">
-                    <el-image class="img" :src="item.img" :alt="item.name" lazy>
-                      <template #error>
-                        <div class="image-slot">
-                          <i class="el-icon-picture-outline"></i>
-                        </div>
-                      </template>
-                    </el-image>
-                    <div>
-                      <div class="text">{{ item.name }}</div>
-                      <div>{{ item.address }}</div>
+                  <el-scrollbar class="scroll">
+                    <div v-for="(item, index) in searchList" v-show="searchList.length" :key="index" class="item" @click="handlePanTo(index)">
+                      <el-image class="img" :src="item.img" :alt="item.name" lazy>
+                        <template #error>
+                          <div class="image-slot">
+                            <i class="el-icon-picture-outline"></i>
+                          </div>
+                        </template>
+                      </el-image>
+                      <div>
+                        <div class="text">{{ item.name }}</div>
+                        <div>{{ item.address }}</div>
+                      </div>
                     </div>
-                  </div>
-                  <div v-show="!searchList.length" class="empty" style="text-align: center">没有搜索到内容</div>
-                </el-scrollbar>
+                    <div v-show="!searchList.length" class="empty" style="text-align: center">没有搜索到内容</div>
+                  </el-scrollbar>
 
-                <el-pagination
-                  background
-                  small
-                  :hide-on-single-page="true"
-                  layout="prev, pager, next"
-                  :total="total"
-                  :page-size="pageSize"
-                  :current-page="pageNum"
-                  style="margin-top: 10px"
-                  @current-change="handleChangePage"
-                >
-                </el-pagination>
+                  <el-pagination
+                    background
+                    small
+                    :hide-on-single-page="true"
+                    layout="prev, pager, next"
+                    :total="total"
+                    :page-size="pageSize"
+                    :current-page="pageNum"
+                    style="margin-top: 10px"
+                    @current-change="handleChangePage"
+                  >
+                  </el-pagination>
+                </div>
               </div>
+              <div class="common-btn-primary" @click="handleInput(0)">搜索</div>
             </div>
-            <div class="common-btn-primary" @click="handleInput(0)">搜索</div>
-          </div>
-          <div class="line">
-            <div class="form-item">
-              <div class="text" style="width: 72px; text-align: right">经度</div>
-              <el-input v-model="form.longitude" class="custom-input" placeholder="请输入" />
-            </div>
-            <div class="form-item">
-              <div class="text" style="width: 72px; text-align: right">纬度</div>
-              <el-input v-model="form.latitude" class="custom-input" placeholder="请输入" />
+            <div class="line">
+              <div class="form-item">
+                <div class="text" style="width: 72px; text-align: right">经度</div>
+                <el-input v-model="form.longitude" class="custom-input" placeholder="请输入" />
+              </div>
+              <div class="form-item">
+                <div class="text" style="width: 72px; text-align: right">纬度</div>
+                <el-input v-model="form.latitude" class="custom-input" placeholder="请输入" />
+              </div>
             </div>
           </div>
-        </div>
-      </el-form>
-      <div ref="containerRef" class="map_box">
-        <div id="positionMap">
-          <div id="map" class="map" :style="{ width: width, height: height }"></div>
+        </el-form>
+        <div ref="containerRef" class="map_box">
+          <div id="positionMap">
+            <div id="map" class="map" :style="{ width: width, height: height }"></div>
+          </div>
         </div>
       </div>
-    </div>
-  </Dialog>
+    </Dialog>
+  </div>
 </template>
 
 <script setup name="PositionMap">
@@ -402,6 +406,10 @@ function submit() {
   background: rgba(0, 0, 0, 0.3);
   margin-bottom: 20px;
   flex: 1;
+  .positionMap {
+    width: 100%;
+    height: 100%;
+  }
   :deep(.amap-menu) {
     color: #000;
   }
@@ -554,4 +562,14 @@ function submit() {
 :deep(.amap-copyright) {
   display: none !important;
 }
+.dialog {
+  font-size: 38px;
+  :deep(.dialog-content) {
+    overflow: unset !important;
+  }
+}
+.custom-pagination-popper {
+  z-index: 9999 !important;
+  position: relative;
+}
 </style>

+ 19 - 30
src/views/videoTag/viedoManagement.vue

@@ -7,7 +7,8 @@
             <el-button type="primary" icon="Plus" @click="handleAdd">新建</el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="danger" plain :disabled="multiple" icon="Delete" @click="handleDelete(selectedRow)"> 删除 </el-button>
+            <el-button type="danger" plain :disabled="multiple" icon="Delete" @click="handleDelete()"> 删除
+            </el-button>
           </el-col>
         </el-row>
         <!-- 表格组件 -->
@@ -37,6 +38,9 @@
 import { onMounted, reactive, ref } from 'vue';
 import VideoAdd from '@/views/videoTag/videoAdd.vue';
 import { deleteVideoTag, getTagList, getVideoIsNull } from '@/api/viedoTag/viedoManagement';
+import { deleteMaterialWarehouse } from '@/api/comprehensiveGuarantee/materialReserveManagement/godownManagement';
+import { PlanVO } from '@/api/system/user/types';
+
 const loading = ref(true);
 const showSearch = ref(true);
 const multiple = ref(true);
@@ -45,6 +49,7 @@ const single = ref(true);
 const total = ref(0);
 const tableData = ref([]);
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const selectedRow = ref<PlanVO | null>(null);
 const initFormData = reactive({
   dictLabel: ''
 });
@@ -73,35 +78,19 @@ const handleUpdate = (dictCode: string) => {
   videoAddState.show = true;
   videoId.value = dictCode;
 };
-const handleDelete = (dictCode: string) => {
-  // 调用 getVideoIsNull 检查是否有摄像头使用此标签
-  getVideoIsNull(dictCode)
-    .then((response) => {
-      const videoNum = response.videonum;
-      if (videoNum > 0) {
-        // 如果 videonum 大于 0,弹出带有详细信息的确认框
-        proxy?.$modal
-          .confirm(response.data + ' 是否确认删除?')
-          .then(() => {
-            deleteVideoTag(dictCode).then(() => {
-              proxy?.$modal.msgSuccess('删除成功');
-              fetchWorkrData();
-            });
-          })
-          .catch(() => {
-            // 用户取消删除操作,不需要做任何事情
-          });
-      } else {
-        // 如果 videonum 小于或等于 0,直接删除,无需提示
-        deleteVideoTag(dictCode).then(() => {
-          proxy?.$modal.msgSuccess('删除成功');
-          fetchWorkrData();
-        });
-      }
-    })
-    .catch((error) => {
-      console.error('检查视频标签使用情况时发生错误:', error);
+const handleDelete = (dictCode?: string) => {
+  const dictCodes = dictCode ? [dictCode] : ids.value;
+
+  getVideoIsNull(dictCodes.join(',')).then(res => {
+    const prompt = res.data;
+    proxy?.$modal.confirm(prompt).then(() => {
+      // 调用批量删除接口
+      deleteVideoTag(dictCodes).then(() => {
+        proxy?.$modal.msgSuccess('删除成功');
+        fetchWorkrData();
+      });
     });
+  });
 };
 const fetchWorkrData = () => {
   loading.value = true;
@@ -118,7 +107,7 @@ const handleSelectionChange = (selection) => {
   ids.value = selection.map((item) => item.dictCode);
   selectedRow.value = selection.length === 1 ? selection[0] : null;
   single.value = selection.length != 1;
-  multiple.value = !selection.length;
+  multiple.value = selection.length != 1;
 };
 onMounted(() => {
   fetchWorkrData();