Browse Source

Project Init

yigeren911 1 year ago
parent
commit
294ddf5188

+ 1 - 1
src/components/pictureUpload/index.vue

@@ -2,7 +2,7 @@
   <el-image :preview-teleported="true" :preview-src-list="previewList"
             v-if="fileUrl?.length>0"
             :src="previewList[0]" class="box" />
-  <el-upload class="box" action="#" :show-file-list="false" :http-request="upload" :accept="accept">
+  <el-upload class="box" action="#" :show-file-list="false" :http-request="upload" :accept="accept" >
     <el-icon class="avatar-uploader-icon">
       <Plus />
     </el-icon>

+ 0 - 0
src/views/backend/enterprise/project/parking/detailDialog.vue → src/views/backend/enterprise/project/parking/component/detailDialog.vue


+ 5 - 5
src/views/backend/enterprise/project/parking/editDialog.vue → src/views/backend/enterprise/project/parking/component/editDialog.vue

@@ -138,12 +138,12 @@
 
 <script setup>
 import { reactive, ref } from "vue";
-import request from "/@/api/request";
-import { buildingTree, parking } from "/@/api/controllerUrls";
+import request from "/src/api/request";
+import { buildingTree, parking } from "/src/api/controllerUrls";
 import { ElMessage } from "element-plus";
-import pictureUpload from "/@/components/pictureUpload/index.vue";
-import pictureUpload2 from "/@/components/pictureUpload/multiple.vue";
-import editor from "/@/components/editor/index.vue";
+import pictureUpload from "/src/components/pictureUpload/index.vue";
+import pictureUpload2 from "/src/components/pictureUpload/multiple.vue";
+import editor from "/src/components/editor/index.vue";
 
 let showDialog = ref(false);
 

+ 2 - 2
src/views/backend/enterprise/project/parking/mapSetting.vue → src/views/backend/enterprise/project/parking/component/mapSetting.vue

@@ -44,8 +44,8 @@
 </template>
 <script setup>
 import { computed, onMounted, reactive, ref, watch } from "vue";
-import request from "/@/api/request";
-import { building, mapMark } from "/@/api/controllerUrls";
+import request from "/src/api/request";
+import { building, mapMark } from "/src/api/controllerUrls";
 import { ElMessageBox } from "element-plus";
 
 const emit = defineEmits(["update:value", "change"]);

+ 2 - 2
src/views/backend/enterprise/project/parking/markDialog.vue → src/views/backend/enterprise/project/parking/component/markDialog.vue

@@ -19,8 +19,8 @@
 </template>
 <script setup>
 import { ref } from "vue";
-import request from "/@/api/request";
-import { parking, building } from "/@/api/controllerUrls";
+import request from "/src/api/request";
+import { parking, building } from "/src/api/controllerUrls";
 import mapSetting from "./mapSetting.vue";
 
 let showDialog = ref(false);

+ 2 - 2
src/views/backend/enterprise/project/parking/parkingView.vue → src/views/backend/enterprise/project/parking/component/parkingView.vue

@@ -24,8 +24,8 @@
 </template>
 <script setup>
 import { computed, onMounted, reactive, ref, watch } from "vue";
