Quellcode durchsuchen

门户机构详情

sunkuosheng vor 2 Jahren
Ursprung
Commit
bf78be39a1

+ 76 - 0
ruoyi-web/package-lock.json

@@ -8,12 +8,15 @@
       "name": "mzWzVue3",
       "version": "0.0.0",
       "dependencies": {
+        "@amap/amap-jsapi-loader": "^1.0.1",
         "@element-plus/icons-vue": "^2.0.6",
         "axios": "0.26.1",
         "element-plus": "^2.2.8",
         "file-saver": "2.0.5",
         "js-cookie": "3.0.1",
+        "swiper": "^8.3.1",
         "vue": "^3.0.4",
+        "vue-awesome-swiper": "^5.0.1",
         "vue-router": "^4.1.1"
       },
       "devDependencies": {
@@ -29,6 +32,11 @@
         "vite-plugin-vue-setup-extend": "0.4.0"
       }
     },
+    "node_modules/@amap/amap-jsapi-loader": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz",
+      "integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw=="
+    },
     "node_modules/@antfu/utils": {
       "version": "0.5.2",
       "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.2.tgz",
@@ -925,6 +933,14 @@
       "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
       "dev": true
     },
+    "node_modules/dom7": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmmirror.com/dom7/-/dom7-4.0.4.tgz",
+      "integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==",
+      "dependencies": {
+        "ssr-window": "^4.0.0"
+      }
+    },
     "node_modules/domelementtype": {
       "version": "1.3.1",
       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz",
@@ -3045,6 +3061,11 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/ssr-window": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz",
+      "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
+    },
     "node_modules/stable": {
       "version": "0.1.8",
       "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz",
@@ -3435,6 +3456,19 @@
         "node": ">=10.13.0"
       }
     },
+    "node_modules/swiper": {
+      "version": "8.3.1",
+      "resolved": "https://registry.npmmirror.com/swiper/-/swiper-8.3.1.tgz",
+      "integrity": "sha512-oASYsulsERlbQVTZ8FjlTDJSN4YZwhp+AkvepOj8EOhgpvxzKoMpWpBPrk7ypkMioQUx6x2NPvkRU0Qv9mpS0A==",
+      "hasInstallScript": true,
+      "dependencies": {
+        "dom7": "^4.0.4",
+        "ssr-window": "^4.0.2"
+      },
+      "engines": {
+        "node": ">= 4.7.0"
+      }
+    },
     "node_modules/to-object-path": {
       "version": "0.3.0",
       "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz",
@@ -3882,6 +3916,15 @@
         "@vue/shared": "3.2.37"
       }
     },
+    "node_modules/vue-awesome-swiper": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/vue-awesome-swiper/-/vue-awesome-swiper-5.0.1.tgz",
+      "integrity": "sha512-mWjFJzUqA4lG+DmsmibvMpoiBnl+IH2SSeiiQ3i5M0t1y9FknTxnGT0DsMb2YdJLgjYMEK3sYOWzqgLnZMH8Lg==",
+      "peerDependencies": {
+        "swiper": "^7.0.0  || ^8.0.0",
+        "vue": "3.x"
+      }
+    },
     "node_modules/vue-demi": {
       "version": "0.13.2",
       "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.2.tgz",
@@ -3932,6 +3975,11 @@
     }
   },
   "dependencies": {
+    "@amap/amap-jsapi-loader": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz",
+      "integrity": "sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw=="
+    },
     "@antfu/utils": {
       "version": "0.5.2",
       "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.2.tgz",
@@ -4649,6 +4697,14 @@
         }
       }
     },
+    "dom7": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmmirror.com/dom7/-/dom7-4.0.4.tgz",
+      "integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==",
+      "requires": {
+        "ssr-window": "^4.0.0"
+      }
+    },
     "domelementtype": {
       "version": "1.3.1",
       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz",
@@ -6244,6 +6300,11 @@
         }
       }
     },
+    "ssr-window": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz",
+      "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
+    },
     "stable": {
       "version": "0.1.8",
       "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz",
@@ -6561,6 +6622,15 @@
         "stable": "^0.1.8"
       }
     },
