移动系统liao
昨天 9f3ead22a8198d33891a0f8f23faec15dcfc731a
Web/src/views/Customer/fBS_EnterpriseType/component/editDialog.vue
@@ -1,4 +1,13 @@
<script lang="ts" name="fBS_EnterpriseType" setup>
<!--
 * @FilePath: editDialog.vue
 * @Author: 小飞侠
 * @Date: 2025-06-25 11:22:03
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2025-07-22 17:28:33
 * Copyright: 2025  MinTinge CO.,LTD. All Rights Reserved.
 * @Descripttion: 写入你的描述
-->
<script lang="ts" name="fBS_EnterpriseType" setup>
import { ref, reactive, onMounted } from "vue";
import { ElMessage } from "element-plus";
import type { FormRules } from "element-plus";
@@ -17,13 +26,14 @@
   ruleForm: {} as any,
   stores: {},
   dropdownData: {} as any,
   tableData: [] as any[],
});
// 自行添加其他规则
const rules = ref<FormRules>({
  name: [{required: true, message: '请选择名称!', trigger: 'blur',},],
  code: [{required: true, message: '请选择代码!', trigger: 'blur',},],
  parentId: [{required: true, message: '请选择父!', trigger: 'blur',},],
   name: [{ required: true, message: '请输入名称!', trigger: 'blur', },],
   code: [{ required: true, message: '请输入代码!', trigger: 'blur', },]
   // parentId: [{ required: true, message: '请选择父!', trigger: 'blur', },],
});
// 页面加载时
@@ -31,16 +41,21 @@
});
// 打开弹窗
const openDialog = async (row: any, title: string) => {
const openDialog = async (row: any, data:any,title: string) => {
   state.title = title;
   row = row ?? {  };
   row = row ?? {};
   state.ruleForm = row.id ? await fBS_EnterpriseTypeApi.detail(row.id).then(res => res.data.result) : JSON.parse(JSON.stringify(row));
   state.showDialog = true;
   state.tableData = data;
};
// 关闭弹窗
const closeDialog = () => {
   emit("reloadTable");
   console.log("listdata",state.tableData);
   state.showDialog = false;
};
@@ -49,6 +64,8 @@
   ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
      if (isValid) {
         let values = state.ruleForm;
         if(values.parentId==null)
         values.parentId=0;
         await fBS_EnterpriseTypeApi[state.ruleForm.id ? 'update' : 'add'](values);
         closeDialog();
      } else {
@@ -59,6 +76,16 @@
      }
   });
};
const treeProps = reactive({
   children: 'child',
  label: 'name',
  value: 'id',
  disabled:(node:any)=>{
    return state.ruleForm?.id== node.id;
  }
})
//将属性或者函数暴露给父组件
defineExpose({ openDialog });
@@ -76,19 +103,28 @@
               <el-form-item v-show="false">
                  <el-input v-model="state.ruleForm.id" />
               </el-form-item>
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                  <el-form-item label="名称" prop="name">
                     <el-input v-model="state.ruleForm.name" placeholder="请输入名称" maxlength="256" show-word-limit clearable />
                     <el-input v-model="state.ruleForm.name" placeholder="请输入名称" maxlength="256" show-word-limit
                        clearable />
                  </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                  <el-form-item label="代码" prop="code">
                     <el-input v-model="state.ruleForm.code" placeholder="请输入代码" maxlength="36" show-word-limit clearable />
                     <el-input v-model="state.ruleForm.code" placeholder="请输入代码" maxlength="36" show-word-limit
                        clearable />
                  </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
                  <el-form-item label="父" prop="parentId">
                     <el-input-number v-model="state.ruleForm.parentId" placeholder="请输入父" clearable />
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                  <el-form-item label="代码" prop="description">
                     <el-input v-model="state.ruleForm.description" placeholder="请输入说明" maxlength="36" show-word-limit
                        clearable />
                  </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                  <el-form-item label="上级" prop="parentId">
                     <el-tree-select :props="treeProps"  clearable   v-model="state.ruleForm.parentId" :data="state.tableData" check-strictly :render-after-expand="false"
                        style="width: 240px" />
                  </el-form-item>
               </el-col>
            </el-row>
@@ -103,7 +139,8 @@
   </div>
</template>
<style lang="scss" scoped>
:deep(.el-select), :deep(.el-input-number) {
  width: 100%;
:deep(.el-select),
:deep(.el-input-number) {
   width: 100%;
}
</style>