wuhao 3 лет назад
Родитель
Сommit
128c664384
2 измененных файлов с 145 добавлено и 50 удалено
  1. 3 3
      src/api/device/yxw.js
  2. 142 47
      src/views/device/yxw/index.vue

+ 3 - 3
src/api/device/yxw.js

@@ -9,10 +9,10 @@ export function getYxwPage(data) {
     })
 }
 
-// 导出设备号
-export function downLoadNo(data) {
+// 新增设备号
+export function getYxwAdd(data){
     return request({
-        url: `/device/yunxiaowei/exportDeviceNo`,
+        url: `/device/yunxiaowei/add`,
         method: 'post',
         data: data
     })

+ 142 - 47
src/views/device/yxw/index.vue

@@ -2,106 +2,201 @@
   <div class="app-container">
     <!-- 搜索 -->
     <el-form inline label-width="100px" size="mini">
-      <el-form-item label="设备ID:">
-        <el-input placeholder="请输入设备ID" />
-      </el-form-item>
       <el-form-item label="设备型号:">
-        <el-input placeholder="请输入设备型号" />
+        <el-input v-model="form.clientType" placeholder="请输入设备型号" />
       </el-form-item>
       <el-form-item label="设备类型:">
-        <el-select placeholder="请选择设备类型">
-          <el-option />
+        <el-select v-model="form.deviceType" placeholder="请选择设备类型">
+          <el-option v-for="item in deviceTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item label="当前状态:">
-        <el-select>
-          <el-option />
+        <el-select v-model="form.status" placeholder="请选择当前状态">
+          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item label="创建时间:">
-        <el-date-picker type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期" />
+        <el-date-picker
+          v-model="createTime"
+          type="datetimerange"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd HH:mm:ss"
+        />
       </el-form-item>
       <el-form-item label="激活时间:">
-        <el-date-picker type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期" />
+        <el-date-picker
+          v-model="updateTime"
+          type="datetimerange"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd HH:mm:ss"
+        />
       </el-form-item>
       <el-form-item>
-        <el-button icon="el-icon-search" type="primary">搜索</el-button>
+        <el-button icon="el-icon-search" type="primary" @click="getSearch">搜索</el-button>
         <el-button icon="el-icon-refresh" @click="getRefresh">重置</el-button>
         <el-button icon="el-icon-plus" type="primary" plain @click="dialogVisible = true">新增</el-button>
         <el-button icon="el-icon-download" type="primary" @click="getDownLoadNo">导出设备号</el-button>
-        <el-button icon="el-icon-download" type="primary">导出数据</el-button>
+        <el-button icon="el-icon-download" type="primary" @click="getDownLoadData">导出数据</el-button>
       </el-form-item>
     </el-form>
     <!-- 列表 -->
-    <el-table :data="tableData">
-      <el-table-column prop="id" label="设备ID" align="center"></el-table-column>
-      <el-table-column prop="only" label="设备标识" align="center"></el-table-column>
-      <el-table-column prop="model" label="设备型号" align="center"></el-table-column>
-      <el-table-column prop="type" label="设备类型" align="center"></el-table-column>
-      <el-table-column prop="create" label="创建时间" align="center"></el-table-column>
-      <el-table-column prop="update" label="激活时间" align="center"></el-table-column>
-      <el-table-column prop="status" label="当前状态" align="center"></el-table-column>
+    <el-table :data="tableData" v-loading="loading">
+      <el-table-column prop="id" label="设备号" align="center" />
+      <el-table-column prop="deviceId" label="设备标识" align="center" />
+      <el-table-column prop="clientType" label="设备型号" align="center" />
+      <el-table-column prop="type" label="设备类型" align="center" />
+      <el-table-column prop="createTimeStr" label="创建时间" align="center" />
+      <el-table-column prop="updateTimeStr" label="激活时间" align="center" />
+      <el-table-column prop="statusStr" label="当前状态" align="center" />
     </el-table>
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="form.pageIndex"
+      :limit.sync="form.pageSize"
+      @pagination="getList"
+    />
     <!-- 弹窗 -->
     <el-dialog title="新增" :visible.sync="dialogVisible" width="500px">
       <el-form label-width="100px">
         <el-form-item label="设备数量:">
-          <el-input placeholder="请输入设备数量"></el-input>
+          <el-input v-model="num" placeholder="请输入设备数量"></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer">
-        <el-button>取消</el-button>
-        <el-button type="primary">确定</el-button>
+        <el-button @click="dialogVisible = false">取消</el-button>
+        <el-button type="primary" @click="getSubmit">确定</el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { getYxwPage, downLoadNo } from "@/api/device/yxw";
+import { getYxwPage, getYxwAdd } from "@/api/device/yxw";
 export default {
   data() {
     return {
+      // 遮罩层
+      loading: true,
+      // 当前状态列表
+      statusOptions: [
+        {
+          value: 1,
+          label: "未使用",
+        },
+        {
+          value: 4,
+          label: "已使用",
+        },
+      ],
+      // 设备类型
+      deviceTypeOptions: [
+        {
+          value: 1,
+          label: "蓝牙",
+        },
+        {
+          value: 2,
+          label: "WiFi/蓝牙",
+        },
+        {
+          value: 3,
+          label: "传统蓝牙",
+        },
+        {
+          value: 4,
+          label: "4G",
+        },
+      ],
       // 表单
       form: {
-          pageIndex: 10,
-          PageSize: 1
+        pageIndex: 1,
+        pageSize: 10,
       },
+      // 创建时间
+      createTime: [],
+      // 更新时间
+      updateTime: [],
+      // 总数
+      total: 0,
       // 列表
-      tableData: [
-        {
-          id: "1",
-          only: "1sdafa",
-          model: "MW Plus",
-          type: "4G",
-          create: "2022/03/17 17:19:00",
-          update: "2022/03/17 17:19:00",
-          status: "未使用",
-        },
-      ],
+      tableData: [],
       // 弹窗
       dialogVisible: false,
+      // 新增设备数量
+      num: "",
     };
   },
+  watch: {
+    createTime(val) {
+      (this.form.startCreateTime = val[0]), (this.form.endCreateTime = val[1]);
+    },
+    updateTime(val) {
+      (this.form.startUpdateTime = val[0]), (this.form.endUpdateTime = val[1]);
+    },
+  },
   mounted() {
     this.getList();
   },
   methods: {
+    // 搜索
+    getSearch() {
+      this.form.pageIndex = 1;
+      this.getList();
+    },
+
+    // 重置
+    getRefresh() {
+      this.form = {
+        pageIndex: 1,
+        pageSize: 10,
+      };
+      this.createTime = this.updateTime = [];
+      this.getList();
+    },
+
     // 分页
     getList() {
+      this.loading = true;
       getYxwPage(this.form).then((res) => {
-        console.log(res);
+        if (res.code === 0) {
+          this.tableData = res.data.records;
+          this.total = res.data.total;
+          this.loading = false;
+        }
       });
     },
+
+    // 新建设备号
+    getSubmit() {
+      getYxwAdd({ num: this.num }).then((res) => {
+        if (res.code === 0) {
+          this.$message.success("新增成功!");
+          this.dialogVisible = false;
+          this.getList();
+        }
+      });
+    },
+
     // 导出设备号
-    getDownLoadNo(){
-        downLoadNo().then(res => {
-            console.log(res);
-        })
-    }
+    getDownLoadNo() {
+      this.download(
+        `/device/yunxiaowei/exportDeviceNo`,
+        this.form,
+        `云小微设备号.xlsx`
+      );
+    },
+
+    // 导出数据
+    getDownLoadData() {
+      this.download(
+        `/device/yunxiaowei/exportDeviceData`,
+        this.form,
+        `云小微设备数据.xlsx`
+      );
+    },
   },
 };
-</script>
-
-<style>
-</style>
+</script>