lupeng 10 mesiacov pred
rodič
commit
25a76bdf33

+ 213 - 201
src/views/base/bom/index.vue

@@ -2,20 +2,20 @@
   <div class="mainContentBox">
     <!--{{dataDetail}}-->
     <!--{{dicts}}-->
-    <div class="detail-title">
-      物料信息
-    </div>
+    <div class="detail-title">物料信息</div>
     <div class="detail">
-      <div class="title-detail">物料编码 : {{dataDetail.materialCode}}</div>
-      <div class="title-detail">物料名称 : {{dataDetail.materialName}}</div>
-      <div class="title-detail">物料属性 : {{dataDetail.attributeDictValue}}</div>
-      <div class="title-detail">物料规格 : {{dataDetail.spec}}</div>
-      <div class="title-detail">单位 : {{dataDetail.unitDictValue}}</div>
-      <div class="title-detail">物料级别 : {{dataDetail.levelDictValue}}</div>
-      <div class="title-detail">产品阶段 : {{dataDetail.stageDictValue}}</div>
-      <div class="title-detail">生产厂家 : {{dataDetail.manufacturer}}</div>
-      <div class="title-detail">创建时间 : {{dataDetail.created}}</div>
-      <div class="title-detail">备注 : {{dataDetail.remark}}</div>
+      <div class="title-detail">物料编码 : {{ dataDetail.materialCode }}</div>
+      <div class="title-detail">物料名称 : {{ dataDetail.materialName }}</div>
+      <div class="title-detail">
+        物料属性 : {{ dataDetail.attributeDictValue }}
+      </div>
+      <div class="title-detail">物料规格 : {{ dataDetail.spec }}</div>
+      <div class="title-detail">单位 : {{ dataDetail.unitDictValue }}</div>
+      <div class="title-detail">物料级别 : {{ dataDetail.levelDictValue }}</div>
+      <div class="title-detail">产品阶段 : {{ dataDetail.stageDictValue }}</div>
+      <div class="title-detail">生产厂家 : {{ dataDetail.manufacturer }}</div>
+      <div class="title-detail">创建时间 : {{ dataDetail.created }}</div>
+      <div class="title-detail">备注 : {{ dataDetail.remark }}</div>
     </div>
     <avue-crud
       ref="crudRef"
@@ -30,52 +30,45 @@
       @selection-change="selectionChange"
     >
       <template #menu-left="{ size }">
-        <div style="display:flex">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          @click="openMaterial"
-          >新增</el-button>
-          <el-select v-model="version" placeholder="请选择BOM版本" style="width:150px;margin-left:15px" @click="openBomVersion">
-
-            <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
+        <div style="display: flex">
+          <el-button type="primary" icon="el-icon-plus" @click="openMaterial"
+            >新增</el-button
           >
-          </el-option>
-
-        </el-select>
-
-          </div>
-
-
+          <el-select
+            v-model="version"
+            placeholder="请选择BOM版本"
+            style="width: 150px; margin-left: 15px"
+            @click="openBomVersion"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </div>
       </template>
 
-        <CommonTable
-          ref="ctableRef"
-          tableTitle="物料选择"
-          tableType="BOM"
-          @selected-sure="onSelectedFinish"
-        />
+      <CommonTable
+        ref="ctableRef"
+        tableTitle="物料选择"
+        tableType="BOM"
+        @selected-sure="onSelectedFinish"
+      />
       <template #footer>
         <div class="detail-footer">
           <el-button type="primary" @click="onSelected"> 保存 </el-button>
           <el-button @click="routeBack">取消</el-button>
-
         </div>
       </template>
 
       <template #menu-right="{}">
-
-
         <el-dropdown split-button
           >导入
           <template #dropdown>
-
             <el-dropdown-menu>
-
               <el-dropdown-item
                 @click="downloadTemplate('/api/v1/base/materialBom/template')"
               >
@@ -102,7 +95,11 @@
       width="900px"
       @close="dialog.visible = false"
     >
-      <version-page  :materialCode="route.params.materialCode" :dialog="dialog"  @selected-sure="selectedFinish"/>
+      <version-page
+        :materialCode="route.params.materialCode"
+        :dialog="dialog"
+        @selected-sure="selectedFinish"
+      />
     </el-dialog>
   </div>
 </template>
