Переглянути джерело

页面缓存及统一查询修改

zuypeng 1 рік тому
батько
коміт
34e74481c8

+ 3 - 1
admin-web/package.json

@@ -10,9 +10,9 @@
 	},
 	"dependencies": {
 		"@element-plus/icons-vue": "^2.1.0",
+		"@vueuse/core": "^10.5.0",
 		"@wangeditor/editor": "^5.1.23",
 		"@wangeditor/editor-for-vue": "^5.1.12",
-		"@vueuse/core": "^10.5.0",
 		"axios": "^1.3.4",
 		"countup.js": "^2.5.0",
 		"echarts": "^5.4.1",
@@ -33,6 +33,8 @@
 		"screenfull": "^6.0.2",
 		"sortablejs": "^1.15.0",
 		"splitpanes": "^3.1.5",
+		"unplugin-vue-setup-extend-plus": "^1.0.1",
+		"vite-plugin-vue-setup-extend": "^0.4.0",
 		"vue": "^3.2.47",
 		"vue-clipboard3": "^2.0.0",
 		"vue-grid-layout": "^3.0.0-beta1",

+ 1 - 1
admin-web/src/components/form/ExtImage.vue

@@ -34,7 +34,7 @@ import u from "/@/utils/u";
 
 const props = defineProps({
   srcList: {
-    type: Array < String >,
+    type: [Array,String],
     default: () => {
       return []
     }

+ 12 - 8
admin-web/src/components/form/ExtQueryForm.vue

@@ -136,20 +136,24 @@
             </ext-boolean>
 
           </el-col>
+
+<!--          <el-button plain size="default" type="primary" @click="onResetForm(formRulesOneRef)">
+            <SvgIcon name="ele-RefreshRight"/>
+            重置
+          </el-button>-->
+          <el-button plain size="default" type="success" @click="onQueryChange">
+            <SvgIcon name="ele-Search"/>
+            查询
+          </el-button>
           <slot name="extQuery"></slot>
         </el-row>
       </el-form>
+
+
       <el-row class="flex-warp mt5">
         <div>
           <el-button-group>
-            <el-button plain size="default" type="primary" @click="onResetForm(formRulesOneRef)">
-              <SvgIcon name="ele-RefreshRight"/>
-              重置
-            </el-button>
-            <el-button plain size="default" type="primary" @click="onQueryChange">
-              <SvgIcon name="ele-Search"/>
-              查询
-            </el-button>
+
 
             <slot name="extraLeft"></slot>
           </el-button-group>

+ 5 - 5
admin-web/src/layout/navBars/breadcrumb/breadcrumb.vue

@@ -92,7 +92,7 @@ const getBreadcrumbList = (arr: RouteItems) => {
 // 当前路由字符串切割成数组,并删除第一项空内容
 const initRouteSplit = (path: string) => {
   if (!themeConfig.value.isBreadcrumb) return false;
-  console.log(path,route.name)
+  // console.log(path,route.name)
   state.breadcrumbList = [];
   // state.breadcrumbList = [routesList.value[0]];
   // state.routeSplit = path.split('/');
@@ -102,7 +102,7 @@ const initRouteSplit = (path: string) => {
   //routeList 展开为一维数组
   state.routeLinkList=[]
   toSimpleRouteList(routesList.value, "")
-  console.log(state.routeLinkList)
+  // console.log(state.routeLinkList)
   // setTimeout(()=>{
     state.breadcrumbList = state.routeLinkList.find(k => k.path === path).links
     // getBreadcrumbList(routesList.value);
@@ -110,7 +110,7 @@ const initRouteSplit = (path: string) => {
     // if (state.breadcrumbList.length > 0)
     //   state.breadcrumbList[state.breadcrumbList.length - 1].meta.tagsViewName = other.setTagsViewNameI18n(<RouteToFrom>route);
 
-    console.log(state.breadcrumbList.map(k=>k.meta.title).join("-"))
+    // console.log(state.breadcrumbList.map(k=>k.meta.title).join("-"))
   // },300)
 
 };
@@ -132,12 +132,12 @@ const toSimpleRouteList = (rs: RouteItems, parentPath: string) => {
 }
 // 页面加载时
 onMounted(() => {
-  console.log("onMounted")
+  // console.log("onMounted")
   initRouteSplit(route.path);
 });
 // 路由更新时
 onBeforeRouteUpdate((to) => {
-  console.log("onBeforeRouteUpdate")
+  // console.log("onBeforeRouteUpdate")
   initRouteSplit(to.path);
 });
 </script>

+ 6 - 4
admin-web/src/layout/routerView/parent.vue

@@ -1,11 +1,11 @@
 <template>
 	<div class="layout-parent">
 		<router-view v-slot="{ Component }">
-      {{Component.path}}
+
 <!--			<transition :name="setTransitionName" mode="out-in">-->
+				<keep-alive :include="getKeepAliveNames">
 					<component :is="Component" :key="state.refreshRouterViewKey"  v-show="!isIframePage" />
-<!--				<keep-alive :include="getKeepAliveNames">-->
-<!--				</keep-alive>-->
+				</keep-alive>
 
 <!--			</transition>-->
 		</router-view>
@@ -47,7 +47,9 @@ const setTransitionName = computed(() => {
 });
 // 获取组件缓存列表(name值)
 const getKeepAliveNames = computed(() => {
-	return themeConfig.value.isTagsview ? cachedViews.value : state.keepAliveNameList;
+	let aliveNames = themeConfig.value.isTagsview ? cachedViews.value : state.keepAliveNameList;
+  // console.log("aliveNames:", aliveNames)
+  return aliveNames;
 });
 // 设置 iframe 显示/隐藏
 const isIframePage = computed(() => {

+ 1 - 1
admin-web/src/main.ts

@@ -29,7 +29,7 @@ import {useUserInfo} from '/@/stores/userInfo';
 app.config.globalProperties.$bus = new mitt();
 //权限校验
 app.config.globalProperties.$auth = (auth: any, all: boolean = false) => {
-    console.log("$auth:", auth)
+    // console.log("$auth:", auth)
     if (!auth) {
         return true;
     }

+ 1 - 1
admin-web/src/views/admin/account/index.vue

@@ -123,7 +123,7 @@
   <AdminUserDialog ref="adminUserDialogRef" @refresh="loadData(true)"/>
 </template>
 
-<script setup lang="ts" name="AdminUserList">
+<script setup lang="ts" name="adminAccount">
 import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
 import {$body, $get} from "/@/utils/request";
 import {Msg} from "/@/utils/message";

+ 1 - 1
admin-web/src/views/admin/banner/index.vue

@@ -134,7 +134,7 @@
   <BannerDialog ref="bannerDialogRef" @refresh="loadData(true)"/>
 </template>
 
-<script setup lang="ts" name="BannerList">
+<script setup lang="ts" name="adminBanner">
 import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
 import {$body, $get} from "/@/utils/request";
 import {Msg} from "/@/utils/message";

+ 1 - 1
admin-web/src/views/admin/department/index.vue

@@ -95,7 +95,7 @@
   </div>
 </template>
 
-<script setup lang="ts" name="adminDepartment">
+<script setup lang="ts" name="adminOrg">
 import {defineAsyncComponent, ref, reactive, onMounted, watch} from 'vue';
 import {ElMessageBox, ElMessage, ElTree} from 'element-plus';
 import {$body} from '/@/utils/request'

+ 2 - 3
admin-web/src/views/admin/dict/index.vue

@@ -26,7 +26,7 @@
           查询
         </el-button>
 
-        <el-button class="ml10" plain size="default" type="primary" @click="handleAddDict" v-auth="'dict.add'">
+        <el-button class="ml10" plain size="default" type="success" @click="handleAddDict" v-auth="'dict.add'">
           <SvgIcon name="ele-FolderAdd"/>
           创建
         </el-button>
@@ -126,9 +126,8 @@
   </div>
 </template>
 
-<script setup lang="ts" name="Dict">
+<script setup lang="ts" name="orgDict">
 import {defineAsyncComponent, reactive, onMounted, ref, getCurrentInstance, nextTick} from 'vue';
-import ExtPage from "/@/components/form/ExtPage.vue"
 import {$body} from "/@/utils/request";
 import u from "/@/utils/u";
 import {Msg} from "/@/utils/message";

+ 1 - 1
admin-web/src/views/admin/faq/index.vue

@@ -115,7 +115,7 @@
   </div>
 </template>
 
-<script setup lang="ts" name="FaqList">
+<script setup lang="ts" name="adminFaq">
 import {nextTick, onBeforeMount, onBeforeUnmount, onMounted, reactive, ref} from 'vue';
 import {$get,$body} from "/@/utils/request";
 import {Msg} from "/@/utils/message";

+ 1 - 1
admin-web/src/views/admin/feedback/index.vue

@@ -56,7 +56,7 @@
   <FeedbackDialog ref="feedbackDialogRef" @refresh="loadData(true)"/>
 </template>
 
-<script setup lang="ts" name="FeedbackList">
+<script setup lang="ts" name="adminFeedback">
 import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
 import {$body, $get} from "/@/utils/request";
 import u from '/@/utils/u'

+ 1 - 1
admin-web/src/views/admin/finance/index.vue

@@ -121,7 +121,7 @@
   </div>
 </template>
 
-<script setup lang="ts" name="PayLogList">
+<script setup lang="ts" name="adminFinance">
 import {nextTick, onBeforeMount, onBeforeUnmount, onMounted, reactive, ref} from 'vue';
 import {$get} from "/@/utils/request";
 import {Msg} from "/@/utils/message";

+ 2 - 2
admin-web/src/views/admin/index.vue

@@ -73,7 +73,7 @@ import * as echarts from 'echarts';
 import {storeToRefs} from 'pinia';
 import {useThemeConfig} from '/@/stores/themeConfig';
 import {useTagsViewRoutes} from '/@/stores/tagsViewRoutes';
-import {$get} from "/@/utils/request";
+import {$get, $post} from "/@/utils/request";
 import u from "/@/utils/u";
 import mittBus from "/@/utils/mitt";
 import {Session} from "/@/utils/storage";
@@ -435,7 +435,7 @@ const loadStationStat = () => {
   let start = state.dateRange[0]
   let end = state.dateRange[1]
   let size = u.date.diff(new Date(start), new Date(end)) + 1;
-  $get(`stat/stationStat`, {
+  $post(`stat/dashboard`, {
     startTime: start,
     endTime: end,
     type: 'day',

+ 1 - 1
admin-web/src/views/admin/investor/index.vue

@@ -137,7 +137,7 @@
   <InvestorInfoDialog ref="investorInfoDialogRef" @refresh="loadData(true)"/>
 </template>
 
-<script setup lang="ts" name="InvestorInfoList">
+<script setup lang="ts" name="adminInvestor">
 import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
 import {$body, $get} from "/@/utils/request";
 import {Msg} from "/@/utils/message";

+ 18 - 11
admin-web/src/views/admin/ordering/index.vue

@@ -23,7 +23,8 @@
   background-color: #fff;
   height: 24px;
 }
-.order-detail{
+
+.order-detail {
   margin-left: 20px;
 }
 
@@ -143,7 +144,12 @@
   </div>
 </template>
 
-<script setup lang="ts" name="WashOrderList">
+<script lang="ts">
+export default {
+  name: 'adminOrdering'
+}
+</script>
+<script setup lang="ts" name="adminOrdering">
 import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
 import {$body, $get} from "/@/utils/request";
 import u from '/@/utils/u'
@@ -293,6 +299,7 @@ onBeforeMount(() => {
 })
 
 onMounted(() => {
+  console.log("ordering mounted")
   loadData();
 
   nextTick(() => {
@@ -321,19 +328,19 @@ const loadData = (refresh: boolean = false) => {
   $body(`/washOrder/list`, {...state.formQuery, ...state.pageQuery}).then((res: any) => {
     let {list, total} = res;
 
-    list.forEach((item:any)=>{
-      if(item.detail){
+    list.forEach((item: any) => {
+      if (item.detail) {
         // let parse = JSON.parse(item.detail);
-        item.detail = item.detail.filter((k:any)=>k.amount>0||k.seconds>0).map((s:any)=>{
+        item.detail = item.detail.filter((k: any) => k.amount > 0 || k.seconds > 0).map((s: any) => {
           return {
-            name:u.fmt.fmtDict(s.name,'Order.feeType'),
-            seconds:u.fmt.fmtDuration(s.seconds*1000),
-            price:u.fmt.fmtMoney(s.price),
-            amount:u.fmt.fmtMoney(s.amount),
+            name: u.fmt.fmtDict(s.name, 'Order.feeType'),
+            seconds: u.fmt.fmtDuration(s.seconds * 1000),
+            price: u.fmt.fmtMoney(s.price),
+            amount: u.fmt.fmtMoney(s.amount),
           }
         })
-      }else{
-        item.detail={}
+      } else {
+        item.detail = {}
       }
     })
 

+ 2 - 2
admin-web/src/views/admin/role/index.vue

@@ -5,7 +5,7 @@
         <el-input v-model="state.formQuery.roleName"  clearable size="default"
                   placeholder="请输入角色名称" style="max-width: 180px"></el-input>
 
-        <ext-button icon="ele-Search" type="primary" plain class="ml10" @click="loadData"  name="查询"/>
+        <ext-button icon="ele-Search" type="success" plain class="ml10" @click="loadData"  name="查询"/>
         <!--        <el-button size="default" type="primary" class="ml10">-->
         <!--          <el-icon>-->
         <!--            <ele-Search/>-->
@@ -76,7 +76,7 @@
   </div>
 </template>
 
-<script setup lang="ts" name="systemRole">
+<script setup lang="ts" name="orgRole">
 import {defineAsyncComponent, reactive, onMounted, ref,nextTick} from 'vue';
 import {$body, $get} from "/@/utils/request";
 import u from "/@/utils/u";

+ 1 - 1
admin-web/src/views/admin/station/device/index.vue

@@ -34,7 +34,7 @@
           :columns="state.columns"
           @on-change="loadData(true)"
           @imported="loadData(true)">
-        <template #extraRight>
+        <template #extQuery>
           <el-button  v-auth="'washDevice.add'"   size="default" plain  type="success" class="ml10" @click="handleRowClick('add',null)">
             <SvgIcon name="ele-FolderAdd"/>
             新增

+ 2 - 2
admin-web/src/views/admin/station/list/index.vue

@@ -36,7 +36,7 @@
         <!--  <template #extraQuery></template>
           <template #extraLeft></template>
          -->
-        <template #extraRight>
+        <template #extQuery>
           <el-button  v-auth="'washStation.add'"   size="default" plain  type="success" class="ml10" @click="handleRowClick('add',null)">
             <SvgIcon name="ele-FolderAdd"/>
             新增
@@ -110,7 +110,7 @@
   <WashStationDialog ref="washStationDialogRef" @refresh="loadData(true)"/>
 </template>
 
-<script setup lang="ts" name="WashStationList">
+<script setup lang="ts" name="adminStationList">
 import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
 import {$body, $get} from "/@/utils/request";
 import u from '/@/utils/u'

+ 1 - 1
admin-web/src/views/admin/user/index.vue

@@ -133,7 +133,7 @@
   <AdminUserDialog ref="adminUserDialogRef" @refresh="loadData(true)"/>
 </template>
 
-<script setup lang="ts" name="AdminUserList">
+<script setup lang="ts" name="orgUser">
 import {defineAsyncComponent, reactive, onMounted, onBeforeMount, ref, getCurrentInstance, nextTick, onBeforeUnmount} from 'vue';
 import {$body,$get} from "/@/utils/request";
 import {Msg} from "/@/utils/message";

+ 3 - 2
admin-web/vite.config.ts

@@ -1,7 +1,8 @@
 import vue from '@vitejs/plugin-vue';
 import {resolve} from 'path';
 import {defineConfig, loadEnv, ConfigEnv} from 'vite';
-// import vueSetupExtend from 'vite-plugin-vue-setup-extend';
+// @ts-ignore
+import vueSetupExtend from 'vite-plugin-vue-setup-extend';
 
 const pathResolve = (dir: string) => {
     return resolve(__dirname, '.', dir);
@@ -16,7 +17,7 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
     const env = loadEnv(mode.mode, process.cwd());
     return {
         // plugins: [vue(), vueSetupExtend()],
-        plugins: [vue()],
+        plugins: [vue(),vueSetupExtend()],
         root: process.cwd(),
         resolve: {alias},
         base: mode.command === 'serve' ? './' : env.VITE_PUBLIC_PATH,