“yueshang” před 2 roky
rodič
revize
dbab96bdbc

+ 133 - 56
src/views/biz/bluetoothINfo/index.vue

@@ -1,7 +1,14 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="设备ID" prop="deviceId">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="100px"
+    >
+      <!-- <el-form-item label="设备ID" prop="deviceId">
         <el-input
           v-model="queryParams.deviceId"
           placeholder="请输入设备ID"
@@ -32,7 +39,7 @@
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="蓝牙名称" prop="name">
         <el-input
           v-model="queryParams.name"
@@ -49,16 +56,20 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="文件地址" prop="filePath">
+      <!-- <el-form-item label="文件地址" prop="filePath">
         <el-input
           v-model="queryParams.filePath"
           placeholder="请输入文件地址"
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="是否非法" prop="isIllegal">
-        <el-select v-model="queryParams.isIllegal" placeholder="请选择是否非法" clearable>
+        <el-select
+          v-model="queryParams.isIllegal"
+          placeholder="请选择是否非法"
+          clearable
+        >
           <el-option
             v-for="dict in dict.type.sys_yes_no"
             :key="dict.value"
@@ -68,16 +79,29 @@
         </el-select>
       </el-form-item>
       <el-form-item label="数据采集时间" prop="time">
-        <el-date-picker clearable
-          v-model="queryParams.time"
-          type="date"
+        <el-date-picker
+          clearable
+          v-model="daterangeRegisterTime"
+          style="width: 240px"
           value-format="yyyy-MM-dd"
-          placeholder="请选择数据采集时间">
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        >
         </el-date-picker>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
       </el-form-item>
     </el-form>
 
@@ -90,7 +114,8 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['biz:bluetoothINfo:add']"
-        >新增</el-button>
+          >新增</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -101,7 +126,8 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['biz:bluetoothINfo:edit']"
-        >修改</el-button>
+          >修改</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -112,7 +138,8 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['biz:bluetoothINfo:remove']"
-        >删除</el-button>
+          >删除</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -122,12 +149,20 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['biz:bluetoothINfo:export']"
-        >导出</el-button>
+          >导出</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="bluetoothINfoList" @selection-change="handleSelectionChange">
+    <el-table
+      v-loading="loading"
+      :data="bluetoothINfoList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="信息ID" align="center" prop="bInfoId" />
       <el-table-column label="设备ID" align="center" prop="deviceId" />
@@ -139,16 +174,28 @@
       <el-table-column label="文件地址" align="center" prop="filePath" />
       <el-table-column label="是否非法" align="center" prop="isIllegal">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isIllegal"/>
+          <dict-tag
+            :options="dict.type.sys_yes_no"
+            :value="scope.row.isIllegal"
+          />
         </template>
       </el-table-column>
       <el-table-column label="关键字类型" align="center" prop="keyType" />
-      <el-table-column label="数据采集时间" align="center" prop="time" width="180">
+      <el-table-column
+        label="数据采集时间"
+        align="center"
+        prop="time"
+        width="180"
+      >
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.time, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -156,20 +203,22 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['biz:bluetoothINfo:edit']"
-          >修改</el-button>
+            >修改</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['biz:bluetoothINfo:remove']"
-          >删除</el-button>
+            >删除</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -211,11 +260,13 @@
           </el-select>
         </el-form-item>
         <el-form-item label="数据采集时间" prop="time">
-          <el-date-picker clearable
+          <el-date-picker
+            clearable
             v-model="form.time"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="请选择数据采集时间">
+            placeholder="请选择数据采集时间"
+          >
           </el-date-picker>
         </el-form-item>
       </el-form>
@@ -228,17 +279,24 @@
 </template>
 
 <script>
