linan 4 years ago
parent
commit
80ad61275e
4 changed files with 212 additions and 120 deletions
  1. 6 2
      src/api/device.js
  2. 28 3
      src/store/publicType.js
  3. 2 2
      src/views/cultivateSeed/sub/clan.vue
  4. 176 113
      src/views/device/deviceFault.vue

+ 6 - 2
src/api/device.js

@@ -1,5 +1,9 @@
 import { ajax } from "../sdk/ajax";
 import { ajax } from "../sdk/ajax";
+// 设备管理
 
 
+/* 设备故障  DvFault == DeviceFault*/
+export const reqDvFaultList = (data) => ajax("post", "/farm-huyang/device/list", data)
 
 
-/* 登录 */
-export const reqLogin = (data) => ajax("post", "/core/auth/login", data)
+export const reqAddDvFault = (data) => ajax("post", "/farm-huyang/device/add", data)
+
+export const reqDelDvFault = (id) => ajax("post", "/farm-huyang/device/delete", {id})

+ 28 - 3
src/store/publicType.js

@@ -24,6 +24,16 @@ const seedSheedStatus = [
     { label: "淘汰", value: 8 }
     { label: "淘汰", value: 8 }
 ]
 ]
 
 
+// 商品羊状态
+const prductSheedStatus = [
+    { label: "羔羊", value: 1 },
+    { label: "育成羊", value: 2 },
+    { label: "商品羊", value: 3 },
+    { label: "无害化", value: 4 },
+    { label: "卖出", value: 5 }
+]
+
+
 // 精液色泽
 // 精液色泽
 const seedColor = [
 const seedColor = [
     { label: "正常", value: 1 },
     { label: "正常", value: 1 },
@@ -102,6 +112,20 @@ const examiningReportType = [
     { label: "通过", value: 1 }
     { label: "通过", value: 1 }
 ]
 ]
 
 
+// 设备类型  
+const deviceType = [
+    { label: "温度", value: 1 },
+    { label: "湿度", value: 2 },
+    { label: "摄像头", value: 3 }
+]
+
+// 设备状态  
+const deviceStatus = [
+    { label: "正常工作", value: 1 },
+    { label: "暂停使用", value: 2 },
+    { label: "故障", value: 3 }
+]
+
 /* workerList 员工列表  动态获取了 在home.vue中获取了 */
 /* workerList 员工列表  动态获取了 在home.vue中获取了 */
 /* areaList 栋舍信息  动态获取了 在home.vue中获取了 */
 /* areaList 栋舍信息  动态获取了 在home.vue中获取了 */
 /* drugBasicsList 基础药品列表   动态获取了 在home.vue中获取了 */
 /* drugBasicsList 基础药品列表   动态获取了 在home.vue中获取了 */
@@ -111,9 +135,10 @@ const examiningReportType = [
 
 
 
 
 export default {
 export default {
-    seedSheedSource, seedSheedLevel, seedSheedStatus, seedColor, seedDensity,
-    fetationStatus, estrusStatus, vaccineStyle, sheepType, cureStatus, periodOfValidityUnit
-    , drugStatus, harmlessConfirmStatus, examiningSheepType, examiningReportType
+    seedSheedSource, seedSheedLevel, seedSheedStatus, prductSheedStatus, seedColor, seedDensity,
+    fetationStatus, estrusStatus, vaccineStyle, sheepType, cureStatus, periodOfValidityUnit, 
+    drugStatus, harmlessConfirmStatus, examiningSheepType, examiningReportType, deviceType,
+    deviceStatus
 }
 }
 
 
 
 

+ 2 - 2
src/views/cultivateSeed/sub/clan.vue

@@ -108,7 +108,7 @@
                     <td class="title">12月龄</td>
                     <td class="title">12月龄</td>
                     <td class="title" style="border-right: 1px solid #ccc;">24月龄</td>
                     <td class="title" style="border-right: 1px solid #ccc;">24月龄</td>
                 </tr>
                 </tr>
-                <tr >
+                <tr>
                     <td class="title">父</td>
                     <td class="title">父</td>
                     <td>{{ father.id }}</td>
                     <td>{{ father.id }}</td>
                     <td>{{ father.brotherNum>1?'是':'否' }}</td>
                     <td>{{ father.brotherNum>1?'是':'否' }}</td>
@@ -193,7 +193,7 @@ export default {
     data() {
     data() {
         return {
         return {
             self: {
             self: {
-                birthday:'' // 防报错
+                birthday: "" // 防报错
             },
             },
             father: {},
             father: {},
             fatherFather: {},
             fatherFather: {},

+ 176 - 113
src/views/device/deviceFault.vue

@@ -1,65 +1,58 @@
 <template>
 <template>
-    <div class="deviceFault">
+    <div class="DvFault">
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">设备故障</h2>
         <h2 style="margin-bottom: 20px;padding-bottom:7px;border-bottom:2px solid #ddd">设备故障</h2>
         <header id="header">
         <header id="header">
-            <el-row type="flex">
-                <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1区" value="11"></el-option>
-                        <el-option label="2区" value="22"></el-option>
-                    </el-select>
-                </el-col>
+            <el-row type="flex" :gutter="20">
                 <el-col :span="4">
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="1舍" value="13"></el-option>
-                        <el-option label="2舍" value="24"></el-option>
-                    </el-select>
+                    <el-input v-model="search" placeholder="请输入"></el-input>
                 </el-col>
                 </el-col>
                 <el-col :span="4">
                 <el-col :span="4">
-                    <el-select v-model="value" placeholder="请选择">
-                        <el-option label="可用" value="15"></el-option>
-                        <el-option label="可用" value="26"></el-option>
-                    </el-select>
+                    <el-button type="primary" @click="getDvFaultList">查找</el-button>
                 </el-col>
                 </el-col>
                 <el-col :span="4">
                 <el-col :span="4">
-                    <el-button type="primary">查找</el-button>
-                </el-col>
-                <el-col :span="4">
-                    <el-button type="primary">新增</el-button>
+                    <el-button type="primary" @click="add">新增</el-button>
                 </el-col>
                 </el-col>
             </el-row>
             </el-row>
         </header>
         </header>
         <section>
         <section>
             <article class="table">
             <article class="table">
-                <el-table
-                    ref="multipleTable"
-                    :data="tableData"
-                    tooltip-effect="dark"
-                    style="width: 100%"
-                    @selection-change="handleSelectionChange"
-                >
-                    <el-table-column type="selection" width="55"></el-table-column>
-                    <el-table-column prop="a" label="屠宰批次"></el-table-column>
-                    <el-table-column prop="b" label="产品名称"></el-table-column>
-                    <el-table-column prop="c" label="排酸时间"></el-table-column>
-                    <el-table-column prop="d" label="排酸前重量"></el-table-column>
-                    <el-table-column prop="e" label="排酸后重量"></el-table-column>
-                    <el-table-column prop="f" label="排酸损耗"></el-table-column>
-                    <el-table-column prop="g" label="负责人员"></el-table-column>
-                    <!-- <el-table-column label="操作" width="150">
-                        <template slot-scope="scope">
-                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
+                <el-table :data="tableData" tooltip-effect="dark" style="width: 100%">
+                    <el-table-column prop="id" label="序号" width="100"></el-table-column>
+                    <el-table-column prop="farmId" label="农场ID"></el-table-column>
+                    <el-table-column label="安装日期">
+                        <template v-slot="scope">
+                            <span>{{ scope.row['installTime'].substr(0,10) }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="name" label="设备名称"></el-table-column>
+                    <el-table-column label="设备类型">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['deviceType']" :key="item.value">
+                                <span v-if="item.value == scope.row['style']">{{ item.label }}</span>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="设备状态">
+                        <template v-slot="scope">
+                            <div v-for="item in $store.state['deviceStatus']" :key="item.value">
+                                <el-tag
+                                    :type="scope.row['status']==3?'danger':scope.row['status']==2?'info':''"
+                                    v-if="item.value == scope.row['status']"
+                                    size="mini"
+                                >{{ item.label }}</el-tag>
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="code" label="产品编码"></el-table-column>
+                    <el-table-column prop="position" label="地址"></el-table-column>
+                    <el-table-column label="操作" width="150">
+                        <template v-slot="scope">
                             <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
                             <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
                                 <el-button slot="reference" type="text" size="small">删除</el-button>
                                 <el-button slot="reference" type="text" size="small">删除</el-button>
                             </el-popconfirm>
                             </el-popconfirm>
                         </template>
                         </template>
-                    </el-table-column> -->
+                    </el-table-column>
                 </el-table>
                 </el-table>
-                <div style="margin-top: 20px">
-                    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
-                    <el-button @click="toggleSelection()">取消选择</el-button>
-                    <el-button @click="inStore">入待宰栏</el-button>
-                </div>
 
 
                 <el-row type="flex" justify="end">
                 <el-row type="flex" justify="end">
                     <el-col :span="8" class="pagination">
                     <el-col :span="8" class="pagination">
@@ -67,97 +60,167 @@
                             @current-change="pageChange"
                             @current-change="pageChange"
                             background
                             background
                             layout="prev, pager, next"
                             layout="prev, pager, next"
-                            :page-count="10"
+                            :page-count="Number(totalPages)"
                         ></el-pagination>
                         ></el-pagination>
                     </el-col>
                     </el-col>
                 </el-row>
                 </el-row>
             </article>
             </article>
         </section>
         </section>
+
+        <el-dialog title="新增/编辑" :visible.sync="isShow" width="40%">
+            <el-row type="flex">
+                <el-col :span="20">
+                    <el-form ref="addDvFault" :model="formData" :rules="rules" label-width="140px">
+                        <el-form-item label="安装日期">
+                            <el-date-picker
+                                v-model="formData.installTime"
+                                type="date"
+                                value-format="yyyy-MM-dd HH:mm:ss"
+                                placeholder="选择日期"
+                            ></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="设备名称">
+                            <el-input v-model="formData.name"></el-input>
+                        </el-form-item>
+                        <el-form-item label="设备类型">
+                            <el-select v-model="formData.style" filterable placeholder="请选择">
+                                <el-option
+                                    v-for="item in $store.state['deviceType']"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                ></el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="产品编码">
+                            <el-input v-model="formData.code"></el-input>
+                        </el-form-item>
+                        <el-form-item label="地址">
+                            <el-input v-model="formData.position"></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button @click="isShow=false">取 消</el-button>
+                            <el-button type="primary" @click="submitForm('addDvFault')">保 存</el-button>
+                        </el-form-item>
+                    </el-form>
+                </el-col>
+            </el-row>
+        </el-dialog>
     </div>
     </div>
 </template>
 </template>
 
 
 <script>
 <script>
+import { reqDvFaultList, reqAddDvFault, reqDelDvFault } from "@/api/device.js";
 
 
-const pageSize = 10
-const tableData = [
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "带骨羊前腿",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "胴体",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                {
-                    a: "15463",
-                    b: "羔羊肉卷",
-                    c: "2020-07-14",
-                    d: "49kg",
-                    e: "48kg",
-                    f: "1.6%",
-                    g: "张小刚",
-                },
-                
-                
-            ]
+const pageSize = 10;
+const rules = {};
+const farmId = 1;
 
 
 export default {
 export default {
+    name: "DvFault",
     data() {
     data() {
+        let _this = this;
         return {
         return {
-            value: "",
-            multipleSelection: [],
-            page: 1,
-            tableData
+            search: "",
+            pageNum: 1,
+            tableData: [],
+            totalPages: 0,
+            isShow: false,
+            formData: {
+                farmId,
+                installTime: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
+                name: "温度传感器",
+                style: null,
+                code: "6565464",
+                position: "分娩一舍"
+            },
+            rules
         };
         };
     },
     },
-    created() {},
+    created() {
+        // 设备故障列表
+        this.getDvFaultList();
+    },
+    watch: {
+        "formData.weight"(v, ov) {
+            if (Number(v).toString() == "NaN") {
+                this.$message.error("请输入数字");
+                return;
+            }
+            this.formData.sum = (v * this.formData.price).toFixed(2);
+        },
+        "formData.price"(v, ov) {
+            if (Number(v).toString() == "NaN") {
+                this.$message.error("请输入数字");
+                return;
+            }
+            this.formData.sum = (this.formData.weight * v).toFixed(2);
+        }
+    },
     methods: {
     methods: {
-        toggleSelection(rows) {
-            if (rows) {
-                rows.forEach(row => {
-                    this.$refs.multipleTable.toggleRowSelection(row);
+        submitForm(formName) {
+            this.$refs[formName].validate(valid => {
+                if (valid) {
+                    reqAddDvFault(this.formData)
+                        .then(res => {
+                            // 设备故障列表
+                            this.getDvFaultList();
+                            this.$message.success("成功!");
+                            // this.isShow = false
+                        })
+                        .catch(err => {
+                            console.log(err);
+                            this.$message.error("失败!");
+                        });
+                } else {
+                    return false;
+                }
+            });
+        },
+        // 设备故障列表
+        getDvFaultList() {
+            reqDvFaultList({
+                searchStr: this.search,
+                farmId,
+                pageSize,
+                pageNum: this.pageNum
+            })
+                .then(res => {
+                    this.tableData = res.content;
+                    this.totalPages = res.totalPages;
+                })
+                .catch(err => {
+                    console.log(err);
                 });
                 });
-            } else {
-                this.$refs.multipleTable.clearSelection();
-            }
         },
         },
-        // 入待宰栏
-        inStore() {},
-        handleSelectionChange(val) {
-            this.multipleSelection = val;
+        add() {
+            this.isShow = true;
+            // 有id是update 没id是add
+            delete this.formData.id;
+        },
+        del(row) {
+            console.log(row);
+            reqDelDvFault(row.id)
+                .then(res => {
+                    // 设备故障列表
+                    this.getDvFaultList();
+                    if (res.code == "success") {
+                        this.$message.success(res.msg);
+                    }
+                    if (res.errCode == "delete failed") {
+                        this.$message.error(res.errMsg);
+                    }
+                })
+                .catch(err => {
+                    console.log(err);
+                    this.$message.error("删除失败!");
+                });
         },
         },
-        edit(row) {},
-        del(row) {},
         pageChange(p) {
         pageChange(p) {
             console.log(p);
             console.log(p);
+            this.pageNum = p;
+            // 设备故障列表
+            this.getDvFaultList();
         }
         }
     }
     }
 };
 };