Bläddra i källkod

项目资料收集

ZaiZai 1 år sedan
förälder
incheckning
1b380f385d
2 ändrade filer med 47 tillägg och 6 borttagningar
  1. 26 3
      src/views/project/admin/list.vue
  2. 21 3
      src/views/project/modules/project-list.vue

+ 26 - 3
src/views/project/admin/list.vue

@@ -25,11 +25,11 @@
                 </el-select>
             </div>
             <el-button type="success" class="ml-6">生成报告</el-button>
-            <el-button type="danger" class="ml-2">批量删除</el-button>
+            <el-button v-del-com:[delTableItem] type="danger" class="ml-2" :disabled="tableCheckKeys.length <= 0">批量删除</el-button>
             <el-button type="warning" class="ml-2">导入</el-button>
-            <el-button type="primary" class="ml-2">批量导出</el-button>
+            <el-button v-yes-com:[deriveTableItem] type="primary" class="ml-2" :disabled="tableCheckKeys.length <= 0">批量导出</el-button>
         </template>
-        <HcTableList />
+        <HcTableList ref="tableRef" is-admin @tap="rowNameClick" @check="tableCheck" />
         <template #action>
             <div>建设规模:共计 xx 公里</div>
             <hc-pages :pages="searchForm" @change="pageChange" />
@@ -41,6 +41,8 @@
 import { ref } from 'vue'
 import HcTableList from '../modules/project-list.vue'
 
+const tableRef = ref(null)
+
 //项目阶段
 const stateOptions = ref([{ value: '1', label: '新开工项目' }, { value: '2', label: '建成项目' }, { value: '3', label: '在建项目' }])
 
@@ -61,6 +63,27 @@ const pageChange = ({ current, size }) => {
     searchForm.value.current = current
     searchForm.value.size = size
 }
+
+//表格被选择
+const tableCheckKeys = ref([])
+const tableCheck = (row) => {
+    tableCheckKeys.value = row
+}
+
+//项目名称被点击
+const rowNameClick = (row) => {
+    console.log(row)
+}
+
+//批量删除
+const delTableItem = () => {
+    tableRef.value?.batchRemove()
+}
+
+//批量导出
+const deriveTableItem = () => {
+    tableRef.value?.batchExport()
+}
 </script>
 
 <style lang="scss">

+ 21 - 3
src/views/project/modules/project-list.vue

@@ -10,7 +10,7 @@
             <el-link v-if="isAdminAuth" type="warning" @click="completion(row)">项目完成情况</el-link>
             <el-link type="primary" @click="examine(row)">查看</el-link>
             <el-link v-if="isAdminAuth" v-del-com:[delTableItem]="row" type="danger">删除</el-link>
-            <el-link v-yes-com:[deriveTableItem]="row" type="success" yes-com-text="您确定要导出当前数据吗?">导出</el-link>
+            <el-link v-yes-com:[deriveTableItem]="row" type="success">导出</el-link>
         </template>
     </hc-table>
 </template>
@@ -26,7 +26,7 @@ const props = defineProps({
 })
 
 //事件
-const emit = defineEmits(['tap', 'completion', 'examine', 'del', 'export'])
+const emit = defineEmits(['tap', 'completion', 'examine', 'del', 'export', 'check'])
 
 //监听权限
 const isAdminAuth = ref(props.isAdmin)
@@ -224,11 +224,11 @@ const tableData = ref([
 const tableCheckKeys = ref([])
 const tableCheckChange = (rows) => {
     tableCheckKeys.value = rows
+    emit('check', rows)
 }
 
 //项目名称被点击
 const rowNameClick = (row) => {
-    console.log('项目名称被点击')
     emit('tap', row)
 }
 
@@ -263,6 +263,24 @@ const deriveTableItem = ({ item }, resolve) => {
         emit('export', item)
     }, 3000)
 }
+
+//批量删除
+const batchRemove = () => {
+    if (!isAdminAuth.value) return
+    const rows = tableCheckKeys.value
+    console.log('批量删除', rows)
+}
+
+//批量导出
+const batchExport = () => {
+    const rows = tableCheckKeys.value
+    console.log('批量导出', rows)
+}
+
+defineExpose({
+    batchRemove,
+    batchExport,
+})
 </script>
 
 <style lang="scss">