+    "swiper": {
+      "version": "8.3.1",
+      "resolved": "https://registry.npmmirror.com/swiper/-/swiper-8.3.1.tgz",
+      "integrity": "sha512-oASYsulsERlbQVTZ8FjlTDJSN4YZwhp+AkvepOj8EOhgpvxzKoMpWpBPrk7ypkMioQUx6x2NPvkRU0Qv9mpS0A==",
+      "requires": {
+        "dom7": "^4.0.4",
+        "ssr-window": "^4.0.2"
+      }
+    },
     "to-object-path": {
       "version": "0.3.0",
       "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz",
@@ -6880,6 +6950,12 @@
         "@vue/shared": "3.2.37"
       }
     },
+    "vue-awesome-swiper": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/vue-awesome-swiper/-/vue-awesome-swiper-5.0.1.tgz",
+      "integrity": "sha512-mWjFJzUqA4lG+DmsmibvMpoiBnl+IH2SSeiiQ3i5M0t1y9FknTxnGT0DsMb2YdJLgjYMEK3sYOWzqgLnZMH8Lg==",
+      "requires": {}
+    },
     "vue-demi": {
       "version": "0.13.2",
       "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.2.tgz",

+ 7 - 4
ruoyi-web/package.json

@@ -6,13 +6,16 @@
     "build": "vite build"
   },
   "dependencies": {
+    "@amap/amap-jsapi-loader": "^1.0.1",
     "@element-plus/icons-vue": "^2.0.6",
-    "element-plus": "^2.2.8",
-    "vue": "^3.0.4",
-    "vue-router": "^4.1.1",
     "axios": "0.26.1",
+    "element-plus": "^2.2.8",
     "file-saver": "2.0.5",
-    "js-cookie": "3.0.1"
+    "js-cookie": "3.0.1",
+    "swiper": "^8.3.1",
+    "vue": "^3.0.4",
+    "vue-awesome-swiper": "^5.0.1",
+    "vue-router": "^4.1.1"
   },
   "devDependencies": {
     "@types/node": "^18.0.3",

+ 26 - 0
ruoyi-web/src/api/home.js

@@ -80,3 +80,29 @@ export const bsList = () => {
         method: 'get'
     })
 }
+
+//机构查询
+export const jcxxList = (query) => {
+    return request({
+        url: '/portal/jcxx/list',
+        method: 'get',
+        params: query
+    })
+}
+
+//人员查询
+export const ygJbxxList = (query) => {
+    return request({
+        url: '/portal/ygJbxx/list',
+        method: 'get',
+        params: query
+    })
+}
+//政策查询
+export const zcfgList = (query) => {
+    return request({
+        url: '/portal/mhZcxw/zcfg/list',
+        method: 'get',
+        params: query
+    })
+}

BIN
ruoyi-web/src/assets/images/61bj.png


BIN
ruoyi-web/src/assets/images/dh.png


BIN
ruoyi-web/src/assets/images/dizhi.png


BIN
ruoyi-web/src/assets/images/dw.png


+ 3 - 1
ruoyi-web/src/main.js

@@ -6,7 +6,7 @@ import "../src/assets/css/index.css";
 import ElementPlus from 'element-plus'
 import '../node_modules/element-plus/theme-chalk/index.css'
 import {zhCn} from "../node_modules/element-plus/es/locale";
-
+import {selectDictLabel, selectDictLabels } from '@/utils/ruoyi'
 
 
 import { useDict } from '@/utils/dict'
