update 设备信息新增编辑

This commit is contained in:
g7hoo 2022-09-30 17:01:47 +08:00
parent ae8a3668c8
commit 3f43f0c979
5 changed files with 85 additions and 24 deletions

View File

@ -261,6 +261,21 @@ export default {
})
} // end if (item.api)
// relatedFielditem relatedField
if (item.relatedField) {
this.$watch(
function() {
return this.dataForm[item.name]
},
function(val, old) {
if (val && val !== old) {
this.$emit('select-change', { name: item.name, id: val })
}
},
{ deep: true, immediate: true }
)
}
if (item.required) {
const requiredRule = {
required: true,
@ -308,7 +323,8 @@ export default {
/** 检查是否需要额外的组件 */
this.configs.extraComponents &&
this.configs.extraComponents.forEach(item => {
if (Object.hasOwn(this.dataForm, [item.name])) {
// if (Object.hasOwn(this.dataForm, [item.name])) {
if (this.dataForm.hasOwnProperty(item.name)) {
return
} else {
this.$set(this.dataForm, [item.name], calDefault(item.fieldType))
@ -394,7 +410,8 @@ export default {
this.dataForm.files.forEach(file => {
// const fileName = file.fileUrl.split('/').pop()
/** [1] 处理 fileList */
if (Object.hasOwn(this.fileList, file.typeCode)) {
// if (Object.hasOwn(this.fileList, file.typeCode)) {
if (this.fileList.hasOwnProperty(file.typeCode)) {
/** 已存在 */
// this.fileList[file.typeCode].push({ id: file.id, name: fileName, typeCode: file.typeCode })
this.fileList[file.typeCode].push(file)
@ -404,7 +421,8 @@ export default {
}
/** [2] 处理 fileForm */
if (Object.hasOwn(this.fileForm, file.typeCode)) {
// if (Object.hasOwn(this.fileForm, file.typeCode)) {
if (this.fileForm.hasOwnProperty(file.typeCode)) {
this.fileForm[file.typeCode].push(file.id)
} else {
this.fileForm[file.typeCode] = [file.id]
@ -425,12 +443,17 @@ export default {
})
// console.log('create new, dataform', JSON.stringify(this.dataForm))
}
this.shouldWait = null
})
}
})
},
emitSelectChange(name, id) {
const currentField = this.configs.fields.find(item => item.name === name)
if (currentField.relatedField) {
this.dataForm[currentField.relatedField] = null
}
this.$emit('select-change', { name, id })
},

View File

@ -8,7 +8,7 @@ import merge from 'lodash/merge'
const http = axios.create({
// baseURL: window.SITE_CONFIG['apiURL'],
baseURL: '/api',
baseURL: '/yd-monitor',
// baseURL: process.env.NODE_ENV === 'production' ? '/api' : '/yd-monitor',
timeout: 1000 * 180,
withCredentials: true

View File

@ -30,7 +30,7 @@
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" :configs="addOrUpdateConfigs" @refreshDataList="getDataList" @destory-dialog="addOrUpdateVisible = false" />
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" :configs="addOrUpdateConfigs" @refreshDataList="getDataList" @select-change="handleDialogSelectChange" />
</div>
</template>
@ -62,6 +62,7 @@ const tableConfigs = [
{ prop: 'groupName', name: i18n.t('eq.group') },
{ prop: 'enName', name: i18n.t('enname') },
{ prop: 'abbr', name: i18n.t('abbr') },
{ prop: 'lineName', name: i18n.t('pl.title') },
{ prop: 'sectionName', name: i18n.t('ws.title') },
{
prop: 'details',
@ -94,6 +95,14 @@ const addOrUpdateConfigs = {
type: 'select',
options: []
},
{
name: 'lineId',
label: i18n.t('pl.title'),
required: true,
type: 'select',
options: [],
relatedField: 'sectionId', // idlineIdsectionId
},
{
name: 'sectionId',
label: i18n.t('ws.title'),
@ -283,19 +292,41 @@ export default {
console.log('activated')
this.getDataList()
this.getGroupList()
this.getWsList()
this.getPlList()
this.getTypeList()
},
methods: {
//
getWsList() {
// 线
getPlList() {
this.$http({
url: this.$http.adornUrl('/monitoring/workshopSection/list'),
url: this.$http.adornUrl('/monitoring/productionLine/list'),
method: 'get'
}).then(({ data: res }) => {
const plConfig = this.addOrUpdateConfigs.fields.find(item => item.name === 'lineId')
plConfig.options =
res.data?.map(item => ({
value: item.id,
label: item.name
})) || []
})
},
//
getWsList(id) {
let params = {
page: 1,
limit: 999
}
if (id) {
params.lineId = id
}
this.$http({
url: this.$http.adornUrl('/monitoring/workshopSection/page'),
method: 'get',
params: this.$http.adornParams(params)
}).then(({ data: res }) => {
const wsConfig = this.addOrUpdateConfigs.fields.find(item => item.name === 'sectionId')
wsConfig.options =
res.data?.map(item => ({
res.data?.list?.map(item => ({
value: item.id,
label: item.name
})) || []
@ -378,6 +409,13 @@ export default {
selectionChangeHandle(val) {
this.dataListSelections = val
},
//
handleDialogSelectChange({ name, id }) {
switch (name) {
case 'lineId':
this.getWsList(id)
}
},
handleOperations({ type, data: id }) {
switch (type) {
case 'view-detail':

View File

@ -39,7 +39,7 @@
<section class="attr-form-section" v-if="dataForm.id">
<h3>
{{ $t('ws.eqbind') }}
<el-button type="text" v-if="!showAttrForm" @click="addEq">{{ $t('add') }}</el-button>
<!-- <el-button type="text" v-if="!showAttrForm" @click="addEq">{{ $t('add') }}</el-button> -->
</h3>
<div class="table" v-if="!showAttrForm">
<base-table :page="page" :size="limit" :data="eqList" :table-head-configs="tableProps" :max-height="calcMaxHeight(8)" @operate-event="handleOperations" @refreshDataList="getDataList" />
@ -68,8 +68,8 @@
import i18n from '@/i18n'
import BaseTable from '@/components/base-table'
import SmallTitle from '@/components/small-title'
import { pick } from 'lodash/object'
import TableOperateComponent from '@/components/base-table/components/operationComponent'
// import { pick } from 'lodash/object'
// import TableOperateComponent from '@/components/base-table/components/operationComponent'
import AttrForm from './workshopSectionDialogAttrForm.vue'
import { calcMaxHeight } from '@/utils'
const tableProps = [
@ -79,14 +79,14 @@ const tableProps = [
},
{ name: i18n.t('eq.name'), prop: 'equipmentName' },
{ name: i18n.t('dept.sort'), prop: 'sort' },
{
name: i18n.t('handle'),
prop: 'operations',
fixed: 'right',
width: 180,
subcomponent: TableOperateComponent,
options: ['edit', 'delete']
}
// {
// name: i18n.t('handle'),
// prop: 'operations',
// fixed: 'right',
// width: 180,
// subcomponent: TableOperateComponent,
// options: ['edit', 'delete']
// }
]
export default {

View File

@ -32,7 +32,7 @@ module.exports = {
target: 'http://india.mes.picaiba.com/'
},
'/yd-monitor': {
target: 'http://192.168.1.20:8080/' // 开发地址
target: 'http://192.168.1.18:8080/' // 开发地址
},
'/ureport': {
target: 'http://india.mes.picaiba.com/' // ureporter