Browse Source

Project Init

yigeren911 1 year ago
parent
commit
6d42336da7

+ 56 - 27
src/views/backend/enterprise/members/entrust/auditDialog.vue

@@ -45,9 +45,9 @@
             <el-descriptions-item label="证明文件">
               <el-image v-if="data.evidenceFile.length>0"
                         style="width: 100px; height: 100px"
-                        :src="data.evidenceFile[0]"
-                        :zoom-rate="1.2"
-                        :preview-src-list="data.evidenceFile"
+                        :src="data.evidenceFile[0].url"
+                        :zoom-rate="1"
+                        :preview-src-list="data.evidenceFile.map(item=> item.url)"
                         fit="cover"
               />
             </el-descriptions-item>
@@ -65,34 +65,37 @@
             <el-tabs style="margin: 0 20px" v-model="activeTab">
               <el-tab-pane name="first" label="车位信息">
                 <el-row>
-                  <el-col :span="12">
+                  <el-col :span="24">
                     <el-form-item label="区县" prop="districtId">
-                      <el-select v-model="formData.districtId" @visible-change="getDistrict">
+                      <el-select v-model="formData.districtId" style="width: 50%" @change="getCommunity">
                         <el-option v-for="item in districtList" :label="item.districtName" :value="item.id"></el-option>
                       </el-select>
                     </el-form-item>
                   </el-col>
-                  <el-col :span="12">
+                  <el-col :span="24">
                     <el-form-item label="小区" prop="communityName">
-                      <el-select v-model="formData.communityName" @visible-change="getCommunity" allow-create filterable
-                                 clearable>
+                      <el-select v-if="!communityNameCustom" v-model="formData.communityName" style="width: 50%">
                         <el-option v-for="item in communityList" :label="item.communityName"
                                    :value="item.communityName"></el-option>
                       </el-select>
+                      <el-input v-else v-model="formData.communityName" style="width: 50%"></el-input>
+                      <el-checkbox v-model="communityNameCustom" style="margin-left: 20px">自定义</el-checkbox>
                     </el-form-item>
                   </el-col>
-                  <el-col :span="12">
+                  <el-col :span="24">
                     <el-form-item label="楼号" prop="buildingNumber">
-                      <el-select v-model="formData.buildingNumber" @visible-change="getBuilding" allow-create filterable
-                                 clearable>
+                      <el-select v-if="!buildingNumberCustom&&!communityNameCustom" v-model="formData.buildingNumber"
+                                 @visible-change="getBuilding" style="width: 50%">
                         <el-option v-for="item in buildingList" :label="item.buildingNumber"
                                    :value="item.buildingNumber"></el-option>
                       </el-select>
+                      <el-input v-else v-model="formData.buildingNumber" style="width: 50%"></el-input>
+                      <el-checkbox v-model="buildingNumberCustom" style="margin-left: 20px">自定义</el-checkbox>
                     </el-form-item>
                   </el-col>
-                  <el-col :span="12">
+                  <el-col :span="24">
                     <el-form-item label="车位编号" prop="parkingNumber">
-                      <el-input v-model="formData.parkingNumber"></el-input>
+                      <el-input v-model="formData.parkingNumber" style="width: 50%"></el-input>
                     </el-form-item>
                   </el-col>
                   <el-col :span="24">
@@ -106,7 +109,6 @@
                     </el-form-item>
                   </el-col>
                 </el-row>
-
               </el-tab-pane>
               <el-tab-pane name="second" label="车位简介">
                 <el-form-item label="" prop="parkingShow" label-width="0">