@@ -22,6 +22,8 @@ for (let iconName in ElIcon){
 
 // 全局方法挂载
 app.config.globalProperties.useDict = useDict
+app.config.globalProperties.selectDictLabel = selectDictLabel
+app.config.globalProperties.selectDictLabels = selectDictLabels
 
 app.component('Pagination', Pagination)
 

+ 6 - 0
ruoyi-web/src/router/index.js

@@ -28,6 +28,12 @@ const router = createRouter({
           component: () => import('../views/jgcx/index.vue'),
           name: 'jgcx',
           meta: { title: '机构查询'}
+        },
+        {
+          path: 'jgcx/:id',
+          component: () => import('../views/jgxq/index.vue'),
+          name: 'jgxq',
+          meta: { title: '机构详情'}
         }
       ],
       meta: {

+ 1 - 1
ruoyi-web/src/views/home/index.vue

@@ -282,7 +282,7 @@
     import {lbList, rdList, ttList, zcList, wlList, bsList} from '@/api/home'
 
     const {proxy} = getCurrentInstance();
-    const {XZ085, XZ086, XZ087, XZ088, XZ089, XZ093, XZ094, XZ095} = proxy.useDict("XZ085", "XZ086", "XZ087", "XZ088", "XZ089", "XZ093", "XZ094","XZ095");
+    const {XZ085, XZ086, XZ093, XZ094} = proxy.useDict("XZ085", "XZ086","XZ093", "XZ094");
     const activeName= ref('first');
     const activeName2 = ref('0');
     const xgData = ref([]);

+ 43 - 32
ruoyi-web/src/views/index.vue

@@ -15,19 +15,20 @@
         </div>
         <div class="nav">
             <div class="nav_ment centen_box">
-                <div class="ment_title" :class="addClass(index)" @click="changMnet(index,item)" v-for="(item,index) in mentData" :key="item.label">
+                <div class="ment_title" :class="addClass(index)" @click="changMnet(index,item)"
+                     v-for="(item,index) in mentData" :key="item.label">
                     {{item.label}}
                 </div>
             </div>
         </div>
         <div class="centen_box">
-            <router-view />
+            <router-view/>
         </div>
         <!--底部-->
         <div class="footer">
-             <div class="bq">版权所有:Copyright©2022     版权所有</div>
+            <div class="bq">版权所有:Copyright©2022 版权所有</div>
             <div class="nav_ment">
-                <div class="footer_title"  v-for="(item,index) in mentData" :key="item.label">
+                <div class="footer_title" v-for="(item,index) in mentData" :key="item.label">
                     {{item.label}}
                 </div>
             </div>
@@ -38,39 +39,44 @@
 
 <script setup>
     import {Search} from '@element-plus/icons-vue'
-    import { useRouter } from 'vue-router'
-    import {ref,onMounted} from 'vue'
-    const router = useRouter()
+    import {useRouter} from 'vue-router'
+    import {ref, onMounted} from 'vue'
+
+    const router = useRouter();
     const input3 = ref('');
     let indexMent = ref(0);
     const mentData = ref([
-        {label: '首页',path:'/home'},
-        {label: '养老政策',path:'/ylzc'},
-      {label: '机构查询',path: '/jgcx'},
-      {label: '在线申请'},
-      {label: '养老顾问'},
-      {label: '养老地图'},
-      {label: '养老护理员'},
-      {label: '相关链接'}
+        {label: '首页', path: '/home'},
+        {label: '养老政策', path: '/ylzc'},
+        {label: '机构查询', path: '/jgcx'},
+        {label: '在线申请'},
+        {label: '养老顾问'},
+        {label: '养老地图'},
+        {label: '养老护理员'},
+        {label: '相关链接'}
     ]);
-    const changMnet=(index,item)=>{
-        indexMent.value=index;
-         router.push(item.path)
+    const changMnet = (index, item) => {
+        indexMent.value = index;
+        router.push(item.path)
     };
-    const addClass=(index)=>{
-        if (indexMent.value===index){
-            return'outer1'
+    const addClass = (index) => {
+        if (indexMent.value === index) {
+            return 'outer1'
         }
         return ''
     }
-    onMounted(()=>{
-      let path=router.currentRoute.value.path;
-      mentData.value.forEach((item,index)=>{
-        if(item.path===path)
-        {
-          indexMent.value=index;
+    onMounted(() => {
+        let path = router.currentRoute.value.path;
+        //特殊处理多路径和路径传参
+        let pathArray = path.split('/');
+        if (pathArray.length > 2) {
+            path = '/' + pathArray[1]
         }
-      })
+        mentData.value.forEach((item, index) => {
+            if (item.path === path) {
+                indexMent.value = index;
+            }
+        })
     })
 
 
@@ -148,15 +154,18 @@
         color: #FFFFFF;
         cursor: pointer;
     }
+
     .outer1 {
         background-color: rgba(184, 1, 0, 1);
     }
-    .centen_box{
+
+    .centen_box {
         min-width: 1200px;
         width: 1200px;
         margin: 21px auto;
     }
-    .footer{
+
+    .footer {
         min-width: 1200px;
         height: 139px;
         background: #BF242A;
@@ -166,13 +175,15 @@
         align-items: center;
 
     }
-    .bq{
+
+    .bq {
         font-size: 14px;
         font-weight: bold;
         color: #C3C3C3;
         line-height: 30px;
     }
-    .footer_title{
+
+    .footer_title {
         font-size: 14px;
         font-weight: bold;
         color: #C3C3C3;

Datei-Diff unterdrückt, da er zu groß ist
+ 507 - 568
ruoyi-web/src/views/jgcx/index.vue


+ 555 - 0
ruoyi-web/src/views/jgxq/index.vue

@@ -0,0 +1,555 @@
+<template>
+    <div class="main_box2">
+        <div class="bread">
+            <div class="bread_left">
+                <div class="gray">您现在所在位置:</div>
+                <el-breadcrumb separator=">>">
+                    <el-breadcrumb-item :to="{ path: '/home' }"><span class="gray">首页</span></el-breadcrumb-item>
+                    <el-breadcrumb-item><span class="red">养老政策查询</span></el-breadcrumb-item>
+                </el-breadcrumb>
+            </div>
+        </div>
+        <div class="top_box">
+            <div class="left_img flex_center">
+                <div class="conten">
+                    <swiper
+                            :style="{ '--swiper-navigation-color': '#fff','--swiper-pagination-color': '#fff',}"
+                            :loop="true"
+                            :spaceBetween="10"
+                            :navigation="true"
+                            :thumbs="{ swiper: thumbsSwiper }"
+                            :modules="modules"
+                            ref="swiperTop"
+                            class="mySwiper2">
+                        <swiper-slide>
+                            <img src="https://swiperjs.com/demos/images/nature-1.jpg"/>
+                        </swiper-slide>
+                        <swiper-slide>
+                            <img src="https://swiperjs.com/demos/images/nature-2.jpg"/>
+                        </swiper-slide>
+                        <swiper-slide>
+                            <img src="https://swiperjs.com/demos/images/nature-3.jpg"/>
+                        </swiper-slide>
+                        <swiper-slide>
+                            <img src="https://swiperjs.com/demos/images/nature-4.jpg"/>
+                        </swiper-slide>
+                        <swiper-slide>
+                            <img src="https://swiperjs.com/demos/images/nature-5.jpg"/>
+                        </swiper-slide>
+                        <swiper-slide>
+                            <img src="https://swiperjs.com/demos/images/nature-6.jpg"/>
+                        </swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-7.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-8.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-9.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img src="https://swiperjs.com/demos/images/nature-10.jpg"
+                        /></swiper-slide>
+                    </swiper>
+                    <swiper
+                            @swiper="setThumbsSwiper"
+                            :loop="true"
+                            :spaceBetween="10"
+                            :slidesPerView="4"
+                            :freeMode="true"
+                            :watchSlidesProgress="true"
+                            :modules="modules"
+                            class="mySwiper"
+                            ref="swiperThumbs"
+                    >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-1.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-2.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-3.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-4.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-5.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-6.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-7.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-8.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img
+                                src="https://swiperjs.com/demos/images/nature-9.jpg"/></swiper-slide
+                        >
+                        <swiper-slide
+                        ><img src="https://swiperjs.com/demos/images/nature-10.jpg"
+                        /></swiper-slide>
+                    </swiper>
+                </div>
+            </div>
+            <div class="right_box flex_center">
+                <div class="conten">
+                    <div class="title">
+                        吉林顾村和平养老院
+                    </div>
+                    <div class="font_style1 align_center mt35">
+                        <el-tooltip placement="top" effect="light">
+                            <template #content>
+                                养老机构等级评定说明:评定等
+                                <br/>
+                                级分为一至五级,级数越高表示
+                                <br/>
+                                机构等级越高,设施设备更加完
+                                <br/>
+                                善、服务项目更加全面、服务质
+                                <br/>
+                                量和管理水平更高。即五级高于
+                                <br/>
+                                四级,四级高于三级,三级高于
+                                <br/>
+                                二级,二级高于一级。
+                            </template>
+                            <el-rate
+                                    v-model="form.dj"
+                                    disabled
+                                    text-color="#ff9900"
+                            />
+
+                        </el-tooltip>
+                        ({{selectDictLabel(CZ015,form.pddj)}})
+                    </div>
+                    <div class="flex mt24 font_style1">
+                        <div class="title_box font_style1">成立时间:2016-03-09</div>
+                        <div class="title_box font_style1">建筑面积:6800</div>
+                    </div>
+                    <div class="hr">
+
+                    </div>
+                    <div class="align_center font_style1 mt24">
+                        <div class="tb1">
+                        </div>
+                        <div>
+                            机构地址:长春市朝阳区XXX路155号
+                        </div>
+                    </div>
+                    <div class="align_center font_style1 mt24">
+                        <div class="tb2">
+                        </div>
+                        <div>
+                            咨询电话:0431-88669933
+                        </div>
+                    </div>
+                    <div class="kz_box mt24">
+                        <div class="flex">
+                            <div class="title_box font_style1">床位总数: 188张</div>
+                            <div class="title_box font_style1">可用床位: <span class="color1">10</span>张</div>
+                        </div>
+                        <div class="font_style1 mt24">
+                            参考价格:<span class="font_style2">2250-7000</span>元/月 (床位费和护理费)
+                        </div>
+
+                    </div>
+                    <div class="font_style3 mt15">
+                        *  以上信息由机构提供 <span class="mr">更新时间: 2021-10-13</span> *    信息监督: 宝山区民政局
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="hr"></div>
+        <div class="bt_box">
+           <div class="map_top">
+               <div class="align_center">
+                   <div class="block"></div>
+                   地理位置
+               </div>
+               <div class="align_center">
+                <div class="tb3"></div>   在养老地图查看</div>
+           </div>
+        </div>
+        <div class="mt15" id="container" style="height: 385px;width: 100%"></div>
+
+    </div>
+</template>
+
+<script setup>
+    import {Swiper, SwiperSlide} from 'swiper/vue';
+    import AMapLoader from '@amap/amap-jsapi-loader';
+    import { shallowRef } from '@vue/reactivity'
+    window._AMapSecurityConfig = {
+        securityJsCode: '8235942dbbc745f954849a61332fa3bc'
+    };
+        // Import Swiper styles
+    import 'swiper/css';
+    import "swiper/css/free-mode"
+    import "swiper/css/navigation"
+    import "swiper/css/thumbs"
+    import {FreeMode, Navigation, Thumbs} from 'swiper';
+    import {createApp, getCurrentInstance, onMounted, nextTick,onUnmounted} from 'vue';
+    const {proxy} = getCurrentInstance();
+    const {XZ093, XZ096, CZ015, CZ035} = proxy.useDict('XZ093', 'XZ096', 'CZ015', 'CZ035');
+
+    createApp({
+        components: {
+            Swiper,
+            SwiperSlide,
+        },
+    });
+    let thumbsSwiper = null;
+    let modules = [FreeMode, Navigation, Thumbs];
+    const data = reactive({
+        form: {
+            dj: 3,
+            pddj: '01',
+            txdz: 'xxxxxx',
+            frlxfs: 'xxx'
+        },
+    });
+    const {form} = toRefs(data);
+    const setThumbsSwiper = (swiper) => {
+        // console.log(swiper, 'swiper');
+        thumbsSwiper = swiper;
+    };
+    //首先需要引入 Vue3 的 shallowRef 方法(使用 shallowRef 进行非深度监听,因为在 Vue3 所使用的 Proxy 拦截操作会改变 JSAPI 原生对象,所以此处需要区别 Vue2 使用方式对地图对象行非深度监听,否则会出现问题,建议 JS API 相关对象采用非响应式的普通对象来存储)。
+    const map = shallowRef(null);
+    const initMap=()=>{
+        {
+            AMapLoader.load({
+                key:'6c087d703e652767650a6b3208f76c40',  //设置您的key
+                version:"2.0",
+                plugins:['AMap.ToolBar','AMap.Driving'],
+                AMapUI:{
+                    version:"1.1",
+                    plugins:[],
+
+                },
+                Loca:{
+                    version:"2.0.0"
+                },
+            }).then((AMap)=>{
+                map.value = new AMap.Map("container",{
+                    zoom:13,
+                    center:[105.602725,37.076636],
+                });
+                let marker = new AMap.Marker({
+                    position:[105.602725,37.076636],
+                    icon: new AMap.Icon({// eslint-disable-line
+                        // 引入小红车图片位置
+                        image:new URL('../../assets/images/dw.png', import.meta.url).href,
+                        size: new AMap.Size(17, 16) // eslint-disable-line
+                    }),
+                    // offset: new AMap.Pixel(-25, -25), // eslint-disable-line
+                });
+                marker.setLabel({
+                    offset: new AMap.Pixel(0, -5),  //设置文本标注偏移量
+                    content: "<div class='info'>我是 marker 的 l1111abel 标签</div>", //设置文本标注内容
+                    direction: 'top' //设置文本标注方位
+                });
+                map.value.add(marker);
+
+            }).catch(e=>{
+                console.log(e);
+            })
+        }
+    };
+    const dd = getCurrentInstance();
+    onMounted(() => {
+        initMap();
+        // console.log(dd.ctx.$refs.swiperTop,'this.$refs');
+        // const swiperTop=dd.ctx.$refs.swiperTop.$swiper;
+        // const swiperThumbs=dd.ctx.$refs.swiperThumbs.$swiper;
+        // swiperTop.controller.control=swiperThumbs;
+        // swiperThumbs.controller.control=swiperTop;
+        // console.log(swiperTop.$swiper,'swiperTop');
+        // this.$refs.swiper.swiperTop.$swiper
+        // nextTick(() => {
+        //     console.log(dd.ctx.$refs.swiperTop, 'this.$refs');
+        //     const swiperTop = dd.ctx.$refs.swiperTop;
+        //     const swiperThumbs = dd.ctx.$refs.swiperThumbs;
+        //     swiperTop.controller = swiperThumbs.controller;
+        //     swiperThumbs.controller = swiperTop.controller;
+        // })
+    });
+    onUnmounted(()=>{
+         //离开前要进行地图销毁,防止占有资源
+        map.value && map.value.destroy();
+        console.log('销毁了')
+    })
+</script>
+
+<style scoped>
+    .swiper {
+        width: 100%;
+        height: 100%;
+    }
+
+    .swiper-slide {
+        text-align: center;
+        font-size: 18px;
+        background: #fff;
+
+        /* Center slide text vertically */
+        display: -webkit-box;
+        display: -ms-flexbox;
+        display: -webkit-flex;
+        display: flex;
+        -webkit-box-pack: center;
+        -ms-flex-pack: center;
+        -webkit-justify-content: center;
+        justify-content: center;
+        -webkit-box-align: center;
+        -ms-flex-align: center;
+        -webkit-align-items: center;
+        align-items: center;
+    }
+
+    .swiper-slide img {
+        display: block;
+        width: 100%;
+        height: 100%;
+        object-fit: cover;
+    }
+
+    .swiper {
+        width: 100%;
+        height: 300px;
+        margin-left: auto;
+        margin-right: auto;
+    }
+
+    .swiper-slide {
+        background-size: cover;
+        background-position: center;
+    }
+
+    .mySwiper2 {
+        height: 80%;
+        width: 100%;
+    }
+
+    .mySwiper {
+        height: 20%;
+        box-sizing: border-box;
+        padding: 10px 0;
+    }
+
+    .mySwiper .swiper-slide {
+        width: 25%;
+        height: 100%;
+        opacity: 0.4;
+    }
+
+    .mySwiper .swiper-slide-thumb-active {
+        opacity: 1;
+    }
+
+    .swiper-slide img {
+        display: block;
+        width: 100%;
+        height: 100%;
+        object-fit: cover;
+    }
+
+    .main_box2 {
+        background: #FFFFFF;
+        border: 1px solid #DEDEDE;
+    }
+
+    .bread {
+        height: 58px;
+        border-bottom: 1px solid #DEDEDE;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+    }
+
+    .bread_left {
+        display: flex;
+        margin-left: 34px;
+
+    }
+
+    .gray {
+        font-size: 16px;
+        font-weight: bold;
+        color: #666666;
+    }
+
+    :deep(.el-breadcrumb) {
+        font-size: 16px;
+        line-height: unset;
+    }
+
+    .red {
+        font-size: 16px;
+        font-weight: bold;
+        color: #B80100;
+    }
+
+    .top_box {
+        display: flex;
+        /*margin-top: 23px;*/
+    }
+
+    .left_img {
+        height: 500px;
+        width: 50%;
+        /*border: red solid 1px;*/
+    }
+
+    .right_box {
+        display: flex;
+        width: 50%;
+        flex-direction: column;
+    }
+
+    .title {
+        font-size: 30px;
+        font-weight: bold;
+        color: #3C3C3C;
+    }
+
+    .conten {
+        width: 90%;
+        height: 90%;
+    }
+
+    .flex_center {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+    }
+
+    .align_center {
+        display: flex;
+        align-items: center;
+    }
+
+    .font_style1 {
+        font-size: 16px;
+        font-weight: bold;
+        color: #666666;
+    }
+
+    .font_style2 {
+        font-size: 24px;
+        font-weight: bold;
+        color: #FF4900;
+        margin: 0 5px;
+    }
+
+    .font_style3{
+        font-size: 14px;
+        font-weight: bold;
+        color: #FF706F;
+    }
+
+    .flex {
+        display: flex;
+    }
+
+    .mt35 {
+        margin-top: 35px;
+    }
+
+    .mt24 {
+        margin-top: 23px;
+    }
+    .mt15 {
+        margin-top: 15px;
+    }
+
+    .title_box {
+        width: 50%;
+    }
+
+    .hr {
+        width: 100%;
+        height: 1px;
+        background: #DEDEDE;
+        margin-top: 23px;
+    }
+
+    .tb1 {
+        width: 18px;
+        height: 22px;
+        background: url("../../assets/images/dizhi.png") no-repeat;
+        background-size: 100% 100%;
+        margin-right: 10px;
+    }
+
+    .tb2 {
+        width: 19px;
+        height: 13px;
+        background: url("../../assets/images/dh.png") no-repeat;
+        background-size: 100% 100%;
+        margin-right: 10px;
+    }
+
+    .tb3 {
+        width: 17px;
+        height: 16px;
+        background: url("../../assets/images/dw.png") no-repeat;
+        background-size: 100% 100%;
+        margin-right: 10px;
+    }
+
+    .kz_box {
+        width: 92%;
+        height: 80px;
+        background: #E7F5F7;
+        opacity: 0.8;
+        border-radius: 10px;
+        display: flex;
+        flex-direction: column;
+        padding: 4%;
+    }
+
+    .color1 {
+        color: #FF4900;
+    }
+    .mr{
+        margin: 0 10px;
+    }
+    .bt_box{
+        margin-left: 34px;
+        margin-top: 27px;
+        margin-right: 34px;
+    }
+    .map_top{
+        display: flex;
+        justify-content: space-between;
+    }
+    .block{
+        width: 6px;
+        height: 20px;
+        background: #D80100;
+        border-radius: 3px;
+        margin-right: 10px;
+    }
+    :deep(.info){
+
+    }
+</style>

+ 6 - 7
ruoyi-web/src/views/ylzc/index.vue

@@ -100,14 +100,13 @@
                 <el-empty :image-size="200"/>
             </div>
         </div>
-
     </div>
 </template>
 
 <script setup>
     import {ref, reactive, toRefs, onMounted} from 'vue';
     import {Search} from '@element-plus/icons-vue'
-    import {zcList} from '@/api/home'
+    import {zcfgList} from '@/api/home'
 
     const {proxy} = getCurrentInstance();
     const {XZ085, XZ086, XZ087, XZ088, XZ089} = proxy.useDict("XZ085", "XZ086", "XZ087", "XZ088", "XZ089");
@@ -117,7 +116,8 @@
             pageSize: 10,
             ffl: '',
             sfl: [],
-            seq: '1'
+            seq: '1',
+            mkqf:'00'
         },
     });
 
@@ -157,7 +157,8 @@
             pageSize: 10,
             ffl: '',
             sfl: [],
-            seq: '1'
+            seq: '1',
+            mkqf:item.value
         };
         isOrder.value = true;
         input.value="";
@@ -178,7 +179,7 @@
         if (input.value) {
             qur[select.value] = input.value;
         }
-        zcList({...qur, ...queryParams.value, sfl: queryParams.value.sfl.join(',')}).then(response => {
+        zcfgList({...qur, ...queryParams.value, sfl: queryParams.value.sfl.join(',')}).then(response => {
             total.value = response.total;
             tableData.value = response.rows;
             loading.value = false;
@@ -238,8 +239,6 @@
     .main_box2 {
         background: #FFFFFF;
         border: 1px solid #DEDEDE;
-        /*margin-top: 21px;*/
-        /*margin-bottom: 70px;*/
     }
 
     .bread {