@@ -112,27 +109,26 @@ import { useCrud } from "../../../hooks/userCrud";
 import ButtonPermKeys from "../../../common/configs/buttonPermission";
 import { useCommonStoreHook, useDictionaryStore } from "../../../store/index";
 
-import {
-  getMaterialDetails,
-  getBomVersion
-} from "@/api/material";
+import { getMaterialDetails, getBomVersion } from "@/api/material";
 
-import {
-  batchAddBom,
-} from "@/api/bom";
+import { batchAddBom } from "@/api/bom";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 // 数据字典相关
 const { dicts } = useDictionaryStore();
 const router = useRouter();
 const route = useRoute();
 
-const dataDetail=ref({});
+const dataDetail = ref({});
 const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const openMaterial=()=>{
-  if(version.value.value===0||version.value.value===null||version.value.value=="0"){
+const openMaterial = () => {
+  if (
+    version.value.value === 0 ||
+    version.value.value === null ||
+    version.value.value == "0"
+  ) {
     ElMessage({
       message: "没有选择BOM版本",
       type: "error",
@@ -142,78 +138,77 @@ const openMaterial=()=>{
   if (ctableRef.value) {
     ctableRef.value.startSelect();
   }
-}
-const openBomVersion=()=>{
-
-
-  dialog.visible=true;
-}
-const version=ref({
-    value: '0',
-    label: '请选择BOM版本',
+};
+const openBomVersion = () => {
+  dialog.visible = true;
+};
+const version = ref({
+  value: "0",
+  label: "请选择BOM版本",
 });
-const options=ref([]);
-const dataDict=dicts.value;
-const dataBomLists=()=>{
-
-  search.value.materialCode=route.params.materialCode;
+const options = ref([]);
+const dataDict = dicts.value;
+const dataBomLists = () => {
+  search.value.materialCode = route.params.materialCode;
   dataNoPageList();
-}
+};
 
 const ctableRef = ref(null);
 const dialog = reactive({
   title: "BOM版本",
   visible: false,
 });
-const material=ref(null);
+const material = ref(null);
 const binding = (row) => {
   if (ctableRef.value) {
     ctableRef.value.startSelect();
   }
 };
-const onSelected=()=>{
-  for(var i=0;i<data.value.length;i++){
-
-    if(data.value[i].bomMaterialNumber<=0){
+const onSelected = () => {
+  for (var i = 0; i < data.value.length; i++) {
+    if (data.value[i].bomMaterialNumber <= 0) {
       ElMessage({
-        message: data.value[i].bomMaterialName+"数量不能为0",
+        message: data.value[i].bomMaterialName + "数量不能为0",
         type: "error",
       });
       return;
     }
   }
-  if(data.value.length===0){
+  if (data.value.length === 0) {
     ElMessage({
       message: "物料记录不能为空!",
       type: "error",
     });
     return;
   }
-  batchAddBom(data.value).then(
-    (data)=>{
-      if(data.code==="200") {
-        ElMessage({
-          message: data.msg,
-          type: "success",
-        });
-        router.back();
-      }
-      else {
-        ElMessage({
-          message: data.msg,
-          type: "error",
-        });
-      }
+  batchAddBom(data.value).then((data) => {
+    if (data.code === "200") {
+      ElMessage({
+        message: data.msg,
+        type: "success",
+      });
+      router.back();
+    } else {
+      ElMessage({
+        message: data.msg,
+        type: "error",
+      });
     }
-  );
-}
+  });
+};
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/base/materialBom",
   });
-const { dataNoPageList,createRow, updateRow, deleteRow, searchChange, resetChange } =
-  Methords; //增删改查
+const {
+  dataNoPageList,
+  createRow,
+  updateRow,
+  deleteRow,
+  searchChange,
+  resetChange,
+} = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
@@ -228,22 +223,18 @@ const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
 onMounted(() => {
   // console.log("crudRef", crudRef)
-  console.info("1111",dicts);
-  getBomVersion(route.params.materialCode).then(
-    (data)=>{
-      version.value.value=data.data;
-      search.value.bomVersion = data.data;
-      version.value.value=data.data;
-      if(data.data!="0") {
-        version.value.label = data.data;
-      }
-      search.value.materialCode=route.params.materialCode;
-      queryMaterialDetail();
-      dataNoPageList();
+  console.info("1111", dicts);
+  getBomVersion(route.params.materialCode).then((data) => {
+    version.value.value = data.data;
+    search.value.bomVersion = data.data;
+    version.value.value = data.data;
+    if (data.data != "0") {
+      version.value.label = data.data;
     }
-  )
-
-
+    search.value.materialCode = route.params.materialCode;
+    queryMaterialDetail();
+    dataNoPageList();
+  });
 });
 
 /**
@@ -255,9 +246,11 @@ const uploadFinished = () => {
   dataNoPageList();
 };
 const importExcelData = () => {
-
   if (uploadRef.value) {
-    uploadRef.value.show("/api/v1/base/materialBom/import?materialCode="+route.params.materialCode);
+    uploadRef.value.show(
+      "/api/v1/base/materialBom/import?materialCode=" +
+        route.params.materialCode
+    );
   }
 };
 
@@ -266,22 +259,21 @@ option.value = Object.assign(option.value, {
   selection: true,
   addBtn: false,
   viewBtn: false,
-  editBtn:false,
-  saveBtn:false,
+  editBtn: false,
+  saveBtn: false,
   cellBtn: true,
   column: [
-
     {
       label: "物料编码",
       prop: "materialCode",
-      hide:true
+      hide: true,
     },
 
     {
       label: "物料名称",
       prop: "materialName",
-      overHidden:true,
-      hide:true
+      overHidden: true,
+      hide: true,
     },
 
     {
@@ -291,20 +283,20 @@ option.value = Object.assign(option.value, {
     {
       label: "物料名称",
       prop: "bomMaterialName",
-      overHidden:true,
+      overHidden: true,
     },
     {
       label: "物料属性",
       prop: "bomMaterialAttribute",
-      type: 'select',
-      dicData:dicts.material_properties,
+      type: "select",
+      dicData: dicts.material_properties,
       props: { label: "dictLabel", value: "dictValue" },
     },
     {
       label: "物料数量",
       prop: "bomMaterialNumber",
-      min:0,
-      slot:true,
+      min: 0,
+      slot: true,
       cell: true,
       type: "number",
       precision: 2,
@@ -315,118 +307,138 @@ option.value = Object.assign(option.value, {
       type: "number",
       precision: 1,
     },
-
-
   ],
 });
-const routeBack =()=>{
+const routeBack = () => {
   router.back();
-}
+};
 const onSelectedFinish = (selectedValue) => {
-
-  for(var i=0;i<data.value.length;i++){
-    if(data.value[i].bomMaterialCode===selectedValue.materialCode){
+  for (let i = 0; i < data.value.length; i++) {
+    if (data.value[i].bomMaterialCode === selectedValue.materialCode) {
       ElMessage({
-        message: data.value[i].bomMaterialName+"已经添加过了",
+        message: data.value[i].bomMaterialName + "已经添加过了",
         type: "error",
       });
       return;
     }
   }
-  if(version.value.value===0||version.value.value===null){
+  if (selectedValue.materialCode == dataDetail.value.materialCode) {
+    ElMessage({
+      message: selectedValue.materialCode + "自己不能添加自己为BOM",
+      type: "error",
+    });
+    return;
+  }
+  if (version.value.value === 0 || version.value.value === null) {
     ElMessage({
       message: "没有选择BOM版本",
       type: "error",
     });
     return;
   }
-  const bom=ref({
-    materialCode:route.params.materialCode,
-    bomMaterialCode:selectedValue.materialCode,
-    bomMaterialName:selectedValue.materialName,
-    bomVersion:version.value.value,
-    bomMaterialAttribute:selectedValue.attributeDictValue,
-    bomMaterialNumber:0,
-    $cellEdit:true,
+  const bom = ref({
+    materialCode: route.params.materialCode,
+    bomMaterialCode: selectedValue.materialCode,
+    bomMaterialName: selectedValue.materialName,
+    bomVersion: version.value.value,
+    bomMaterialAttribute: selectedValue.attributeDictValue,
+    bomMaterialNumber: 0,
+    $cellEdit: true,
   });
   data.value.push(bom.value);
 };
 const queryMaterialDetail = () => {
-  getMaterialDetails(route.params.materialCode).then(
-
-    ({ data }) => {
-      dataDetail.value=data;
-
-      if(null!=dicts.material_properties&&undefined!=dicts.material_properties&&dicts.material_properties.length>0){
-        for(var i=0;i<dicts.material_properties.length;i++){
-          if(data.attributeDictValue===dicts.material_properties[i].dictValue){
-            dataDetail.value.attributeDictValue=dicts.material_properties[i].dictLabel;
-          }
+  getMaterialDetails(route.params.materialCode).then(({ data }) => {
+    dataDetail.value = data;
+
+    if (
+      null != dicts.material_properties &&
+      undefined != dicts.material_properties &&
+      dicts.material_properties.length > 0
+    ) {
+      for (var i = 0; i < dicts.material_properties.length; i++) {
+        if (
+          data.attributeDictValue === dicts.material_properties[i].dictValue
+        ) {
+          dataDetail.value.attributeDictValue =
+            dicts.material_properties[i].dictLabel;
         }
       }
+    }
 
-      if(null!=dicts.danwei_type&&undefined!=dicts.danwei_type&&dicts.danwei_type.length>0){
-        for(var i=0;i<dicts.danwei_type.length;i++){
-          if(data.unitDictValue===dicts.danwei_type[i].dictValue){
-            dataDetail.value.unitDictValue=dicts.danwei_type[i].dictLabel;
-          }
+    if (
+      null != dicts.danwei_type &&
+      undefined != dicts.danwei_type &&
+      dicts.danwei_type.length > 0
+    ) {
+      for (var i = 0; i < dicts.danwei_type.length; i++) {
+        if (data.unitDictValue === dicts.danwei_type[i].dictValue) {
+          dataDetail.value.unitDictValue = dicts.danwei_type[i].dictLabel;
         }
       }
-      if(null!=dicts.material_level&&undefined!=dicts.material_level&&dicts.material_level.length>0){
-        for(var i=0;i<dicts.material_level.length;i++){
-          if(data.levelDictValue===dicts.material_level[i].dictValue){
-            dataDetail.value.levelDictValue=dicts.material_level[i].dictLabel;
-          }
+    }
+    if (
+      null != dicts.material_level &&
+      undefined != dicts.material_level &&
+      dicts.material_level.length > 0
+    ) {
+      for (var i = 0; i < dicts.material_level.length; i++) {
+        if (data.levelDictValue === dicts.material_level[i].dictValue) {
+          dataDetail.value.levelDictValue = dicts.material_level[i].dictLabel;
         }
       }
-      if(null!=dicts.stage&&undefined!=dicts.stage&&dicts.stage.length>0){
-        for(var i=0;i<dicts.stage.length;i++){
-          if(data.stageDictValue===dicts.stage[i].dictValue){
-            dataDetail.value.stageDictValue=dicts.stage[i].dictLabel;
-          }
+    }
+    if (
+      null != dicts.stage &&
+      undefined != dicts.stage &&
+      dicts.stage.length > 0
+    ) {
+      for (var i = 0; i < dicts.stage.length; i++) {
+        if (data.stageDictValue === dicts.stage[i].dictValue) {
+          dataDetail.value.stageDictValue = dicts.stage[i].dictLabel;
         }
       }
-
-
     }
-  );
+  });
 };
 
-const selectedFinish=(selectedValue)=> {
+const selectedFinish = (selectedValue) => {
   console.info(selectedValue.bomVersion);
-  if (selectedValue.bomVersion!=undefined&&selectedValue.bomVersion!=null) {
-   version.value.value = selectedValue.bomVersion;
-   version.value.label = selectedValue.bomVersion;
- }
+  if (
+    selectedValue.bomVersion != undefined &&
+    selectedValue.bomVersion != null
+  ) {
+    version.value.value = selectedValue.bomVersion;
+    version.value.label = selectedValue.bomVersion;
+  }
   search.value.bomVersion = version.value.value;
   dataNoPageList();
-}
+};
 </script>
 <style type="text/css">
-  .title-detail{
-    width: 30%;
-    height: 30px;
-    line-height: 50px;
-    margin: 5px 20px 5px 0;
-    float: left;
-  }
-  .detail{
-    margin: 0 auto 30px;
-    width: 100%;
-    padding-left: 15px;
-    overflow: hidden;
-  }
-  .avue-crud{
-    float: left;
-  }
-  .detail-footer{
-    float: right;
-    margin-top:15px;
-  }
-  .detail-title{
-    width: 100%;
-    padding-left: 5px;
-    font-weight: 700;
-
-  }
+.title-detail {
+  width: 30%;
+  height: 30px;
+  line-height: 50px;
+  margin: 5px 20px 5px 0;
+  float: left;
+}
+.detail {
+  margin: 0 auto 30px;
+  width: 100%;
+  padding-left: 15px;
+  overflow: hidden;
+}
+.avue-crud {
+  float: left;
+}
+.detail-footer {
+  float: right;
+  margin-top: 15px;
+}
+.detail-title {
+  width: 100%;
+  padding-left: 5px;
+  font-weight: 700;
+}
 </style>

+ 165 - 164
src/views/system/post/components/post-skill.vue

@@ -21,203 +21,204 @@
           circle
           @click="addSkill"
         ></el-button
-        ></template>
+      ></template>
 
       <template #footer>
         <div class="detail-footer">
           <el-button type="primary" @click="addList"> 保存 </el-button>
           <el-button @click="cancel">取消</el-button>
-
         </div>
       </template>
     </avue-crud>
-
   </div>
 </template>
 <script setup lang="ts">
-  import { ref, getCurrentInstance } from "vue";
-  import { useCrud } from "@/hooks/userCrud";
-  import ButtonPermKeys from "@/common/configs/buttonPermission";
-  import { useCommonStoreHook, useDictionaryStore } from "@/store/index";
-  import {addPostSkill} from "../../../../api/system/skill";
-  const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-  // 数据字典相关
-  const { dicts } = useDictionaryStore();
-  const router = useRouter();
-  const route = useRoute();
-
-  const dataDetail=ref({});
-  const test = () => {
-    isShowTable.value = true;
-    tableType.value = tableType.value == 1 ? 2 : 1;
-  };
-
-
-
-
-
-  const addList=()=>{
-    for(var i=0;i<data.value.length;i++){
-      if(data.value[i].skillDictValue==="0"||data.value[i].skillDictValue ===null||data.value[i].skillDictValue ===""){
-        ElMessage({
-          message:"技能选项存在空值",
-          type: "error",
-        });
-        return false;
-      }
-    }
-    if(data.value.length===0){
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook, useDictionaryStore } from "@/store/index";
+import { addPostSkill } from "../../../../api/system/skill";
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+// 数据字典相关
+const { dicts } = useDictionaryStore();
+const router = useRouter();
+const route = useRoute();
+
+const dataDetail = ref({});
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
+
+const addList = () => {
+  for (var i = 0; i < data.value.length; i++) {
+    if (
+      data.value[i].skillDictValue === "0" ||
+      data.value[i].skillDictValue === null ||
+      data.value[i].skillDictValue === "" ||
+      data.value[i].$skillDictValue == ""
+    ) {
       ElMessage({
-        message: "没有添加记录!",
+        message: "技能选项存在空值",
         type: "error",
       });
       return false;
     }
+  }
+  if (data.value.length === 0) {
+    ElMessage({
+      message: "没有添加记录!",
+      type: "error",
+    });
+    return false;
+  }
 
-    //判断试验类型是否重复
-    if(data.value.length > 0){
-      for (let i = 0; i < data.value.length; i++) {
-        for (let j = i + 1; j < data.value.length; j++) {
-          if (data.value[i].skillDictValue == data.value[j].skillDictValue) {
-            ElMessage({
-              message: data.value[i].$skillDictValue+ " 存在重复的技能项",
-              type: "error",
-            });
-            return false;
-          }
-        }
-      }
-    }
-
-    addPostSkill(data.value).then(
-      (data: any)=>{
-        if(data.code==="200") {
-          ElMessage({
-            message: data.msg,
-            type: "success",
-          });
-        }
-        else {
+  //判断试验类型是否重复
+  if (data.value.length > 0) {
+    for (let i = 0; i < data.value.length; i++) {
+      for (let j = i + 1; j < data.value.length; j++) {
+        if (data.value[i].skillDictValue == data.value[j].skillDictValue) {
           ElMessage({
-            message: data.msg,
+            message: data.value[i].$skillDictValue + " 存在重复的技能项",
             type: "error",
           });
+          return false;
         }
-        props.dialog.visible=false;
       }
-    );
+    }
   }
-  // 传入一个url,后面不带/
-  const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/sys/postSkill",
-    });
-  const { dataNoPageList,createRow, updateRow, deleteRow, searchChange, resetChange } =
-    Methords; //增删改查
-  const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-  const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
-  // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
-  // const permission = reactive({
-  //   delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
-  //   addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
-  //   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
-  //   menu: true,
-  // });
 
-  const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-  const props = defineProps({
-    postId: {
-      type: String,
-      default: () => {
-        return 0;
-      }
-    },
-    dialog:{
-      type:Object,
-      default:()=>{
-        return {};
-      }
+  addPostSkill(data.value).then((data: any) => {
+    if (data.code === "200") {
+      ElMessage({
+        message: data.msg,
+        type: "success",
+      });
+    } else {
+      ElMessage({
+        message: data.msg,
+        type: "error",
+      });
     }
-  })
-  onMounted(() => {
-    // console.log("crudRef", crudRef)
-    search.value.postId=props.postId;
-    dataNoPageList();
-
+    props.dialog.visible = false;
   });
-   const cancel=()=>{
-     props.dialog.visible=false;
-   }
-  /**
-   * 上传excel相关
-   */
-  const uploadRef = ref(null);
-  const uploadFinished = () => {
-    // 上传完成后的刷新操作
-    dataNoPageList();
-  };
-  const importExcelData = () => {
-    if (uploadRef.value) {
-      uploadRef.value.show("/api/v1/plan/order/import");
-    }
-  };
-
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    selection: false,
-    addBtn: false,
-    viewBtn: false,
-    editBtn:false,
-    saveBtn:false,
-    cellBtn: true,
-    column: [{
+};
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/sys/postSkill",
+  });
+const {
+  dataNoPageList,
+  createRow,
+  updateRow,
+  deleteRow,
+  searchChange,
+  resetChange,
+} = Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+// checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
+// const permission = reactive({
+//   delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
+//   addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
+//   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
+//   menu: true,
+// });
+
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+const props = defineProps({
+  postId: {
+    type: String,
+    default: () => {
+      return 0;
+    },
+  },
+  dialog: {
+    type: Object,
+    default: () => {
+      return {};
+    },
+  },
+});
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  search.value.postId = props.postId;
+  dataNoPageList();
+});
+const cancel = () => {
+  props.dialog.visible = false;
+};
+/**
+ * 上传excel相关
+ */
+const uploadRef = ref(null);
+const uploadFinished = () => {
+  // 上传完成后的刷新操作
+  dataNoPageList();
+};
+const importExcelData = () => {
+  if (uploadRef.value) {
+    uploadRef.value.show("/api/v1/plan/order/import");
+  }
+};
+
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: false,
+  addBtn: false,
+  viewBtn: false,
+  editBtn: false,
+  saveBtn: false,
+  cellBtn: true,
+  column: [
+    {
       label: "技能",
       prop: "skillDictValue",
-      align: 'center',
-      headerAlign: 'center',
+      align: "center",
+      headerAlign: "center",
       cell: true,
-      span:24,
-      type: 'select',
-      dicData:dicts.skill_type,
+      span: 24,
+      type: "select",
+      dicData: dicts.skill_type,
       props: {
         label: "dictLabel", // 下拉菜单显示的字段
-        value: "dictValue" // 下拉菜单值的字
+        value: "dictValue", // 下拉菜单值的字
       },
-    },],
+    },
+  ],
+});
+const routeBack = () => {
+  router.back();
+};
+const addSkill = () => {
+  const bom = ref({
+    postId: props.postId,
+    $cellEdit: true,
   });
-  const routeBack =()=>{
-    router.back();
-  }
-  const addSkill = () => {
-    const bom=ref({
-      postId:props.postId,
-      $cellEdit:true,
-    });
-    data.value.push(bom.value);
-  };
-
+  data.value.push(bom.value);
+};
 </script>
 <style type="text/css">
-  .title-detail{
-    width: 30%;
-    height: 50px;
-    line-height: 50px;
-    margin: 25px 20px 25px 0;
-    float: left;
-  }
-  .detail{
-    margin: 0 auto;
-    width: 100%;
-  }
-  .avue-crud{
-    float: left;
-  }
-  .detail-footer{
-    float: right;
-    margin-top:15px;
-  }
-  .el-select__selection{
-    width: 400px;
-  }
-
+.title-detail {
+  width: 30%;
+  height: 50px;
+  line-height: 50px;
+  margin: 25px 20px 25px 0;
+  float: left;
+}
+.detail {
+  margin: 0 auto;
+  width: 100%;
+}
+.avue-crud {
+  float: left;
+}
+.detail-footer {
+  float: right;
+  margin-top: 15px;
+}
+.el-select__selection {
+  width: 400px;
+}
 </style>