|
|
@@ -0,0 +1,199 @@
|
|
|
+<template>
|
|
|
+ <a-button type="link" @click="editBtn">编辑</a-button>
|
|
|
+ <a-drawer
|
|
|
+ v-model:visible="visible"
|
|
|
+ class="custom-class"
|
|
|
+ title="编辑产品属性"
|
|
|
+ placement="right"
|
|
|
+ width="800px"
|
|
|
+ :closable="false"
|
|
|
+ @close="visible = false"
|
|
|
+ >
|
|
|
+ <a-form ref="formRef" :model="form" size="small" layout="vertical" mode="multiple">
|
|
|
+ <a-row :gutter="16">
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="产品" name="prodname" :rules="[{ required: true, message: '请选择产品' }]">
|
|
|
+ <a-input readonly v-model:value="form.prodname" placeholder="请输入名称"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="标识" name="param" :rules="[{ required: true, message: '请输入标识' }]">
|
|
|
+ <a-input :disabled="true" v-model:value="form.param" placeholder="请输入标识"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="标识名称" name="paramname" :rules="[{ required: true, message: '请输入标识' }]">
|
|
|
+ <a-input v-model:value="form.paramname" placeholder="请输入标识"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="参数名称" name="optionname" :rules="[{ required: true, message: '请输入参数名称' }]">
|
|
|
+ <a-input v-model:value.number="form.optionname" placeholder="请输入参数名称"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <!-- <a-col :span="12">
|
|
|
+ <a-form-item label="上级区域" name="parentname">
|
|
|
+ <selectArea ref="Area" @selectRoles="selectAreaFun">
|
|
|
+ <template v-slot:input>
|
|
|
+ <a-input-search
|
|
|
+ v-model:value="form.parentname"
|
|
|
+ enter-button="添加"
|
|
|
+ readonly
|
|
|
+ @search="$refs.Area.modeVisible=true"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </selectArea>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col> -->
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="数据类型" name="datatype" :rules="[{ required: true, message: '请输入数据类型' }]">
|
|
|
+ <a-select
|
|
|
+ v-model:value="form.datatype"
|
|
|
+ >
|
|
|
+ <a-select-option :value="item.value" v-for="(item,index) in typeList" :key="index">{{ item.value }}</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="读写类型" name="rwtype" :rules="[{ required: true, message: '请选择读写类型' }]">
|
|
|
+ <a-select
|
|
|
+ v-model:value="form.rwtype"
|
|
|
+ >
|
|
|
+ <a-select-option value="0">0</a-select-option>
|
|
|
+ <a-select-option value="1">1</a-select-option>
|
|
|
+ <a-select-option value="2">2</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="单位" name="unit" :rules="[{ required: true, message: '请选择单位' }]">
|
|
|
+ <a-select
|
|
|
+ v-model:value="form.unit"
|
|
|
+ >
|
|
|
+ <a-select-option :value="item.value" v-for="(item,index) in unitList" :key="index">{{ item.value }}</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="系统选项分类" name="optiontypeid" :rules="[{ required: true, message: '请输入系统选项' }]">
|
|
|
+ <a-select
|
|
|
+ v-model:value="form.optiontypeid"
|
|
|
+ placeholder="请选择系统选项分类"
|
|
|
+ >
|
|
|
+ <a-select-option :value="item.optiontypeid" v-for="(item,index) in optionList" :key="index">{{ item.remarks }}</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="长度" name="length" :rules="[{ required: true, message: '请输入长度' }]">
|
|
|
+ <a-input v-model:value.number="form.length" placeholder="请输入长度"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="小数位数" name="num_scale" :rules="[{ required: true, message: '请输入小数位数' }]">
|
|
|
+ <a-input v-model:value.number="form.num_scale" placeholder="请输入长度"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col><a-col :span="12">
|
|
|
+ <a-form-item label="步长" name="num_step" :rules="[{ required: true, message: '请输入步长' }]">
|
|
|
+ <a-input v-model:value.number="form.num_step" placeholder="请输入步长"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col><a-col :span="12">
|
|
|
+ <a-form-item label="最大值" name="num_maxvalue" :rules="[{ required: true, message: '请输入最大值' }]">
|
|
|
+ <a-input v-model:value.number="form.num_maxvalue" placeholder="请输入最大值"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="最小值" name="num_minvalue" :rules="[{ required: true, message: '最小值' }]">
|
|
|
+ <a-input v-model:value.number="form.num_minvalue" placeholder="请输入最小值"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :span="12">
|
|
|
+ <a-form-item label="描述" name="remarks">
|
|
|
+ <a-textarea v-model:value.number="form.remarks" placeholder="请输入数据类型"></a-textarea>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ </a-form>
|
|
|
+ <template #extra>
|
|
|
+ <a-space>
|
|
|
+ <a-button @click="visible=false">关闭</a-button>
|
|
|
+ <a-button type="primary" @click="onSubmit">保存</a-button>
|
|
|
+ </a-space>
|
|
|
+ </template>
|
|
|
+ </a-drawer>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import {ref, defineProps, defineEmits, onMounted} from 'vue'
|
|
|
+import Api from '@/api/api'
|
|
|
+import utils from '@/utils/utils'
|
|
|
+import { useBaseStore } from '@/stores/modules/base'
|
|
|
+
|
|
|
+let base = useBaseStore()
|
|
|
+let emit = defineEmits(['onSuccess'])
|
|
|
+let props = defineProps(['data'])
|
|
|
+let searchType = ref([{label:'搜索',key:'condition',type:'input'}])
|
|
|
+let visible = ref(false)
|
|
|
+let form = ref({
|
|
|
+ "w_dataparamid": 0,
|
|
|
+ "ownertable": "w_product",
|
|
|
+ "ownerid": "",
|
|
|
+ "param": "",
|
|
|
+ "paramname": "",
|
|
|
+ "datatype": "",
|
|
|
+ "unit": "",
|
|
|
+ "length": '',
|
|
|
+ "remarks": "",
|
|
|
+ "rwtype": 0, //0 读 1写 2 上报
|
|
|
+ "num_scale": '', //小数位数
|
|
|
+ "num_step": "", //步长
|
|
|
+ "num_maxvalue": "", //最大值
|
|
|
+ "num_minvalue": "", //最小值
|
|
|
+ "optiontypeid": '',
|
|
|
+ "prodname":''
|
|
|
+})
|
|
|
+let formRef = ref()
|
|
|
+let typeList = ref([])
|
|
|
+let optionList = ref([])
|
|
|
+let unitList = ref([])
|
|
|
+
|
|
|
+let editBtn = () => {
|
|
|
+ visible.value = true
|
|
|
+ form.value = Object.assign({},form.value,props.data)
|
|
|
+ form.value.ownerid = props.data.w_productid
|
|
|
+ console.log(props.data);
|
|
|
+}
|
|
|
+let onSubmit = async () => {
|
|
|
+ let isCheck = await formRef.value.validateFields()
|
|
|
+ if (!isCheck) return
|
|
|
+ let res = await Api.requested({
|
|
|
+ id:20230612161402,
|
|
|
+ content: form.value
|
|
|
+ })
|
|
|
+ utils.message(res,'新建成功',() => {
|
|
|
+ visible.value = false
|
|
|
+ emit('onSuccess')
|
|
|
+ formRef.value.resetFields()
|
|
|
+ console.log(res);
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+let selectAreaFun = (data) => {
|
|
|
+ form.value.parentname = data[data.length-1].areaname
|
|
|
+ form.value.parentid = data[data.length-1].w_areaid
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(async () => {
|
|
|
+ let res = await base.optiontypeselect('datatype')
|
|
|
+ typeList.value = res.data
|
|
|
+ let res2 = await base.optiontypeselect('optiontype')
|
|
|
+ optionList.value = res2.data
|
|
|
+ let res3 = await base.optiontypeselect('dataunit')
|
|
|
+ unitList.value = res3.data
|
|
|
+ console.log(optionList.value,'系统选项分类')
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|