-import request from "/@/api/request";
-import { building, mapMark } from "/@/api/controllerUrls";
+import request from "/src/api/request";
+import { building, mapMark } from "/src/api/controllerUrls";
 import { ElMessageBox } from "element-plus";
 
 const props = defineProps({

+ 17 - 0
src/views/backend/enterprise/project/parking/excel/dataView.vue

@@ -0,0 +1,17 @@
+<template>
+
+</template>
+
+<script setup lang="ts">
+
+
+
+
+
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 70 - 0
src/views/backend/enterprise/project/parking/excel/readExcel.vue

@@ -0,0 +1,70 @@
+<template>
+  <el-dialog v-model="showDialog">
+    <div style="display: flex">
+      <el-upload
+        ref="uploadRef"
+        action="#"
+        :auto-upload="false"
+        :show-file-list="false"
+        accept=".xls,.xlsx"
+        @change="selectFile"
+      >
+        <template #trigger>
+          <el-button type="primary">选择表格</el-button>
+        </template>
+      </el-upload>
+      <el-button type="success" style="margin-left: 10px">上传服务器</el-button>
+    </div>
+
+    <el-table :data="tableData">
+      <el-table-column prop="" label=""></el-table-column>
+    </el-table>
+  </el-dialog>
+</template>
+
+<script setup>
+import { ref } from "vue";
+import * as xlsx from "xlsx";
+
+let showDialog = ref(false);
+let tableData = ref([]);
+let uploadRef = ref();
+
+defineExpose({
+  open
+});
+
+function open() {
+  showDialog.value = true;
+}
+
+function selectFile(e) {
+  readFile(e.raw).then(res => {
+    console.log(res);
+  });
+}
+
+async function readFile(url) {
+  return new Promise(function(resolve, reject) {
+    try {
+      const reader = new FileReader();
+      reader.onload = function(e) {
+        const data = e.target.result;
+        let workBook = xlsx.read(data, {
+          type: "binary"
+        });
+        let workSheet = workBook.Sheets[workBook.SheetNames[0]];
+        const result = xlsx.utils.sheet_to_json(workSheet);
+        resolve(result);
+      };
+      reader.readAsBinaryString(url);
+    } catch (e) {
+      reject(e);
+    }
+  });
+}
+</script>
+
+<style scoped>
+
+</style>

+ 37 - 50
src/views/backend/enterprise/project/parking/index.vue

@@ -11,6 +11,24 @@
         <el-button type="primary"
                    @click="getData">刷新
         </el-button>
+        <el-dropdown trigger="click" @command="excel2data">
+          <el-button type="success" style="margin-left: 10px">导入/导出
+            <Icon style="color: #ffffff;margin-left: 5px;font-size: 16px" name="el-icon-ArrowDown" />
+          </el-button>
+          <template #dropdown>
+            <el-dropdown-menu>
+              <el-dropdown-item command="下载模板">
+                <el-button type="warning">下载模板</el-button>
+              </el-dropdown-item>
+              <el-dropdown-item command="导入数据">
+                <el-button type="primary">导入数据</el-button>
+              </el-dropdown-item>
+              <el-dropdown-item command="导出数据">
+                <el-button type="primary">导出数据</el-button>
+              </el-dropdown-item>
+            </el-dropdown-menu>
+          </template>
+        </el-dropdown>
       </div>
       <div>
         <el-input v-model="quickSearch" placeholder="通过车位编号模糊检索" @change="getData" clearable></el-input>
@@ -126,6 +144,7 @@
     <editDialog ref="editDialogRef" @close="getData"></editDialog>
     <markDialog ref="parkingMapRef" @close="getData"></markDialog>
     <detailDialog ref="detailDialogRef"></detailDialog>
+    <readExcel ref="readExcelRef"></readExcel>
 
   </div>
 </template>
@@ -136,9 +155,10 @@ import { auth } from "/@/utils/common";
 import request from "/@/api/request";
 import { building_list, buildingTree, community_list, district_list, parking } from "/@/api/controllerUrls";
 import { computed, onMounted, ref } from "vue";
-import editDialog from "./editDialog.vue";
-import markDialog from "./markDialog.vue";
-import detailDialog from "./detailDialog.vue";
+import editDialog from "./component/editDialog.vue";
+import markDialog from "./component/markDialog.vue";
+import detailDialog from "./component/detailDialog.vue";
+import readExcel from "./excel/readExcel.vue"
 
 
 onMounted(() => {
@@ -152,6 +172,7 @@ let districtId = ref("");
 let editDialogRef = ref();
 let parkingMapRef = ref();
 let detailDialogRef = ref();
+let readExcelRef = ref();
 
 let quickSearch = ref("");
 
@@ -172,48 +193,10 @@ function getDistrictList() {
 
 let communityId = ref("");
 
-//小区列表
-let communityList = ref([]);
-
-//选择区县,获取小区列表
-function selectDstrict(event: any) {
-  request.index(community_list, {
-    districtIds: event
-  }, "").then((res: any) => {
-    if (res.code == 1) {
-      communityList.value = res.data;
-      communityId.value = "";
-      buildingId.value = "";
-      getData();
-    }
-  });
-}
-
-
 let buildingId = ref("");
-//楼号列表
-let buildingList = ref([]);
-
-//选择小区,获取楼号列表
-function selectCommunity(event: any) {
-  request.index(building_list, {
-    communityIds: event
-  }, "").then((res: any) => {
-    if (res.code == 1) {
-      buildingList.value = res.data;
-      buildingId.value = "";
-      getData();
-    }
-  });
-}
-
 
 let parkingData = ref([]);
 
-function selectBuilding() {
-  getData();
-}
-
 
 //树相关
 let treeData = ref([]);
@@ -248,15 +231,6 @@ function treeNodeClick(node: any, data: any) {
   getData();
 }
 
-let defaultExpanded = computed(() => {
-  let res = [];
-  for (let row of treeData.value) {
-    res.push(row.id);
-  }
-  return res;
-});
-
-
 function getData() {
   request.index(parking, {
     districtId: districtId.value,
@@ -290,6 +264,19 @@ function deleteRow(row: any) {
 }
 
 
+function excel2data(e: string) {
+  if (e === "下载模板") {
+
+  } else if (e === "导入数据") {
+    readExcelRef.value.open()
+  } else if (e === "导出数据") {
+
+  } else {
+
+  }
+}
+
+
 </script>