工厂和工段相关
数据无法提交到数据库
在工段数据提交时,遇到了提交到数据库lkt_factory_section
的数据都显示Null
的情况,经过排查,发现接口设置错误,将返回值的data
写成了params
ts
/**
* @description 新增工段信息
* @param query
*/
export function postSectionList(query: AddReq) {
return request({
url: apiPrefix + `factory_section/`,
method: 'post',
data: query,
});
}
修改完之后,新增的工段数据就可以正常的提交了
工厂名称无法在下拉选择列表中获取
在新增工段界面中,需要对新增工段的工厂进行选择,所以要及时的获取工厂id
和name
,但是在调用数据时遇到了问题:调用到的数据不能正常的在下拉选择框中显示,于是对代码重新进行编写:
ts
interface factoryType {
id: string,
name: string,
}
const factoryNames = ref<factoryType[]>([])
await getFactoryList({}).then((res:any)=>{
factoryNames.value = res.data
});
修改完之后,就可以正常的在相应组件中进行数据的填入:
vue
<el-form-item label="选择工厂:">
<el-select v-model="newSectionForm.factorySelection" placeholder="选择需创建工段的工厂" style="width: 195px">
<el-option v-for="item in factoryNames" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
下拉列表框内容什么时候刷新问题
在一开始,设置下拉列表框内容的渲染是在整个页面刷新时进行渲染,后面考虑到过早的渲染是没有必要的,只需在新建按钮点击时,进行下拉列表框内容的渲染即可,所以,将代码进行了一些调整,将获取工厂id
和name
的代码放到新建表单出现前调用:
ts
async function newTable() {
await getFactoryList({}).then((res:any)=>{
factoryNames.value = res.data
});
createForm.value.visible = true
}
联动选项显示弹出对话框的标题
在新建弹出对话框中,当按钮在工厂端,对话框的标题显示新建工厂;当按钮在工段端,对话框的标题显示新建工段
vue
<el-dialog class="h-[400px]" v-model="createForm.visible" :title="dialogTitle">
<el-switch v-model="showForm" active-text="工段" inactive-text="工厂" />
<div v-if="showForm" style="padding-top: 15px;">
...
</div>
<div v-else style="padding-top: 15px;">
...
</div>
<script setup lang="ts">
const showForm = ref(false)
const dialogTitle = computed(() => {
return showForm.value ? '新建工段' : '新建工厂';
});
</script>
添加工厂/工段后触发刷新
在创建完工厂和工段后,需要手动刷新才能使新工厂或新工段在设备档案中心界面显示,考虑如何实现新增完工厂/工段实现自动刷新,使新工厂/工段及时显示在树型控件中,通过自定义事件emits
使子组件向父组件传递自定义事件,实现刷新