Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d5f3d400
authored
Dec 23, 2024
by
puhui999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【代码优化】IOT: ThingModel 优化
parent
b6d3a85a
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
62 additions
and
63 deletions
+62
-63
src/api/iot/thingmodel/index.ts
+23
-24
src/utils/dict.ts
+1
-1
src/views/iot/product/product/detail/index.vue
+1
-1
src/views/iot/thingmodel/ThingModelDataSpecs.vue
+9
-9
src/views/iot/thingmodel/ThingModelForm.vue
+10
-10
src/views/iot/thingmodel/config.ts
+0
-0
src/views/iot/thingmodel/dataSpecs/ThingModelArrayTypeDataSpecs.vue
+1
-1
src/views/iot/thingmodel/dataSpecs/ThingModelEnumTypeDataSpecs.vue
+1
-1
src/views/iot/thingmodel/dataSpecs/ThingModelNumberTypeDataSpecs.vue
+1
-1
src/views/iot/thingmodel/dataSpecs/index.ts
+5
-0
src/views/iot/thingmodel/index.vue
+10
-10
src/views/iot/thinkmodel/dataSpecs/index.ts
+0
-5
No files found.
src/api/iot/thin
k
model/index.ts
→
src/api/iot/thin
g
model/index.ts
View file @
d5f3d400
...
@@ -3,7 +3,7 @@ import request from '@/config/axios'
...
@@ -3,7 +3,7 @@ import request from '@/config/axios'
/**
/**
* IoT 产品物模型
* IoT 产品物模型
*/
*/
export
interface
Thin
k
ModelData
{
export
interface
Thin
g
ModelData
{
id
?:
number
// 物模型功能编号
id
?:
number
// 物模型功能编号
identifier
?:
string
// 功能标识
identifier
?:
string
// 功能标识
name
?:
string
// 功能名称
name
?:
string
// 功能名称
...
@@ -12,29 +12,29 @@ export interface ThinkModelData {
...
@@ -12,29 +12,29 @@ export interface ThinkModelData {
productKey
?:
string
// 产品标识
productKey
?:
string
// 产品标识
dataType
:
string
// 数据类型,与 dataSpecs 的 dataType 保持一致
dataType
:
string
// 数据类型,与 dataSpecs 的 dataType 保持一致
type
:
ProductFunctionTypeEnum
// 功能类型
type
:
ProductFunctionTypeEnum
// 功能类型
property
:
Thin
k
ModelProperty
// 属性
property
:
Thin
g
ModelProperty
// 属性
event
?:
Thin
k
ModelEvent
// 事件
event
?:
Thin
g
ModelEvent
// 事件
service
?:
Thin
k
ModelService
// 服务
service
?:
Thin
g
ModelService
// 服务
}
}
/**
/**
* Thin
k
ModelProperty 类型
* Thin
g
ModelProperty 类型
*/
*/
export
interface
Thin
k
ModelProperty
{
export
interface
Thin
g
ModelProperty
{
[
key
:
string
]:
any
[
key
:
string
]:
any
}
}
/**
/**
* Thin
k
ModelEvent 类型
* Thin
g
ModelEvent 类型
*/
*/
export
interface
Thin
k
ModelEvent
{
export
interface
Thin
g
ModelEvent
{
[
key
:
string
]:
any
[
key
:
string
]:
any
}
}
/**
/**
* Thin
k
ModelService 类型
* Thin
g
ModelService 类型
*/
*/
export
interface
Thin
k
ModelService
{
export
interface
Thin
g
ModelService
{
[
key
:
string
]:
any
[
key
:
string
]:
any
}
}
...
@@ -52,38 +52,37 @@ export enum ProductFunctionAccessModeEnum {
...
@@ -52,38 +52,37 @@ export enum ProductFunctionAccessModeEnum {
}
}
// IoT 产品物模型 API
// IoT 产品物模型 API
export
const
Thin
k
ModelApi
=
{
export
const
Thin
g
ModelApi
=
{
// 查询产品物模型分页
// 查询产品物模型分页
// TODO @puhui999:product 前缀,是不是去掉哈。
getThingModelPage
:
async
(
params
:
any
)
=>
{
getThinkModelPage
:
async
(
params
:
any
)
=>
{
return
await
request
.
get
({
url
:
`/iot/product-thing-model/page`
,
params
})
return
await
request
.
get
({
url
:
`/iot/product-think-model/page`
,
params
})
},
},
// 获得产品物模型
// 获得产品物模型
getThin
k
ModelListByProductId
:
async
(
params
:
any
)
=>
{
getThin
g
ModelListByProductId
:
async
(
params
:
any
)
=>
{
return
await
request
.
get
({
return
await
request
.
get
({
url
:
`/iot/product-thin
k
-model/list-by-product-id`
,
url
:
`/iot/product-thin
g
-model/list-by-product-id`
,
params
params
})
})
},
},
// 查询产品物模型详情
// 查询产品物模型详情
getThin
k
Model
:
async
(
id
:
number
)
=>
{
getThin
g
Model
:
async
(
id
:
number
)
=>
{
return
await
request
.
get
({
url
:
`/iot/product-thin
k
-model/get?id=`
+
id
})
return
await
request
.
get
({
url
:
`/iot/product-thin
g
-model/get?id=`
+
id
})
},
},
// 新增产品物模型
// 新增产品物模型
createThin
kModel
:
async
(
data
:
Think
ModelData
)
=>
{
createThin
gModel
:
async
(
data
:
Thing
ModelData
)
=>
{
return
await
request
.
post
({
url
:
`/iot/product-thin
k
-model/create`
,
data
})
return
await
request
.
post
({
url
:
`/iot/product-thin
g
-model/create`
,
data
})
},
},
// 修改产品物模型
// 修改产品物模型
updateThin
kModel
:
async
(
data
:
Think
ModelData
)
=>
{
updateThin
gModel
:
async
(
data
:
Thing
ModelData
)
=>
{
return
await
request
.
put
({
url
:
`/iot/product-thin
k
-model/update`
,
data
})
return
await
request
.
put
({
url
:
`/iot/product-thin
g
-model/update`
,
data
})
},
},
// 删除产品物模型
// 删除产品物模型
deleteThin
k
Model
:
async
(
id
:
number
)
=>
{
deleteThin
g
Model
:
async
(
id
:
number
)
=>
{
return
await
request
.
delete
({
url
:
`/iot/product-thin
k
-model/delete?id=`
+
id
})
return
await
request
.
delete
({
url
:
`/iot/product-thin
g
-model/delete?id=`
+
id
})
}
}
}
}
src/utils/dict.ts
View file @
d5f3d400
...
@@ -236,7 +236,7 @@ export enum DICT_TYPE {
...
@@ -236,7 +236,7 @@ export enum DICT_TYPE {
IOT_DATA_FORMAT
=
'iot_data_format'
,
// IOT 数据格式
IOT_DATA_FORMAT
=
'iot_data_format'
,
// IOT 数据格式
IOT_PROTOCOL_TYPE
=
'iot_protocol_type'
,
// IOT 接入网关协议
IOT_PROTOCOL_TYPE
=
'iot_protocol_type'
,
// IOT 接入网关协议
IOT_DEVICE_STATUS
=
'iot_device_status'
,
// IOT 设备状态
IOT_DEVICE_STATUS
=
'iot_device_status'
,
// IOT 设备状态
IOT_PRODUCT_THIN
K_MODEL_TYPE
=
'iot_product_think
_model_type'
,
// IOT 产品功能类型
IOT_PRODUCT_THIN
G_MODEL_TYPE
=
'iot_product_thing
_model_type'
,
// IOT 产品功能类型
IOT_DATA_TYPE
=
'iot_data_type'
,
// IOT 数据类型
IOT_DATA_TYPE
=
'iot_data_type'
,
// IOT 数据类型
IOT_UNIT_TYPE
=
'iot_unit_type'
,
// IOT 单位类型
IOT_UNIT_TYPE
=
'iot_unit_type'
,
// IOT 单位类型
IOT_RW_TYPE
=
'iot_rw_type'
,
// IOT 读写类型
IOT_RW_TYPE
=
'iot_rw_type'
,
// IOT 读写类型
...
...
src/views/iot/product/product/detail/index.vue
View file @
d5f3d400
...
@@ -22,7 +22,7 @@ import { DeviceApi } from '@/api/iot/device/device'
...
@@ -22,7 +22,7 @@ import { DeviceApi } from '@/api/iot/device/device'
import
ProductDetailsHeader
from
'./ProductDetailsHeader.vue'
import
ProductDetailsHeader
from
'./ProductDetailsHeader.vue'
import
ProductDetailsInfo
from
'./ProductDetailsInfo.vue'
import
ProductDetailsInfo
from
'./ProductDetailsInfo.vue'
import
ProductTopic
from
'./ProductTopic.vue'
import
ProductTopic
from
'./ProductTopic.vue'
import
IoTProductThinkModel
from
'@/views/iot/thin
k
model/index.vue'
import
IoTProductThinkModel
from
'@/views/iot/thin
g
model/index.vue'
import
{
useTagsViewStore
}
from
'@/store/modules/tagsView'
import
{
useTagsViewStore
}
from
'@/store/modules/tagsView'
import
{
useRouter
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
import
{
IOT_PROVIDE_KEY
}
from
'@/views/iot/utils/constants'
import
{
IOT_PROVIDE_KEY
}
from
'@/views/iot/utils/constants'
...
...
src/views/iot/thin
kmodel/Think
ModelDataSpecs.vue
→
src/views/iot/thin
gmodel/Thing
ModelDataSpecs.vue
View file @
d5f3d400
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<!-- 数值型配置 -->
<!-- 数值型配置 -->
<Thin
k
ModelNumberTypeDataSpecs
<Thin
g
ModelNumberTypeDataSpecs
v-if=
"
v-if=
"
[DataSpecsDataType.INT, DataSpecsDataType.DOUBLE, DataSpecsDataType.FLOAT].includes(
[DataSpecsDataType.INT, DataSpecsDataType.DOUBLE, DataSpecsDataType.FLOAT].includes(
property.dataType || ''
property.dataType || ''
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
v-model=
"property.dataSpecs"
v-model=
"property.dataSpecs"
/>
/>
<!-- 枚举型配置 -->
<!-- 枚举型配置 -->
<Thin
k
ModelEnumTypeDataSpecs
<Thin
g
ModelEnumTypeDataSpecs
v-if=
"property.dataType === DataSpecsDataType.ENUM"
v-if=
"property.dataType === DataSpecsDataType.ENUM"
v-model=
"property.dataSpecsList"
v-model=
"property.dataSpecsList"
/>
/>
...
@@ -74,7 +74,7 @@
...
@@ -74,7 +74,7 @@
<el-input
class=
"w-255px!"
disabled
placeholder=
"String类型的UTC时间戳(毫秒)"
/>
<el-input
class=
"w-255px!"
disabled
placeholder=
"String类型的UTC时间戳(毫秒)"
/>
</el-form-item>
</el-form-item>
<!-- 数组型配置-->
<!-- 数组型配置-->
<Thin
k
ModelArrayTypeDataSpecs
<Thin
g
ModelArrayTypeDataSpecs
v-if=
"property.dataType === DataSpecsDataType.ARRAY"
v-if=
"property.dataType === DataSpecsDataType.ARRAY"
v-model=
"property.dataSpecs"
v-model=
"property.dataSpecs"
/>
/>
...
@@ -104,19 +104,19 @@
...
@@ -104,19 +104,19 @@
import
{
useVModel
}
from
'@vueuse/core'
import
{
useVModel
}
from
'@vueuse/core'
import
{
DataSpecsDataType
,
dataTypeOptions
}
from
'./config'
import
{
DataSpecsDataType
,
dataTypeOptions
}
from
'./config'
import
{
import
{
Thin
k
ModelArrayTypeDataSpecs
,
Thin
g
ModelArrayTypeDataSpecs
,
Thin
k
ModelEnumTypeDataSpecs
,
Thin
g
ModelEnumTypeDataSpecs
,
Thin
k
ModelNumberTypeDataSpecs
Thin
g
ModelNumberTypeDataSpecs
}
from
'./dataSpecs'
}
from
'./dataSpecs'
import
{
Thin
kModelProperty
}
from
'@/api/iot/think
model'
import
{
Thin
gModelProperty
}
from
'src/api/iot/thing
model'
import
{
isEmpty
}
from
'@/utils/is'
import
{
isEmpty
}
from
'@/utils/is'
/** IoT 物模型数据 */
/** IoT 物模型数据 */
defineOptions
({
name
:
'Thin
k
ModelDataSpecs'
})
defineOptions
({
name
:
'Thin
g
ModelDataSpecs'
})
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
emits
=
defineEmits
([
'update:modelValue'
])
const
emits
=
defineEmits
([
'update:modelValue'
])
const
property
=
useVModel
(
props
,
'modelValue'
,
emits
)
as
Ref
<
Thin
k
ModelProperty
>
const
property
=
useVModel
(
props
,
'modelValue'
,
emits
)
as
Ref
<
Thin
g
ModelProperty
>
/** 属性值的数据类型切换时初始化相关数据 */
/** 属性值的数据类型切换时初始化相关数据 */
const
handleChange
=
(
dataType
:
any
)
=>
{
const
handleChange
=
(
dataType
:
any
)
=>
{
...
...
src/views/iot/thin
kmodel/Think
ModelForm.vue
→
src/views/iot/thin
gmodel/Thing
ModelForm.vue
View file @
d5f3d400
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<el-form-item
label=
"功能类型"
prop=
"type"
>
<el-form-item
label=
"功能类型"
prop=
"type"
>
<el-radio-group
v-model=
"formData.type"
>
<el-radio-group
v-model=
"formData.type"
>
<el-radio-button
<el-radio-button
v-for=
"dict in getIntDictOptions(DICT_TYPE.IOT_PRODUCT_THIN
K
_MODEL_TYPE)"
v-for=
"dict in getIntDictOptions(DICT_TYPE.IOT_PRODUCT_THIN
G
_MODEL_TYPE)"
:key=
"dict.value"
:key=
"dict.value"
:value=
"dict.value"
:value=
"dict.value"
>
>
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
<el-input
v-model=
"formData.identifier"
placeholder=
"请输入标识符"
/>
<el-input
v-model=
"formData.identifier"
placeholder=
"请输入标识符"
/>
</el-form-item>
</el-form-item>
<!-- 属性配置 -->
<!-- 属性配置 -->
<Thin
k
ModelDataSpecs
<Thin
g
ModelDataSpecs
v-if=
"formData.type === ProductFunctionTypeEnum.PROPERTY"
v-if=
"formData.type === ProductFunctionTypeEnum.PROPERTY"
v-model=
"formData.property"
v-model=
"formData.property"
/>
/>
...
@@ -40,15 +40,15 @@
...
@@ -40,15 +40,15 @@
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ProductVO
}
from
'@/api/iot/product/product'
import
{
ProductVO
}
from
'@/api/iot/product/product'
import
Thin
kModelDataSpecs
from
'./Think
ModelDataSpecs.vue'
import
Thin
gModelDataSpecs
from
'./Thing
ModelDataSpecs.vue'
import
{
ProductFunctionTypeEnum
,
Thin
kModelApi
,
ThinkModelData
}
from
'@/api/iot/think
model'
import
{
ProductFunctionTypeEnum
,
Thin
gModelApi
,
ThingModelData
}
from
'src/api/iot/thing
model'
import
{
IOT_PROVIDE_KEY
}
from
'@/views/iot/utils/constants'
import
{
IOT_PROVIDE_KEY
}
from
'@/views/iot/utils/constants'
import
{
DataSpecsDataType
}
from
'./config'
import
{
DataSpecsDataType
}
from
'./config'
import
{
cloneDeep
}
from
'lodash-es'
import
{
cloneDeep
}
from
'lodash-es'
import
{
DICT_TYPE
,
getIntDictOptions
}
from
'@/utils/dict'
import
{
DICT_TYPE
,
getIntDictOptions
}
from
'@/utils/dict'
/** IoT 物模型数据表单 */
/** IoT 物模型数据表单 */
defineOptions
({
name
:
'IoTProductThin
k
ModelForm'
})
defineOptions
({
name
:
'IoTProductThin
g
ModelForm'
})
const
product
=
inject
<
Ref
<
ProductVO
>>
(
IOT_PROVIDE_KEY
.
PRODUCT
)
// 注入产品信息
const
product
=
inject
<
Ref
<
ProductVO
>>
(
IOT_PROVIDE_KEY
.
PRODUCT
)
// 注入产品信息
...
@@ -59,7 +59,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
...
@@ -59,7 +59,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const
dialogTitle
=
ref
(
''
)
// 弹窗的标题
const
dialogTitle
=
ref
(
''
)
// 弹窗的标题
const
formLoading
=
ref
(
false
)
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const
formLoading
=
ref
(
false
)
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const
formType
=
ref
(
''
)
// 表单的类型:create - 新增;update - 修改
const
formType
=
ref
(
''
)
// 表单的类型:create - 新增;update - 修改
const
formData
=
ref
<
Thin
k
ModelData
>
({
const
formData
=
ref
<
Thin
g
ModelData
>
({
type
:
ProductFunctionTypeEnum
.
PROPERTY
,
type
:
ProductFunctionTypeEnum
.
PROPERTY
,
dataType
:
DataSpecsDataType
.
INT
,
dataType
:
DataSpecsDataType
.
INT
,
property
:
{
property
:
{
...
@@ -117,7 +117,7 @@ const open = async (type: string, id?: number) => {
...
@@ -117,7 +117,7 @@ const open = async (type: string, id?: number) => {
if
(
id
)
{
if
(
id
)
{
formLoading
.
value
=
true
formLoading
.
value
=
true
try
{
try
{
formData
.
value
=
await
Thin
kModelApi
.
getThink
Model
(
id
)
formData
.
value
=
await
Thin
gModelApi
.
getThing
Model
(
id
)
}
finally
{
}
finally
{
formLoading
.
value
=
false
formLoading
.
value
=
false
}
}
...
@@ -131,7 +131,7 @@ const submitForm = async () => {
...
@@ -131,7 +131,7 @@ const submitForm = async () => {
await
formRef
.
value
.
validate
()
await
formRef
.
value
.
validate
()
formLoading
.
value
=
true
formLoading
.
value
=
true
try
{
try
{
const
data
=
cloneDeep
(
formData
.
value
)
as
Thin
k
ModelData
const
data
=
cloneDeep
(
formData
.
value
)
as
Thin
g
ModelData
// 信息补全
// 信息补全
data
.
productId
=
product
!
.
value
.
id
data
.
productId
=
product
!
.
value
.
id
data
.
productKey
=
product
!
.
value
.
productKey
data
.
productKey
=
product
!
.
value
.
productKey
...
@@ -140,10 +140,10 @@ const submitForm = async () => {
...
@@ -140,10 +140,10 @@ const submitForm = async () => {
data
.
property
.
identifier
=
data
.
identifier
data
.
property
.
identifier
=
data
.
identifier
data
.
property
.
name
=
data
.
name
data
.
property
.
name
=
data
.
name
if
(
formType
.
value
===
'create'
)
{
if
(
formType
.
value
===
'create'
)
{
await
Thin
kModelApi
.
createThink
Model
(
data
)
await
Thin
gModelApi
.
createThing
Model
(
data
)
message
.
success
(
t
(
'common.createSuccess'
))
message
.
success
(
t
(
'common.createSuccess'
))
}
else
{
}
else
{
await
Thin
kModelApi
.
updateThink
Model
(
data
)
await
Thin
gModelApi
.
updateThing
Model
(
data
)
message
.
success
(
t
(
'common.updateSuccess'
))
message
.
success
(
t
(
'common.updateSuccess'
))
}
}
}
finally
{
}
finally
{
...
...
src/views/iot/thin
k
model/config.ts
→
src/views/iot/thin
g
model/config.ts
View file @
d5f3d400
File moved
src/views/iot/thin
kmodel/dataSpecs/Think
ModelArrayTypeDataSpecs.vue
→
src/views/iot/thin
gmodel/dataSpecs/Thing
ModelArrayTypeDataSpecs.vue
View file @
d5f3d400
...
@@ -39,7 +39,7 @@ import { isEmpty } from '@/utils/is'
...
@@ -39,7 +39,7 @@ import { isEmpty } from '@/utils/is'
// TODO @puhui999:参数校验,是不是还是定义一个变量,统一管,好阅读点哈?
// TODO @puhui999:参数校验,是不是还是定义一个变量,统一管,好阅读点哈?
/** 数组型的 dataSpecs 配置组件 */
/** 数组型的 dataSpecs 配置组件 */
defineOptions
({
name
:
'Thin
k
ModelArrayTypeDataSpecs'
})
defineOptions
({
name
:
'Thin
g
ModelArrayTypeDataSpecs'
})
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
emits
=
defineEmits
([
'update:modelValue'
])
const
emits
=
defineEmits
([
'update:modelValue'
])
...
...
src/views/iot/thin
kmodel/dataSpecs/Think
ModelEnumTypeDataSpecs.vue
→
src/views/iot/thin
gmodel/dataSpecs/Thing
ModelEnumTypeDataSpecs.vue
View file @
d5f3d400
...
@@ -48,7 +48,7 @@ import { DataSpecsDataType, DataSpecsEnumOrBoolDataVO } from '../config'
...
@@ -48,7 +48,7 @@ import { DataSpecsDataType, DataSpecsEnumOrBoolDataVO } from '../config'
import
{
isEmpty
}
from
'@/utils/is'
import
{
isEmpty
}
from
'@/utils/is'
/** 枚举型的 dataSpecs 配置组件 */
/** 枚举型的 dataSpecs 配置组件 */
defineOptions
({
name
:
'Thin
k
ModelEnumTypeDataSpecs'
})
defineOptions
({
name
:
'Thin
g
ModelEnumTypeDataSpecs'
})
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
emits
=
defineEmits
([
'update:modelValue'
])
const
emits
=
defineEmits
([
'update:modelValue'
])
...
...
src/views/iot/thin
kmodel/dataSpecs/Think
ModelNumberTypeDataSpecs.vue
→
src/views/iot/thin
gmodel/dataSpecs/Thing
ModelNumberTypeDataSpecs.vue
View file @
d5f3d400
...
@@ -62,7 +62,7 @@ import { UnifyUnitSpecsDTO } from '@/views/iot/utils/constants'
...
@@ -62,7 +62,7 @@ import { UnifyUnitSpecsDTO } from '@/views/iot/utils/constants'
import
{
DataSpecsNumberDataVO
}
from
'../config'
import
{
DataSpecsNumberDataVO
}
from
'../config'
/** 数值型的 dataSpecs 配置组件 */
/** 数值型的 dataSpecs 配置组件 */
defineOptions
({
name
:
'Thin
k
ModelNumberTypeDataSpecs'
})
defineOptions
({
name
:
'Thin
g
ModelNumberTypeDataSpecs'
})
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
props
=
defineProps
<
{
modelValue
:
any
}
>
()
const
emits
=
defineEmits
([
'update:modelValue'
])
const
emits
=
defineEmits
([
'update:modelValue'
])
...
...
src/views/iot/thingmodel/dataSpecs/index.ts
0 → 100644
View file @
d5f3d400
import
ThingModelEnumTypeDataSpecs
from
'./ThingModelEnumTypeDataSpecs.vue'
import
ThingModelNumberTypeDataSpecs
from
'./ThingModelNumberTypeDataSpecs.vue'
import
ThingModelArrayTypeDataSpecs
from
'./ThingModelArrayTypeDataSpecs.vue'
export
{
ThingModelEnumTypeDataSpecs
,
ThingModelNumberTypeDataSpecs
,
ThingModelArrayTypeDataSpecs
}
src/views/iot/thin
k
model/index.vue
→
src/views/iot/thin
g
model/index.vue
View file @
d5f3d400
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
placeholder=
"请选择功能类型"
placeholder=
"请选择功能类型"
>
>
<el-option
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.IOT_PRODUCT_THIN
K
_MODEL_TYPE)"
v-for=
"dict in getIntDictOptions(DICT_TYPE.IOT_PRODUCT_THIN
G
_MODEL_TYPE)"
:key=
"dict.value"
:key=
"dict.value"
:label=
"dict.label"
:label=
"dict.label"
:value=
"dict.value"
:value=
"dict.value"
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
<el-table
v-loading=
"loading"
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table
v-loading=
"loading"
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table-column
align=
"center"
label=
"功能类型"
prop=
"type"
>
<el-table-column
align=
"center"
label=
"功能类型"
prop=
"type"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.IOT_PRODUCT_THIN
K
_MODEL_TYPE"
:value=
"scope.row.type"
/>
<dict-tag
:type=
"DICT_TYPE.IOT_PRODUCT_THIN
G
_MODEL_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"功能名称"
prop=
"name"
/>
<el-table-column
align=
"center"
label=
"功能名称"
prop=
"name"
/>
...
@@ -97,23 +97,23 @@
...
@@ -97,23 +97,23 @@
</el-tabs>
</el-tabs>
</ContentWrap>
</ContentWrap>
<!-- 表单弹窗:添加/修改 -->
<!-- 表单弹窗:添加/修改 -->
<Thin
k
ModelForm
ref=
"formRef"
@
success=
"getList"
/>
<Thin
g
ModelForm
ref=
"formRef"
@
success=
"getList"
/>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
Thin
kModelApi
,
ThinkModelData
}
from
'@/api/iot/think
model'
import
{
Thin
gModelApi
,
ThingModelData
}
from
'src/api/iot/thing
model'
import
{
DICT_TYPE
,
getIntDictOptions
}
from
'@/utils/dict'
import
{
DICT_TYPE
,
getIntDictOptions
}
from
'@/utils/dict'
import
Thin
kModelForm
from
'./Think
ModelForm.vue'
import
Thin
gModelForm
from
'./Thing
ModelForm.vue'
import
{
ProductVO
}
from
'@/api/iot/product/product'
import
{
ProductVO
}
from
'@/api/iot/product/product'
import
{
IOT_PROVIDE_KEY
}
from
'@/views/iot/utils/constants'
import
{
IOT_PROVIDE_KEY
}
from
'@/views/iot/utils/constants'
import
{
getDataTypeOptionsLabel
}
from
'@/views/iot/thin
k
model/config'
import
{
getDataTypeOptionsLabel
}
from
'@/views/iot/thin
g
model/config'
defineOptions
({
name
:
'IoTProductThin
k
Model'
})
defineOptions
({
name
:
'IoTProductThin
g
Model'
})
const
{
t
}
=
useI18n
()
// 国际化
const
{
t
}
=
useI18n
()
// 国际化
const
message
=
useMessage
()
// 消息弹窗
const
message
=
useMessage
()
// 消息弹窗
const
loading
=
ref
(
true
)
// 列表的加载中
const
loading
=
ref
(
true
)
// 列表的加载中
const
list
=
ref
<
Thin
k
ModelData
[]
>
([])
// 列表的数据
const
list
=
ref
<
Thin
g
ModelData
[]
>
([])
// 列表的数据
const
total
=
ref
(
0
)
// 列表的总页数
const
total
=
ref
(
0
)
// 列表的总页数
const
queryParams
=
reactive
({
const
queryParams
=
reactive
({
pageNo
:
1
,
pageNo
:
1
,
...
@@ -131,7 +131,7 @@ const getList = async () => {
...
@@ -131,7 +131,7 @@ const getList = async () => {
loading
.
value
=
true
loading
.
value
=
true
try
{
try
{
queryParams
.
productId
=
product
?.
value
?.
id
||
-
1
queryParams
.
productId
=
product
?.
value
?.
id
||
-
1
const
data
=
await
Thin
kModelApi
.
getThink
ModelPage
(
queryParams
)
const
data
=
await
Thin
gModelApi
.
getThing
ModelPage
(
queryParams
)
list
.
value
=
data
.
list
list
.
value
=
data
.
list
total
.
value
=
data
.
total
total
.
value
=
data
.
total
}
finally
{
}
finally
{
...
@@ -163,7 +163,7 @@ const handleDelete = async (id: number) => {
...
@@ -163,7 +163,7 @@ const handleDelete = async (id: number) => {
// 删除的二次确认
// 删除的二次确认
await
message
.
delConfirm
()
await
message
.
delConfirm
()
// 发起删除
// 发起删除
await
Thin
kModelApi
.
deleteThink
Model
(
id
)
await
Thin
gModelApi
.
deleteThing
Model
(
id
)
message
.
success
(
t
(
'common.delSuccess'
))
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
// 刷新列表
await
getList
()
await
getList
()
...
...
src/views/iot/thinkmodel/dataSpecs/index.ts
deleted
100644 → 0
View file @
b6d3a85a
import
ThinkModelEnumTypeDataSpecs
from
'./ThinkModelEnumTypeDataSpecs.vue'
import
ThinkModelNumberTypeDataSpecs
from
'./ThinkModelNumberTypeDataSpecs.vue'
import
ThinkModelArrayTypeDataSpecs
from
'./ThinkModelArrayTypeDataSpecs.vue'
export
{
ThinkModelEnumTypeDataSpecs
,
ThinkModelNumberTypeDataSpecs
,
ThinkModelArrayTypeDataSpecs
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment