From bbb6e44367424cd0e1e970d517c32332648a0ef6 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期二, 07 五月 2024 22:25:42 +0800
Subject: [PATCH] 机器台账

---
 src/views/tpm/MachineTab.vue     |   85 ++++++-
 src/views/tpm/machine/Dialog.vue |  548 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 616 insertions(+), 17 deletions(-)

diff --git a/src/views/tpm/MachineTab.vue b/src/views/tpm/MachineTab.vue
index b4b362d..13edf48 100644
--- a/src/views/tpm/MachineTab.vue
+++ b/src/views/tpm/MachineTab.vue
@@ -1,7 +1,7 @@
 <!--
  * @Date: 2024-04-27 20:04:34
  * @LastEditors: Sneed
- * @LastEditTime: 2024-04-27 21:51:12
+ * @LastEditTime: 2024-05-07 22:23:47
  * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/tpm/MachineTab.vue
 -->
 <template>
@@ -18,25 +18,26 @@
             <el-header>
                 <div class="left-panel">
                     <el-button size="small" @click="table_add" type="primary" icon="el-icon-plus"></el-button>
-                    <el-button size="small" type="danger" plain icon="el-icon-delete" @click="batchDel"></el-button>
+                    <el-button size="small" type="danger" plain icon="el-icon-delete" @click="batchDel"
+                        :disabled="selection.length == 0"></el-button>
                     <!-- <el-button type="primary" plain>瀵煎叆</el-button>
 									<el-button type="primary" plain>鎵归噺鎿嶄綔</el-button> -->
                 </div>
                 <div class="right-panel">
                     <div class="right-panel-search">
                         <span>绫诲瀷</span>
-                        <el-select size="small" v-model="params.machineTypeId" style="width: 240px">
-                            <el-option size="small" v-for="item in types" :key="item.value" :label="item.label"
+                        <el-select v-model="params.machineTypeId" style="width: 240px" clearable>
+                            <el-option v-for="item in types" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
                         <span>鐘舵��</span>
-                        <el-select size="small" v-model="params.status" style="width: 240px">
-                            <el-option size="small" v-for="item in status" :key="item.value" :label="item.label"
+                        <el-select v-model="params.status" style="width: 240px">
+                            <el-option v-for="item in status" :key="item.value" :label="item.label"
                                 :value="item.value" />
                         </el-select>
-                        <el-input size="small" v-model="params.machineName" style="width: 240px" placeholder="璇疯緭鍏ユ満鍣ㄥ悕绉�"
+                        <el-input v-model="params.machineName" style="width: 240px" placeholder="璇疯緭鍏ユ満鍣ㄥ悕绉�"
                             clearable></el-input>
-                        <el-button size="small" @click="search" type="primary" icon="el-icon-search"></el-button>
+                        <el-button @click="search" type="primary" icon="el-icon-search"></el-button>
                     </div>
                 </div>
             </el-header>
@@ -57,7 +58,10 @@
                             <el-button-group>
                                 <el-button text type="primary" size="small"
                                     @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
-                                <el-popconfirm title="纭畾鍒犻櫎鍚楋紵" @confirm="table_del(scope.row, scope.$index, '0')">
+                                <el-popconfirm cancel-button-text="鍋滅敤" confirm-button-text="鍒犻櫎"
+                                    title="鍒犻櫎鏁版嵁浼氬奖鍝嶅凡鍏宠仈鐨勪笟鍔� ,鑻ユ偍鎯冲湪宸插叧鑱旂殑涓氬姟涓緷鐒舵樉绀鸿繖浜涙暟鎹�, 鎮ㄥ彲浠ラ�夋嫨 鍋滅敤 鎿嶄綔銆傚仠鐢ㄥ悗姝ゆ暟鎹皢涓嶈兘鍐嶈鏂颁笟鍔′娇鐢ㄣ��"
+                                    @confirm="table_del(scope.row, scope.$index, '0')"
+                                    @cancel="table_del(scope.row, scope.$index, '1')">
                                     <template #reference>
                                         <el-button text type="primary" size="small">鍒犻櫎</el-button>
                                     </template>
