Skip to content

工厂和工段相关

数据无法提交到数据库

在工段数据提交时,遇到了提交到数据库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,
  });
}

修改完之后,新增的工段数据就可以正常的提交了


工厂名称无法在下拉选择列表中获取

在新增工段界面中,需要对新增工段的工厂进行选择,所以要及时的获取工厂idname,但是在调用数据时遇到了问题:调用到的数据不能正常的在下拉选择框中显示,于是对代码重新进行编写:

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>

下拉列表框内容什么时候刷新问题

在一开始,设置下拉列表框内容的渲染是在整个页面刷新时进行渲染,后面考虑到过早的渲染是没有必要的,只需在新建按钮点击时,进行下拉列表框内容的渲染即可,所以,将代码进行了一些调整,将获取工厂idname的代码放到新建表单出现前调用:

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使子组件向父组件传递自定义事件,实现刷新

Released under the MIT License.