|
@@ -8,34 +8,54 @@
|
|
@open="open"
|
|
@open="open"
|
|
>
|
|
>
|
|
<div class="dialogOne">
|
|
<div class="dialogOne">
|
|
- <div>
|
|
|
|
- 克隆设备对象:
|
|
|
|
- <span>{{ DialogArray.deviceCode }}</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="content">
|
|
|
|
- <span>*</span>
|
|
|
|
- 变量克隆至:
|
|
|
|
- <el-radio v-model="cloneRadio" label="1">新设备</el-radio>
|
|
|
|
- <el-radio v-model="cloneRadio" label="2">已有设备</el-radio>
|
|
|
|
- </div>
|
|
|
|
- <div class="content">
|
|
|
|
- <span>*</span>
|
|
|
|
- 设备名:
|
|
|
|
- <el-input
|
|
|
|
- class="inputer"
|
|
|
|
- v-model="cloneInputName"
|
|
|
|
- placeholder="请输入设备名"
|
|
|
|
- clearable
|
|
|
|
- />
|
|
|
|
- 设备编号:
|
|
|
|
- <el-input
|
|
|
|
- class="inputer"
|
|
|
|
- v-model="cloneInputCode"
|
|
|
|
- placeholder="请输入设备编号"
|
|
|
|
- clearable
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
- <div class="content">
|
|
|
|
|
|
+ <el-form
|
|
|
|
+ :model="form"
|
|
|
|
+ :rules="rules"
|
|
|
|
+ ref="ruleForm"
|
|
|
|
+ label-width="150px"
|
|
|
|
+ class="demo-ruleForm"
|
|
|
|
+ >
|
|
|
|
+ <el-form-item label="克隆设备对象:" prop="deviceCode">
|
|
|
|
+ <span>{{ DialogArray.deviceCode }}</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="变量克隆至:" prop="cloneRadio">
|
|
|
|
+ <el-radio-group v-model="form.type" size="medium">
|
|
|
|
+ <el-radio :label="1">新设备</el-radio>
|
|
|
|
+ <el-radio :label="2">已有设备</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="设备名:"
|
|
|
|
+ prop="cloneInputName"
|
|
|
|
+ v-if="form.type == 1"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="form.cloneInputName"
|
|
|
|
+ placeholder="请输入设备名"
|
|
|
|
+ clearable
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="设备编号:"
|
|
|
|
+ prop="cloneInputCode"
|
|
|
|
+ v-if="form.type == 1"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="form.cloneInputCode"
|
|
|
|
+ placeholder="请输入设备编号"
|
|
|
|
+ clearable
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="选择设备:" v-if="form.type != 1">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="from.oldDeviceCode"
|
|
|
|
+ placeholder="请选择所需克隆设备(可输入)"
|
|
|
|
+ >
|
|
|
|
+ <el-option label="区域一" value="shanghai"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <!-- <div class="content">
|
|
<span>*</span>
|
|
<span>*</span>
|
|
模拟量:
|
|
模拟量:
|
|
<el-input
|
|
<el-input
|
|
@@ -51,17 +71,17 @@
|
|
placeholder="请输入状态量"
|
|
placeholder="请输入状态量"
|
|
clearable
|
|
clearable
|
|
/>
|
|
/>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
</div>
|
|
</div>
|
|
<template #footer>
|
|
<template #footer>
|
|
<span class="dialog-footer">
|
|
<span class="dialog-footer">
|
|
- <el-checkbox
|
|
|
|
|
|
+ <!-- <el-checkbox
|
|
v-model="cloneChecked"
|
|
v-model="cloneChecked"
|
|
label="连续克隆模式"
|
|
label="连续克隆模式"
|
|
style="margin-right: 10px"
|
|
style="margin-right: 10px"
|
|
- ></el-checkbox>
|
|
|
|
|
|
+ ></el-checkbox> -->
|
|
<el-button @click="cloneDialog = false">取消</el-button>
|
|
<el-button @click="cloneDialog = false">取消</el-button>
|
|
- <el-button type="primary" @click="cloneDialog = false">确定</el-button>
|
|
|
|
|
|
+ <el-button type="primary" @click="clone()">确定</el-button>
|
|
</span>
|
|
</span>
|
|
</template>
|
|
</template>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
@@ -69,8 +89,8 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import { useStore } from 'vuex'
|
|
import { useStore } from 'vuex'
|
|
-import { defineComponent, onMounted, ref, watchEffect } from 'vue'
|
|
|
|
-import * as api from '@/api/deviceManage/powerEquip/deviceAttribute'
|
|
|
|
|
|
+import { defineComponent, ref, watchEffect } from 'vue'
|
|
|
|
+import * as api from '@/api/deviceManage/powerEquip/communicateEquip'
|
|
import { ElMessage } from 'element-plus'
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
@@ -83,19 +103,58 @@ export default defineComponent({
|
|
},
|
|
},
|
|
setup(props, context) {
|
|
setup(props, context) {
|
|
const store = useStore()
|
|
const store = useStore()
|
|
- store, api, ElMessage
|
|
|
|
|
|
+ store
|
|
|
|
+
|
|
|
|
+ const form = ref({
|
|
|
|
+ type: 1,
|
|
|
|
+ cloneInputName: '',
|
|
|
|
+ cloneInputCode: '',
|
|
|
|
+ oldDeviceCode: '',
|
|
|
|
+ })
|
|
|
|
|
|
const cloneDialog = ref(false) //克隆弹窗控制
|
|
const cloneDialog = ref(false) //克隆弹窗控制
|
|
const cloneChecked = ref(false) //克隆复选框控制
|
|
const cloneChecked = ref(false) //克隆复选框控制
|
|
- const cloneRadio = ref('1') //克隆单选框控制
|
|
|
|
- const cloneInputName = ref('') //克隆input名
|
|
|
|
- const cloneInputCode = ref('') //克隆input编号
|
|
|
|
const cloneInputModel = ref('') //克隆input模拟量
|
|
const cloneInputModel = ref('') //克隆input模拟量
|
|
const cloneInputState = ref('') //克隆input状态量
|
|
const cloneInputState = ref('') //克隆input状态量
|
|
|
|
+ const ruleForm = ref(null)
|
|
|
|
+ const deviceList = ref([])
|
|
|
|
+
|
|
|
|
+ const clone = () => {
|
|
|
|
+ let list = {}
|
|
|
|
+ if (form.value.cloneInputCode == 1) {
|
|
|
|
+ list = {
|
|
|
|
+ type: form.value.type,
|
|
|
|
+ newDeviceCode: form.value.cloneInputCode,
|
|
|
|
+ deviceName: form.value.cloneInputName,
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ list = {
|
|
|
|
+ type: form.value.type,
|
|
|
|
+ oldDeviceCode: form.value.oldDeviceCode,
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ruleForm.value.validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ api.variableCloning(list).then((requset) => {
|
|
|
|
+ if (requset.status === 'SUCCESS') {
|
|
|
|
+ ElMessage.success({
|
|
|
|
+ message: '克隆成功',
|
|
|
|
+ type: 'success',
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ ElMessage.error(requset.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ console.log('error submit!!')
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
|
|
- // open(): Dialog弹窗打开之前做的事
|
|
|
|
|
|
+ //open
|
|
const open = () => {
|
|
const open = () => {
|
|
- console.log('')
|
|
|
|
|
|
+ select_deviceList()
|
|
}
|
|
}
|
|
|
|
|
|
// close(): Dialog弹窗关闭之后做的事
|
|
// close(): Dialog弹窗关闭之后做的事
|
|
@@ -104,53 +163,66 @@ export default defineComponent({
|
|
cloneDialog.value = false
|
|
cloneDialog.value = false
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ function select_deviceList() {
|
|
|
|
+ api
|
|
|
|
+ .deviceList({
|
|
|
|
+ siteId: 0,
|
|
|
|
+ })
|
|
|
|
+ .then((requset) => {
|
|
|
|
+ if (requset.status === 'SUCCESS') {
|
|
|
|
+ console.log(requset.data)
|
|
|
|
+ // deviceList.value =
|
|
|
|
+ } else {
|
|
|
|
+ ElMessage.error(requset.msg)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
watchEffect((fn, options) => {
|
|
watchEffect((fn, options) => {
|
|
fn, options
|
|
fn, options
|
|
cloneDialog.value = props.clone_Dialog
|
|
cloneDialog.value = props.clone_Dialog
|
|
})
|
|
})
|
|
|
|
|
|
- onMounted(() => {
|
|
|
|
- console.log('')
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
return {
|
|
return {
|
|
open,
|
|
open,
|
|
close,
|
|
close,
|
|
|
|
+ clone,
|
|
|
|
+ form,
|
|
|
|
+ deviceList,
|
|
cloneDialog,
|
|
cloneDialog,
|
|
cloneChecked,
|
|
cloneChecked,
|
|
- cloneRadio,
|
|
|
|
- cloneInputName,
|
|
|
|
- cloneInputCode,
|
|
|
|
cloneInputModel,
|
|
cloneInputModel,
|
|
cloneInputState,
|
|
cloneInputState,
|
|
|
|
+ ruleForm,
|
|
|
|
+ rules: {
|
|
|
|
+ cloneInputCode: [
|
|
|
|
+ {
|
|
|
|
+ required: true,
|
|
|
|
+ message: '设备名不能为空',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ min: 5,
|
|
|
|
+ max: 25,
|
|
|
|
+ message: '设备名长度不能小于5大于25',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ cloneInputName: [
|
|
|
|
+ {
|
|
|
|
+ required: true,
|
|
|
|
+ message: '设备编号不能为空',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ min: 5,
|
|
|
|
+ max: 25,
|
|
|
|
+ message: '设备编号长度不能小于5大于25',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
}
|
|
}
|
|
},
|
|
},
|
|
})
|
|
})
|
|
-</script>
|
|
|
|
-
|
|
|
|
-<style lang="scss" scoped>
|
|
|
|
-//弹出框内容样式
|
|
|
|
-.dialogOne {
|
|
|
|
- div:nth-child(1) {
|
|
|
|
- margin-bottom: 30px;
|
|
|
|
- }
|
|
|
|
- .content {
|
|
|
|
- margin-bottom: 20px;
|
|
|
|
- span:nth-child(1) {
|
|
|
|
- color: red;
|
|
|
|
- }
|
|
|
|
- .inputer {
|
|
|
|
- width: 150px;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-.listPagination {
|
|
|
|
- margin-top: 15px;
|
|
|
|
- margin-bottom: -30px;
|
|
|
|
- float: right;
|
|
|
|
-}
|
|
|
|
-.listPagination1 {
|
|
|
|
- margin-top: 15px;
|
|
|
|
- float: right;
|
|
|
|
-}
|
|
|
|
-</style>
|
|
|
|
|
|
+</script>
|