@@ -66,26 +70,28 @@
                         </template>
                     </el-table-column>
                 </scTable>
-
             </el-main>
         </el-container>
+        <Dialog ref="dialog" @success="success"></Dialog>
     </el-container>
 </template>
 
 <script>
+import Dialog from './machine/Dialog.vue'
 export default {
+    components: {
+        Dialog
+    },
     data() {
         return {
             apiObj: this.$API.machineManagement.getList,
             group: [],
-            treeCheckKey: '',
             params: {
                 groupId: '',
-                machineCode: '',
-                machineName: '',
                 machineTypeId: '',
                 status: 1,
             },
+            treeCheckKey: '',
             status: [
                 {
                     label: '鍚敤',
@@ -96,31 +102,76 @@
                     value: 0
                 }
             ],
-            types: []
+            types: [],
+            selection: []
         }
     },
     created() {
+        this.init()
         this.getTreeData()
     },
     methods: {
+        init() {
+            this.$HTTP.get('/api/blade-cps/device-types/page?keyWord=&current=1&size=-1').then(res => {
+                if (res.code === 200) {
+                    this.types = res.data.records.map(item => ({
+                        label: item.name,
+                        value: item.id
+                    }))
+                }
+            })
+        },
         getTreeData() {
             this.$HTTP.get('/api/blade-cps/group/tree?groupCategory=1&groupType=group_machine').then(res => {
                 if (res.code === 200) {
                     this.group = res.data
-                    this.params.groupId = res.data[0].id
+                    // this.params.groupId = res.data[0].id
+                    this.nodeClick(res.data[0])
                 }
             })
         },
         nodeClick(node) {
             this.params.groupId = node.id
+            this.search()
         },
         search() {
             this.$refs.table.reload(this.params)
         },
         table_add() {
-            this.$router.push(`/tpm/machine/create`);
+            this.$refs.dialog.open('add')
         },
-        batchDel() { },
+        table_edit(row) {
+            this.$refs.dialog.open('add', { id: row.id })
+        },
+        success() {
+            this.getTreeData()
+        },
+        table_del(row, index, type) {
+            this.$HTTP.delete(`/api/blade-cps/machine?type=${type}`, {
+                ids: [row.id]
+            }).then(res => {
+                if (res.code === 200) {
+                    this.$message.success("鎿嶄綔鎴愬姛");
+                    this.getTreeData()
+                }
+            })
+        },
+        selectionChange(selection) {
+            this.selection = selection
+        },
+        batchDel() {
+            if (this.selection.length === 0) {
+                return this.$message.warning("璇烽�夋嫨");
+            }
+            this.$HTTP.delete(`/api/blade-cps/machine?type=1`, {
+                ids: this.selection.map(item => item.id)
+            }).then(res => {
+                if (res.code === 200) {
+                    this.$message.success("鎿嶄綔鎴愬姛");
+                    this.getTreeData()
+                }
+            })
+        },
     }
 }
 </script>
