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=¤t=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=¤t=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