-import { listBluetoothINfo, getBluetoothINfo, delBluetoothINfo, addBluetoothINfo, updateBluetoothINfo } from "@/api/biz/bluetoothINfo";
+import {
+  listBluetoothINfo,
+  getBluetoothINfo,
+  delBluetoothINfo,
+  addBluetoothINfo,
+  updateBluetoothINfo,
+} from "@/api/biz/bluetoothINfo";
 
 export default {
   name: "BluetoothINfo",
-  dicts: ['sys_yes_no'],
+  dicts: ["sys_yes_no"],
   data() {
     return {
       // 遮罩层
       loading: true,
       // 选中数组
       ids: [],
+      daterangeRegisterTime: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -266,26 +324,36 @@ export default {
         filePath: null,
         isIllegal: null,
         keyType: null,
-        time: null
+        time: null,
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
-        mac: [
-          { required: true, message: "MAC地址不能为空", trigger: "blur" }
-        ],
-      }
+        mac: [{ required: true, message: "MAC地址不能为空", trigger: "blur" }],
+      },
     };
   },
   created() {
     this.getList();
+    console.log('first',this.dicts)
+      // this.queryParams.isIllegal=this.dict.type.sys_yes_no[0].value
   },
   methods: {
     /** 查询蓝牙信息列表 */
     getList() {
       this.loading = true;
-      listBluetoothINfo(this.queryParams).then(response => {
+      this.queryParams.params = {};
+      if (
+        null != this.daterangeRegisterTime &&
+        "" != this.daterangeRegisterTime
+      ) {
+        this.queryParams.params["beginRegisterTime"] =
+          this.daterangeRegisterTime[0];
+        this.queryParams.params["endRegisterTime"] =
+          this.daterangeRegisterTime[1];
+      }
+      listBluetoothINfo(this.queryParams).then((response) => {
         this.bluetoothINfoList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -309,7 +377,7 @@ export default {
         filePath: null,
         isIllegal: null,
         keyType: null,
-        time: null
+        time: null,
       };
       this.resetForm("form");
     },
@@ -320,14 +388,15 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.daterangeRegisterTime = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.bInfoId)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+      this.ids = selection.map((item) => item.bInfoId);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 新增按钮操作 */
     handleAdd() {
@@ -338,8 +407,8 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const bInfoId = row.bInfoId || this.ids
-      getBluetoothINfo(bInfoId).then(response => {
+      const bInfoId = row.bInfoId || this.ids;
+      getBluetoothINfo(bInfoId).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "修改蓝牙信息";
@@ -347,16 +416,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.bInfoId != null) {
-            updateBluetoothINfo(this.form).then(response => {
+            updateBluetoothINfo(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addBluetoothINfo(this.form).then(response => {
+            addBluetoothINfo(this.form).then((response) => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -368,19 +437,27 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const bInfoIds = row.bInfoId || this.ids;
-      this.$modal.confirm('是否确认删除蓝牙信息编号为"' + bInfoIds + '"的数据项?').then(function() {
-        return delBluetoothINfo(bInfoIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      this.$modal
+        .confirm('是否确认删除蓝牙信息编号为"' + bInfoIds + '"的数据项?')
+        .then(function () {
+          return delBluetoothINfo(bInfoIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('biz/bluetoothINfo/export', {
-        ...this.queryParams
-      }, `bluetoothINfo_${new Date().getTime()}.xlsx`)
-    }
-  }
+      this.download(
+        "biz/bluetoothINfo/export",
+        {
+          ...this.queryParams,
+        },
+        `bluetoothINfo_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
 };
 </script>

+ 4 - 4
src/views/biz/deviceInfo/index.vue

@@ -1,14 +1,14 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="设备ID" prop="deviceId">
+      <!-- <el-form-item label="设备ID" prop="deviceId">
         <el-input
           v-model="queryParams.deviceId"
           placeholder="请输入设备ID"
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="设备品牌" prop="deviceBrand">
         <el-input
           v-model="queryParams.deviceBrand"
@@ -98,7 +98,7 @@
 
     <el-table v-loading="loading" :data="deviceInfoList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="租户号" align="center" prop="autoId" />
+      <!-- <el-table-column label="租户号" align="center" prop="autoId" /> -->
       <el-table-column label="设备ID" align="center" prop="deviceId" />
       <el-table-column label="设备品牌" align="center" prop="deviceBrand" />
       <el-table-column label="设备型号" align="center" prop="deviceModel" />
@@ -138,7 +138,7 @@
 
     <!-- 添加或修改设备信息对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
         <el-form-item label="设备ID" prop="deviceId">
           <el-input v-model="form.deviceId" placeholder="请输入设备ID" />
         </el-form-item>

+ 3 - 3
src/views/biz/keyInfo/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
       <el-form-item label="关键字类型" prop="keyType">
         <el-input
           v-model="queryParams.keyType"
@@ -96,9 +96,9 @@
 
     <!-- 添加或修改关键字对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="关键字" prop="keyWords">
-          <el-input v-model="form.keyWords" type="textarea" placeholder="请输入内容" />
+          <el-input v-model="form.keyWords" type="textarea" placeholder="多个关键字,使用英文逗号“,”分隔" />
         </el-form-item>
         <el-form-item label="关键字类型" prop="keyType">
           <el-input v-model="form.keyType" placeholder="请输入关键字类型" />

+ 2 - 2
src/views/biz/venueInfo/index.vue

@@ -126,8 +126,8 @@
         </el-row>
         <el-table :data="venueAreaList" :row-class-name="rowVenueAreaIndex" @selection-change="handleVenueAreaSelectionChange" ref="venueArea">
           <el-table-column type="selection" width="50" align="center" />
-          <el-table-column label="序号" align="center" prop="index" width="50"/>
-          <el-table-column label="区域名称" prop="areaName" width="150">
+          <el-table-column label="序号" align="center" width="140" prop="index"/>
+          <el-table-column label="区域名称" prop="areaName" >
             <template slot-scope="scope">
               <el-input v-model="scope.row.areaName" placeholder="请输入区域名称" />
             </template>

+ 61 - 19
src/views/biz/wifiInfo/index.vue

@@ -6,9 +6,9 @@
       size="small"
       :inline="true"
       v-show="showSearch"
-      label-width="68px"
+      label-width="140px"
     >
-      <el-form-item label="设备ID" prop="deviceId">
+      <!-- <el-form-item label="设备ID" prop="deviceId">
         <el-input
           v-model="queryParams.deviceId"
           placeholder="请输入设备ID"
@@ -39,7 +39,7 @@
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="WIFI名称" prop="ssid">
         <el-input
           v-model="queryParams.ssid"
@@ -48,7 +48,7 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="是否非法" prop="isIllegal">
+      <!-- <el-form-item label="是否非法" prop="isIllegal">
         <el-select
           v-model="queryParams.isIllegal"
           placeholder="请选择是否非法"
@@ -61,14 +61,17 @@
             :value="dict.value"
           />
         </el-select>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="数据采集时间" prop="time">
         <el-date-picker
           clearable
-          v-model="queryParams.time"
-          type="date"
+          v-model="daterangeRegisterTime"
+          style="width: 240px"
           value-format="yyyy-MM-dd"
-          placeholder="请选择数据采集时间"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
         >
         </el-date-picker>
       </el-form-item>
@@ -86,7 +89,7 @@
       </el-form-item>
     </el-form>
 
-    <el-row :gutter="10" class="mb8">
+    <!-- <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -137,7 +140,7 @@
         :showSearch.sync="showSearch"
         @queryTable="getList"
       ></right-toolbar>
-    </el-row>
+    </el-row> -->
 
     <el-table
       v-loading="loading"
@@ -152,13 +155,14 @@
       <el-table-column label="MAC地址" align="center" prop="bssid" />
       <el-table-column label="WIFI名称" align="center" prop="ssid" />
       <el-table-column label="认证页面" align="center" prop="authPage">
-        <template>
+        <template slot-scope="scope">
           <el-button
             type="primary"
             plain
             size="mini"
-            @click="handleAuth"
-            >认证</el-button>
+            @click="handleAuth(scope.row.authPage)"
+            >认证</el-button
+          >
         </template>
       </el-table-column>
       <el-table-column label="是否非法" align="center" prop="isIllegal">
@@ -215,8 +219,8 @@
     />
 
     <!-- 添加或修改WIFI信息对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" class="auth-cls">
         <el-form-item label="设备ID" prop="deviceId">
           <el-input v-model="form.deviceId" placeholder="请输入设备ID" />
         </el-form-item>
@@ -233,11 +237,12 @@
           <el-input v-model="form.ssid" placeholder="请输入WIFI名称" />
         </el-form-item>
         <el-form-item label="认证页面" prop="authPage">
-          <el-input
+          <!-- <el-input
             v-model="form.authPage"
             type="textarea"
             placeholder="请输入内容"
-          />
+          /> -->
+          <div v-html="form.authPage"></div>
         </el-form-item>
         <el-form-item label="是否非法" prop="isIllegal">
           <el-select v-model="form.isIllegal" placeholder="请选择是否非法">
@@ -265,6 +270,18 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog
+      title="认证"
+      :visible.sync="openAuth"
+      width="800px"
+      append-to-body
+    >
+      <div v-html="dataAuth" class="auth-cls"></div>
+      <div slot="footer" class="dialog-footer">
+        <!-- <el-button type="primary" @click="submitFormAuth">确 定</el-button> -->
+        <el-button @click="cancelAuth">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -282,6 +299,12 @@ export default {
   dicts: ["sys_yes_no"],
   data() {
     return {
+       // 注册时间时间范围
+       daterangeRegisterTime: [],
+      openAuth: false, //认证
+      dataAuth: "", //认证数据
+      rulesAuth: {},
+      formAuth: {},
       // 遮罩层
       loading: true,
       // 选中数组
@@ -324,12 +347,24 @@ export default {
     this.getList();
   },
   methods: {
-    handleAuth(){
-      
+    handleAuth(item) {
+      this.openAuth = true;
+      this.dataAuth = item;
+    },
+    submitFormAuth() {
+      this.openAuth = false;
+    },
+    cancelAuth() {
+      this.openAuth = false;
     },
     /** 查询WIFI信息列表 */
     getList() {
       this.loading = true;
+      this.queryParams.time = {};
+      if (null != this.daterangeRegisterTime && '' != this.daterangeRegisterTime) {
+        this.queryParams.time["beginRegisterTime"] = this.daterangeRegisterTime[0];
+        this.queryParams.time["endRegisterTime"] = this.daterangeRegisterTime[1];
+      }
       listWifiInfo(this.queryParams).then((response) => {
         this.wifiInfoList = response.rows;
         this.total = response.total;
@@ -364,6 +399,7 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
+      this.daterangeRegisterTime = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -436,3 +472,9 @@ export default {
   },
 };
 </script>
+<style>
+.auth-cls{
+  height: 500px;
+  overflow-y: auto;
+}
+</style>

+ 2 - 2
src/views/dashboard/storeChart.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div ref="chart" style="width: 100%; height: 500px"></div>
+    <div ref="chart" style="width: 100%; height: 600px;margin: 20px;"></div>
   </div>
 </template>
 
@@ -49,7 +49,7 @@ export default {
         "库房15",
       ];
 
-      const fp_key = ["出库", "入库"];
+      const fp_key = ["WIFI", "蓝牙"];
       const fp_bar_postion = [
         "left",
         "left",

+ 0 - 174
src/views/index-v2.vue

@@ -1,174 +0,0 @@
-<template>
-  <div class="container">
-    <div class="main">
-      <div class="nav">
-        <div class="nav-one">
-          <img src="../assets/images/nav-one.png" alt="" />
-          <div>
-            <div class="nav-title">设备数量</div>
-            <div class="nav-count">23</div>
-          </div>
-        </div>
-        <div class="nav-two">
-          <img src="../assets/images/nav-two.png" alt="" />
-          <div>
-            <div class="nav-title">设备数量</div>
-            <div class="nav-count">23</div>
-          </div>
-        </div>
-        <div class="nav-three">
-          <img src="../assets/images/nav-three.png" alt="" />
-          <div>
-            <div class="nav-title">设备数量</div>
-            <div class="nav-count">23</div>
-          </div>
-        </div>
-        <div class="nav-four">
-          <img src="../assets/images/nav-four.png" alt="" />
-          <div>
-            <div class="nav-title">设备数量</div>
-            <div class="nav-count">23</div>
-          </div>
-        </div>
-      </div>
-      <div class="contbody">
-        <div class="chart-wrapper cont-left">
-          <store-chart />
-        </div>
-        <div class="cont-right">sdf</div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import storeChart from "./dashboard/storeChart";
-export default {
-  name: "Dict",
-  components: {
-    storeChart,
-  },
-  data() {
-    return {
-      data: "sdff",
-    };
-  },
-  created() {},
-  methods: {},
-};
-</script>
-
-<style lang="scss" scoped>
-.container{
-  background-color: #F6F6F6 !important;
-  height: 92vh;
-  width: 100%;
-}
-.main {
-  display: flex;
-  flex-direction: column;
-  margin:0 32px 32px;
-  overflow: hidden;
-  height: 100%;
-}
-.nav {
-  display: flex;
-  justify-content: space-around;
-  height: 160px;
-  margin:32px 0 24px;
-  & > div {
-    & > div {
-      height: 80px;
-      display: flex;
-      flex-direction: column;
-      justify-content: space-around;
-    }
-    flex: 1;
-    border-radius: 4px;
-    display: flex;
-    align-items: center;
-    margin-right: 24px;
-    & > img {
-      margin-right: 28px;
-      margin-left: 32px;
-      max-width: 80px;
-      max-height: 80px;
-      border-radius: 24px;
-    }
-    @media (max-width: 1000px) {
-      & > img {
-        max-width: 60px;
-        max-height: 60px;
-      }
-      & > div {
-        height: 60px;
-      }
-    }
-  }
-  .nav-one {
-    background: #c4eccc;
-    color: #347140;
-  }
-  .nav-two {
-    color: #713734;
-    background: #fae6bb;
-  }
-  .nav-three {
-    color: #344171;
-    background: #d6e0ff;
-  }
-  .nav-four {
-    color: #344171;
-    margin-right: 0;
-    background: #ffd6e4;
-  }
-  .nav-one,
-  .nav-two,
-  .nav-three,
-  .nav-four {
-    background-image: url("../assets/images/topImg.png");
-    background-position: top right;
-    background-repeat: no-repeat;
-    background-size: 98px 100px;
-  }
-  .nav-count {
-    font-size: 32px;
-    font-weight: 600;
-    color: #000;
-  }
-  .nav-title {
-    font-size: 18px;
-  }
-  @media (max-width: 1000px) {
-    .nav-count {
-      font-size: 16px;
-    }
-    .nav-title {
-      font-size: 14px;
-    }
-  }
-}
-.contbody {
-  display: flex;
-  width: 100%;
-  flex-grow: 1;
-  margin-bottom: 32px;
-  .cont-left,
-  .cont-right {
-    background: #fff;
-    border-radius: 16px;
-  }
-  .cont-left {
-    flex: 1;
-    margin-right: 24px;
-  }
-  .cont-right {
-    width: 384px;
-  }
-  .cont-left,
-  .cont-right {
-    background: #fff;
-    border-radius: 16px;
-  }
-}
-</style>

+ 22 - 0
src/views/index-v3.vue

@@ -0,0 +1,22 @@
+<template>
+  <div>1</div>
+</template>
+
+<script>
+export default {
+  name: "index",
+  components: {
+  },
+  data() {
+    return {
+      data: "sdff",
+    };
+  },
+  created() {},
+  methods: {},
+};
+</script>
+
+<style>
+
+</style>

+ 156 - 4
src/views/index.vue

@@ -1,11 +1,52 @@
 <template>
-  <div>1</div>
+  <div class="container">
+    <div class="main">
+      <div class="nav">
+        <div class="nav-one">
+          <img src="../assets/images/nav-one.png" alt="" />
+          <div>
+            <div class="nav-title">设备数量</div>
+            <div class="nav-count">23</div>
+          </div>
+        </div>
+        <div class="nav-two">
+          <img src="../assets/images/nav-two.png" alt="" />
+          <div>
+            <div class="nav-title">WIFI数量</div>
+            <div class="nav-count">23</div>
+          </div>
+        </div>
+        <div class="nav-three">
+          <img src="../assets/images/nav-three.png" alt="" />
+          <div>
+            <div class="nav-title">蓝牙数量</div>
+            <div class="nav-count">23</div>
+          </div>
+        </div>
+        <div class="nav-four">
+          <img src="../assets/images/nav-four.png" alt="" />
+          <div>
+            <div class="nav-title">场管数量</div>
+            <div class="nav-count">23</div>
+          </div>
+        </div>
+      </div>
+      <div class="contbody">
+        <div class="chart-wrapper cont-left">
+          <store-chart />
+        </div>
+        <div class="cont-right">sdf</div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import storeChart from "./dashboard/storeChart";
 export default {
-  name: "index",
+  name: "Dict",
   components: {
+    storeChart,
   },
   data() {
     return {
@@ -17,6 +58,117 @@ export default {
 };
 </script>
 
-<style>
-
+<style lang="scss" scoped>
+.container{
+  background-color: #F6F6F6 !important;
+  height: 93vh;
+  width: 100%;
+}
+.main {
+  display: flex;
+  flex-direction: column;
+  margin:0 32px 32px;
+  overflow: hidden;
+  height: 100%;
+}
+.nav {
+  display: flex;
+  justify-content: space-around;
+  height: 160px;
+  margin:32px 0 24px;
+  & > div {
+    & > div {
+      height: 80px;
+      display: flex;
+      flex-direction: column;
+      justify-content: space-around;
+    }
+    flex: 1;
+    border-radius: 4px;
+    display: flex;
+    align-items: center;
+    margin-right: 24px;
+    & > img {
+      margin-right: 28px;
+      margin-left: 32px;
+      max-width: 80px;
+      max-height: 80px;
+      border-radius: 24px;
+    }
+    @media (max-width: 1000px) {
+      & > img {
+        max-width: 60px;
+        max-height: 60px;
+      }
+      & > div {
+        height: 60px;
+      }
+    }
+  }
+  .nav-one {
+    background: #c4eccc;
+    color: #347140;
+  }
+  .nav-two {
+    color: #713734;
+    background: #fae6bb;
+  }
+  .nav-three {
+    color: #344171;
+    background: #d6e0ff;
+  }
+  .nav-four {
+    color: #344171;
+    margin-right: 0;
+    background: #ffd6e4;
+  }
+  .nav-one,
+  .nav-two,
+  .nav-three,
+  .nav-four {
+    background-image: url("../assets/images/topImg.png");
+    background-position: top right;
+    background-repeat: no-repeat;
+    background-size: 98px 100px;
+  }
+  .nav-count {
+    font-size: 32px;
+    font-weight: 600;
+    color: #000;
+  }
+  .nav-title {
+    font-size: 18px;
+  }
+  @media (max-width: 1000px) {
+    .nav-count {
+      font-size: 16px;
+    }
+    .nav-title {
+      font-size: 14px;
+    }
+  }
+}
+.contbody {
+  display: flex;
+  width: 100%;
+  flex-grow: 1;
+  margin-bottom: 32px;
+  .cont-left,
+  .cont-right {
+    background: #fff;
+    border-radius: 16px;
+  }
+  .cont-left {
+    flex: 1;
+    margin-right: 24px;
+  }
+  .cont-right {
+    width: 384px;
+  }
+  .cont-left,
+  .cont-right {
+    background: #fff;
+    border-radius: 16px;
+  }
+}
 </style>