diff --git a/src/views/tpm/machine/Dialog.vue b/src/views/tpm/machine/Dialog.vue
new file mode 100644
index 0000000..c81c2c8
--- /dev/null
+++ b/src/views/tpm/machine/Dialog.vue
@@ -0,0 +1,548 @@
+<template>
+    <el-dialog :title="titleMap[mode]" v-model="visible" :width="1100" destroy-on-close @closed="$emit('closed')">
+        <el-form :model="form" :rules="rules" :disabled="mode == 'show'" ref="dialogForm" label-width="120px"
+            label-position="center" v-if="visible">
+            <el-row>
+                <el-col :span="24" style="padding:12px 0;">
+                    鍩虹鏁版嵁
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒缂栧彿" prop="machineCode">
+                        <el-input style="width: 240px" disabled v-model="form.machineCode"
+                            placeholder="淇濆瓨鏃剁郴缁熻嚜鍔ㄧ敓鎴�"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鐭紪鍙�" prop="shortCode">
+                        <el-input style="width: 240px" v-model="form.shortCode" placeholder="鐭紪鍙�" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒PIN鐮�" prop="pinCode">
+                        <el-input style="width: 240px" v-model="form.pinCode" placeholder="鏈哄櫒PIN鐮�" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒鍚嶇О" prop="machineName">
+                        <el-input style="width: 240px" v-model="form.machineName" placeholder="鏈哄櫒鍚嶇О"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒绫诲瀷" prop="machineTypeId">
+                        <el-select v-model="form.machineTypeId" placeholder="" style="width: 240px">
+                            <el-option v-for="item in options.machineTypeId" :key="item.value" :label="item.label"
+                                :value="item.value" />
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒搴忓垪鍙�" prop="serialNo">
+                        <el-input style="width: 240px" v-model="form.serialNo" placeholder="鏈哄櫒搴忓垪鍙�" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="浜у湴鍥藉埆" prop="countryOfManufacture">
+                        <el-input style="width: 240px" v-model="form.countryOfManufacture" placeholder="浜у湴鍥藉埆"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鐢熷懡鐘舵��" prop="machineLifeStatus">
+                        <el-select v-model="form.machineLifeStatus" placeholder="" style="width: 240px">
+                            <el-option v-for="item in options.machineLifeStatus" :key="item.value" :label="item.label"
+                                :value="item.value" />
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鐢靛帇(v)" prop="voltage">
+                        <el-input style="width: 240px" v-model="form.voltage" placeholder="淇濈暀2浣嶅皬鏁�" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒瑙勬牸" prop="machineModel">
+                        <el-input style="width: 240px" v-model="form.machineModel" placeholder="鏈哄櫒瑙勬牸"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="杞粨灏哄(cm)" prop="dimensions">
+                        <el-input style="width: 240px" v-model="form.dimensions" placeholder="淇濈暀2浣嶅皬鏁�"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鍑�閲�(kg)" prop="netWeight">
+                        <el-input style="width: 240px" v-model="form.netWeight" placeholder="淇濈暀2浣嶅皬鏁�"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鍔熺巼(kw)" prop="power">
+                        <el-input style="width: 240px" v-model="form.power" placeholder="淇濈暀2浣嶅皬鏁�" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="绯荤粺鍚嶇О" prop="systemName">
+                        <el-input style="width: 240px" v-model="form.systemName" placeholder="绯荤粺鍚嶇О"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒鍝佺墝" prop="brand">
+                        <el-input style="width: 240px" v-model="form.brand" placeholder="鏈哄櫒鍝佺墝" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鏈哄櫒閾墝" prop="nameplate">
+                        <el-input style="width: 240px" v-model="form.nameplate" placeholder="鏈哄櫒閾墝" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="杞欢鐗堟湰" prop="softwareVersion">
+                        <el-input style="width: 240px" v-model="form.softwareVersion" placeholder="杞欢鐗堟湰"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鎵�灞炴満鍣ㄧ粍" prop="groupId">
+                        <el-input style="width: 240px" v-model="form.groupId" placeholder="鎵�灞炴満鍣ㄧ粍" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="宸ヤ綅鏂瑰紡" prop="linkWay">
+                        <el-checkbox v-model="form.linkWay" label="鍒涘缓鍚屽悕宸ヤ綅" :true-value="1" :false-value="2"
+                            :true-label="1" :false-label="2" />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="宸ヤ綅缂栧彿" prop="workstationId">
+                        <el-input style="width: 240px" v-model="form.workstationId" placeholder="鏈粦瀹�"
+                            disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="宸ヤ綅鍚嶇О" prop="code">
+                        <el-input style="width: 240px" v-model="form.code" placeholder="鏈粦瀹�" disabled></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鐘舵��" prop="status">
+                        <el-select v-model="form.status" placeholder="" style="width: 240px">
+                            <el-option v-for="item in options.status" :key="item.value" :label="item.label"
+                                :value="item.value" />
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="24" style="padding:12px 0;">
+                    璧勪骇淇℃伅
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鍙戠エ閲戦" prop="invoiceValue">
+                        <el-input style="width: 240px" v-model="form.invoiceValue" placeholder="淇濈暀2浣嶅皬鏁�"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="璧勪骇鍘熷��" prop="ovfa">
+                        <el-input style="width: 240px" v-model="form.ovfa" placeholder="淇濈暀2浣嶅皬鏁�" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鎶樻棫骞撮檺" prop="depreciationYear">
+                        <el-input style="width: 240px" v-model="form.depreciationYear" placeholder="鎶樻棫骞撮檺"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="璧勪骇鍑�鍊�" prop="netAssetValue">
+                        <el-input style="width: 240px" v-model="form.netAssetValue" placeholder="淇濈暀2浣嶅皬鏁�"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="璧勪骇缂栧彿" prop="assetsCode">
+                        <el-input style="width: 240px" v-model="form.assetsCode" placeholder="璧勪骇缂栧彿"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鐢熶骇鏃ユ湡" prop="productionTime">
+                        <el-date-picker style="width: 240px" v-model="form.productionTime" type="date"
+                            placeholder="鐢熶骇鏃ユ湡" clearable />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="浜や粯鏃ユ湡" prop="deliveryTime">
+                        <el-date-picker style="width: 240px" v-model="form.deliveryTime" type="date" placeholder="浜や粯鏃ユ湡"
+                            clearable />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鍒堕�犲巶鍟�" prop="manufacturer">
+                        <el-input style="width: 240px" v-model="form.manufacturer" placeholder="鍒堕�犲巶鍟�"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="24" style="padding:12px 0;">
+                    瀛樻斁淇℃伅
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鍑哄巶妗f" prop="factoryFile">
+                        <el-input style="width: 240px" v-model="form.factoryFile" placeholder="鍑哄巶妗f"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鍑哄巶缂栧彿" prop="factoryNo">
+                        <el-input style="width: 240px" v-model="form.factoryNo" placeholder="鍑哄巶缂栧彿" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="瀹夎浣嶇疆" prop="installationLocation">
+                        <el-input style="width: 240px" v-model="form.installationLocation" placeholder="瀹夎浣嶇疆"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="杞浐鏃ユ湡" prop="turnToFixedAssetsTime">
+                        <el-date-picker style="width: 240px" v-model="form.turnToFixedAssetsTime" type="date"
+                            placeholder="杞浐鏃ユ湡" clearable />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="绠$悊绛夌骇" prop="managementClass">
+                        <el-input style="width: 240px" v-model="form.managementClass" placeholder="绠$悊绛夌骇"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="浣跨敤閮ㄩ棬" prop="organizationId">
+                        <el-input style="width: 240px" v-model="form.organizationId" placeholder="浣跨敤閮ㄩ棬"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鐢熶骇绾�" prop="productionLine">
+                        <el-input style="width: 240px" v-model="form.productionLine" placeholder="鐢熶骇绾�"
+                            clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="鐗圭璁惧" prop="elaborateEquipment">
+                        <el-select v-model="form.elaborateEquipment" placeholder="" style="width: 240px">
+                            <el-option v-for="item in options.elaborateEquipment" :key="item.value" :label="item.label"
+                                :value="item.value" />
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="浣跨敤鐘舵��" prop="machineUseStatus">
+                        <el-select v-model="form.machineUseStatus" placeholder="" style="width: 240px">
+                            <el-option v-for="item in options.machineUseStatus" :key="item.value" :label="item.label"
+                                :value="item.value" />
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="璐d换浜�" prop="employeeId">
+                        <el-input style="width: 240px" v-model="form.employeeId" placeholder="璐d换浜�" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="澶囨敞" prop="remark">
+                        <el-input style="width: 240px" v-model="form.remark" placeholder="澶囨敞" clearable></el-input>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+        </el-form>
+        <template #footer>
+            <el-button @click="visible = false">鍙� 娑�</el-button>
+            <el-button v-if="mode != 'show'" type="primary" :loading="isSaveing" @click="submit()">淇� 瀛�</el-button>
+        </template>
+    </el-dialog>
+</template>
+
+<script>
+const validator = (rule, value, callback) => {
+    if (!value) {
+        return callback();
+    }
+    if (!/^(\d+|\d+\.\d{1,2})$/.test(value)) {
+        callback(new Error('璇风‘淇濇槸鏈夋晥鐨勪袱浣嶅皬鏁版暟瀛�'));
+    } else {
+        callback();
+    }
+}
+export default {
+    emits: ['success', 'closed'],
+    components: {
+    },
+    props: {
+        option: {
+            type: Object
+        },
+        detail: {
+            type: Object
+        }
+    },
+    watch: {
+
+    },
+    computed: {
+    },
+    data() {
+        return {
+            options: {
+                machineTypeId: [],
+                machineLifeStatus: [],
+                elaborateEquipment: [
+                    {
+                        label: '鏄�',
+                        value: 1
+                    },
+                    {
+                        label: '鍚�',
+                        value: 0
+                    }
+                ],
+                status: [
+                    {
+                        label: '鍚敤',
+                        value: 1
+                    },
+                    {
+                        label: '鍋滅敤',
+                        value: 0
+                    }
+                ],
+                machineUseStatus: []
+            },
+            mode: "add",
+            titleMap: {
+                add: '鏂板缓鏈哄櫒鍙拌处',
+                edit: '缂栬緫鏈哄櫒鍙拌处',
+                // show: '鏌ョ湅'
+            },
+            visible: false,
+            isSaveing: false,
+            //琛ㄥ崟鏁版嵁
+            form: {
+                machineCode: '',
+                shortCode: '',
+                pinCode: '',
+                machineName: '',
+                machineTypeId: '',
+                serialNo: '',
+                countryOfManufacture: '',
+                machineLifeStatus: '',
+                voltage: '',
+                machineModel: '',
+                dimensions: '',
+                netWeight: '',
+                power: '',
+                systemName: '',
+                brand: '',
+                nameplate: '',
+                softwareVersion: '',
+                groupId: '',
+                linkWay: '',
+                machineCode: '',
+                workstationId: '',
+                code: '',
+                status: '',
+                invoiceValue: '',
+                ovfa: '',
+                depreciationYear: '',
+                netAssetValue: '',
+                assetsCode: '',
+                productionTime: '',
+                deliveryTime: '',
+                manufacturer: '',
+                factoryFile: '',
+                factoryNo: '',
+                installationLocation: '',
+                turnToFixedAssetsTime: '',
+                managementClass: '',
+                organizationId: '',
+                productionLine: '',
+                elaborateEquipment: '',
+                machineUseStatus: '',
+                employeeId: '',
+                remark: '',
+            },
+            //楠岃瘉瑙勫垯
+            rules: {
+                machineName: [
+                    { required: true, message: '' }
+                ],
+                status: [
+                    { required: true, message: '' }
+                ],
+                shortCode: [
+                    {
+                        validator: (rule, value, callback) => {
+                            if (!value) {
+                                return callback();
+                            }
+                            if (!/^[a-zA-Z0-9]{4,8}$/.test(value)) {
+                                callback(new Error('璇疯緭鍏� 4-8 鑻辨枃锛屾暟瀛�'));
+                            } else {
+                                callback();
+                            }
+                        }, message: '璇疯緭鍏� 4-8 鑻辨枃锛屾暟瀛�', trigger: 'change',
+                    }
+                ],
+                pinCode: [
+                    {
+                        validator: (rule, value, callback) => {
+                            if (!value) {
+                                return callback();
+                            }
+                            if (!/^[a-zA-Z0-9]{4,6}$/.test(value)) {
+                                callback(new Error('璇疯緭鍏� 4-6 鑻辨枃锛屾暟瀛�'));
+                            } else {
+                                callback();
+                            }
+                        }, message: '璇疯緭鍏� 4-6 鑻辨枃锛屾暟瀛�', trigger: 'change',
+                    }
+                ],
+                voltage: [
+                    {
+                        validator, message: '淇濈暀2浣嶅皬鏁�', trigger: 'change',
+                    }
+                ],
+                dimensions: [
+                    {
+                        validator, message: '淇濈暀2浣嶅皬鏁�', trigger: 'change',
+                    }
+                ],
+                netWeight: [
+                    {
+                        validator, message: '淇濈暀2浣嶅皬鏁�', trigger: 'change',
+                    }
+                ],
+                power: [
+                    {
+                        validator, message: '淇濈暀2浣嶅皬鏁�', trigger: 'change',
+                    }
+                ],
+                invoiceValue: [
+                    {
+                        validator, message: '淇濈暀2浣嶅皬鏁�', trigger: 'change',
+                    }
+                ],
+                ovfa: [
+                    {
+                        validator, message: '淇濈暀2浣嶅皬鏁�', trigger: 'change',
+                    }
+                ],
+                netAssetValue: [
+                    {
+                        validator, message: '淇濈暀2浣嶅皬鏁�', trigger: 'change',
+                    }
+                ],
+            },
+
+        }
+    },
+    created() {
+        this.init()
+    },
+    methods: {
+        init() {
+            this.$HTTP.get('/api/blade-system/dict/dictionary?code=machine_life_state').then(res => {
+                if (res.code === 200) {
+                    this.options.machineLifeStatus = res.data.map(item => ({
+                        label: item.dictValue,
+                        value: item.dictKey
+                    }))
+                }
+            })
+            this.$HTTP.get('/api/blade-system/dict/dictionary?code=machine_use_state').then(res => {
+                if (res.code === 200) {
+                    this.options.machineUseStatus = res.data.map(item => ({
+                        label: item.dictValue,
+                        value: item.dictKey
+                    }))
+                }
+            })
+            this.$HTTP.get('/api/blade-cps/device-types/page?keyWord=&current=1&size=-1').then(res => {
+                if (res.code === 200) {
+                    this.options.machineTypeId = res.data.records.map(item => ({
+                        label: item.name,
+                        value: item.id
+                    }))
+                }
+            })
+        },
+        //鏄剧ず
+        open(mode = 'add', params) {
+            this.mode = mode;
+            this.$nextTick(() => {
+                this.visible = true;
+            })
+            Object.keys(this.form).forEach(item => {
+                this.form[item] = ''
+            })
+            if (params) {
+                this.$HTTP.get(`/api/blade-cps/machine/detail/${params.id}`).then(res => {
+                    if (res.code === 200) {
+                        this.form = {
+                            ...this.form,
+                            ...res.data
+                        }
+                    }
+                })
+            }
+
+            return this
+        },
+        //琛ㄥ崟鎻愪氦鏂规硶
+        submit() {
+            this.$refs.dialogForm.validate(async (valid) => {
+                if (valid) {
+                    this.isSaveing = true;
+                    let data = {
+                        ...this.form
+                    }
+                    let res
+                    try {
+                        if (this.form.id) {
+                            res = await this.$HTTP.put('/api/blade-cps/machine', data).catch(() => {
+                                throw new Error()
+                            })
+                        } else {
+                            res = await this.$HTTP.post('/api/blade-cps/machine', data).catch(() => {
+                                throw new Error()
+                            })
+                        }
+                    } catch (error) {
+                        this.isSaveing = false;
+                    }
+
+                    this.isSaveing = false;
+                    if (res.code == 200) {
+                        this.$emit('success', this.form, this.mode)
+                        this.visible = false;
+                        this.$message.success("鎿嶄綔鎴愬姛")
+                    } else {
+                        this.$alert(res.message, "鎻愮ず", { type: 'error' })
+                    }
+                } else {
+                    return false;
+                }
+            })
+        },
+        //琛ㄥ崟娉ㄥ叆鏁版嵁
+        setData(data) {
+
+            //鍙互鍜屼笂闈竴鏍峰崟涓敞鍏ワ紝涔熷彲浠ュ儚涓嬮潰涓�鏍风洿鎺ュ悎骞惰繘鍘�
+            //Object.assign(this.form, data)
+        }
+    }
+}
+</script>
+
+<style></style>

--
Gitblit v1.9.3