@@ -150,23 +152,39 @@ defineExpose({
 
 let data = ref({});
 
+let communityNameCustom = ref(false); //小区名自定义
+let buildingNumberCustom = ref(false); //楼号自定义
+
 function open(event) {
   data.value = event;
-  data.value.evidenceFile = data.value.evidenceFile ? JSON.parse(data.value.evidenceFile) : [];
+  // data.value.evidenceFile = data.value.evidenceFile ? JSON.parse(data.value.evidenceFile) : [];
 
   formRef.value?.resetFields();
   formData.id = data.value.id;
   formData.parkingNumber = event.parkingNumber;
   showDialog.value = true;
+  getDistrict();
 }
 
 function submit(event) {
-  formData.operate = event ? 1 : 0;
-  request.edit(entrust, formData, "release").then((res) => {
-    if (res.code == 1) {
-      showDialog.value = false;
-    }
-  });
+  formData.operateType = event ? 1 : 0;
+  if (event) {
+    formRef.value.validate((valid) => {
+      if (valid) {
+        request.edit(entrust, formData, "release").then((res) => {
+          if (res.code == 1) {
+            showDialog.value = false;
+          }
+        });
+      }
+    });
+  } else {
+    request.edit(entrust, formData, "release").then((res) => {
+      if (res.code == 1) {
+        showDialog.value = false;
+      }
+    });
+  }
 }
 
 let activeTab = ref("first");
@@ -175,7 +193,7 @@ let formRef = ref();
 
 let formData = reactive({
   id: "",//委托单id
-  operate: 1,
+  operateType: 1,
   districtId: "",
   communityName: "",
   buildingNumber: "",
@@ -204,8 +222,7 @@ let formRules = {
 //区县列表
 let districtList = ref([]);
 
-function getDistrict(event) {
-  if (!event) return;
+function getDistrict() {
   request.index(district_list, {}, "").then((res) => {
     if (res.code == 1) {
       districtList.value = res.data;
@@ -219,9 +236,12 @@ let communityList = ref([]);
 //选择区县,获取小区列表
 function getCommunity(event) {
   if (!event) return;
+  formData.communityName = "";
+
   request.index(community_list, {
     districtIds: formData.districtId
   }, "").then((res) => {
+
     if (res.code == 1) {
       communityList.value = res.data;
     }
@@ -234,15 +254,24 @@ let buildingList = ref([]);
 //选择小区,获取楼号列表
 function getBuilding(event) {
   if (!event) return;
-  if (/^[0-9]/.test(formData.communityId)) {
+  // if (!buildingNumberCustom.value) {
+    let communityId = "";
+    for (let r of communityList.value) {
+      if (r.communityName = formData.communityName) {
+        communityId = r.id;
+        break;
+      }
+    }
     request.index(building_list, {
-      communityIds: formData.communityId
+      communityIds: communityId
     }, "").then((res) => {
       if (res.code == 1) {
         buildingList.value = res.data;
       }
     });
-  }
+  // }
+
+
 }
 
 

+ 16 - 11
src/views/backend/enterprise/project/parking/mapSetting.vue

@@ -29,7 +29,7 @@
         </el-form-item>
         <el-form-item label="选择车位" prop="id">
           <el-select v-model="formData.id">
-            <el-option v-for="(item,index) in unMapData" :value="item.id" :label="item.parkingNumber"></el-option>
+            <el-option :key="index" v-for="(item,index) in unMapData" :value="item.id" :label="item.parkingNumber"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -65,7 +65,7 @@ const props = defineProps({
   },
   height: {//外边框尺寸
     type: String,
-    default: "400px"
+    default: "800px"
   },
   value: {//标记点列表
     type: Array,
@@ -80,9 +80,8 @@ let width = ref(0);
 
 //图层样式
 let mapStyle = computed(() => {
-  const baseUrl = import.meta.env.VITE_AXIOS_BASE_URL;
   return {
-    backgroundImage: `url(${ props.imgUrl})`,
+    backgroundImage: `url(${realUrl.value})`,
     width: width.value + "px",
     height: height.value + "px",
     left: dragOption.x1 + "px",
@@ -90,33 +89,39 @@ let mapStyle = computed(() => {
   };
 });
 
+let realUrl = ref("");
+
 
 //图层实例
 let labelMap;
 
 onMounted(() => {
+  // realUrl.value = import.meta.env.VITE_AXIOS_BASE_URL + "/" + props.imgUrl
+  realUrl.value = props.imgUrl;
   labelMap = document.getElementById("labelMap");
   setTimeout(() => {
-    setImgSize(props.imgUrl);
+    setImgSize();
   }, 100);
 
 });
 
+watch(() => props.imgUrl, (newValue, oldValue) => {
+  // realUrl.value = import.meta.env.VITE_AXIOS_BASE_URL + "/" + newValue
+  realUrl.value = newValue;
+  setImgSize();
+});
 
 //根据容器宽度和原始图片长宽比例设置图层高度
-function setImgSize(url) {
+function setImgSize() {
   const m = document.getElementById("mapContainer");
   let img = new Image();
   img.onload = function() {
     width.value = m.clientWidth;
     height.value = m.clientWidth * (img.naturalHeight / img.naturalWidth);
   };
-  img.src =  url;
+  img.src = realUrl.value;
 }
 
-watch(() => props.imgUrl, (newValue) => {
-  setImgSize(newValue);
-});
 
 let unMapData = computed(() => {
   let res = [];
@@ -317,7 +322,7 @@ function wheel(event) {
 #mapContainer {
   overflow: hidden;
   border: #888888 1px solid;
-  position: relative
+  position: relative;
 }
 
 #labelMap {

+ 4 - 3
src/views/backend/enterprise/project/parking/markDialog.vue

@@ -2,15 +2,15 @@
   <el-dialog :title="title" v-model="showDialog" width="80%" @close="closeDialog">
     <el-row :gutter="20">
       <el-col :span="18">
-        <mapSetting :imgUrl="data.mapUrl" :mapId="data.mapId" :value="data.parkingList" @change="getInitData"></mapSetting>
+        <mapSetting height="60vh"  :imgUrl="data.mapUrl" :mapId="data.mapId" :value="data.parkingList" @change="getInitData"></mapSetting>
       </el-col>
       <el-col :span="6">
         <el-radio-group v-model="showType">
           <el-radio-button label="未绑定"></el-radio-button>
           <el-radio-button label="全部"></el-radio-button>
         </el-radio-group>
-        <el-table :data="showType=='全部'?allData:unMapData" height="400px" border
-                  style="margin-top: 10px;border: #8c939d 1px solid" highlight-current-row>
+        <el-table :data="showType=='全部'?allData:unMapData"  border
+                  style="margin-top: 10px;border: #8c939d 1px solid;height: 60vh" highlight-current-row>
           <el-table-column prop="parkingNumber" label="车位编号"></el-table-column>
         </el-table>
       </el-col>
@@ -50,6 +50,7 @@ function getInitData() {
     id: buildingId.value
   }, "detail").then((res) => {
     if (res.code == 1) {
+      console.log(res.data);
       title.value = `${res.data.districtName} / ${res.data.communityName} / ${res.data.buildingNumber}`;
       data.value = res.data;
       allData.value = res.data.parkingList;