Commit 25710986 by 王刘锁

点位管理设备类型

parent 84c796aa
......@@ -66,4 +66,13 @@ export default class SiteConfig {
responseType: "blob",
});
}
// 获取库位开关选项
getEquipOptions(data) {
return request({
url: "/facility/equipment/getList",
method: "post",
data
});
}
}
......@@ -30,8 +30,8 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="等待点位:" prop="pointId" :rules="[{ message: '请选择等待点位', trigger: 'change' },]">
<el-select v-model="formData.pointId" filterable placeholder="等待点位">
<el-form-item label="点位:" prop="pointId" :rules="[{ message: '请选择点位', trigger: 'change' },]">
<el-select v-model="formData.pointId" filterable placeholder="点位">
<el-option v-for="item in formData.pointOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
......
......@@ -103,7 +103,7 @@
@click="accountDelete(scope.row)">删除
</el-button>
<el-divider direction="vertical"></el-divider>
<el-button v-if="hasPermission('equipmentAccount:edit') && scope.row.equipmentType === '4'" type="text" size="small" @click="showRight(scope.row)">管理主题</el-button>
<el-button v-if="hasPermission('equipmentAccount:edit') && (scope.row.equipmentType === '4' || scope.row.equipmentType === '5' || scope.row.equipmentType === '6')" type="text" size="small" @click="showRight(scope.row)">管理主题</el-button>
</template>
</vxe-column>
</vxe-table>
......
<template>
<el-dialog :title="dialogConfig.title" :visible.sync="dialogVisible" width="60%" @close="dialogClose"
:close-on-click-modal="false">
:close-on-click-modal="false">
<el-form :model="formData" label-width="110px" ref="ruleForm" :rules="rules" :disabled="dialogConfig.disabled">
<el-form-item label="厂区:" prop="factoryId">
<el-select v-model="formData.factoryId" placeholder="请选择厂区">
......@@ -20,7 +20,7 @@
<el-form-item label="站点类型:" prop="siteType">
<el-select v-model="formData.siteType" placeholder="请选择站点类型">
<el-option v-for="item in $dictUtils.getDictList('tms_site_type')" :key="item.value" :label="item.label"
:value="item.value">
:value="item.value">
</el-option>
</el-select>
</el-form-item>
......@@ -43,20 +43,21 @@
</div>
</template>
<vxe-table ref="xTable" :show-header="false" border="false" resizable :data="formData.entities" row-id="id"
:checkbox-config="{ highlight: true }">
:checkbox-config="{ highlight: true }">
<vxe-column width="80px">
<template #default="{ row }">
<div>关联任务</div>
<div>点位</div>
</template>
</vxe-column>
<vxe-column>
<template #default="{ row, $rowIndex }">
<el-form-item :prop="`entities[${$rowIndex}].equipmentType`"
:rules="[{ required: true, message: '请选择设备类型', trigger: 'change' },]" :inline-message="true">
:rules="[{ required: true, message: '请选择设备类型', trigger: 'change' },]"
:inline-message="true">
<el-select v-model="row.equipmentType" placeholder="设备类型"
@change="(value) => { getEquipmentType(value, row) }">
@change="(value) => { getEquipmentType(value, row) }">
<el-option v-for="item in $dictUtils.getDictList('tms_equipment_type')" :key="item.value"
:label="item.label" :value="item.value">
:label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
......@@ -65,10 +66,10 @@
<vxe-column>
<template #default="{ row, $rowIndex }">
<el-form-item :prop="`entities[${$rowIndex}].configMap`"
:rules="[{ required: true, message: '请选择地图类型', trigger: 'change' },]"
v-if="row.equipmentType === '1' || row.equipmentType === '2'" :inline-message="true">
:rules="[{ required: true, message: '请选择地图类型', trigger: 'change' },]"
v-if="row.equipmentType === '1' || row.equipmentType === '2'" :inline-message="true">
<el-select v-model="row.configMap" placeholder="地图" @change="(value) => { getPointType(value, row) }"
@visible-change="(state) => { getConfigMap(state, row) }">
@visible-change="(state) => { getConfigMap(state, row) }">
<el-option v-for="item in row.mapOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
......@@ -78,8 +79,8 @@
<vxe-column>
<template #default="{ row, $rowIndex }">
<el-form-item :prop="`entities[${$rowIndex}].pointId`"
:rules="[{ required: true, message: '请选择点位类型', trigger: 'change' },]"
v-if="row.configMap && row.configMap !== ''" :inline-message="true">
:rules="[{ required: true, message: '请选择点位类型', trigger: 'change' },]"
v-if="row.configMap && row.configMap !== ''" :inline-message="true">
<el-select v-model="row.pointId" filterable placeholder="点位">
<el-option v-for="item in row.pointOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
......@@ -100,6 +101,36 @@
</el-cascader>
</template>
</vxe-column>
<vxe-column width="80px" >
<template #default="{ row }">
<span>库位开关</span>
</template>
</vxe-column>
<vxe-column>
<template #default="{ row , $rowIndex }">
<el-form-item :prop="`entities[${$rowIndex}].devAddr`"
:rules="[{ required: false, message: '请选择库位开关设备', trigger: 'change' },]"
:inline-message="true">
<el-select v-model="row.devAddr" filterable placeholder="库位开关设备">
<el-option v-for="item in equipOptions" :key="item.key" :label="item.label" :value="item.key">
</el-option>
</el-select>
</el-form-item>
</template>
</vxe-column>
<vxe-column>
<template #default="{ row , $rowIndex }">
<el-form-item :prop="`entities[${$rowIndex}].keyNum`"
:rules="[{ required: false, message: '请选择按钮序号', trigger: 'change' },]"
:inline-message="true">
<el-select v-model="row.keyNum" filterable placeholder="按钮序号">
<el-option v-for="item in keyNumOptions" :key="item.key" :label="item.label" :value="item.key">
</el-option>
</el-select>
</el-form-item>
</template>
</vxe-column>
<!-- <vxe-column width="80px">
<template #default="{ row }">
<span v-if="row.equipmentType === '1' || row.equipmentType === '2'">车辆分组</span>
......@@ -178,8 +209,12 @@ export default {
}
}
},
data () {
data() {
return {
equipOptions: [],
keyNumOptions: [{key: '1', label: '1'},
{key: '2', label: '2'}, {key: '3', label: '3'},
{key: '4', label: '4'}, {key: '5', label: '5'}],
dialogVisible: false,
factoryOptions: [],
formData: {
......@@ -192,94 +227,98 @@ export default {
configTempList: [],
rules: {
factoryId: [
{ required: true, message: '请选择厂区类型', trigger: 'change' },
{required: true, message: '请选择厂区类型', trigger: 'change'},
],
floorNum: [
{ required: true, message: '请输入楼层', trigger: 'blur' },
{required: true, message: '请输入楼层', trigger: 'blur'},
],
siteType: [
{ required: true, message: '请选择站点类型', trigger: 'change' },
{required: true, message: '请选择站点类型', trigger: 'change'},
],
name: [
{ required: true, message: '请输入站点名称', trigger: 'blur' },
{required: true, message: '请输入站点名称', trigger: 'blur'},
],
command: [
{ required: true, message: '请输入指令标识', trigger: 'blur' },
{required: true, message: '请输入指令标识', trigger: 'blur'},
],
sort: [
{ required: true, message: '请输入排序', trigger: 'blur' },
{required: true, message: '请输入排序', trigger: 'blur'},
]
}
}
},
watch: {},
computed: {
},
computed: {},
methods: {
// 打开弹窗
open () {
open() {
this.dialogVisible = !this.dialogVisible
},
// 关闭当前组件
dialogClose () {
dialogClose() {
this.$parent._data.dialogConfig.open = false
},
// 表格新增
tableDataADD () {
tableDataADD() {
this.formData.entities.push({})
},
// 获取厂区下拉
getFactoryList () {
this.FactoryAdmin.getFactoryList().then(({ data }) => {
getFactoryList() {
this.FactoryAdmin.getFactoryList().then(({data}) => {
this.factoryOptions = data
})
},
// 获取站点配置模板下拉
getConfigTempList () {
this.SiteConfigTemplate.getConfigTempList().then(({ data }) => {
getConfigTempList() {
this.SiteConfigTemplate.getConfigTempList().then(({data}) => {
this.configTempList = data
})
},
// 表格删除
removeRow (index) {
removeRow(index) {
this.formData.entities.splice(index, 1)
},
async getEquipmentType (value, row) {
async getEquipmentType(value, row) {
if (value !== '1' || value !== '2') {
this.$set(row, 'configMap', '')
this.$set(row, 'pointId', '')
}
},
// 获取地图下拉
getConfigMap (state, row) {
getConfigMap(state, row) {
if (state && row.equipmentType) {
this.MapAdmin.getMapList({ equipmentType: row.equipmentType }).then(({ data }) => {
this.MapAdmin.getMapList({equipmentType: row.equipmentType}).then(({data}) => {
this.$set(row, 'mapOptions', data)
})
}
},
// 获取库位开关下拉
getequipOptions() {
this.SiteConfig.getEquipOptions({equipmentType: '6'}).then(({data}) => {
this.equipOptions= data
})
},
// 获取点位下拉
getPointType (value, row) {
getPointType(value, row) {
if (row.configMap) {
this.PositionAdmin.getPointList({ mapId: row.configMap }).then(({ data }) => {
this.PositionAdmin.getPointList({mapId: row.configMap}).then(({data}) => {
this.$set(row, 'pointOptions', data)
})
}
},
// 获取任务类型下拉
getTaskType (state, row) {
getTaskType(state, row) {
if (state && this.formData.tempId) {
this.ConfigTempType.getConfigTempTypeList({ tempId: this.formData.tempId }).then(({ data }) => {
this.ConfigTempType.getConfigTempTypeList({tempId: this.formData.tempId}).then(({data}) => {
this.$set(row, 'taskTypeOptions', data)
})
}
},
// 提交
getSiteConfigAdd (formName) {
getSiteConfigAdd(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.SiteConfig.getConfigAdd(this.formData).then(({ data }) => {
this.SiteConfig.getConfigAdd(this.formData).then(({data}) => {
this.$message({
type: 'success',
message: '新增成功!'
......@@ -291,14 +330,14 @@ export default {
});
},
// 获取详情接口
async getInfo (id) {
this.SiteConfig.getConfigInfo(id).then(async ({ data }) => {
async getInfo(id) {
this.SiteConfig.getConfigInfo(id).then(async ({data}) => {
this.formData = data
this.open()
})
},
// 编辑更新按钮
getSiteConfigEdit (formName) {
getSiteConfigEdit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.SiteConfig.getConfigUpdate(this.formData).then((res) => {
......@@ -313,7 +352,7 @@ export default {
});
},
},
created () {
created() {
this.FactoryAdmin = new FactoryAdmin()
this.SiteConfigTemplate = new SiteConfigTemplate()
this.MapAdmin = new MapAdmin()
......@@ -321,11 +360,12 @@ export default {
this.ConfigTempType = new ConfigTempType()
this.SiteConfig = new SiteConfig()
},
mounted () {
mounted() {
this.getFactoryList()
this.getConfigTempList()
this.getequipOptions()
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
</style>
......@@ -51,6 +51,7 @@
<span v-else-if="scope.row.taskStatus === '1'" style="color: #e1750f;font-weight: bold;">执行中</span>
<span v-else-if="scope.row.taskStatus === '4'" style="color: #999999;font-weight: bold;">已取消</span>
<span v-else-if="scope.row.taskStatus === '3'" style="color: #249601;font-weight: bold;">已完成</span>
<span v-else-if="scope.row.taskStatus === '5'" style="color: #249601;font-weight: bold;">队列中</span>
</template>
</vxe-column>
<vxe-column field="source_dictText" title="来源" align="center"></vxe-column>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment