From 8b56ab2d31905c3c7582296e9e0052fe02f45207 Mon Sep 17 00:00:00 2001
From: master <master@163.com>
Date: 星期五, 04 三月 2022 16:21:14 +0800
Subject: [PATCH] 添加采集设备页面
---
src/cool/modules/index.ts | 3
src/cool/modules/userInfo/components/index.ts | 1
src/cool/modules/device/service/index.ts | 8
src/cool/modules/immediateTask/index.ts | 15
src/cool/modules/deviceGroup/store/index.ts | 1
src/cool/modules/cycleTask/store/index.ts | 1
src/cool/modules/userInfo/views/userInfo.vue | 5
src/cool/modules/deviceGroup/views/deviceGroup.vue | 5
src/cool/modules/douMsg/views/douMsg.vue | 5
src/cool/modules/deviceGroup/service/index.ts | 1
src/cool/modules/cycleTask/pages/index.ts | 1
src/cool/modules/deviceGroup/directives/index.ts | 1
src/cool/modules/deviceGroup/pages/index.ts | 1
src/cool/modules/userInfo/service/index.ts | 1
src/cool/modules/cycleTask/views/cycleTask.vue | 5
src/cool/modules/cycleTask/index.ts | 15
src/cool/modules/douMsg/views/index.ts | 1
index.html | 314 ++++++------
src/cool/modules/deviceGroup/index.ts | 15
src/cool/modules/immediateTask/views/immediateTask.vue | 5
src/cool/modules/cycleTask/components/index.ts | 1
src/cool/modules/userInfo/pages/index.ts | 1
src/cool/modules/userInfo/store/index.ts | 1
src/cool/modules/immediateTask/directives/index.ts | 1
src/cool/modules/cycleTask/directives/index.ts | 1
src/cool/modules/device/views/device.vue | 201 ++++++++
src/cool/modules/douMsg/components/index.ts | 1
src/cool/modules/deviceGroup/components/index.ts | 1
src/cool/modules/douMsg/directives/index.ts | 1
src/cool/modules/douMsg/index.ts | 15
src/cool/modules/douMsg/service/index.ts | 1
src/cool/modules/immediateTask/views/index.ts | 1
src/cool/modules/immediateTask/service/index.ts | 1
src/cool/modules/cycleTask/service/index.ts | 1
src/cool/modules/userInfo/views/index.ts | 1
src/cool/modules/douMsg/pages/index.ts | 1
src/cool/modules/userInfo/index.ts | 15
src/cool/modules/immediateTask/store/index.ts | 1
src/cool/modules/device/service/device.ts | 5
src/cool/modules/base/pages/login/index.vue | 514 ++++++++++----------
src/cool/modules/douMsg/store/index.ts | 1
src/cool/modules/immediateTask/pages/index.ts | 1
src/cool/modules/huaneng/views/huaneng.vue | 248 +++++-----
src/cool/modules/userInfo/directives/index.ts | 1
src/cool/modules/deviceGroup/views/index.ts | 1
src/cool/modules/immediateTask/components/index.ts | 1
src/cool/modules/cycleTask/views/index.ts | 1
47 files changed, 885 insertions(+), 538 deletions(-)
diff --git a/index.html b/index.html
index b5a68ee..4f30390 100644
--- a/index.html
+++ b/index.html
@@ -1,157 +1,157 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="utf-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta name="referer" content="never" />
- <meta name="renderer" content="webkit" />
- <meta
- name="viewport"
- content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"
- />
- <title>鍗庤兘涓婃捣鐭虫礊鍙g浜岀數鍘傛枡鍦轰笁缁撮噸寤�</title>
- <link rel="icon" href="favicon.ico" />
- <style>
- html,
- body,
- #app {
- height: 100%;
- }
-
- * {
- margin: 0;
- padding: 0;
- font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
- "Microsoft YaHei", "寰蒋闆呴粦", Arial, sans-serif;
- }
-
- .preload {
- display: flex;
- flex-direction: column;
- height: 100%;
- letter-spacing: 1px;
- background-color: #2f3447;
- }
-
- .preload .container {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- width: 100%;
- user-select: none;
- flex-grow: 1;
- }
-
- .preload .name {
- font-size: 30px;
- color: #fff;
- letter-spacing: 5px;
- font-weight: bold;
- margin-bottom: 30px;
- }
-
- .preload .title {
- color: #fff;
- font-size: 14px;
- margin: 30px 0 20px 0;
- }
-
- .preload .sub-title {
- color: #ababab;
- font-size: 12px;
- }
-
- .preload .footer {
- text-align: center;
- padding: 10px 0 20px 0;
- }
-
- .preload .footer a {
- font-size: 12px;
- color: #ababab;
- text-decoration: none;
- }
-
- .preload .loading {
- height: 30px;
- width: 30px;
- border-radius: 30px;
- border: 7px solid currentColor;
- border-bottom-color: #2f3447 !important;
- position: relative;
- animation: r 1s infinite cubic-bezier(0.17, 0.67, 0.83, 0.67),
- bc 2s infinite ease-in;
- transform: rotate(0deg);
- }
-
- @keyframes r {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
- }
-
- .preload .loading::after,
- .preload .loading::before {
- content: "";
- display: inline-block;
- position: absolute;
- bottom: -2px;
- height: 7px;
- width: 7px;
- border-radius: 10px;
- background-color: currentColor;
- }
-
- .preload .loading::after {
- left: -1px;
- }
-
- .preload .loading::before {
- right: -1px;
- }
-
- @keyframes bc {
- 0% {
- color: #689cc5;
- }
-
- 25% {
- color: #b3b7e2;
- }
-
- 50% {
- color: #93dbe9;
- }
-
- 75% {
- color: #abbd81;
- }
-
- 100% {
- color: #689cc5;
- }
- }
- </style>
- </head>
- <body>
- <div id="app">
- <div class="preload">
- <div class="container">
- <p class="name">鍗庤兘鐭虫礊鍙g浜岀數鍘傛枡鍦轰笁缁撮噸寤�</p>
- <div class="loading"></div>
- <p class="title">姝e湪鍔犺浇璧勬簮...</p>
- <p class="sub-title">鍒濇鍔犺浇璧勬簮鍙兘闇�瑕佽緝澶氭椂闂� 璇疯�愬績绛夊緟</p>
- </div>
-
- <div class="footer">
- <a href="https://cool-js.com/" target="_blank"> https://hn.3d.com </a>
- </div>
- </div>
- </div>
- <script type="module" src="/src/main.ts"></script>
- </body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="referer" content="never" />
+ <meta name="renderer" content="webkit" />
+ <meta
+ name="viewport"
+ content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"
+ />
+ <title>鍗庤兘涓婃捣鐭虫礊鍙g浜岀數鍘傛枡鍦轰笁缁撮噸寤�</title>
+ <link rel="icon" href="favicon.ico" />
+ <style>
+ html,
+ body,
+ #app {
+ height: 100%;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
+ "Microsoft YaHei", "寰蒋闆呴粦", Arial, sans-serif;
+ }
+
+ .preload {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ letter-spacing: 1px;
+ background-color: #2f3447;
+ }
+
+ .preload .container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+ width: 100%;
+ user-select: none;
+ flex-grow: 1;
+ }
+
+ .preload .name {
+ font-size: 30px;
+ color: #fff;
+ letter-spacing: 5px;
+ font-weight: bold;
+ margin-bottom: 30px;
+ }
+
+ .preload .title {
+ color: #fff;
+ font-size: 14px;
+ margin: 30px 0 20px 0;
+ }
+
+ .preload .sub-title {
+ color: #ababab;
+ font-size: 12px;
+ }
+
+ .preload .footer {
+ text-align: center;
+ padding: 10px 0 20px 0;
+ }
+
+ .preload .footer a {
+ font-size: 12px;
+ color: #ababab;
+ text-decoration: none;
+ }
+
+ .preload .loading {
+ height: 30px;
+ width: 30px;
+ border-radius: 30px;
+ border: 7px solid currentColor;
+ border-bottom-color: #2f3447 !important;
+ position: relative;
+ animation: r 1s infinite cubic-bezier(0.17, 0.67, 0.83, 0.67),
+ bc 2s infinite ease-in;
+ transform: rotate(0deg);
+ }
+
+ @keyframes r {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+ }
+
+ .preload .loading::after,
+ .preload .loading::before {
+ content: "";
+ display: inline-block;
+ position: absolute;
+ bottom: -2px;
+ height: 7px;
+ width: 7px;
+ border-radius: 10px;
+ background-color: currentColor;
+ }
+
+ .preload .loading::after {
+ left: -1px;
+ }
+
+ .preload .loading::before {
+ right: -1px;
+ }
+
+ @keyframes bc {
+ 0% {
+ color: #689cc5;
+ }
+
+ 25% {
+ color: #b3b7e2;
+ }
+
+ 50% {
+ color: #93dbe9;
+ }
+
+ 75% {
+ color: #abbd81;
+ }
+
+ 100% {
+ color: #689cc5;
+ }
+ }
+ </style>
+ </head>
+ <body>
+ <div id="app">
+ <div class="preload">
+ <div class="container">
+ <p class="name">鍗庤兘鐭虫礊鍙g浜岀數鍘傛枡鍦轰笁缁撮噸寤�</p>
+ <div class="loading"></div>
+ <p class="title">姝e湪鍔犺浇璧勬簮...</p>
+ <p class="sub-title">鍒濇鍔犺浇璧勬簮鍙兘闇�瑕佽緝澶氭椂闂� 璇疯�愬績绛夊緟</p>
+ </div>
+
+ <div class="footer">
+ <a href="https://cool-js.com/" target="_blank"> https://hn.3d.com </a>
+ </div>
+ </div>
+ </div>
+ <script type="module" src="/src/main.ts"></script>
+ </body>
+</html>
diff --git a/src/cool/modules/base/pages/login/index.vue b/src/cool/modules/base/pages/login/index.vue
index 71f98bc..6e5a74c 100644
--- a/src/cool/modules/base/pages/login/index.vue
+++ b/src/cool/modules/base/pages/login/index.vue
@@ -1,257 +1,257 @@
-<template>
- <div class="page-login">
- <div class="box">
- <img class="logo" src="../../static/images/logo.png" alt="" />
- <!-- <p class="desc">{{ app.name }}-鍗庤兘浜屽巶鏂欏満鐓ゅ爢瀹炴椂涓夌淮寤烘ā</p> -->
- <p class="desc">{{ app.name }}-鍗庤兘浜屽巶鏂欏満鐓ゅ爢瀹炴椂涓夌淮寤烘ā</p>
-
- <el-form label-position="top" class="form" size="medium" :disabled="saving">
- <el-form-item label="鐢ㄦ埛鍚�">
- <el-input
- v-model="form.username"
- placeholder="璇疯緭鍏ョ敤鎴峰悕"
- maxlength="20"
- auto-complete="off"
- />
- </el-form-item>
-
- <el-form-item label="瀵嗙爜">
- <el-input
- v-model="form.password"
- type="password"
- placeholder="璇疯緭鍏ュ瘑鐮�"
- maxlength="20"
- auto-complete="off"
- />
- </el-form-item>
-
- <el-form-item label="楠岃瘉鐮�" class="captcha">
- <el-input
- v-model="form.verifyCode"
- placeholder="璇疯緭鍏ュ浘鐗囬獙璇佺爜"
- maxlength="4"
- auto-complete="off"
- @keyup.enter="toLogin"
- />
-
- <captcha
- :ref="setRefs('captcha')"
- v-model="form.captchaId"
- class="value"
- @change="
- () => {
- form.verifyCode = '';
- }
- "
- />
- </el-form-item>
- </el-form>
-
- <el-button round size="small" class="submit-btn" :loading="saving" @click="toLogin"
- >鐧诲綍</el-button
- >
- </div>
- <div class="video">
- <video class="bgvideo" id="bgvideo" autoplay muted loop>
- <source src="../../static/video/bg.mp4" type="video/mp4" />
- </video>
- </div>
- </div>
-</template>
-
-<script lang="ts">
-import { defineComponent, reactive, ref } from "vue";
-import { ElMessage } from "element-plus";
-import Captcha from "./components/captcha.vue";
-import { useEps, useCool } from "/@/cool";
-
-export default defineComponent({
- cool: {
- route: {
- path: "/login"
- }
- },
-
- components: {
- Captcha
- },
-
- setup() {
- const { refs, setRefs, store, router, app }: any = useCool();
-
- const saving = ref<boolean>(false);
-
- // 鐧诲綍琛ㄥ崟鏁版嵁
- const form = reactive({
- username: "",
- password: "",
- captchaId: "",
- verifyCode: ""
- });
-
- // 鐧诲綍
- async function toLogin() {
- if (!form.username) {
- return ElMessage.warning("鐢ㄦ埛鍚嶄笉鑳戒负绌�");
- }
-
- if (!form.password) {
- return ElMessage.warning("瀵嗙爜涓嶈兘涓虹┖");
- }
-
- if (!form.verifyCode) {
- return ElMessage.warning("鍥剧墖楠岃瘉鐮佷笉鑳戒负绌�");
- }
-
- saving.value = true;
-
- try {
- // 鐧诲綍
- await store.dispatch("userLogin", form);
-
- // 鐢ㄦ埛淇℃伅
- await store.dispatch("userInfo");
-
- // 璇诲彇Eps
- await useEps();
-
- // 鏉冮檺鑿滃崟
- const [first] = await store.dispatch("permMenu");
-
- if (!first) {
- ElMessage.error("璇ヨ处鍙锋病鏈夋潈闄�");
- } else {
- router.push("/");
- }
- } catch (err: any) {
- ElMessage.error(err);
- refs.value.captcha.refresh();
- }
-
- saving.value = false;
- }
-
- return {
- refs,
- setRefs,
- form,
- saving,
- toLogin,
- app
- };
- }
-});
-</script>
-
-<style lang="scss">
-.page-login {
- height: 100vh;
- width: 100vw;
- position: relative;
- background-color: rgba($color: #000000, $alpha: 0.4);
-
- .box {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- height: 500px;
- width: 500px;
- padding: 80px 0;
- position: absolute;
- z-index: 9;
- left: calc(50% - 250px);
- top: calc(50% - 330px);
- background-color: rgba(47, 52, 71, 0.93);
- border-radius: 12px;
- box-shadow: 0 2px 6px rgba($color: #000000, $alpha: 0.15);
-
- .logo {
- height: 50px;
- margin-bottom: 20px;
- }
-
- .desc {
- color: #ccc;
- font-size: 12px;
- margin-bottom: 60px;
- letter-spacing: 1px;
- }
-
- .el-form {
- width: 300px;
- border-radius: 3px;
-
- .el-form-item {
- margin-bottom: 20px;
-
- &__label {
- color: #ccc;
- }
- }
-
- .el-input {
- .el-input__inner {
- border: 0;
- border-bottom: 0.5px solid #999;
- border-radius: 0;
- padding: 0 5px;
- background-color: transparent;
- color: #ccc;
- transition: border-color 0.3s;
- position: relative;
-
- &:focus {
- border-color: #fff;
- color: #fff;
- }
-
- &:-webkit-autofill {
- -webkit-text-fill-color: #fff !important;
- -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
- transition: background-color 50000s ease-in-out 0s;
- }
- }
- }
-
- .captcha {
- position: relative;
-
- .value {
- position: absolute;
- bottom: 1px;
- right: 0;
- }
- }
- }
-
- .submit-btn {
- margin-top: 40px;
- padding: 9px 40px;
- color: #000;
- }
- }
-
- .bgvideo {
- position: absolute;
- top: 50%;
- left: 50%;
- min-width: 100%;
- min-height: 100%;
- width: auto;
- height: auto;
- z-index: -9999;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
- -webkit-transition: 1s opacity;
- transition: 1s opacity;
- }
- .video {
- position: fixed;
- width: 100%;
- height: 100%;
- overflow: hidden;
- z-index: -10000;
- }
-}
-</style>
+<template>
+ <div class="page-login">
+ <div class="box">
+ <img class="logo" src="../../static/images/logo.png" alt="" />
+ <!-- <p class="desc">{{ app.name }}-鍗庤兘浜屽巶鏂欏満鐓ゅ爢瀹炴椂涓夌淮寤烘ā</p> -->
+ <p class="desc">{{ app.name }}-鍗庤兘浜屽巶鏂欏満鐓ゅ爢瀹炴椂涓夌淮寤烘ā</p>
+
+ <el-form label-position="top" class="form" size="medium" :disabled="saving">
+ <el-form-item label="鐢ㄦ埛鍚�">
+ <el-input
+ v-model="form.username"
+ placeholder="璇疯緭鍏ョ敤鎴峰悕"
+ maxlength="20"
+ auto-complete="off"
+ />
+ </el-form-item>
+
+ <el-form-item label="瀵嗙爜">
+ <el-input
+ v-model="form.password"
+ type="password"
+ placeholder="璇疯緭鍏ュ瘑鐮�"
+ maxlength="20"
+ auto-complete="off"
+ />
+ </el-form-item>
+
+ <el-form-item label="楠岃瘉鐮�" class="captcha">
+ <el-input
+ v-model="form.verifyCode"
+ placeholder="璇疯緭鍏ュ浘鐗囬獙璇佺爜"
+ maxlength="4"
+ auto-complete="off"
+ @keyup.enter="toLogin"
+ />
+
+ <captcha
+ :ref="setRefs('captcha')"
+ v-model="form.captchaId"
+ class="value"
+ @change="
+ () => {
+ form.verifyCode = '';
+ }
+ "
+ />
+ </el-form-item>
+ </el-form>
+
+ <el-button round size="small" class="submit-btn" :loading="saving" @click="toLogin"
+ >鐧诲綍</el-button
+ >
+ </div>
+ <div class="video">
+ <video class="bgvideo" id="bgvideo" autoplay muted loop>
+ <source src="../../static/video/bg.mp4" type="video/mp4" />
+ </video>
+ </div>
+ </div>
+</template>
+
+<script lang="ts">
+import { defineComponent, reactive, ref } from "vue";
+import { ElMessage } from "element-plus";
+import Captcha from "./components/captcha.vue";
+import { useEps, useCool } from "/@/cool";
+
+export default defineComponent({
+ cool: {
+ route: {
+ path: "/login"
+ }
+ },
+
+ components: {
+ Captcha
+ },
+
+ setup() {
+ const { refs, setRefs, store, router, app }: any = useCool();
+
+ const saving = ref<boolean>(false);
+
+ // 鐧诲綍琛ㄥ崟鏁版嵁
+ const form = reactive({
+ username: "",
+ password: "",
+ captchaId: "",
+ verifyCode: ""
+ });
+
+ // 鐧诲綍
+ async function toLogin() {
+ if (!form.username) {
+ return ElMessage.warning("鐢ㄦ埛鍚嶄笉鑳戒负绌�");
+ }
+
+ if (!form.password) {
+ return ElMessage.warning("瀵嗙爜涓嶈兘涓虹┖");
+ }
+
+ if (!form.verifyCode) {
+ return ElMessage.warning("鍥剧墖楠岃瘉鐮佷笉鑳戒负绌�");
+ }
+
+ saving.value = true;
+
+ try {
+ // 鐧诲綍
+ await store.dispatch("userLogin", form);
+
+ // 鐢ㄦ埛淇℃伅
+ await store.dispatch("userInfo");
+
+ // 璇诲彇Eps
+ await useEps();
+
+ // 鏉冮檺鑿滃崟
+ const [first] = await store.dispatch("permMenu");
+
+ if (!first) {
+ ElMessage.error("璇ヨ处鍙锋病鏈夋潈闄�");
+ } else {
+ router.push("/");
+ }
+ } catch (err: any) {
+ ElMessage.error(err);
+ refs.value.captcha.refresh();
+ }
+
+ saving.value = false;
+ }
+
+ return {
+ refs,
+ setRefs,
+ form,
+ saving,
+ toLogin,
+ app
+ };
+ }
+});
+</script>
+
+<style lang="scss">
+.page-login {
+ height: 100vh;
+ width: 100vw;
+ position: relative;
+ background-color: rgba($color: #000000, $alpha: 0.4);
+
+ .box {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ height: 500px;
+ width: 500px;
+ padding: 80px 0;
+ position: absolute;
+ z-index: 9;
+ left: calc(50% - 250px);
+ top: calc(50% - 330px);
+ background-color: rgba(47, 52, 71, 0.93);
+ border-radius: 12px;
+ box-shadow: 0 2px 6px rgba($color: #000000, $alpha: 0.15);
+
+ .logo {
+ height: 50px;
+ margin-bottom: 20px;
+ }
+
+ .desc {
+ color: #ccc;
+ font-size: 12px;
+ margin-bottom: 60px;
+ letter-spacing: 1px;
+ }
+
+ .el-form {
+ width: 300px;
+ border-radius: 3px;
+
+ .el-form-item {
+ margin-bottom: 20px;
+
+ &__label {
+ color: #ccc;
+ }
+ }
+
+ .el-input {
+ .el-input__inner {
+ border: 0;
+ border-bottom: 0.5px solid #999;
+ border-radius: 0;
+ padding: 0 5px;
+ background-color: transparent;
+ color: #ccc;
+ transition: border-color 0.3s;
+ position: relative;
+
+ &:focus {
+ border-color: #fff;
+ color: #fff;
+ }
+
+ &:-webkit-autofill {
+ -webkit-text-fill-color: #fff !important;
+ -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
+ transition: background-color 50000s ease-in-out 0s;
+ }
+ }
+ }
+
+ .captcha {
+ position: relative;
+
+ .value {
+ position: absolute;
+ bottom: 1px;
+ right: 0;
+ }
+ }
+ }
+
+ .submit-btn {
+ margin-top: 40px;
+ padding: 9px 40px;
+ color: #000;
+ }
+ }
+
+ .bgvideo {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ min-width: 100%;
+ min-height: 100%;
+ width: auto;
+ height: auto;
+ z-index: -9999;
+ -webkit-transform: translateX(-50%) translateY(-50%);
+ transform: translateX(-50%) translateY(-50%);
+ -webkit-transition: 1s opacity;
+ transition: 1s opacity;
+ }
+ .video {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ z-index: -10000;
+ }
+}
+</style>
diff --git a/src/cool/modules/cycleTask/components/index.ts b/src/cool/modules/cycleTask/components/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/cycleTask/components/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/cycleTask/directives/index.ts b/src/cool/modules/cycleTask/directives/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/cycleTask/directives/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/cycleTask/index.ts b/src/cool/modules/cycleTask/index.ts
new file mode 100644
index 0000000..08b1faf
--- /dev/null
+++ b/src/cool/modules/cycleTask/index.ts
@@ -0,0 +1,15 @@
+import components from "./components";
+import directives from "./directives";
+import service from "./service";
+import store from "./store";
+import pages from "./pages";
+import views from "./views";
+
+export default {
+ components,
+ directives,
+ service,
+ store,
+ pages,
+ views
+};
diff --git a/src/cool/modules/cycleTask/pages/index.ts b/src/cool/modules/cycleTask/pages/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/cycleTask/pages/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/cycleTask/service/index.ts b/src/cool/modules/cycleTask/service/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/cycleTask/service/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/cycleTask/store/index.ts b/src/cool/modules/cycleTask/store/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/cycleTask/store/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/cycleTask/views/cycleTask.vue b/src/cool/modules/cycleTask/views/cycleTask.vue
new file mode 100644
index 0000000..b3c303e
--- /dev/null
+++ b/src/cool/modules/cycleTask/views/cycleTask.vue
@@ -0,0 +1,5 @@
+<template>
+ <div>
+ <h1>鍛ㄦ湡浠诲姟</h1>
+ </div>
+</template>
\ No newline at end of file
diff --git a/src/cool/modules/cycleTask/views/index.ts b/src/cool/modules/cycleTask/views/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/cycleTask/views/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/device/service/device.ts b/src/cool/modules/device/service/device.ts
new file mode 100644
index 0000000..77cd3e0
--- /dev/null
+++ b/src/cool/modules/device/service/device.ts
@@ -0,0 +1,5 @@
+import { BaseService, Service } from "/@/cool";
+
+@Service("device/device")
+class DemoDevice extends BaseService { }
+export default DemoDevice;
\ No newline at end of file
diff --git a/src/cool/modules/device/service/index.ts b/src/cool/modules/device/service/index.ts
index ff8b4c5..a592392 100644
--- a/src/cool/modules/device/service/index.ts
+++ b/src/cool/modules/device/service/index.ts
@@ -1 +1,7 @@
-export default {};
+import DemoDevice from "./device";
+
+export default {
+ device: {
+ device: new DemoDevice()
+ }
+};
diff --git a/src/cool/modules/device/views/device.vue b/src/cool/modules/device/views/device.vue
new file mode 100644
index 0000000..87f53d9
--- /dev/null
+++ b/src/cool/modules/device/views/device.vue
@@ -0,0 +1,201 @@
+<template>
+ <cl-crud :ref="setRefs('crud')"
+ @load="onLoad">
+ <el-row type="flex"
+ align="middle">
+ <!-- 鍒锋柊鎸夐挳 -->
+ <cl-refresh-btn />
+ <!-- 鏂板鎸夐挳 -->
+ <cl-add-btn />
+ <!-- 鍒犻櫎鎸夐挳 -->
+ <cl-multi-delete-btn />
+ <cl-flex1 />
+ <!-- 鍏抽敭瀛楁悳绱� -->
+ <cl-search-key />
+ </el-row>
+
+ <el-row>
+ <!-- 鏁版嵁琛ㄦ牸 -->
+ <cl-table :ref="setRefs('table')"
+ v-bind="table" />
+ </el-row>
+
+ <el-row type="flex">
+ <cl-flex1 />
+ <!-- 鍒嗛〉鎺т欢 -->
+ <cl-pagination />
+ </el-row>
+
+ <!-- 鏂板銆佺紪杈� -->
+ <cl-upsert :ref="setRefs('upsert')"
+ v-bind="upsert" />
+ </cl-crud>
+</template>
+
+<script lang="ts">
+import { defineComponent, reactive } from "vue";
+import { CrudLoad, Upsert, Table } from "@cool-vue/crud/types";
+import { useCool } from "/@/cool";
+
+export default defineComponent({
+ setup() {
+ const { refs, setRefs, service } = useCool();
+
+ // 鏂板銆佺紪杈戦厤缃�
+ const upsert = reactive<Upsert>({
+ items: [
+ {
+ label: "鍚嶇О",
+ prop: "name",
+ component: {
+ name: "el-input"
+ },
+ //鏄惁涓哄繀濉」,娉細鎺ュ彛閰嶇疆瀛楁鏃舵病鏈夎缃粯璁ゅ�兼椂锛岄兘闇�瑕侀�夋嫨蹇呭~
+ required: true
+ },
+ {
+ label: "閫昏緫ID",
+ prop: "logic_id",
+ component: {
+ name: "el-input"
+ },
+ required: true
+ },
+ {
+ label: "鐗╃悊ID",
+ prop: "device_id",
+ component: {
+ name: "el-input"
+ },
+ required: true
+ },
+ {
+ label: "璐熻矗浜�",
+ prop: "operator",
+ component: {
+ name: "el-input"
+ },
+ required: true
+ },
+ {
+ label: "缁忓害",
+ prop: "longitude",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "绾害",
+ prop: "latitude",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "楂樺害",
+ prop: "altitude",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "瀹夎浣嶇疆",
+ prop: "location",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "鐘舵��",
+ prop: "status",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "澶囨敞",
+ prop: "remark",
+ component: {
+ name: "el-input"
+ }
+ }
+ ]
+ });
+
+ // 琛ㄦ牸閰嶇疆
+ const table = reactive<Table>({
+ columns: [
+ {
+ type: "selection",
+ align: "center"
+ },
+ {
+ label: "id",
+ prop: "id",
+ sortable: true //鏄惁鎺掑簭鍔熻兘
+ },
+ {
+ label: "杩愯鐘舵��",
+ prop: "status",
+ filters: [
+ { text: "0", value: "宸插仠姝�" },
+ { text: "1", value: "姝e湪杩愯" }
+ ]
+ // filters:"[{ text: '瀹�', value: '瀹�' }, { text: '鍏徃', value: '鍏徃' }]"
+ },
+ {
+ label: "鍚嶇О",
+ prop: "name"
+ },
+ {
+ label: "浣嶇疆",
+ prop: "location",
+ width: 200
+ },
+ {
+ label: "閫昏緫ID",
+ prop: "logic_id"
+ },
+ {
+ label: "鐗╃悊ID",
+ prop: "device_id",
+ width: 100
+ },
+ {
+ label: "缁忓害",
+ prop: "longitude",
+ width: 150
+ },
+ {
+ label: "绾害",
+ prop: "latitude",
+ width: 150
+ },
+ {
+ label: "楂樺害",
+ prop: "altitude"
+ },
+ {
+ label: "鎿嶄綔",
+ type: "op"
+ }
+ ]
+ });
+
+ // crud 鍔犺浇
+ function onLoad({ ctx, app }: CrudLoad) {
+ // 缁戝畾 service
+ ctx.service(service.device.device).done();
+ app.refresh();
+ }
+
+ return {
+ refs,
+ setRefs,
+ upsert,
+ table,
+ onLoad
+ };
+ }
+});
+</script>
diff --git a/src/cool/modules/deviceGroup/components/index.ts b/src/cool/modules/deviceGroup/components/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/deviceGroup/components/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/deviceGroup/directives/index.ts b/src/cool/modules/deviceGroup/directives/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/deviceGroup/directives/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/deviceGroup/index.ts b/src/cool/modules/deviceGroup/index.ts
new file mode 100644
index 0000000..08b1faf
--- /dev/null
+++ b/src/cool/modules/deviceGroup/index.ts
@@ -0,0 +1,15 @@
+import components from "./components";
+import directives from "./directives";
+import service from "./service";
+import store from "./store";
+import pages from "./pages";
+import views from "./views";
+
+export default {
+ components,
+ directives,
+ service,
+ store,
+ pages,
+ views
+};
diff --git a/src/cool/modules/deviceGroup/pages/index.ts b/src/cool/modules/deviceGroup/pages/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/deviceGroup/pages/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/deviceGroup/service/index.ts b/src/cool/modules/deviceGroup/service/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/deviceGroup/service/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/deviceGroup/store/index.ts b/src/cool/modules/deviceGroup/store/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/deviceGroup/store/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/deviceGroup/views/deviceGroup.vue b/src/cool/modules/deviceGroup/views/deviceGroup.vue
new file mode 100644
index 0000000..76812a8
--- /dev/null
+++ b/src/cool/modules/deviceGroup/views/deviceGroup.vue
@@ -0,0 +1,5 @@
+<template>
+ <div>
+ <h1>璁惧鍒嗙粍椤甸潰</h1>
+ </div>
+</template>
\ No newline at end of file
diff --git a/src/cool/modules/deviceGroup/views/index.ts b/src/cool/modules/deviceGroup/views/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/deviceGroup/views/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/douMsg/components/index.ts b/src/cool/modules/douMsg/components/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/douMsg/components/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/douMsg/directives/index.ts b/src/cool/modules/douMsg/directives/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/douMsg/directives/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/douMsg/index.ts b/src/cool/modules/douMsg/index.ts
new file mode 100644
index 0000000..08b1faf
--- /dev/null
+++ b/src/cool/modules/douMsg/index.ts
@@ -0,0 +1,15 @@
+import components from "./components";
+import directives from "./directives";
+import service from "./service";
+import store from "./store";
+import pages from "./pages";
+import views from "./views";
+
+export default {
+ components,
+ directives,
+ service,
+ store,
+ pages,
+ views
+};
diff --git a/src/cool/modules/douMsg/pages/index.ts b/src/cool/modules/douMsg/pages/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/douMsg/pages/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/douMsg/service/index.ts b/src/cool/modules/douMsg/service/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/douMsg/service/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/douMsg/store/index.ts b/src/cool/modules/douMsg/store/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/douMsg/store/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/douMsg/views/douMsg.vue b/src/cool/modules/douMsg/views/douMsg.vue
new file mode 100644
index 0000000..f5171ac
--- /dev/null
+++ b/src/cool/modules/douMsg/views/douMsg.vue
@@ -0,0 +1,5 @@
+<template>
+ <div>
+ <h1>鏂楄疆鏈鸿鎯呴〉</h1>
+ </div>
+</template>
\ No newline at end of file
diff --git a/src/cool/modules/douMsg/views/index.ts b/src/cool/modules/douMsg/views/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/douMsg/views/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/huaneng/views/huaneng.vue b/src/cool/modules/huaneng/views/huaneng.vue
index 8854f03..8243663 100644
--- a/src/cool/modules/huaneng/views/huaneng.vue
+++ b/src/cool/modules/huaneng/views/huaneng.vue
@@ -1,122 +1,126 @@
-<template>
- <cl-crud :ref="setRefs('crud')"
- @load="onLoad">
- <el-row type="flex"
- align="middle">
- <!-- 鍒锋柊鎸夐挳 -->
- <cl-refresh-btn />
- <!-- 鏂板鎸夐挳 -->
- <cl-add-btn />
- <!-- 鍒犻櫎鎸夐挳 -->
- <cl-multi-delete-btn />
- <cl-flex1 />
- <!-- 鍏抽敭瀛楁悳绱� -->
- <cl-search-key />
- </el-row>
-
- <el-row>
- <!-- 鏁版嵁琛ㄦ牸 -->
- <cl-table :ref="setRefs('table')"
- v-bind="table" />
- </el-row>
-
- <el-row type="flex">
- <cl-flex1 />
- <!-- 鍒嗛〉鎺т欢 -->
- <cl-pagination />
- </el-row>
-
- <!-- 鏂板銆佺紪杈� -->
- <cl-upsert :ref="setRefs('upsert')"
- v-bind="upsert" />
- </cl-crud>
-</template>
-
-<script lang="ts">
-import { defineComponent, reactive } from "vue";
-import { CrudLoad, Upsert, Table } from "@cool-vue/crud/types";
-import { useCool } from "/@/cool";
-
-export default defineComponent({
- setup() {
- const { refs, setRefs, service } = useCool();
-
- // 鏂板銆佺紪杈戦厤缃�
- const upsert = reactive<Upsert>({
- items: [
- {
- label: "濮撳悕",
- prop: "name",
- component: {
- name: "el-input"
- }
- },
- {
- label: "鍚嶇О",
- prop: "title",
- component: {
- name: "el-input"
- }
- },
- {
- label: "搴忓彿",
- prop: "price",
- component: {
- name: "el-input"
- }
- },
- {
- label: "鍒嗙被",
- prop: "type",
- component: {
- name: "el-input"
- }
- }
- ]
- });
-
- // 琛ㄦ牸閰嶇疆
- const table = reactive<Table>({
- columns: [
- {
- label: "濮撳悕",
- prop: "name"
- },
- {
- label: "璁惧",
- prop: "title"
- },
- {
- label: "搴忓彿",
- prop: "price"
- },
- {
- label: "鍒嗙被",
- prop: "type"
- },
- {
- label: "鎿嶄綔",
- type: "op"
- }
- ]
- });
-
- // crud 鍔犺浇
- function onLoad({ ctx, app }: CrudLoad) {
- console.log(service);
-
- // 缁戝畾 service
- ctx.service(service.huaneng.huaneng).done();
- app.refresh();
- }
-
- return {
- refs,
- setRefs,
- upsert,
- table,
- onLoad
- };
- }
-});
-</script>
+<template>
+ <cl-crud :ref="setRefs('crud')"
+ @load="onLoad">
+ <el-row type="flex"
+ align="middle">
+ <!-- 鍒锋柊鎸夐挳 -->
+ <cl-refresh-btn />
+ <!-- 鏂板鎸夐挳 -->
+ <cl-add-btn />
+ <!-- 鍒犻櫎鎸夐挳 -->
+ <cl-multi-delete-btn />
+ <cl-flex1 />
+ <!-- 鍏抽敭瀛楁悳绱� -->
+ <cl-search-key />
+ </el-row>
+
+ <el-row>
+ <!-- 鏁版嵁琛ㄦ牸 -->
+ <cl-table :ref="setRefs('table')"
+ v-bind="table" />
+ </el-row>
+
+ <el-row type="flex">
+ <cl-flex1 />
+ <!-- 鍒嗛〉鎺т欢 -->
+ <cl-pagination />
+ </el-row>
+
+ <!-- 鏂板銆佺紪杈� -->
+ <cl-upsert :ref="setRefs('upsert')"
+ v-bind="upsert" />
+ </cl-crud>
+</template>
+
+<script lang="ts">
+import { defineComponent, reactive } from "vue";
+import { CrudLoad, Upsert, Table } from "@cool-vue/crud/types";
+import { useCool } from "/@/cool";
+
+export default defineComponent({
+ setup() {
+ const { refs, setRefs, service } = useCool();
+
+ // 鏂板銆佺紪杈戦厤缃�
+ const upsert = reactive<Upsert>({
+ items: [
+ {
+ label: "濮撳悕",
+ prop: "name",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "鍚嶇О",
+ prop: "title",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "搴忓彿",
+ prop: "price",
+ component: {
+ name: "el-input"
+ }
+ },
+ {
+ label: "鍒嗙被",
+ prop: "type",
+ component: {
+ name: "el-input"
+ }
+ }
+ ]
+ });
+
+ // 琛ㄦ牸閰嶇疆
+ const table = reactive<Table>({
+ columns: [
+ {
+ type: "selection",
+ align: "center"
+ },
+ {
+ label: "濮撳悕",
+ prop: "name"
+ },
+ {
+ label: "璁惧",
+ prop: "title"
+ },
+ {
+ label: "搴忓彿",
+ prop: "price"
+ },
+ {
+ label: "鍒嗙被",
+ prop: "type"
+ },
+ {
+ label: "鎿嶄綔",
+ type: "op"
+ }
+ ]
+ });
+
+ // crud 鍔犺浇
+ function onLoad({ ctx, app }: CrudLoad) {
+ console.log("service", service);
+
+ // 缁戝畾 service
+ ctx.service(service.huaneng.huaneng).done();
+ app.refresh();
+ }
+
+ return {
+ refs,
+ setRefs,
+ upsert,
+ table,
+ onLoad
+ };
+ }
+});
+</script>
diff --git a/src/cool/modules/immediateTask/components/index.ts b/src/cool/modules/immediateTask/components/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/immediateTask/components/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/immediateTask/directives/index.ts b/src/cool/modules/immediateTask/directives/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/immediateTask/directives/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/immediateTask/index.ts b/src/cool/modules/immediateTask/index.ts
new file mode 100644
index 0000000..08b1faf
--- /dev/null
+++ b/src/cool/modules/immediateTask/index.ts
@@ -0,0 +1,15 @@
+import components from "./components";
+import directives from "./directives";
+import service from "./service";
+import store from "./store";
+import pages from "./pages";
+import views from "./views";
+
+export default {
+ components,
+ directives,
+ service,
+ store,
+ pages,
+ views
+};
diff --git a/src/cool/modules/immediateTask/pages/index.ts b/src/cool/modules/immediateTask/pages/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/immediateTask/pages/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/immediateTask/service/index.ts b/src/cool/modules/immediateTask/service/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/immediateTask/service/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/immediateTask/store/index.ts b/src/cool/modules/immediateTask/store/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/immediateTask/store/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/immediateTask/views/immediateTask.vue b/src/cool/modules/immediateTask/views/immediateTask.vue
new file mode 100644
index 0000000..709071c
--- /dev/null
+++ b/src/cool/modules/immediateTask/views/immediateTask.vue
@@ -0,0 +1,5 @@
+<template>
+ <div>
+ 鍗虫椂浠诲姟
+ </div>
+</template>
\ No newline at end of file
diff --git a/src/cool/modules/immediateTask/views/index.ts b/src/cool/modules/immediateTask/views/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/immediateTask/views/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/index.ts b/src/cool/modules/index.ts
index da3b97e..7782660 100644
--- a/src/cool/modules/index.ts
+++ b/src/cool/modules/index.ts
@@ -17,5 +17,6 @@
}
}
},
- "huaneng"
+ "huaneng",
+ "device"
];
diff --git a/src/cool/modules/userInfo/components/index.ts b/src/cool/modules/userInfo/components/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/userInfo/components/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/userInfo/directives/index.ts b/src/cool/modules/userInfo/directives/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/userInfo/directives/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/userInfo/index.ts b/src/cool/modules/userInfo/index.ts
new file mode 100644
index 0000000..08b1faf
--- /dev/null
+++ b/src/cool/modules/userInfo/index.ts
@@ -0,0 +1,15 @@
+import components from "./components";
+import directives from "./directives";
+import service from "./service";
+import store from "./store";
+import pages from "./pages";
+import views from "./views";
+
+export default {
+ components,
+ directives,
+ service,
+ store,
+ pages,
+ views
+};
diff --git a/src/cool/modules/userInfo/pages/index.ts b/src/cool/modules/userInfo/pages/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/userInfo/pages/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/userInfo/service/index.ts b/src/cool/modules/userInfo/service/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/userInfo/service/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/userInfo/store/index.ts b/src/cool/modules/userInfo/store/index.ts
new file mode 100644
index 0000000..ff8b4c5
--- /dev/null
+++ b/src/cool/modules/userInfo/store/index.ts
@@ -0,0 +1 @@
+export default {};
diff --git a/src/cool/modules/userInfo/views/index.ts b/src/cool/modules/userInfo/views/index.ts
new file mode 100644
index 0000000..d6d1738
--- /dev/null
+++ b/src/cool/modules/userInfo/views/index.ts
@@ -0,0 +1 @@
+export default [];
diff --git a/src/cool/modules/userInfo/views/userInfo.vue b/src/cool/modules/userInfo/views/userInfo.vue
new file mode 100644
index 0000000..a3d8511
--- /dev/null
+++ b/src/cool/modules/userInfo/views/userInfo.vue
@@ -0,0 +1,5 @@
+<template>
+ <div>
+ 鐢ㄦ埛绠$悊椤甸潰
+ </div>
+</template>
\ No newline at end of file
--
Gitblit v1.9.1