Browse Source

fix:修改按钮图标

lupeng 11 months ago
parent
commit
063eb53f85

+ 1 - 0
src/components/PDFView/index.vue

@@ -3,6 +3,7 @@
     v-if="contentType === 'button'"
     :type="btnType"
     :link="isLink"
+    icon="el-icon-view"
     @click="showPdf"
   >
     {{ btnText }}

+ 2 - 2
src/router/index.ts

@@ -1,4 +1,4 @@
-import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
+import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
 
 export const Layout = () => import("@/layout/index.vue");
 
@@ -100,7 +100,7 @@ export const constantRoutes: RouteRecordRaw[] = [
  * 创建路由
  */
 const router = createRouter({
-  history: createWebHashHistory(),
+  history: createWebHistory(),
   routes: constantRoutes,
   // 刷新时,滚动条位置还原
   scrollBehavior: () => ({ left: 0, top: 0 }),

+ 1 - 0
src/store/modules/user.ts

@@ -67,6 +67,7 @@ export const useUserStore = defineStore("user", () => {
     return new Promise<void>((resolve, reject) => {
       logoutApi()
         .then(() => {
+          isGetAuth.value = false;
           localStorage.setItem("token", "");
           // location.reload(); // 清空路由
           resolve();

+ 7 - 2
src/views/base/craftManagement/route/index.vue

@@ -42,12 +42,17 @@
       <template #menu="{ row }">
         <el-button
           link
+          type="primary"
           icon="el-icon-copy-document"
           :disabled="false"
           @click="copyRow(row)"
           >复制</el-button
         >
-        <el-button link icon="el-icon-copy-document" @click="bindProcess(row)"
+        <el-button
+          type="primary"
+          link
+          icon="el-icon-link"
+          @click="bindProcess(row)"
           >绑定</el-button
         >
       </template>
@@ -188,7 +193,7 @@ const router = useRouter();
 const bindProcess = (row) => {
   router.push({
     path: `/base/craftManagement/bindProcess/${row.id}`,
-    query: { prodtCode: row.prodtCode,routeId: row.id},
+    query: { prodtCode: row.prodtCode, routeId: row.id },
   });
 };
 

+ 199 - 143
src/views/base/information/index.vue

@@ -1,74 +1,76 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
       <template #drawingPath-form="scope">
-<!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
+        <!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
         <FilesUpload
-            v-model:src-list="srcList"
-            v-model:pdf-list="pdfUrlList"
-            v-model:file-name-list="fileNameList"
-            :limit="10"
-            :generate-pdf="true"
-            @finished="testFiles"
+          v-model:src-list="srcList"
+          v-model:pdf-list="pdfUrlList"
+          v-model:file-name-list="fileNameList"
+          :limit="10"
+          :generate-pdf="true"
+          @finished="testFiles"
         />
       </template>
       <template #enable="scope">
         <el-switch
-            active-value="1"
-            inactive-value="0"
-            inline-prompt
-            active-text="启用"
-            inactive-text="禁用"
-            v-model="scope.row.enable"
-            @click="changeItem(scope.row)"
-            class="ml-2"
-            style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
+          active-value="1"
+          inactive-value="0"
+          inline-prompt
+          active-text="启用"
+          inactive-text="禁用"
+          v-model="scope.row.enable"
+          @click="changeItem(scope.row)"
+          class="ml-2"
+          style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
         />
       </template>
-      <template #menu="{row,index,type}">
+      <template #menu="{ row, index, type }">
         <PDFView
-            :need-to-show-pdf="true"
-            content-type="button"
-            :is-link="true"
-            :pdf-source="filePath + row.pdfPath"
+          :need-to-show-pdf="true"
+          content-type="button"
+          :is-link="true"
+          :pdf-source="filePath + row.pdfPath"
         />
-        <el-button @click="deleteRecord(row,index,done)"
-                   text
-                   type="primary"
-        >删除</el-button>
+        <el-button
+          @click="deleteRecord(row, index, done)"
+          text
+          icon="el-icon-delete"
+          type="primary"
+          >删除</el-button
+        >
       </template>
     </avue-crud>
 
-
     <ExcelUpload ref="uploadRef" @finished="uploadFinished" />
   </div>
   <CommonTable
-      ref="ctableRef"
-      tableTitle="BOM添加"
-      tableType="MARTERIAL"
-      @selected-sure="onSelectedFinish"
+    ref="ctableRef"
+    tableTitle="BOM添加"
+    tableType="MARTERIAL"
+    @selected-sure="onSelectedFinish"
   />
 </template>
 <script setup lang="ts">
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import { useCommonStoreHook, useDictionaryStore } from "@/store";
-import {updateDrawaing} from "@/api/drawing";
+import { updateDrawaing } from "@/api/drawing";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import PDFView from "@/components/PDFView/index.vue";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -78,34 +80,39 @@ const fileUrl = ref(""); //单文件
 const pdfUrlList = ref([]);
 const srcList = ref([]);
 const fileNameList = ref([]);
-const testFiles =()=>{
+const testFiles = () => {
   form.value.pdfPathList = pdfUrlList.value;
   form.value.drawingPathList = srcList.value;
   form.value.drawingPath = srcList.value[0];
-  form.value.fileNameList=fileNameList.value;
-}
+  form.value.fileNameList = fileNameList.value;
+};
 const filePath = import.meta.env.VITE_APP_UPLOAD_URL;
 const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const ctableRef=ref(null);
-const changeItem = (row)=>{
-  updateDrawaing(row).then(
-      ()=>{
-        ElMessage.success("操作成功")
-        dataList()
-      }
-  );
-}
+const ctableRef = ref(null);
+const changeItem = (row) => {
+  updateDrawaing(row).then(() => {
+    ElMessage.success("操作成功");
+    dataList();
+  });
+};
 
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/base/drawing",
-    });
-const { dataEditList, createRow, updateRow, deleteRow, searchChange, dataList,resetChange } =
-    Methords; //增删改查
+  useCrud({
+    src: "/api/v1/base/drawing",
+  });
+const {
+  dataEditList,
+  createRow,
+  updateRow,
+  deleteRow,
+  searchChange,
+  dataList,
+  resetChange,
+} = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
@@ -125,12 +132,11 @@ onMounted?.(() => {
 });
 
 const onSelectedFinish = (selectedValue) => {
-  form.value.associationCode=selectedValue.materialCode;
-  form.value.associationName=selectedValue.materialCode;
-  form.value.materialCode=selectedValue.materialCode;
+  form.value.associationCode = selectedValue.materialCode;
+  form.value.associationName = selectedValue.materialCode;
+  form.value.materialCode = selectedValue.materialCode;
 };
 
-
 /**
  * 上传excel相关
  */
@@ -141,98 +147,147 @@ const uploadFinished = () => {
   dataEditList();
 };
 
-
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   selection: false,
-  viewBtn:false,
-  editBtn:false,
-  delBtn:false,
-  menu:true,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  menu: true,
   column: [
-    { label: "图纸编号", prop: "drawingCode", width: 150,search: true,overHidden: true ,rules: [{
-        required: true,
-        message: "请填写图纸编号",
-        trigger: "blur"
-      }],},
-    { label: "图纸名称", prop: "drawingTitle", width: 150,overHidden: true,search: true ,rules: [{
-        required: true,
-        message: "请填写图纸名称",
-        trigger: "blur"
-      }],},
-    { label: "物料编号", prop: "associationCode", width: 150,search: true,overHidden: true ,editDisplay: false,addDisplay: false,
-      rules: [{
-        required: true,
-        message: "请填写物料编号",
-        trigger: "blur"
-      }],
-     },
+    {
+      label: "图纸编号",
+      prop: "drawingCode",
+      width: 150,
+      search: true,
+      overHidden: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写图纸编号",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "图纸名称",
+      prop: "drawingTitle",
+      width: 150,
+      overHidden: true,
+      search: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写图纸名称",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "物料编号",
+      prop: "associationCode",
+      width: 150,
+      search: true,
+      overHidden: true,
+      editDisplay: false,
+      addDisplay: false,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料编号",
+          trigger: "blur",
+        },
+      ],
+    },
 
-    { label: "物料编号", prop: "materialCode", width: 150,overHidden: true ,editDisplay: false,hide:true,
-      rules: [{
-        required: true,
-        message: "请填写物料编号",
-        trigger: "blur"
-      }],
-      click(){
+    {
+      label: "物料编号",
+      prop: "materialCode",
+      width: 150,
+      overHidden: true,
+      editDisplay: false,
+      hide: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料编号",
+          trigger: "blur",
+        },
+      ],
+      click() {
         if (ctableRef.value) {
           ctableRef.value.startSelect();
         }
-      }},
-    { label: "物料名称", prop: "associationName", width: 180,search: true,overHidden: true ,disabled:true,rules: [{
-        required: true,
-        message: "请填写物料名称",
-        trigger: "blur"
-      }] },
+      },
+    },
+    {
+      label: "物料名称",
+      prop: "associationName",
+      width: 180,
+      search: true,
+      overHidden: true,
+      disabled: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料名称",
+          trigger: "blur",
+        },
+      ],
+    },
     {
       label: "图纸类型",
       prop: "drawingDictValue",
       search: true,
       filterable: true,
-      type: 'select',
-      width: 100,overHidden: true,
+      type: "select",
+      width: 100,
+      overHidden: true,
       dicUrl: dictDataUtil.request_url + "drawing_type",
       props: { label: "dictLabel", value: "dictValue" },
-      rules: [{
-        required: true,
-        message: "请选择物料属性",
-        trigger: "blur"
-      }],
+      rules: [
+        {
+          required: true,
+          message: "请选择物料属性",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "文件",
       prop: "drawingPath",
       span: 24,
       slot: true,
-      hide:true,
-      rules: [{
-        required: true,
-        message: "请选择文件",
-        trigger: "blur"
-      }],
+      hide: true,
+      rules: [
+        {
+          required: true,
+          message: "请选择文件",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "文件名称",
       prop: "fileName",
       span: 24,
-      width:120,
-      overHidden:true,
-      display:false,
+      width: 120,
+      overHidden: true,
+      display: false,
     },
     {
       label: "文件数组",
       prop: "drawingPathList",
       span: 24,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     {
       label: "pdf数组",
       prop: "pdfPathList",
       span: 24,
-      hide:true,
-      display:false,
-
+      hide: true,
+      display: false,
     },
 
     {
@@ -240,8 +295,8 @@ option.value = Object.assign(option.value, {
       prop: "fileNameList",
       span: 24,
       slot: true,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     /*{ label: "文件",
       prop: "drawing",
@@ -254,35 +309,36 @@ option.value = Object.assign(option.value, {
     {
       label: "版本",
       prop: "drawingVersion",
-      type:"number",
-      precision:1,
-      rules: [{
-        required: true,
-        message: "版本号不能为空",
-        trigger: "blur"
-      }]
-
-
+      type: "number",
+      precision: 1,
+      rules: [
+        {
+          required: true,
+          message: "版本号不能为空",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "创建时间",
       prop: "created",
-      width:120,
-      overHidden:true,
-      display:false,
+      width: 120,
+      overHidden: true,
+      display: false,
     },
-    { label: "启用状态",
-      slot:true,
-      headerAlign: 'center',
+    {
+      label: "启用状态",
+      slot: true,
+      headerAlign: "center",
       prop: "enable",
       width: 100,
-      addDisplay: false
+      addDisplay: false,
     },
   ],
 });
 
-const deleteRecord=(row,index,done)=>{
-  deleteRow(row,index,done);
+const deleteRecord = (row, index, done) => {
+  deleteRow(row, index, done);
   dataEditList();
-}
+};
 </script>

+ 8 - 6
src/views/base/materials/index.vue

@@ -27,12 +27,14 @@
         ></template
       >
       <template #menu="{ row, index, type }">
-        <el-button @click="binding(row)" icon="el-icon-money" text type="primary"
-          >BOM</el-button
-        >
-        <el-button @click="drawing(row)" icon="el-icon-notebook" text type="primary"
-          >图纸</el-button
-        >
+        <el-button @click="binding(row)" text type="primary"
+          >BOM
+          <template #icon> <svg-icon icon-class="BOM"></svg-icon> </template
+        ></el-button>
+        <el-button @click="drawing(row)" text type="primary"
+          >图纸<template #icon>
+            <svg-icon icon-class="tuzhi"></svg-icon> </template
+        ></el-button>
       </template>
 
       <template #menu-right="{}">

+ 123 - 119
src/views/base/modeling/production-line/index.vue

@@ -23,15 +23,16 @@
           icon="el-icon-delete"
           :size="size"
           @click="multipleDelete"
-        >删除</el-button
+          >删除</el-button
         >
       </template>
-      <template #menu="{row,index,type}">
-        <el-button @click="binding(row)"
-                   icon="el-icon-link"
-                   text
-                   type="primary"
-        >产能</el-button>
+      <template #menu="{ row, index, type }">
+        <el-button @click="binding(row)" text type="primary"
+          >产能
+          <template #icon>
+            <svg-icon icon-class="channeng"></svg-icon>
+          </template>
+        </el-button>
       </template>
     </avue-crud>
     <el-dialog
@@ -41,7 +42,7 @@
       @close="dialog.visible = false"
       :destroy-on-close="true"
     >
-      <capacity-page  :productionLineId="productionLine.id"/>
+      <capacity-page :productionLineId="productionLine.id" />
     </el-dialog>
   </div>
   <CommonTable
@@ -52,127 +53,130 @@
   />
 </template>
 <script setup>
-  import { ref, getCurrentInstance } from "vue";
-  import { useCrud } from "@/hooks/userCrud";
-  import ButtonPermKeys from "@/common/configs/buttonPermission";
-  import { useCommonStoreHook } from "@/store";
-  const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook } from "@/store";
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 
-  const test = () => {
-    isShowTable.value = true;
-    tableType.value = tableType.value == 1 ? 2 : 1;
-  };
-  const dialog = reactive({
-    title: "产能",
-    visible: false,
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
+const dialog = reactive({
+  title: "产能",
+  visible: false,
+});
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/base/productionLine/list",
   });
-  // 传入一个url,后面不带/
-  const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/base/productionLine/list",
-    });
-  const { dataList, 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 ctableRef=ref(null);
-  const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+const { dataList, 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 ctableRef = ref(null);
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
-  onMounted(() => {
-    // console.log("crudRef", crudRef)
-    dataList();
-  });
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  dataList();
+});
 
-  /**
-   * 上传excel相关
-   */
-  const uploadRef = ref(null);
-  const uploadFinished = () => {
-    // 上传完成后的刷新操作
-    page.currentPage = 1;
-    dataList();
-  };
-  const importExcelData = () => {
-    if (uploadRef.value) {
-      uploadRef.value.show("/api/v1/plan/order/import");
-    }
-  };
-  const productionLine=ref(null);
-  const binding=(row)=>{
-    productionLine.value=row;
-    dialog.visible=true;
+/**
+ * 上传excel相关
+ */
+const uploadRef = ref(null);
+const uploadFinished = () => {
+  // 上传完成后的刷新操作
+  page.currentPage = 1;
+  dataList();
+};
+const importExcelData = () => {
+  if (uploadRef.value) {
+    uploadRef.value.show("/api/v1/plan/order/import");
   }
+};
+const productionLine = ref(null);
+const binding = (row) => {
+  productionLine.value = row;
+  dialog.visible = true;
+};
 
-  const onSelectedFinish=(selectedValue)=>{
-    form.value.manager=selectedValue.userName;
-  }
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    selection: true,
-    column: [
-      {
-        label: "产线名称",
-        prop: "name",
-        search: true,
-        overHidden:true,
-        span:24,
-        rules: [{
+const onSelectedFinish = (selectedValue) => {
+  form.value.manager = selectedValue.userName;
+};
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: true,
+  column: [
+    {
+      label: "产线名称",
+      prop: "name",
+      search: true,
+      overHidden: true,
+      span: 24,
+      rules: [
+        {
           required: true,
           message: "请填写产线名称",
-          trigger: "blur"
-        }],
-      },
-      {
-        label: "负责人",
-        prop: "manager",
-        span:24,
-        rules: [{
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "负责人",
+      prop: "manager",
+      span: 24,
+      rules: [
+        {
           required: true,
           message: "请选择产线负责人",
-          trigger: "blur"
-        }],
-        click: ({ value, column }) => {
-          ctableRef.value.startSelect();
+          trigger: "blur",
         },
+      ],
+      click: ({ value, column }) => {
+        ctableRef.value.startSelect();
       },
-      {
-        label: "产线位置",
-        prop: "position",
-        span:24,
-        overHidden:true,
-      },
-      {
-        label: "所属车间",
-        prop: "workShopName",
-        overHidden:true,
-        display:false
-      },
-      {
-        label: "产线描述",
-        overHidden:true,
-        prop: "remark",
-        type:"textarea",
-        span:24,
-      },
-      {
-        label: "创建人",
-        prop: "creator",
-        display:false
-      },
-      {
-        label: "创建时间",
-        prop: "created",
-        overHidden:true,
-        display:false
-      },
-    ],
-  });
+    },
+    {
+      label: "产线位置",
+      prop: "position",
+      span: 24,
+      overHidden: true,
+    },
+    {
+      label: "所属车间",
+      prop: "workShopName",
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "产线描述",
+      overHidden: true,
+      prop: "remark",
+      type: "textarea",
+      span: 24,
+    },
+    {
+      label: "创建人",
+      prop: "creator",
+      display: false,
+    },
+    {
+      label: "创建时间",
+      prop: "created",
+      overHidden: true,
+      display: false,
+    },
+  ],
+});
 </script>
-

+ 228 - 220
src/views/base/modeling/station/index.vue

@@ -36,15 +36,14 @@
           icon="el-icon-delete"
           :size="size"
           @click="multipleDelete"
-        >删除</el-button
+          >删除</el-button
         >
       </template>
-      <template #menu="{row,index,type}">
-        <el-button @click="binding(row)"
-                   icon="el-icon-ticket"
-                   text
-                   type="primary"
-        >设备</el-button>
+      <template #menu="{ row, index, type }">
+        <el-button @click="binding(row)" text type="primary"
+          >设备
+          <template #icon> <svg-icon icon-class="shebei"></svg-icon> </template
+        ></el-button>
       </template>
     </avue-crud>
     <el-dialog
@@ -54,7 +53,7 @@
       @close="dialog.visible = false"
       :destroy-on-close="true"
     >
-      <station-page  :stationId="stationDevice.id"/>
+      <station-page :stationId="stationDevice.id" />
     </el-dialog>
     <CommonTable
       ref="ctableRef"
@@ -65,38 +64,47 @@
   </div>
 </template>
 <script setup="ts">
-  import { ref, getCurrentInstance } from "vue";
-  import { useCrud } from "@/hooks/userCrud";
-  import ButtonPermKeys from "@/common/configs/buttonPermission";
-  import { useCommonStoreHook } from "@/store";
-  import { updateStation } from "@/api/station";
-  const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-  import { useDictionaryStore } from "@/store";
-  const { dicts } = useDictionaryStore();
-  const test = () => {
-    isShowTable.value = true;
-    tableType.value = tableType.value == 1 ? 2 : 1;
-  };
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook } from "@/store";
+import { updateStation } from "@/api/station";
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+import { useDictionaryStore } from "@/store";
+const { dicts } = useDictionaryStore();
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
 
-  // 传入一个url,后面不带/
-  const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/base/station",
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/base/station",
+  });
+const { dataList, 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,
+// });
+function rowSave(form, done, loading) {
+  const parts = form.stationIp.split(".");
+  if (parts.length !== 4) {
+    ElMessage({
+      message: "工位ip格式不正确",
+      type: "error",
     });
-  const { dataList, 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,
-  // });
-  function rowSave(form,done,loading) {
-    const parts = form.stationIp.split('.');
-    if (parts.length !== 4) {
+    loading();
+    return false;
+  }
+  for (const part of parts) {
+    if (isNaN(part) || part < 0 || part > 255) {
       ElMessage({
         message: "工位ip格式不正确",
         type: "error",
@@ -104,211 +112,211 @@
       loading();
       return false;
     }
-    for (const part of parts) {
-      if (isNaN(part) || part < 0 || part > 255) {
-        ElMessage({
-          message: "工位ip格式不正确",
-          type: "error",
-        });
-        loading();
-        return false;
-      }
-    }
-    createRow(form,done,loading);
-
   }
-  const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+  createRow(form, done, loading);
+}
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
-  onMounted(() => {
-    // console.log("crudRef", crudRef)
-    dataList();
-  });
-  const ctableRef=ref(null);
-  /**
-   * 上传excel相关
-   */
-  const uploadRef = ref(null);
-  const uploadFinished = () => {
-    // 上传完成后的刷新操作
-    page.currentPage = 1;
-    dataList();
-  };
-  const importExcelData = () => {
-    if (uploadRef.value) {
-      uploadRef.value.show("/api/v1/base/station");
-    }
-  };
-  const dialog = reactive({
-    title: "设备绑定",
-    visible: false,
-  });
-  const stationDevice=ref(null);
-  const binding=(row)=>{
-    dialog.visible=true;
-    stationDevice.value=row;
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  dataList();
+});
+const ctableRef = ref(null);
+/**
+ * 上传excel相关
+ */
+const uploadRef = ref(null);
+const uploadFinished = () => {
+  // 上传完成后的刷新操作
+  page.currentPage = 1;
+  dataList();
+};
+const importExcelData = () => {
+  if (uploadRef.value) {
+    uploadRef.value.show("/api/v1/base/station");
   }
-  const onSelectedFinish=(selectedValue)=>{
-    form.value.manager=selectedValue.userName;
-    form.value.managerId=selectedValue.id;
-  }
-  const stationUpdate=ref({});
-  const changeItem=(row)=>{
-    stationUpdate.value.id=row.id;
-    stationUpdate.value.enable=row.enable;
-    updateStation(stationUpdate.value).then((data) => {
-      dataList();
-      ElMessage({
-        message: data.msg,
-        type: "success",
-      });
-
+};
+const dialog = reactive({
+  title: "设备绑定",
+  visible: false,
+});
+const stationDevice = ref(null);
+const binding = (row) => {
+  dialog.visible = true;
+  stationDevice.value = row;
+};
+const onSelectedFinish = (selectedValue) => {
+  form.value.manager = selectedValue.userName;
+  form.value.managerId = selectedValue.id;
+};
+const stationUpdate = ref({});
+const changeItem = (row) => {
+  stationUpdate.value.id = row.id;
+  stationUpdate.value.enable = row.enable;
+  updateStation(stationUpdate.value).then((data) => {
+    dataList();
+    ElMessage({
+      message: data.msg,
+      type: "success",
     });
-
-  }
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    selection: true,
-    column: [
-      {
-        label: "工位编号",
-        prop: "stationCode",
-        overHidden: true,
-        width:120,
-        search: true,
-        rules: [{
+  });
+};
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: true,
+  column: [
+    {
+      label: "工位编号",
+      prop: "stationCode",
+      overHidden: true,
+      width: 120,
+      search: true,
+      rules: [
+        {
           required: true,
           message: "请填写工位编号",
-          trigger: "blur"
-        }],
-      },
-      {
-        label: "工位名称",
-        width:120,
-        prop: "name",
-        search: true,
-        overHidden: true,
-        rules: [{
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "工位名称",
+      width: 120,
+      prop: "name",
+      search: true,
+      overHidden: true,
+      rules: [
+        {
           required: true,
           message: "请填写工位名称",
-          trigger: "blur"
-        }],
-      },
-      {
-        label: "工位类型",
-        prop: "stationDictValue",
-        width:90,
-        search: true,
-        overHidden: true,
-        rules: [{
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "工位类型",
+      prop: "stationDictValue",
+      width: 90,
+      search: true,
+      overHidden: true,
+      rules: [
+        {
           required: true,
           message: "请选择工位类型",
-          trigger: "blur"
-        }],
-        type: 'select',
-        dicData:dicts.station_type,
-        searchClearable: false, //可清空的输入框,默认为true
-        filterable: true, //添加filterable属性即可启用搜索功能
-        props: {
-          label: "dictLabel", // 下拉菜单显示的字段
-          value: "dictValue" // 下拉菜单值的字段
+          trigger: "blur",
         },
+      ],
+      type: "select",
+      dicData: dicts.station_type,
+      searchClearable: false, //可清空的输入框,默认为true
+      filterable: true, //添加filterable属性即可启用搜索功能
+      props: {
+        label: "dictLabel", // 下拉菜单显示的字段
+        value: "dictValue", // 下拉菜单值的字段
       },
-      {
-        label: "操作方式",
-        prop: "operateDictValue",
-        width:90,
-        overHidden: true,
-        rules: [{
+    },
+    {
+      label: "操作方式",
+      prop: "operateDictValue",
+      width: 90,
+      overHidden: true,
+      rules: [
+        {
           required: true,
           message: "操作方式",
-          trigger: "blur"
-        }],
-        type: 'select',
-        dicData:dicts.station_operate_type,
-        props: {
-          label: "dictLabel", // 下拉菜单显示的字段
-          value: "dictValue" // 下拉菜单值的字
+          trigger: "blur",
         },
+      ],
+      type: "select",
+      dicData: dicts.station_operate_type,
+      props: {
+        label: "dictLabel", // 下拉菜单显示的字段
+        value: "dictValue", // 下拉菜单值的字
       },
-      {
-        label: "负责人",
-        prop: "manager",
-        overHidden: true,
-        width:90,
-        rules: [{
+    },
+    {
+      label: "负责人",
+      prop: "manager",
+      overHidden: true,
+      width: 90,
+      rules: [
+        {
           required: true,
           message: "请选择负责人",
-          trigger: "blur"
-        }],
-        click: ({ value, column }) => {
-          ctableRef.value.startSelect();
+          trigger: "blur",
         },
+      ],
+      click: ({ value, column }) => {
+        ctableRef.value.startSelect();
       },
-      {
-        label: "负责人id",
-        prop: "managerId",
-        hide:true,
-        display:false,
-
-      },
-      {
-        label: "所属产线",
-        prop: "productionLineName",
-        width:90,
-        overHidden: true,
-        display:false
-      },
-      {
-        label: "工位地址",
-        prop: "position",
-        width:90,
-        overHidden: true,
-        rules: [{
+    },
+    {
+      label: "负责人id",
+      prop: "managerId",
+      hide: true,
+      display: false,
+    },
+    {
+      label: "所属产线",
+      prop: "productionLineName",
+      width: 90,
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "工位地址",
+      prop: "position",
+      width: 90,
+      overHidden: true,
+      rules: [
+        {
           required: true,
           message: "请填写工位地址",
-          trigger: "blur"
-        }],
-      },
-      {
-        label: "IP地址",
-        prop: "stationIp",
-        overHidden: true,
-        width:90,
-        rules: [{
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "IP地址",
+      prop: "stationIp",
+      overHidden: true,
+      width: 90,
+      rules: [
+        {
           required: true,
           message: "请填写工位IP地址",
           trigger: "blur",
-        }],
-
-      },
-      { label: "启用状态",
-        slot:true,
-        headerAlign: 'center',
-        prop: "enable",
-        width: 100,
-        display: false
-      },
-      {
-        label: "工位描述",
-        width:90,
-        overHidden: true,
-        prop: "remark",
-        type: 'textarea',
-        span: 24,
-      },
-      {
-        label: "创建人",
-        prop: "creator",
-        overHidden: true,
-        display:false
-      },
-      {
-        label: "创建时间",
-        prop: "created",
-        overHidden: true,
-        display:false
-      },
-    ]
-  });
+        },
+      ],
+    },
+    {
+      label: "启用状态",
+      slot: true,
+      headerAlign: "center",
+      prop: "enable",
+      width: 100,
+      display: false,
+    },
+    {
+      label: "工位描述",
+      width: 90,
+      overHidden: true,
+      prop: "remark",
+      type: "textarea",
+      span: 24,
+    },
+    {
+      label: "创建人",
+      prop: "creator",
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "创建时间",
+      prop: "created",
+      overHidden: true,
+      display: false,
+    },
+  ],
+});
 </script>
-

+ 162 - 112
src/views/device/allocate/index.vue

@@ -1,20 +1,20 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
       <template #menu-left="{ size }">
         <el-button
@@ -27,76 +27,125 @@
           >删除</el-button
         >
       </template>
-      <template #menu="{size,row,index}">
-        <el-button @click="maintenance(row,0)"
-                   icon="el-icon-check"
-                   text
-                   v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.allocate_audit]"
-                   type="primary"
-                   :size="size">流程</el-button>
-        <el-button @click="maintenance(row,1)"
-                   icon="el-icon-fold"
-                   text
-                   type="primary"
-                   :size="size">记录</el-button>
-        <el-button @click="handleExport(row)"
-                   icon="el-icon-download"
-                   text
-                   v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.allocate_export]"
-                   type="primary"
-                   :size="size">导出履历</el-button>
+      <template #menu="{ size, row, index }">
+        <el-button
+          @click="maintenance(row, 0)"
+          text
+          v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.allocate_audit]"
+          type="primary"
+          :size="size"
+          >流程
+          <template #icon>
+            <svg-icon icon-class="liucheng"></svg-icon>
+          </template>
+        </el-button>
+        <el-button
+          @click="maintenance(row, 1)"
+          icon="el-icon-fold"
+          text
+          type="primary"
+          :size="size"
+          >记录</el-button
+        >
+        <el-button
+          @click="handleExport(row)"
+          icon="el-icon-download"
+          text
+          v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.allocate_export]"
+          type="primary"
+          :size="size"
+          >导出履历</el-button
+        >
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="850px"
-        @close="dialog.visible = false"
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="850px"
+      @close="dialog.visible = false"
     >
-      <device-page  @deviceInfo="deviceInfo"/>
+      <device-page @deviceInfo="deviceInfo" />
     </el-dialog>
 
     <el-dialog
-        v-model="dialog1.visible"
-        :title="dialog1.title"
-        width="750px"
-        height="80%"
-        @close="dialog1.visible = false">
-      <el-timeline style="max-width: 500px;margin-left: 100px">
+      v-model="dialog1.visible"
+      :title="dialog1.title"
+      width="750px"
+      height="80%"
+      @close="dialog1.visible = false"
+    >
+      <el-timeline style="max-width: 500px; margin-left: 100px">
         <el-timeline-item center type="success" placement="top">
           <el-card>
             <h4>调拨申请</h4>
-            <p>设备编号: {{maintenanceInfo.deviceNo}}</p>
-            <p>设备名称: {{maintenanceInfo.deviceName}}</p>
-            <p>申请部门: {{maintenanceInfo.creator}}</p>
-            <p>申请人员: {{maintenanceInfo.creator}}</p>
-            <p>调拨周期: {{maintenanceInfo.allocateCycle}}天</p>
-            <p>调拨目标位置: {{maintenanceInfo.deviceToPosition}}</p>
-            <p>申请时间: {{maintenanceInfo.created}}</p>
+            <p>设备编号: {{ maintenanceInfo.deviceNo }}</p>
+            <p>设备名称: {{ maintenanceInfo.deviceName }}</p>
+            <p>申请部门: {{ maintenanceInfo.creator }}</p>
+            <p>申请人员: {{ maintenanceInfo.creator }}</p>
+            <p>调拨周期: {{ maintenanceInfo.allocateCycle }}天</p>
+            <p>调拨目标位置: {{ maintenanceInfo.deviceToPosition }}</p>
+            <p>申请时间: {{ maintenanceInfo.created }}</p>
           </el-card>
         </el-timeline-item>
 
-        <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 0 ? 'primary' : maintenanceInfo.state === 0 ? 'info' : 'success'">
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 0
+              ? 'primary'
+              : maintenanceInfo.state === 0
+                ? 'info'
+                : 'success'
+          "
+        >
           <el-card v-if="viewPage">
             <h4>调拨审批</h4>
-            <p>审批人员: {{maintenanceInfo.auditUser}}</p>
-            <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 1 ? '通过' : '不通过') : ''}}</p>
-            <p>审批时间: {{maintenanceInfo.auditTime}}</p>
+            <p>审批人员: {{ maintenanceInfo.auditUser }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser
+                  ? maintenanceInfo.auditResult === 1
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
+            <p>审批时间: {{ maintenanceInfo.auditTime }}</p>
           </el-card>
           <el-card v-if="!viewPage">
             <h4>调拨审批</h4>
-            <el-form ref="maintenanceInfoForm"  :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
+            <el-form
+              ref="maintenanceInfoForm"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules"
+            >
               <el-form-item label="审批人员" prop="auditUser">
-                <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.auditUser" />
+                <el-input
+                  :disabled="maintenanceInfo.state !== 0"
+                  v-model="maintenanceInfo.auditUser"
+                />
               </el-form-item>
               <el-form-item label="审批结果">
-                <el-radio-group :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.auditResult" class="ml-4">
-                  <el-radio :value=1>通过</el-radio>
-                  <el-radio :value=2>驳回</el-radio>
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 0"
+                  v-model="maintenanceInfo.auditResult"
+                  class="ml-4"
+                >
+                  <el-radio :value="1">通过</el-radio>
+                  <el-radio :value="2">驳回</el-radio>
                 </el-radio-group>
               </el-form-item>
               <el-form-item style="margin-left: 45%">
-                <el-button type="primary" v-if="maintenanceInfo.state === 0" @click="maintenanceSubmit">保存</el-button>
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 0"
+                  @click="maintenanceSubmit"
+                  >保存</el-button
+                >
               </el-form-item>
             </el-form>
           </el-card>
@@ -110,8 +159,8 @@ import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
 import { checkPerm } from "@/directive/permission";
-import {getUserList} from "@/api/system/user"
-import {allocateAudit,allocateExport} from "@/api/device/index";
+import { getUserList } from "@/api/system/user";
+import { allocateAudit, allocateExport } from "@/api/device/index";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -125,7 +174,7 @@ const permission = reactive({
   editBtn: checkPerm(ButtonPermKeys.DEVICE.BTNS.allocate_edit),
   menu: true,
 });
-const viewPage = ref(true)
+const viewPage = ref(true);
 
 const dialog = reactive({
   title: "设备选择",
@@ -135,51 +184,52 @@ const dialog1 = reactive({
   title: "调拨详情",
   visible: false,
 });
-const userList = ref([])
+const userList = ref([]);
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/device/allocate",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 const deviceInfo = (value) => {
-  form.value.deviceNo = value.deviceNo
-  form.value.deviceName =value.deviceName
-  form.value.deviceType = value.deviceType
-  form.value.devicePosition = value.devicePosition
-  form.value.oldHead = value.head
-  form.value.devicePosition = value.devicePosition
-  form.value.oldDept = value.deptId
-  dialog.visible = false
-}
-const maintenanceInfo = ref(null)
-const maintenance = (row,type)=>{
-  viewPage.value = type === 0 ? false : true
-  maintenanceInfo.value = row
-  maintenanceInfo.value.auditResult = 1
-  dialog1.visible = true
-}
-const queryUserList = ()=>{
-  getUserList({}).then((data)=>{
-    userList.value = data.data
-  })
-}
+  form.value.deviceNo = value.deviceNo;
+  form.value.deviceName = value.deviceName;
+  form.value.deviceType = value.deviceType;
+  form.value.devicePosition = value.devicePosition;
+  form.value.oldHead = value.head;
+  form.value.devicePosition = value.devicePosition;
+  form.value.oldDept = value.deptId;
+  dialog.visible = false;
+};
+const maintenanceInfo = ref(null);
+const maintenance = (row, type) => {
+  viewPage.value = type === 0 ? false : true;
+  maintenanceInfo.value = row;
+  maintenanceInfo.value.auditResult = 1;
+  dialog1.visible = true;
+};
+const queryUserList = () => {
+  getUserList({}).then((data) => {
+    userList.value = data.data;
+  });
+};
 const handleExport = (row) => {
   allocateExport(row.deviceNo).then((response) => {
     downFile(response);
   });
-}
+};
 /** 文件下载 */
 const downFile = (response) => {
   const fileData = response.data;
   const fileName = decodeURI(
-      response.headers["content-disposition"].split(";")[1].split("=")[1]
+    response.headers["content-disposition"].split(";")[1].split("=")[1]
   );
   const fileType =
-      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8";
+    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8";
   const blob = new Blob([fileData], { type: fileType });
   const downloadUrl = window.URL.createObjectURL(blob);
   const downloadLink = document.createElement("a");
@@ -189,31 +239,29 @@ const downFile = (response) => {
   downloadLink.click();
   document.body.removeChild(downloadLink);
   window.URL.revokeObjectURL(downloadUrl);
-}
-const maintenanceInfoForm = ref('maintenanceInfoForm')
-const maintenanceSubmit =()=>{
+};
+const maintenanceInfoForm = ref("maintenanceInfoForm");
+const maintenanceSubmit = () => {
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm.value.validate((isValid, invalidFields) => {
     if (isValid) {
-      allocateAudit(maintenanceInfo.value).then((data)=>{
+      allocateAudit(maintenanceInfo.value).then((data) => {
         ElMessage({
           message: data.msg,
           type: "success",
         });
-        dialog1.visible = false
-        dataList()
-      })
+        dialog1.visible = false;
+        dataList();
+      });
     }
-  })
-}
+  });
+};
 const rules = reactive({
-  auditUser: [
-    { required: true, message: '审核人员不能为空', trigger: 'blur' }
-  ],
+  auditUser: [{ required: true, message: "审核人员不能为空", trigger: "blur" }],
   handleContent: [
-    { required: true, message: '维修内容不能为空', trigger: 'blur' }
-  ]
-})
+    { required: true, message: "维修内容不能为空", trigger: "blur" },
+  ],
+});
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   delBtn: false,
@@ -243,8 +291,8 @@ option.value = Object.assign(option.value, {
         },
       ],
       click: ({ value, column }) => {
-        if(column.boxType){
-          dialog.visible = true
+        if (column.boxType) {
+          dialog.visible = true;
         }
       },
     },
@@ -264,9 +312,7 @@ option.value = Object.assign(option.value, {
       overHidden: true,
       addDisabled: true,
       search: true,
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.device_type,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -290,7 +336,7 @@ option.value = Object.assign(option.value, {
       props: {
         label: "deptName",
         value: "id",
-      }
+      },
     },
     {
       label: "新部门",
@@ -371,7 +417,11 @@ option.value = Object.assign(option.value, {
       prop: "state",
       display: false,
       type: "select",
-      dicData: [{label: '待审核',value:0},{label: '通过',value:1},{label: '驳回',value:2}],
+      dicData: [
+        { label: "待审核", value: 0 },
+        { label: "通过", value: 1 },
+        { label: "驳回", value: 2 },
+      ],
     },
     {
       label: "申请人",
@@ -392,6 +442,6 @@ option.value = Object.assign(option.value, {
 
 onMounted(() => {
   dataList();
-  queryUserList()
+  queryUserList();
 });
 </script>

+ 124 - 112
src/views/device/instance/index.vue

@@ -1,22 +1,22 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
-<!--      <template #collect="scope">
+      <!--      <template #collect="scope">
         <el-switch
             active-value="1"
             inactive-value="0"
@@ -29,14 +29,17 @@
             style="&#45;&#45;el-switch-on-color: #13ce66; &#45;&#45;el-switch-off-color: #ff4949"
         />
       </template>-->
-      <template #menu="{size,row,index}">
+      <template #menu="{ size, row, index }">
         <el-button
-            v-hasPerm="[buttonPermission.DEVICE.BTNS.maintenance_edit]"
-            type="primary"
-            link
-            size="small"
-            @click="showParamsPage(row)"
-        ><i-ep-edit />模型
+          v-hasPerm="[buttonPermission.DEVICE.BTNS.maintenance_edit]"
+          type="primary"
+          link
+          size="small"
+          @click="showParamsPage(row)"
+          >模型
+          <template #icon>
+            <svg-icon icon-class="moxing"></svg-icon>
+          </template>
         </el-button>
       </template>
       <template #menu-left="{ size }">
@@ -51,11 +54,11 @@
       </template>
       <template #menu-right="{}">
         <el-dropdown split-button
-        >导入
+          >导入
           <template #dropdown>
             <el-dropdown-menu>
               <el-dropdown-item
-                  @click="downloadTemplate('/api/v1/device/template')"
+                @click="downloadTemplate('/api/v1/device/template')"
               >
                 <i-ep-download />下载模板
               </el-dropdown-item>
@@ -65,62 +68,64 @@
             </el-dropdown-menu>
           </template>
         </el-dropdown>
-        <el-button
-            class="ml-3"
-            @click="exportData('/api/v1/device/export')"
-        >
+        <el-button class="ml-3" @click="exportData('/api/v1/device/export')">
           <template #icon> <i-ep-download /> </template>导出
         </el-button>
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="30%"
-        @close="dialog.visible = false"
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="30%"
+      @close="dialog.visible = false"
     >
-      <el-button type="primary" @click="addItem" icon="el-icon-plus" style="margin-left:15px;width:25px;height:25px;" circle />
+      <el-button
+        type="primary"
+        @click="addItem"
+        icon="el-icon-plus"
+        style="margin-left: 15px; width: 25px; height: 25px"
+        circle
+      />
       <el-table
-          v-loading="loading"
-          ref="ruleListRef"
-          :data="pageData"
-          style="height: 280px"
+        v-loading="loading"
+        ref="ruleListRef"
+        :data="pageData"
+        style="height: 280px"
       >
-        <el-table-column
-            label="参数"
-            prop="fieldCode"
-        >
-          <template v-slot="{ row}">
-            <el-input v-model="row.fieldCode"/>
+        <el-table-column label="参数" prop="fieldCode">
+          <template v-slot="{ row }">
+            <el-input v-model="row.fieldCode" />
           </template>
         </el-table-column>
-        <el-table-column
-            label="参数名称"
-            prop="fieldLabel"
-        >
-          <template v-slot="{ row}">
-            <el-input v-model="row.fieldLabel"/>
+        <el-table-column label="参数名称" prop="fieldLabel">
+          <template v-slot="{ row }">
+            <el-input v-model="row.fieldLabel" />
           </template>
         </el-table-column>
-        <el-table-column
-            label="参数值"
-            prop="fieldValue"
-        >
-          <template v-slot="{ row}">
-            <el-input v-model="row.fieldValue"/>
+        <el-table-column label="参数值" prop="fieldValue">
+          <template v-slot="{ row }">
+            <el-input v-model="row.fieldValue" />
           </template>
         </el-table-column>
-        <el-table-column
-            label="操作"
-            align="center"
-        >
-          <template v-slot="{ row}">
-            <el-button type="danger" @click="minusItem(row)" icon="el-icon-minus" style="margin-left:15px;width:25px;height:25px;" circle />
+        <el-table-column label="操作" align="center">
+          <template v-slot="{ row }">
+            <el-button
+              type="danger"
+              @click="minusItem(row)"
+              icon="el-icon-minus"
+              style="margin-left: 15px; width: 25px; height: 25px"
+              circle
+            />
           </template>
         </el-table-column>
       </el-table>
-      <div class="dialog-footer" style="margin-top:20px"  align="center">
-        <el-button type="primary" v-if="pageData.length>0" @click="handleSubmit">保 存</el-button>
+      <div class="dialog-footer" style="margin-top: 20px" align="center">
+        <el-button
+          type="primary"
+          v-if="pageData.length > 0"
+          @click="handleSubmit"
+          >保 存</el-button
+        >
         <el-button @click="dialog.visible = false">取消</el-button>
       </div>
     </el-dialog>
@@ -131,7 +136,7 @@
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import buttonPermission from "@/common/configs/buttonPermission";
-import {configSave,configList,deviceUpdateCollect} from "@/api/device";
+import { configSave, configList, deviceUpdateCollect } from "@/api/device";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -141,64 +146,75 @@ const test = () => {
 };
 const pageData = ref([]);
 const loading = ref(false); //  加载状态
-const addItem = () =>{
-  pageData.value.push({deviceType: clickRow.value.deviceType,deviceNo: clickRow.value.deviceNo,type: 1})
-}
-const minusItem = (row) =>{
-  pageData.value = pageData.value.filter(item=>item.fieldCode !== row.fieldCode)
-}
-const changeItem =(obj,row) => {
-    deviceUpdateCollect({id: row.id,collect: row.collect,deviceNo: row.deviceNo}).then((data)=>{
-      if(data.code === '200'){
-        ElMessage.success(data.msg);
-      }else{
-        ElMessage.error(data.msg);
-      }
-    })
-}
-const clickRow = ref(null)
-const showParamsPage = (row)=>{
-  clickRow.value = row
-  configList({deviceNo: row.deviceNo}).then((data)=>{
-    pageData.value = data.data
-    dialog.visible = true
-  })
-}
+const addItem = () => {
+  pageData.value.push({
+    deviceType: clickRow.value.deviceType,
+    deviceNo: clickRow.value.deviceNo,
+    type: 1,
+  });
+};
+const minusItem = (row) => {
+  pageData.value = pageData.value.filter(
+    (item) => item.fieldCode !== row.fieldCode
+  );
+};
+const changeItem = (obj, row) => {
+  deviceUpdateCollect({
+    id: row.id,
+    collect: row.collect,
+    deviceNo: row.deviceNo,
+  }).then((data) => {
+    if (data.code === "200") {
+      ElMessage.success(data.msg);
+    } else {
+      ElMessage.error(data.msg);
+    }
+  });
+};
+const clickRow = ref(null);
+const showParamsPage = (row) => {
+  clickRow.value = row;
+  configList({ deviceNo: row.deviceNo }).then((data) => {
+    pageData.value = data.data;
+    dialog.visible = true;
+  });
+};
 const dialog = reactive({
   title: "模型设置",
   visible: false,
 });
 const handleSubmit = () => {
   //判断参数
-  let errorData = pageData.value.filter(item=>!item.fieldCode)
-  if(errorData.length > 0){
+  let errorData = pageData.value.filter((item) => !item.fieldCode);
+  if (errorData.length > 0) {
     ElMessage.warning("请填写参数");
-    return
+    return;
   }
-  errorData = pageData.value.filter(item=>!item.fieldLabel)
-  if(errorData.length > 0){
+  errorData = pageData.value.filter((item) => !item.fieldLabel);
+  if (errorData.length > 0) {
     ElMessage.warning("请填写参数名");
-    return
+    return;
   }
-  errorData = pageData.value.filter(item=>!item.fieldValue)
-  if(errorData.length > 0){
+  errorData = pageData.value.filter((item) => !item.fieldValue);
+  if (errorData.length > 0) {
     ElMessage.warning("请填写参数值");
-    return
+    return;
   }
-  configSave(pageData.value).then((data)=>{
-    if(data.code === '200'){
+  configSave(pageData.value).then((data) => {
+    if (data.code === "200") {
       ElMessage.success(data.msg);
-    }else{
+    } else {
       ElMessage.error(data.msg);
     }
-  })
+  });
 };
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/device",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
@@ -245,9 +261,7 @@ option.value = Object.assign(option.value, {
       width: 130,
       overHidden: true,
       search: true,
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.device_type,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -267,9 +281,7 @@ option.value = Object.assign(option.value, {
       width: 120,
       overHidden: true,
       search: true,
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.device_status,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.device_status,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -328,8 +340,8 @@ option.value = Object.assign(option.value, {
       prop: "meteringDate",
       type: "date",
       width: 160,
-      format: 'YYYY-MM-DD',
-      valueFormat: 'YYYY-MM-DD',
+      format: "YYYY-MM-DD",
+      valueFormat: "YYYY-MM-DD",
       overHidden: true,
       rules: [
         {
@@ -346,11 +358,11 @@ option.value = Object.assign(option.value, {
       width: 120,
       overHidden: true,
       search: true,
-      dicUrl:import.meta.env.VITE_APP_BASE_API + "/api/v1/device/pacList",
+      dicUrl: import.meta.env.VITE_APP_BASE_API + "/api/v1/device/pacList",
       props: {
         label: "deviceName",
         value: "deviceNo",
-      }
+      },
     },
     /*{
       label: "是否采集",
@@ -376,7 +388,7 @@ option.value = Object.assign(option.value, {
       props: {
         label: "deptName",
         value: "id",
-      }
+      },
     },
     {
       label: "所在车间",

+ 60 - 56
src/views/device/protocol/index.vue

@@ -1,49 +1,53 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
-      <template #menu="{row}">
+      <template #menu="{ row }">
         <el-button
-            icon="el-icon-setting"
-            text
-            @click="openDialog(row.deviceType)"
-            type="primary"
-            size="small">模型</el-button>
+          text
+          @click="openDialog(row.deviceType)"
+          type="primary"
+          size="small"
+          >模型
+          <template #icon>
+            <svg-icon icon-class="moxing"></svg-icon>
+          </template>
+        </el-button>
       </template>
-      <template #protocolState="{row}">
+      <template #protocolState="{ row }">
         <el-switch
-            active-value= '1'
-            inactive-value= '0'
-            width="60"
-            inline-prompt
-            active-text="启用"
-            inactive-text="禁用"
-            v-model="row.protocolState"
-            @click="changeItem(row)"
-            class="ml-2"
-            style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
+          active-value="1"
+          inactive-value="0"
+          width="60"
+          inline-prompt
+          active-text="启用"
+          inactive-text="禁用"
+          v-model="row.protocolState"
+          @click="changeItem(row)"
+          class="ml-2"
+          style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
         />
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="60%"
-        @close="dialog.visible = false"
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="60%"
+      @close="dialog.visible = false"
     >
       <model-page :deviceType="choiceDeviceType"></model-page>
     </el-dialog>
@@ -52,7 +56,7 @@
 <script setup>
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
-import {updateProtocol} from "@/api/device";
+import { updateProtocol } from "@/api/device";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import ModelPage from "./components/model-page.vue";
@@ -67,29 +71,32 @@ const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     dataListUrl: "/api/v1/device/protocolPage",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-const changeItem =(row) => {
-  updateProtocol({state: row.protocolState,deviceType: row.deviceType}).then((data)=>{
-    if(data.code === '200'){
-      ElMessage.success(data.msg);
-      dataList()
-    }else{
-      ElMessage.error(data.msg);
+const changeItem = (row) => {
+  updateProtocol({ state: row.protocolState, deviceType: row.deviceType }).then(
+    (data) => {
+      if (data.code === "200") {
+        ElMessage.success(data.msg);
+        dataList();
+      } else {
+        ElMessage.error(data.msg);
+      }
     }
-  })
-}
-const choiceDeviceType = ref(null)
+  );
+};
+const choiceDeviceType = ref(null);
 const dialog = reactive({
   title: "模型",
   visible: false,
 });
-const openDialog = (type) =>{
-  dialog.visible = true
-  choiceDeviceType.value = type
-}
+const openDialog = (type) => {
+  dialog.visible = true;
+  choiceDeviceType.value = type;
+};
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   delBtn: false,
@@ -105,9 +112,7 @@ option.value = Object.assign(option.value, {
       prop: "deviceType",
       type: "select",
       overHidden: true,
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.device_type,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -139,9 +144,8 @@ option.value = Object.assign(option.value, {
 });
 
 onMounted(() => {
-  search.value.protocol = "1"
+  search.value.protocol = "1";
   // console.log("crudRef", crudRef)
   dataList();
-
 });
 </script>

+ 204 - 127
src/views/device/repair/index.vue

@@ -1,20 +1,20 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
       <template #menu-left="{ size }">
         <el-button
@@ -27,13 +27,14 @@
           >删除</el-button
         >
       </template>
-      <template #menu="{size,row,index}">
-        <el-button @click="maintenance(row,0)"
-                   icon="el-icon-check"
-                   text
-                   type="primary"
-                   :size="size">流程</el-button>
-<!--        <el-button @click="maintenance(row,1)"
+      <template #menu="{ size, row, index }">
+        <el-button @click="maintenance(row, 0)" text type="primary" :size="size"
+          >流程
+          <template #icon>
+            <svg-icon icon-class="liucheng"></svg-icon>
+          </template>
+        </el-button>
+        <!--        <el-button @click="maintenance(row,1)"
                    icon="el-icon-fold"
                    text
                    type="primary"
@@ -41,105 +42,180 @@
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="850px"
-        @close="dialog.visible = false"
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="850px"
+      @close="dialog.visible = false"
     >
-      <device-page  @deviceInfo="deviceInfo"/>
+      <device-page @deviceInfo="deviceInfo" />
     </el-dialog>
 
     <el-dialog
-        v-model="dialog1.visible"
-        :title="dialog1.title"
-        width="750px"
-        height="80%"
-        @close="dialog1.visible = false">
-      <el-timeline style="max-width: 500px;margin-left: 100px">
+      v-model="dialog1.visible"
+      :title="dialog1.title"
+      width="750px"
+      height="80%"
+      @close="dialog1.visible = false"
+    >
+      <el-timeline style="max-width: 500px; margin-left: 100px">
         <el-timeline-item center type="success" placement="top">
           <el-card>
             <h4>设备报故</h4>
-            <p>设备编号: {{maintenanceInfo.deviceNo}}</p>
-            <p>设备名称: {{maintenanceInfo.deviceName}}</p>
-            <p>报故人员: {{maintenanceInfo.creator}}</p>
-            <p>故障描述: {{maintenanceInfo.bugRemark}}</p>
-            <p>报故时间: {{maintenanceInfo.created}}</p>
+            <p>设备编号: {{ maintenanceInfo.deviceNo }}</p>
+            <p>设备名称: {{ maintenanceInfo.deviceName }}</p>
+            <p>报故人员: {{ maintenanceInfo.creator }}</p>
+            <p>故障描述: {{ maintenanceInfo.bugRemark }}</p>
+            <p>报故时间: {{ maintenanceInfo.created }}</p>
           </el-card>
         </el-timeline-item>
-        <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 0 ? 'primary' : 'success'">
+        <el-timeline-item
+          center
+          placement="top"
+          :type="maintenanceInfo.state === 0 ? 'primary' : 'success'"
+        >
           <el-card v-if="viewPage">
             <h4>设备维修</h4>
-            <p>维修人员: {{maintenanceInfo.handleUser}}</p>
-            <p>维修内容: {{maintenanceInfo.handleContent}}</p>
-            <p>处理结果: {{maintenanceInfo.handleUser ? (maintenanceInfo.handleResult === 0 ? '可正常运行' : '报废') : ''}}</p>
+            <p>维修人员: {{ maintenanceInfo.handleUser }}</p>
+            <p>维修内容: {{ maintenanceInfo.handleContent }}</p>
+            <p>
+              处理结果:
+              {{
+                maintenanceInfo.handleUser
+                  ? maintenanceInfo.handleResult === 0
+                    ? "可正常运行"
+                    : "报废"
+                  : ""
+              }}
+            </p>
           </el-card>
           <el-card v-if="!viewPage">
             <h4>设备维修</h4>
-            <el-form ref="maintenanceInfoForm1" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules1">
+            <el-form
+              ref="maintenanceInfoForm1"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules1"
+            >
               <el-form-item label="维修人员" prop="handleUser">
-<!--                <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleUser" />-->
+                <!--                <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleUser" />-->
                 <el-select
-                    v-model="maintenanceInfo.handleUser"
-                    placeholder="维修人员"
-                    :disabled="maintenanceInfo.state !== 0"
-                    size="large"
-                    filterable>
+                  v-model="maintenanceInfo.handleUser"
+                  placeholder="维修人员"
+                  :disabled="maintenanceInfo.state !== 0"
+                  size="large"
+                  filterable
+                >
                   <el-option
-                      v-for="item in userList"
-                      :key="item.userName"
-                      :label="item.userName"
-                      :value="item.userName"
+                    v-for="item in userList"
+                    :key="item.userName"
+                    :label="item.userName"
+                    :value="item.userName"
                   />
                 </el-select>
               </el-form-item>
               <el-form-item label="维修内容" prop="handleContent">
-                <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.handleContent" />
+                <el-input
+                  :disabled="maintenanceInfo.state !== 0"
+                  type="textarea"
+                  :rows="2"
+                  v-model="maintenanceInfo.handleContent"
+                />
               </el-form-item>
               <el-form-item label="处理结果">
-                <el-radio-group :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleResult" class="ml-4">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 0"
+                  v-model="maintenanceInfo.handleResult"
+                  class="ml-4"
+                >
                   <el-radio :value="0">可正常运行</el-radio>
                   <el-radio :value="1">报废</el-radio>
                 </el-radio-group>
               </el-form-item>
               <el-form-item style="margin-left: 45%">
-                <el-button type="primary" v-if="maintenanceInfo.state === 0" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_repair]" :disabled="maintenanceInfo.state !== 0" @click="maintenanceSubmit1">维修</el-button>
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 0"
+                  v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_repair]"
+                  :disabled="maintenanceInfo.state !== 0"
+                  @click="maintenanceSubmit1"
+                  >维修</el-button
+                >
               </el-form-item>
             </el-form>
           </el-card>
         </el-timeline-item>
-        <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 1 ? 'primary' : maintenanceInfo.state === 0 ? 'info' : 'success'">
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 1
+              ? 'primary'
+              : maintenanceInfo.state === 0
+                ? 'info'
+                : 'success'
+          "
+        >
           <el-card v-if="viewPage">
             <h4>设备审批</h4>
-            <p>审批人员: {{maintenanceInfo.auditUser}}</p>
-            <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
+            <p>审批人员: {{ maintenanceInfo.auditUser }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser
+                  ? maintenanceInfo.auditResult === 0
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
           </el-card>
           <el-card v-if="!viewPage">
             <h4>设备审批</h4>
-            <el-form ref="maintenanceInfoForm2" v-if="maintenanceInfo.state >= 1" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules2">
+            <el-form
+              ref="maintenanceInfoForm2"
+              v-if="maintenanceInfo.state >= 1"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules2"
+            >
               <el-form-item label="审批人员" prop="auditUser">
-<!--                <el-input :disabled="maintenanceInfo.state !== 1 && readonly"  v-model="maintenanceInfo.auditUser" />-->
+                <!--                <el-input :disabled="maintenanceInfo.state !== 1 && readonly"  v-model="maintenanceInfo.auditUser" />-->
                 <el-select
-                    v-model="maintenanceInfo.auditUser"
-                    placeholder="审批人员"
-                    :disabled="maintenanceInfo.state !== 1 && readonly"
-                    size="large"
-                    filterable>
+                  v-model="maintenanceInfo.auditUser"
+                  placeholder="审批人员"
+                  :disabled="maintenanceInfo.state !== 1 && readonly"
+                  size="large"
+                  filterable
+                >
                   <el-option
-                      v-for="item in userList"
-                      :key="item.userName"
-                      :label="item.userName"
-                      :value="item.userName"
+                    v-for="item in userList"
+                    :key="item.userName"
+                    :label="item.userName"
+                    :value="item.userName"
                   />
                 </el-select>
               </el-form-item>
               <el-form-item label="审批结果">
-                <el-radio-group :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditResult" class="ml-4">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 1 && readonly"
+                  v-model="maintenanceInfo.auditResult"
+                  class="ml-4"
+                >
                   <el-radio :value="0">通过</el-radio>
                   <el-radio :value="1">不通过</el-radio>
                 </el-radio-group>
               </el-form-item>
               <el-form-item style="margin-left: 45%">
-                <el-button type="primary" v-if="maintenanceInfo.state ===1" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit]" :disabled="maintenanceInfo.state !== 1" @click="maintenanceSubmit2">审批</el-button>
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 1"
+                  v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit]"
+                  :disabled="maintenanceInfo.state !== 1"
+                  @click="maintenanceSubmit2"
+                  >审批</el-button
+                >
               </el-form-item>
             </el-form>
           </el-card>
@@ -153,8 +229,8 @@ import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
 import { checkPerm } from "@/directive/permission";
-import {getUserList} from "@/api/system/user"
-import {repair,audit} from "@/api/device/index";
+import { getUserList } from "@/api/system/user";
+import { repair, audit } from "@/api/device/index";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -168,7 +244,7 @@ const permission = reactive({
   editBtn: checkPerm(ButtonPermKeys.DEVICE.BTNS.repair_edit),
   menu: true,
 });
-const viewPage = ref(true)
+const viewPage = ref(true);
 
 const dialog = reactive({
   title: "设备选择",
@@ -178,80 +254,79 @@ const dialog1 = reactive({
   title: "设备维修",
   visible: false,
 });
-const userList = ref([])
+const userList = ref([]);
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/device/repair",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 const deviceInfo = (value) => {
-  form.value.deviceNo = value.deviceNo
-  form.value.deviceName =value.deviceName
-  form.value.deviceType = value.deviceType
-  form.value.devicePosition = value.devicePosition
-  dialog.visible = false
-}
-const maintenanceInfo = ref(null)
-const maintenance = (row,type)=>{
-  viewPage.value = type === 0 ? false : true
-  maintenanceInfo.value = row
-  maintenanceInfo.value.handResult = 0
-  dialog1.visible = true
-}
-const queryUserList = ()=>{
-  getUserList({}).then((data)=>{
-    userList.value = data.data
-  })
-}
-const maintenanceInfoForm1 = ref('maintenanceInfoForm1')
-const maintenanceInfoForm2 = ref('maintenanceInfoForm2')
-const maintenanceSubmit1 =()=>{
+  form.value.deviceNo = value.deviceNo;
+  form.value.deviceName = value.deviceName;
+  form.value.deviceType = value.deviceType;
+  form.value.devicePosition = value.devicePosition;
+  dialog.visible = false;
+};
+const maintenanceInfo = ref(null);
+const maintenance = (row, type) => {
+  viewPage.value = type === 0 ? false : true;
+  maintenanceInfo.value = row;
+  maintenanceInfo.value.handResult = 0;
+  dialog1.visible = true;
+};
+const queryUserList = () => {
+  getUserList({}).then((data) => {
+    userList.value = data.data;
+  });
+};
+const maintenanceInfoForm1 = ref("maintenanceInfoForm1");
+const maintenanceInfoForm2 = ref("maintenanceInfoForm2");
+const maintenanceSubmit1 = () => {
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
     if (isValid) {
-      repair(maintenanceInfo.value).then((data)=>{
+      repair(maintenanceInfo.value).then((data) => {
         ElMessage({
           message: data.msg,
           type: "success",
         });
-        dialog1.visible = false
-        dataList()
-      })
+        dialog1.visible = false;
+        dataList();
+      });
     }
-  })
-}
-const maintenanceSubmit2 =()=>{
+  });
+};
+const maintenanceSubmit2 = () => {
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm2.value.validate((isValid, invalidFields) => {
     if (isValid) {
-      audit(maintenanceInfo.value).then((data)=>{
+      audit(maintenanceInfo.value).then((data) => {
         ElMessage({
           message: data.msg,
           type: "success",
         });
-        dialog1.visible = false
-        dataList()
-      })
+        dialog1.visible = false;
+        dataList();
+      });
     }
-  })
-}
+  });
+};
 const rules1 = reactive({
   handleUser: [
-    { required: true, message: '维修人员不能为空', trigger: 'blur' }
+    { required: true, message: "维修人员不能为空", trigger: "blur" },
   ],
   handleContent: [
-    { required: true, message: '维修内容不能为空', trigger: 'blur' }
-  ]
-})
+    { required: true, message: "维修内容不能为空", trigger: "blur" },
+  ],
+});
 const rules2 = reactive({
-  auditUser: [
-    { required: true, message: '审批人员不能为空', trigger: 'blur' }
-  ]
-})
+  auditUser: [{ required: true, message: "审批人员不能为空", trigger: "blur" }],
+});
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   delBtn: false,
@@ -272,8 +347,8 @@ option.value = Object.assign(option.value, {
         },
       ],
       click: ({ value, column }) => {
-        if(column.boxType){
-          dialog.visible = true
+        if (column.boxType) {
+          dialog.visible = true;
         }
       },
     },
@@ -289,9 +364,7 @@ option.value = Object.assign(option.value, {
       type: "select",
       addDisabled: true,
       search: true,
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.device_type,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -320,15 +393,19 @@ option.value = Object.assign(option.value, {
           required: true,
           message: "故障描述不能为空",
           trigger: "trigger",
-        }
-       ]
+        },
+      ],
     },
     {
       label: "维修状态",
       prop: "state",
       type: "select",
       display: false,
-      dicData:[{label: '待维修',value: 0},{label: '待审批 ',value: 1},{label: '已完成',value: 2}],
+      dicData: [
+        { label: "待维修", value: 0 },
+        { label: "待审批 ", value: 1 },
+        { label: "已完成", value: 2 },
+      ],
     },
     {
       label: "报故人",
@@ -346,6 +423,6 @@ option.value = Object.assign(option.value, {
 
 onMounted(() => {
   dataList();
-  queryUserList()
+  queryUserList();
 });
 </script>

+ 1 - 1
src/views/plan/order/index.vue

@@ -76,7 +76,7 @@
           link
           size="small"
           @click="rowDel(row, 0)"
-          ><i-ep-edit />删除
+          ><i-ep-delete />删除
         </el-button>
         <el-button
           type="primary"

+ 473 - 288
src/views/plan/requisition/index.vue

@@ -1,28 +1,29 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
       <template #menu-left="{ size }">
         <el-button
-            type="primary"
-            icon="el-icon-plus"
-            :size="size"
-            @click="openDialog(0,null)"
-        >新增</el-button>
+          type="primary"
+          icon="el-icon-plus"
+          :size="size"
+          @click="openDialog(0, null)"
+          >新增</el-button
+        >
 
         <el-button
           :disabled="toDeleteIds.length < 1"
@@ -33,122 +34,171 @@
           >删除</el-button
         >
       </template>
-      <template #menu="{size,row,index}">
-        <el-button
-            type="info"
-            link
-            size="small"
-            @click="openDialog(1,row)"
-        ><i-ep-edit />查看</el-button>
-        <el-button
-            type="primary"
-            link
-            size="small"
-            @click="openDialog(2,row)"
-        ><i-ep-edit />{{row.state === '0' ? '编辑' : '流程'}}</el-button>
+      <template #menu="{ size, row, index }">
+        <el-button type="primary" link size="small" @click="openDialog(1, row)"
+          ><i-ep-view />查看</el-button
+        >
+        <el-button type="primary" link size="small" @click="openDialog(2, row)"
+          ><i-ep-edit />{{ row.state === "0" ? "编辑" : "流程" }}</el-button
+        >
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="75%"
-        @close="dialog.visible = false"
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="75%"
+      @close="dialog.visible = false"
     >
       <template #header="{ close, titleId, titleClass }">
-        <el-button v-if="dialogType === 1"  type="primary" @click="printPage" size="small">打印</el-button>
+        <el-button
+          v-if="dialogType === 1"
+          type="primary"
+          @click="printPage"
+          size="small"
+          >打印</el-button
+        >
       </template>
-      <div class="card-container" >
+      <div class="card-container">
         <el-card style="width: 70%" shadow="always">
           <div ref="toPrintRef">
-            <el-row style="text-align: center;">
-              <el-col :span="24"><el-text tag="b">零、部(组)件领用单</el-text></el-col>
+            <el-row style="text-align: center">
+              <el-col :span="24"
+                ><el-text tag="b">零、部(组)件领用单</el-text></el-col
+              >
             </el-row>
-          <el-row>
-            <el-col :span="14" ></el-col>
-            <el-col :span="5" ><el-text tag="p" v-if="form.applyCode">{{form.applyCode}}</el-text></el-col>
-            <el-col :span="5"></el-col>
-          </el-row>
-          <el-row style="width: 100%;height: 30px;"></el-row>
-          <el-row>
-            <el-col :span="2" ><el-text tag="p">领用单位:</el-text></el-col>
-            <el-col :span="6" >
-              <el-text tag="p" v-if="dialogType === 1 || form.state > 0">{{form.applyOrg}}</el-text>
-              <el-input v-else size="small" style="width:150px;padding-bottom: 5px;" v-model="form.applyOrg"/>
-            </el-col>
-            <el-col :span="2" ><el-text tag="p">发件单位: </el-text></el-col>
-            <el-col :span="6" >
-              <el-text tag="p" v-if="dialogType === 1 || form.state > 0">{{form.sendOrg}} </el-text>
-              <el-input v-else size="small" style="width:150px;padding-bottom: 5px;" v-model="form.sendOrg"/>
-            </el-col>
-            <el-col :span="2" ><el-text tag="p">工单编号:</el-text></el-col>
-            <el-col :span="6">
-              <el-text tag="p" v-if="dialogType === 1 || form.state > 0">{{form.workOrderCode}}</el-text>
-              <el-select
+            <el-row>
+              <el-col :span="14"></el-col>
+              <el-col :span="5"
+                ><el-text tag="p" v-if="form.applyCode">{{
+                  form.applyCode
+                }}</el-text></el-col
+              >
+              <el-col :span="5"></el-col>
+            </el-row>
+            <el-row style="width: 100%; height: 30px"></el-row>
+            <el-row>
+              <el-col :span="2"><el-text tag="p">领用单位:</el-text></el-col>
+              <el-col :span="6">
+                <el-text tag="p" v-if="dialogType === 1 || form.state > 0">{{
+                  form.applyOrg
+                }}</el-text>
+                <el-input
+                  v-else
+                  size="small"
+                  style="width: 150px; padding-bottom: 5px"
+                  v-model="form.applyOrg"
+                />
+              </el-col>
+              <el-col :span="2"><el-text tag="p">发件单位: </el-text></el-col>
+              <el-col :span="6">
+                <el-text tag="p" v-if="dialogType === 1 || form.state > 0"
+                  >{{ form.sendOrg }}
+                </el-text>
+                <el-input
+                  v-else
+                  size="small"
+                  style="width: 150px; padding-bottom: 5px"
+                  v-model="form.sendOrg"
+                />
+              </el-col>
+              <el-col :span="2"><el-text tag="p">工单编号:</el-text></el-col>
+              <el-col :span="6">
+                <el-text tag="p" v-if="dialogType === 1 || form.state > 0">{{
+                  form.workOrderCode
+                }}</el-text>
+                <el-select
                   v-else
                   size="small"
                   v-model="form.workOrderCode"
                   placeholder="请选择工单号"
                   clearable
-                  style="width:150px;padding-bottom: 5px;"
+                  style="width: 150px; padding-bottom: 5px"
                   filterable
                   @change="changeOrder"
-              >
-                <el-option
+                >
+                  <el-option
                     v-for="option in orderList"
                     :key="option.workOrderCode"
                     :label="option.workOrderCode"
                     :value="option.workOrderCode"
-                />
-              </el-select>
-            </el-col>
-          </el-row>
-          <el-table class="print-table"
+                  />
+                </el-select>
+              </el-col>
+            </el-row>
+            <el-table
+              class="print-table"
               v-loading="loading"
               :data="tableDataList"
               border
-          >
-            <el-table-column label="序号" type="index" width="60"/>
-            <el-table-column label="工作令号" prop="workCode">
-              <template v-slot="{row}">
-                <el-text v-if="dialogType === 1 || form.state > 0">{{row.workCode}}</el-text>
-                <el-input v-else v-model="row.workCode"/>
-              </template>
-            </el-table-column>
-            <el-table-column label="零、部(组)件图号" prop="materialCode" />
-            <el-table-column label="名称" prop="materialName" />
-            <el-table-column label="数量" align="num">
-              <template v-slot="{row}">
-                <el-text v-if="dialogType === 1 || form.state > 0">{{row.num}}</el-text>
-                <el-input v-else v-model="row.num" type="number"/>
-              </template>
-            </el-table-column>
-            <el-table-column label="实际接收" align="receiveNum" v-if="form.state === '6' || form.state === '8'">
-              <template v-slot="{row}">
-                <el-text>{{row.receiveNum}}</el-text>
-              </template>
-            </el-table-column>
-            <el-table-column label="备注" align="remark">
-              <template v-slot="{row}">
-                <el-text v-if="dialogType === 1 || form.state > 0">{{row.remark}}</el-text>
-                <el-input v-else v-model="row.remark"/>
-              </template>
-            </el-table-column>
-            <el-table-column label="操作" align="remark" v-if="dialogType !== 1 && form.state === '0'">
-              <template v-slot="{row,index}">
-                <el-button type="danger" @click="minusItem(row)" icon="el-icon-minus" style="margin-left:15px;width:25px;height:25px;" circle />
-              </template>
-            </el-table-column>
-          </el-table>
-          <el-row>
-            <el-col :span="2" ><el-text tag="p">领用人:</el-text></el-col>
-            <el-col :span="4" ><el-text tag="p" >{{form.applyUser}}</el-text></el-col>
-            <el-col :span="2" ><el-text tag="p">审核: </el-text></el-col>
-            <el-col :span="4" ><el-text tag="p" >{{form.auditUser}} </el-text></el-col>
-<!--            <el-col :span="2" ><el-text tag="p">会签:</el-text></el-col>
+            >
+              <el-table-column label="序号" type="index" width="60" />
+              <el-table-column label="工作令号" prop="workCode">
+                <template v-slot="{ row }">
+                  <el-text v-if="dialogType === 1 || form.state > 0">{{
+                    row.workCode
+                  }}</el-text>
+                  <el-input v-else v-model="row.workCode" />
+                </template>
+              </el-table-column>
+              <el-table-column label="零、部(组)件图号" prop="materialCode" />
+              <el-table-column label="名称" prop="materialName" />
+              <el-table-column label="数量" align="num">
+                <template v-slot="{ row }">
+                  <el-text v-if="dialogType === 1 || form.state > 0">{{
+                    row.num
+                  }}</el-text>
+                  <el-input v-else v-model="row.num" type="number" />
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="实际接收"
+                align="receiveNum"
+                v-if="form.state === '6' || form.state === '8'"
+              >
+                <template v-slot="{ row }">
+                  <el-text>{{ row.receiveNum }}</el-text>
+                </template>
+              </el-table-column>
+              <el-table-column label="备注" align="remark">
+                <template v-slot="{ row }">
+                  <el-text v-if="dialogType === 1 || form.state > 0">{{
+                    row.remark
+                  }}</el-text>
+                  <el-input v-else v-model="row.remark" />
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="操作"
+                align="remark"
+                v-if="dialogType !== 1 && form.state === '0'"
+              >
+                <template v-slot="{ row, index }">
+                  <el-button
+                    type="danger"
+                    @click="minusItem(row)"
+                    icon="el-icon-minus"
+                    style="margin-left: 15px; width: 25px; height: 25px"
+                    circle
+                  />
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-row>
+              <el-col :span="2"><el-text tag="p">领用人:</el-text></el-col>
+              <el-col :span="4"
+                ><el-text tag="p">{{ form.applyUser }}</el-text></el-col
+              >
+              <el-col :span="2"><el-text tag="p">审核: </el-text></el-col>
+              <el-col :span="4"
+                ><el-text tag="p">{{ form.auditUser }} </el-text></el-col
+              >
+              <!--            <el-col :span="2" ><el-text tag="p">会签:</el-text></el-col>
             <el-col :span="4" ><el-text tag="p" >{{form.countersignUser}}</el-text></el-col>-->
-            <el-col :span="2" ><el-text tag="p">批准:</el-text></el-col>
-            <el-col :span="4" ><el-text tag="p" >{{form.approveUser}}</el-text></el-col>
-          </el-row>
+              <el-col :span="2"><el-text tag="p">批准:</el-text></el-col>
+              <el-col :span="4"
+                ><el-text tag="p">{{ form.approveUser }}</el-text></el-col
+              >
+            </el-row>
           </div>
         </el-card>
 
@@ -157,92 +207,174 @@
             <div class="card-header">
               <span>领用流程</span>
             </div>
-            <el-timeline style="max-width: 500px;">
+            <el-timeline style="max-width: 500px">
               <el-timeline-item center type="success" placement="top">
                 <el-card>
                   <h4>申请</h4>
-                  <el-form ref="maintenanceInfoForm2" size="small" :model="form" label-width="auto" style="max-width: 400px">
+                  <el-form
+                    ref="maintenanceInfoForm2"
+                    size="small"
+                    :model="form"
+                    label-width="auto"
+                    style="max-width: 400px"
+                  >
                     <el-form-item label="领用人员" prop="auditUser">
-                      <el-text tag="p" v-if="dialogType === 1 || form.state > 0">{{form.applyUser}}</el-text>
+                      <el-text
+                        tag="p"
+                        v-if="dialogType === 1 || form.state > 0"
+                        >{{ form.applyUser }}</el-text
+                      >
                       <el-select
-                          v-else
-                          size="small"
-                          filterable
-                          v-model="form.applyUser"
-                          placeholder="请选择领用人员"
-                          clearable>
+                        v-else
+                        size="small"
+                        filterable
+                        v-model="form.applyUser"
+                        placeholder="请选择领用人员"
+                        clearable
+                      >
                         <el-option
-                            v-for="option in userList"
-                            :key="option.userName"
-                            :label="option.nickName"
-                            :value="option.userName" />
+                          v-for="option in userList"
+                          :key="option.userName"
+                          :label="option.nickName"
+                          :value="option.userName"
+                        />
                       </el-select>
                     </el-form-item>
                     <el-form-item label="审核人员" v-if="form.state === '0'">
-                      <el-text tag="p" v-if="dialogType === 1 || form.state > 0">{{form.auditUser}}</el-text>
+                      <el-text
+                        tag="p"
+                        v-if="dialogType === 1 || form.state > 0"
+                        >{{ form.auditUser }}</el-text
+                      >
                       <el-select
-                          v-else
-                          size="small"
-                          filterable
-                          v-model="form.auditUser"
-                          placeholder="请选择审核人员"
-                          clearable>
+                        v-else
+                        size="small"
+                        filterable
+                        v-model="form.auditUser"
+                        placeholder="请选择审核人员"
+                        clearable
+                      >
                         <el-option
-                            v-for="option in userList"
-                            :key="option.userName"
-                            :label="option.nickName"
-                            :value="option.userName" />
+                          v-for="option in userList"
+                          :key="option.userName"
+                          :label="option.nickName"
+                          :value="option.userName"
+                        />
                       </el-select>
                     </el-form-item>
-                    <el-form-item label="申请时间"  v-if="form.state > 0">
-                      <el-text tag="p">{{form.created}}</el-text>
+                    <el-form-item label="申请时间" v-if="form.state > 0">
+                      <el-text tag="p">{{ form.created }}</el-text>
                     </el-form-item>
-                    <el-form-item style="margin-left: 28%" v-if="dialogType !==1">
-                      <el-button type="primary" @click="saveForm(1)" v-if="form.state === '0'">申 请</el-button>
-                      <el-button type="success" @click="saveForm(0)" v-if="form.state === '0'">保 存</el-button>
+                    <el-form-item
+                      style="margin-left: 28%"
+                      v-if="dialogType !== 1"
+                    >
+                      <el-button
+                        type="primary"
+                        @click="saveForm(1)"
+                        v-if="form.state === '0'"
+                        >申 请</el-button
+                      >
+                      <el-button
+                        type="success"
+                        @click="saveForm(0)"
+                        v-if="form.state === '0'"
+                        >保 存</el-button
+                      >
                     </el-form-item>
                   </el-form>
                 </el-card>
               </el-timeline-item>
-              <el-timeline-item center placement="top"  :type="form.state > 1 ? 'success' : 'primary'">
+              <el-timeline-item
+                center
+                placement="top"
+                :type="form.state > 1 ? 'success' : 'primary'"
+              >
                 <el-card>
                   <h4>审核</h4>
-                  <el-form v-if="form.state >= 1"  size="small" :model="form" label-width="auto" style="max-width: 400px">
+                  <el-form
+                    v-if="form.state >= 1"
+                    size="small"
+                    :model="form"
+                    label-width="auto"
+                    style="max-width: 400px"
+                  >
                     <el-form-item label="审核人员" prop="auditUser">
-                      <el-text tag="p">{{form.auditUser}}</el-text>
+                      <el-text tag="p">{{ form.auditUser }}</el-text>
                     </el-form-item>
                     <el-form-item label="处理结果">
-                      <el-text tag="p" v-if="dialogType === 1 || form.state !== '1'">{{form.state === '1' ? '待审核' : form.auditState === 0 ? "通过" : "未通过"}}</el-text>
-                      <el-text tag="p" v-else-if="form.auditUser !== username">{{form.auditState ? form.auditState === 0 ? "通过" : "未通过" : "待审核"}}</el-text>
+                      <el-text
+                        tag="p"
+                        v-if="dialogType === 1 || form.state !== '1'"
+                        >{{
+                          form.state === "1"
+                            ? "待审核"
+                            : form.auditState === 0
+                              ? "通过"
+                              : "未通过"
+                        }}</el-text
+                      >
+                      <el-text
+                        tag="p"
+                        v-else-if="form.auditUser !== username"
+                        >{{
+                          form.auditState
+                            ? form.auditState === 0
+                              ? "通过"
+                              : "未通过"
+                            : "待审核"
+                        }}</el-text
+                      >
                       <el-radio-group v-else v-model="form.auditState">
-                        <el-radio :value=0>通过</el-radio>
-                        <el-radio :value=1>不通过</el-radio>
+                        <el-radio :value="0">通过</el-radio>
+                        <el-radio :value="1">不通过</el-radio>
                       </el-radio-group>
                     </el-form-item>
-                    <el-form-item label="审批人员" v-if="dialogType !== 1 && form.state === '1' && form.auditUser === username">
+                    <el-form-item
+                      label="审批人员"
+                      v-if="
+                        dialogType !== 1 &&
+                        form.state === '1' &&
+                        form.auditUser === username
+                      "
+                    >
                       <el-select
-                          size="small"
-                          filterable
-                          v-model="form.approveUser"
-                          placeholder="请选择审批人员"
-                          clearable>
+                        size="small"
+                        filterable
+                        v-model="form.approveUser"
+                        placeholder="请选择审批人员"
+                        clearable
+                      >
                         <el-option
-                            v-for="option in userList"
-                            :key="option.userName"
-                            :label="option.nickName"
-                            :value="option.userName" />
+                          v-for="option in userList"
+                          :key="option.userName"
+                          :label="option.nickName"
+                          :value="option.userName"
+                        />
                       </el-select>
                     </el-form-item>
-                    <el-form-item label="审核时间" v-if="form.audit && form.audit.time">
-                      <el-text tag="p" >{{form.audit.time}}</el-text>
+                    <el-form-item
+                      label="审核时间"
+                      v-if="form.audit && form.audit.time"
+                    >
+                      <el-text tag="p">{{ form.audit.time }}</el-text>
                     </el-form-item>
                     <el-form-item style="margin-left: 35%">
-                      <el-button type="primary" @click="saveForm(2)"  v-if="dialogType !== 1 && form.state === '1' && form.auditUser === username">审 核</el-button>
+                      <el-button
+                        type="primary"
+                        @click="saveForm(2)"
+                        v-if="
+                          dialogType !== 1 &&
+                          form.state === '1' &&
+                          form.auditUser === username
+                        "
+                        >审 核</el-button
+                      >
                     </el-form-item>
                   </el-form>
                 </el-card>
               </el-timeline-item>
-<!--              <el-timeline-item center placement="top" :type="form.state > 3 ? 'success' : 'primary'">
+              <!--              <el-timeline-item center placement="top" :type="form.state > 3 ? 'success' : 'primary'">
                 <el-card>
                   <h4>会签</h4>
                   <el-form v-if="form.state >= 3"  size="small" :model="form" label-width="auto" style="max-width: 400px">
@@ -277,26 +409,61 @@
                   </el-form>
                 </el-card>
               </el-timeline-item>-->
-              <el-timeline-item center placement="top" :type="form.state > 5 ? 'success' : 'primary'">
+              <el-timeline-item
+                center
+                placement="top"
+                :type="form.state > 5 ? 'success' : 'primary'"
+              >
                 <el-card>
                   <h4>批准</h4>
-                  <el-form v-if="form.state >= 5" size="small" :model="form" label-width="auto" style="max-width: 400px">
+                  <el-form
+                    v-if="form.state >= 5"
+                    size="small"
+                    :model="form"
+                    label-width="auto"
+                    style="max-width: 400px"
+                  >
                     <el-form-item label="审批人" v-if="form.state > 5">
-                      <el-text tag="p">{{form.approve.user}}</el-text>
+                      <el-text tag="p">{{ form.approve.user }}</el-text>
                     </el-form-item>
                     <el-form-item label="审批结果">
-                      <el-text tag="p" v-if="dialogType === 1 || form.state === '6' || form.state === '7'">{{form.state === '5' ?  '待审批' : form.state === '6' ? '通过' : '未通过'}}</el-text>
-                      <el-text tag="p" v-else-if="form.approveUser !== username">待审批</el-text>
+                      <el-text
+                        tag="p"
+                        v-if="
+                          dialogType === 1 ||
+                          form.state === '6' ||
+                          form.state === '7'
+                        "
+                        >{{
+                          form.state === "5"
+                            ? "待审批"
+                            : form.state === "6"
+                              ? "通过"
+                              : "未通过"
+                        }}</el-text
+                      >
+                      <el-text tag="p" v-else-if="form.approveUser !== username"
+                        >待审批</el-text
+                      >
                       <el-radio-group v-else v-model="form.approveState">
-                        <el-radio :value=0>通过</el-radio>
-                        <el-radio :value=1>不通过</el-radio>
+                        <el-radio :value="0">通过</el-radio>
+                        <el-radio :value="1">不通过</el-radio>
                       </el-radio-group>
                     </el-form-item>
                     <el-form-item label="审批时间" v-if="form.state > 5">
-                      <el-text tag="p">{{form.approve.time}}</el-text>
+                      <el-text tag="p">{{ form.approve.time }}</el-text>
                     </el-form-item>
                     <el-form-item style="margin-left: 35%">
-                      <el-button type="primary" @click="saveForm(4)" v-if="dialogType !== 1 && form.state === '5' && form.approveUser === username">审 核</el-button>
+                      <el-button
+                        type="primary"
+                        @click="saveForm(4)"
+                        v-if="
+                          dialogType !== 1 &&
+                          form.state === '5' &&
+                          form.approveUser === username
+                        "
+                        >审 核</el-button
+                      >
                     </el-form-item>
                   </el-form>
                 </el-card>
@@ -315,8 +482,13 @@ import { ref, getCurrentInstance } from "vue";
 import { html2CanvasPrint } from "@/utils/common";
 import { useCrud } from "@/hooks/userCrud";
 import dictDataUtil from "@/common/configs/dictDataUtil";
-import {queryApplyInfoDetails,queryWorkOrderList,saveApplyInfoDetails,auditApplyInfoDetails} from "@/api/order"
-import {getUserList} from "@/api/system/user"
+import {
+  queryApplyInfoDetails,
+  queryWorkOrderList,
+  saveApplyInfoDetails,
+  auditApplyInfoDetails,
+} from "@/api/order";
+import { getUserList } from "@/api/system/user";
 import { useCommonStoreHook } from "@/store";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 const test = () => {
@@ -331,72 +503,79 @@ const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/plan/requisition",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 const { username } = useUserStoreHook().user;
-const minusItem =(row)=>{
-  tableDataList.value = tableDataList.value.filter(item=>item.id !== row.id)
-}
-const changeOrder =(val)=>{
-  queryApplyInfoDetails({workOrderCode: val}).then((data)=>{
-    tableDataList.value = data.data
-  })
-}
-const saveForm = (type) =>{
+const minusItem = (row) => {
+  tableDataList.value = tableDataList.value.filter(
+    (item) => item.id !== row.id
+  );
+};
+const changeOrder = (val) => {
+  queryApplyInfoDetails({ workOrderCode: val }).then((data) => {
+    tableDataList.value = data.data;
+  });
+};
+const saveForm = (type) => {
   let state = type;
   let step = null;
-  let nextUsers = ""
-  if(type === 1 || type === 0){
-    if(tableDataList.value.length === 0){
-      ElMessage.error("当前没有申请的物料信息")
+  let nextUsers = "";
+  if (type === 1 || type === 0) {
+    if (tableDataList.value.length === 0) {
+      ElMessage.error("当前没有申请的物料信息");
       return;
     }
-    for(let item of tableDataList.value){
-      if(!item.workCode){
-        ElMessage.error("工作令号不能为空")
+    for (let item of tableDataList.value) {
+      if (!item.workCode) {
+        ElMessage.error("工作令号不能为空");
         return;
       }
-      if(!item.num || item.num <=0){
-        ElMessage.error("物料数量不正确")
+      if (!item.num || item.num <= 0) {
+        ElMessage.error("物料数量不正确");
         return;
       }
     }
-    if(!form.value.applyUser){
-      ElMessage.error("领用人员不能为空")
+    if (!form.value.applyUser) {
+      ElMessage.error("领用人员不能为空");
       return;
     }
-    if(!form.value.auditUser){
-      ElMessage.error("审核人员不能为空")
+    if (!form.value.auditUser) {
+      ElMessage.error("审核人员不能为空");
       return;
     }
-    const params = {...form.value,'state': state,details: tableDataList.value}
-    saveApplyInfoDetails(params).then((data)=>{
-      if(data.code === '200'){
-        ElMessage.success(data.msg)
-        dialog.visible = false
-        dataList()
-      }else{
-        ElMessage.error(data.msg)
+    const params = {
+      ...form.value,
+      state: state,
+      details: tableDataList.value,
+    };
+    saveApplyInfoDetails(params).then((data) => {
+      if (data.code === "200") {
+        ElMessage.success(data.msg);
+        dialog.visible = false;
+        dataList();
+      } else {
+        ElMessage.error(data.msg);
       }
-    })
+    });
     return;
   }
   step = "audit";
-  if(type === 2){
-    if(form.value.auditState != undefined){
-      if(form.value.auditState === 0 && !form.value.approveUser){
-        ElMessage.error("审批人员不能为空")
+  if (type === 2) {
+    if (form.value.auditState != undefined) {
+      if (form.value.auditState === 0 && !form.value.approveUser) {
+        ElMessage.error("审批人员不能为空");
         return;
       }
-    }else{
-      if(!form.value.auditState){
-        ElMessage.error("请选择处理结果")
+    } else {
+      if (!form.value.auditState) {
+        ElMessage.error("请选择处理结果");
         return;
       }
     }
-    nextUsers = form.value.approveUser
-    state = form.value.auditState
+    nextUsers = form.value.approveUser;
+    state = form.value.auditState;
   }
   /*if(type === 3){
     step = "countersign";
@@ -411,88 +590,93 @@ const saveForm = (type) =>{
     nextUsers = form.value.approveUser
     state = form.value.countersignState
   }*/
-  if(type === 4){
+  if (type === 4) {
     step = "approve";
-    if(form.value.approveState === undefined){
-      ElMessage.error("请选择处理结果")
+    if (form.value.approveState === undefined) {
+      ElMessage.error("请选择处理结果");
       return;
     }
-    state = form.value.approveState
+    state = form.value.approveState;
   }
-  const params = {id: form.value.id,'state': state,currentStep: step,nextUser: nextUsers}
-  auditApplyInfoDetails(params).then((data)=>{
-    if(data.code === '200'){
-      ElMessage.success(data.msg)
-      dialog.visible = false
-      dataList()
-    }else{
-      ElMessage.error(data.msg)
+  const params = {
+    id: form.value.id,
+    state: state,
+    currentStep: step,
+    nextUser: nextUsers,
+  };
+  auditApplyInfoDetails(params).then((data) => {
+    if (data.code === "200") {
+      ElMessage.success(data.msg);
+      dialog.visible = false;
+      dataList();
+    } else {
+      ElMessage.error(data.msg);
     }
-  })
-}
-const loading = ref(false)
+  });
+};
+const loading = ref(false);
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-const userList = ref([])
-const orderList = ref([])
-const dialogType = ref(false)
+const userList = ref([]);
+const orderList = ref([]);
+const dialogType = ref(false);
 const dialog = reactive({
   title: "领用单",
   visible: false,
 });
-const tableDataList = ref([])
-const openDialog = (type,row)=>{
-  dialogType.value = type
-  tableDataList.value = []
-  form.value = {}
+const tableDataList = ref([]);
+const openDialog = (type, row) => {
+  dialogType.value = type;
+  tableDataList.value = [];
+  form.value = {};
   form.value.sendOrg = "周转库";
-  form.value.applyOrg = "制造中心"
-  form.value.state = "0"
-  if(type !== 0){
-    queryApplyInfoDetails({applyCode: row.applyCode}).then((data)=>{
-      tableDataList.value = data.data
-    })
-    form.value = row
+  form.value.applyOrg = "制造中心";
+  form.value.state = "0";
+  if (type !== 0) {
+    queryApplyInfoDetails({ applyCode: row.applyCode }).then((data) => {
+      tableDataList.value = data.data;
+    });
+    form.value = row;
   }
-  form.value.countersign = []
-  if(row && row.flowInfo){
-    let json = JSON.parse(row.flowInfo)
-    let auditInfo = json.audit
-    if(auditInfo){
-      form.value.audit =auditInfo.info
-      form.value.auditState = form.value.audit.state
+  form.value.countersign = [];
+  if (row && row.flowInfo) {
+    let json = JSON.parse(row.flowInfo);
+    let auditInfo = json.audit;
+    if (auditInfo) {
+      form.value.audit = auditInfo.info;
+      form.value.auditState = form.value.audit.state;
     }
-    if(row.countersignUser){
-      form.value.countersignUsers = row.countersignUser.split(",")
+    if (row.countersignUser) {
+      form.value.countersignUsers = row.countersignUser.split(",");
     }
-    form.value.countersignBtn = false
-    if(json.countersign){
-      form.value.countersign = json.countersign.list
-      form.value.countersignInfo = json.countersign.info
+    form.value.countersignBtn = false;
+    if (json.countersign) {
+      form.value.countersign = json.countersign.list;
+      form.value.countersignInfo = json.countersign.info;
       //当断当前是否最后一个
-      let isOk = true
-      for(let obj of form.value.countersign){
-        if(obj.state === -1 && obj.user === username){
-          form.value.countersignBtn = true
+      let isOk = true;
+      for (let obj of form.value.countersign) {
+        if (obj.state === -1 && obj.user === username) {
+          form.value.countersignBtn = true;
         }
-        if(obj.user !== username && obj.state === -1){
-          isOk = false
+        if (obj.user !== username && obj.state === -1) {
+          isOk = false;
         }
       }
       form.value.countersignOk = isOk;
     }
-    if(json.approve){
-      form.value.approve = json.approve.info
+    if (json.approve) {
+      form.value.approve = json.approve.info;
     }
-    form.value.approveUser = row.approveUser
+    form.value.approveUser = row.approveUser;
   }
-  dialog.visible = true
-  getUserList({}).then((data)=>{
-    userList.value = data.data
-  })
-}
-const printPage = ()=>{
+  dialog.visible = true;
+  getUserList({}).then((data) => {
+    userList.value = data.data;
+  });
+};
+const printPage = () => {
   html2CanvasPrint(toPrintRef.value);
-}
+};
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   delBtn: false,
@@ -547,7 +731,7 @@ option.value = Object.assign(option.value, {
       width: 150,
       overHidden: true,
     },
-   /* {
+    /* {
       label: "会签人员",
       width: 150,
       overHidden: true,
@@ -563,40 +747,41 @@ option.value = Object.assign(option.value, {
       label: "状态",
       prop: "state",
       width: 150,
-      type: 'select',
-      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.requisition_state,
+      type: "select",
+      dicUrl:
+        dictDataUtil.request_url + dictDataUtil.TYPE_CODE.requisition_state,
       props: {
         label: "dictLabel", // 下拉菜单显示的字段
-        value: "dictValue" // 下拉菜单值的字
+        value: "dictValue", // 下拉菜单值的字
       },
     },
     {
       label: "创建时间",
       prop: "created",
       width: 160,
-      display: false
+      display: false,
     },
   ],
 });
 
 onMounted(() => {
-  let url = window.location.href
-  if(url.includes("workOrderCode")){
-    search.value.workOrderCode = url.substring(url.indexOf("workOrderCode")+ 14)
+  let url = window.location.href;
+  if (url.includes("workOrderCode")) {
+    search.value.workOrderCode = url.substring(
+      url.indexOf("workOrderCode") + 14
+    );
   }
-  queryWorkOrderList({}).then((data)=>{
-    if(!data.data){
-      ElMessage.warning("请维护物料BOM")
+  queryWorkOrderList({}).then((data) => {
+    if (!data.data) {
+      ElMessage.warning("请维护物料BOM");
     }
-    orderList.value = data.data
-  })
+    orderList.value = data.data;
+  });
   // console.log("crudRef", crudRef)
   dataList();
 });
 </script>
 
-
-
 <style scoped>
 :deep(.card-container .el-form-item) {
   display: flex;
@@ -605,7 +790,7 @@ onMounted(() => {
   height: 15px; /* 根据需要调整高度 */
 }
 
-:deep(.el-timeline-item){
+:deep(.el-timeline-item) {
   padding-bottom: 0px;
   position: relative;
 }

+ 369 - 299
src/views/plan/workOrder/index.vue

@@ -1,22 +1,22 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-loading="loading"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        :permission="permission"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-loading="loading"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      :permission="permission"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
       <template #menu-left="{ size }">
         <el-button
@@ -28,179 +28,243 @@
           >删除</el-button
         >
         <el-button
-            :disabled="toDeleteIds.length < 1"
-            type="primary"
-            icon="el-icon-primary"
-            :size="size"
-            @click="aps1"
-        >批量排程</el-button
-        >
+          :disabled="toDeleteIds.length < 1"
+          type="primary"
+          :size="size"
+          @click="aps1"
+          >批量排程
+          <template #icon>
+            <svg-icon icon-class="paicheng"></svg-icon>
+          </template>
+        </el-button>
       </template>
-      <template #menu="{size,row,index}">
+      <template #menu="{ size, row, index }">
         <el-button
-            v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_edit]"
-            v-if="row.workOrderState === '0' ||  row.workOrderState === '1' ||  row.workOrderState === '2'"
-            type="primary"
-            link
-            size="small"
-            @click="handleEdit(row,0)"
-        ><i-ep-edit />编辑
+          v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_edit]"
+          v-if="
+            row.workOrderState === '0' ||
+            row.workOrderState === '1' ||
+            row.workOrderState === '2'
+          "
+          type="primary"
+          link
+          size="small"
+          @click="handleEdit(row, 0)"
+          ><i-ep-edit />编辑
+        </el-button>
+        <el-button
+          @click="aps(row.id)"
+          text
+          v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_aps]"
+          v-if="
+            row.workOrderState === '0' ||
+            row.workOrderState === '1' ||
+            row.workOrderState === '2'
+          "
+          type="primary"
+          :size="size"
+          >排程
+          <template #icon>
+            <svg-icon icon-class="paicheng"></svg-icon>
+          </template>
         </el-button>
-        <el-button @click="aps(row.id)"
-                   icon="el-icon-setting"
-                   text
-                   v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_aps]"
-                   v-if="row.workOrderState === '0' ||  row.workOrderState === '1' ||  row.workOrderState === '2'"
-                   type="primary"
-                   :size="size">排程</el-button>
-          <el-button
-              icon="el-icon-setting"
-              text
-              v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_lock]"
-              v-if="row.workOrderState === '4'"
-              @click="lockOrUnLockWorkOrder(row.id,5)"
-              type="primary"
-              :size="size">冻结</el-button>
         <el-button
-            icon="el-icon-setting"
-            text
-            v-if="row.workOrderState === '5'"
-            v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_lock]"
-            @click="lockOrUnLockWorkOrder(row.id,4)"
-            type="primary"
-            :size="size">解冻</el-button>
+          text
+          v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_lock]"
+          v-if="row.workOrderState === '4'"
+          @click="lockOrUnLockWorkOrder(row.id, 5)"
+          type="primary"
+          :size="size"
+          >冻结
+          <template #icon>
+            <svg-icon icon-class="dongjie"></svg-icon>
+          </template>
+        </el-button>
         <el-button
-            icon="el-icon-setting"
-            text
-            v-if="row.workOrderState === '2'"
-            @click="distribute(row.id)"
-            type="primary"
-            v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_aps]"
-            :size="size">下发</el-button>
+          text
+          v-if="row.workOrderState === '5'"
+          v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_lock]"
+          @click="lockOrUnLockWorkOrder(row.id, 4)"
+          type="primary"
+          :size="size"
+          >解冻
+          <template #icon>
+            <svg-icon icon-class="jiedong"></svg-icon>
+          </template>
+        </el-button>
         <el-button
-            icon="el-icon-setting"
-            text
-            @click="showSeqPage(row)"
-            type="primary"
-            :size="size">流转卡号</el-button>
+          icon="el-icon-setting"
+          text
+          v-if="row.workOrderState === '2'"
+          @click="distribute(row.id)"
+          type="primary"
+          v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_aps]"
+          :size="size"
+          >下发</el-button
+        >
+        <el-button text @click="showSeqPage(row)" type="primary" :size="size"
+          >流转卡号
+          <template #icon>
+            <svg-icon icon-class="luozhuankahao"></svg-icon>
+          </template>
+        </el-button>
         <el-button
-            icon="el-icon-delete"
-            text
-            v-if="row.workOrderState === '3'"
-            @click="revoke(row.id)"
-            type="primary"
-            :size="size">撤销</el-button>
+          icon="el-icon-delete"
+          text
+          v-if="row.workOrderState === '3'"
+          @click="revoke(row.id)"
+          type="primary"
+          :size="size"
+          >撤销</el-button
+        >
         <el-button
-            icon="el-icon-setting"
-            text
-            @click="jumpPage(row.workOrderCode,1)"
-            type="primary"
-            :size="size">领用申请</el-button>
+          text
+          @click="jumpPage(row.workOrderCode, 1)"
+          type="primary"
+          :size="size"
+          >领用申请
+          <template #icon>
+            <svg-icon icon-class="lingyongshenqing"></svg-icon>
+          </template>
+        </el-button>
         <el-button
-            icon="el-icon-setting"
-            text
-            @click="jumpPage(row.workOrderCode,2)"
-            type="primary"
-            :size="size">生产准备</el-button>
+          text
+          @click="jumpPage(row.workOrderCode, 2)"
+          type="primary"
+          :size="size"
+          >生产准备
+          <template #icon>
+            <svg-icon icon-class="shengchanzhunbei"></svg-icon>
+          </template>
+        </el-button>
         <el-button
           icon="el-icon-notebook"
           text
-          v-if="row.workOrderState === '6'&&row.packageUrl==='0'"
+          v-if="row.workOrderState === '6' && row.packageUrl === '0'"
           @click="zipData(row.workOrderCode)"
           type="primary"
           v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_data]"
-          :size="size">生成数据包</el-button>
+          :size="size"
+          >生成数据包</el-button
+        >
         <el-button
           icon="el-icon-download"
           text
-          v-if="row.workOrderState === '6'&&row.packageUrl!=='0'"
-          @click="downloadTemplate('/api/v1/plan/workOrder/zip/'+row.id)"
+          v-if="row.workOrderState === '6' && row.packageUrl !== '0'"
+          @click="downloadTemplate('/api/v1/plan/workOrder/zip/' + row.id)"
           type="primary"
           v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_downLoad]"
-          :size="size">下载数据包</el-button>
+          :size="size"
+          >下载数据包</el-button
+        >
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="80%"
-        @close="dialog.visible = false"
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="80%"
+      @close="dialog.visible = false"
     >
-      <order-page queryType="1"  @orderInfo="orderInfo"/>
+      <order-page queryType="1" @orderInfo="orderInfo" />
     </el-dialog>
 
     <el-dialog
-        v-model="dialog1.visible"
-        :title="dialog1.title"
-        width="80%"
-        @close="dialog1.visible = false"
+      v-model="dialog1.visible"
+      :title="dialog1.title"
+      width="80%"
+      @close="dialog1.visible = false"
     >
-      <choice-route-page :processRouteType="processRouteType" :material-code="form.materialCode" @routeInfo="routeInfo"/>
+      <choice-route-page
+        :processRouteType="processRouteType"
+        :material-code="form.materialCode"
+        @routeInfo="routeInfo"
+      />
     </el-dialog>
 
     <el-dialog
-        v-model="dialog2.visible"
-        :title="dialog2.title"
-        width="80%"
-        @close="dialog2.visible = false"
+      v-model="dialog2.visible"
+      :title="dialog2.title"
+      width="80%"
+      @close="dialog2.visible = false"
     >
-      <choice-workshop-page  @workShopInfo="workShopInfo"/>
+      <choice-workshop-page @workShopInfo="workShopInfo" />
     </el-dialog>
 
     <el-dialog
-        v-model="dialog3.visible"
-        :title="dialog3.title"
-        width="80%"
-        @close="dialog3.visible = false"
+      v-model="dialog3.visible"
+      :title="dialog3.title"
+      width="80%"
+      @close="dialog3.visible = false"
     >
-      <choice-line-page :parentCode="form.workshopCode" :materialCode="form.materialCode" @lineInfo="lineInfo"/>
+      <choice-line-page
+        :parentCode="form.workshopCode"
+        :materialCode="form.materialCode"
+        @lineInfo="lineInfo"
+      />
     </el-dialog>
 
     <el-dialog
-        v-model="dialog4.visible"
-        :title="dialog4.title"
-        width="950px"
-        @close="dialog4.visible = false"
+      v-model="dialog4.visible"
+      :title="dialog4.title"
+      width="950px"
+      @close="dialog4.visible = false"
     >
-      <work-order-seq :workOrderInfo="form"/>
+      <work-order-seq :workOrderInfo="form" />
     </el-dialog>
 
     <el-dialog
-        v-model="dialog5.visible"
-        :title="dialog5.title"
-        width="450px"
-        @close="dialog5.visible = false"
+      v-model="dialog5.visible"
+      :title="dialog5.title"
+      width="450px"
+      @close="dialog5.visible = false"
     >
       <el-form
-          ref="dataFormRef"
-          :model="formData"
-          :rules="rules"
-          label-width="150px">
-      <el-form-item label="排程时间" prop="apsTime" >
-        <el-date-picker
+        ref="dataFormRef"
+        :model="formData"
+        :rules="rules"
+        label-width="150px"
+      >
+        <el-form-item label="排程时间" prop="apsTime">
+          <el-date-picker
             v-model="formData.apsTime"
             type="date"
-            style="width:200px;"
+            style="width: 200px"
             :disabled-date="disabledDate"
             placeholder="请选择时间"
             format="YYYY/MM/DD"
             value-format="YYYY-MM-DD"
-        />
+          />
 
-<!--        <el-input width="250px" v-model="formData.apsTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>-->
-      </el-form-item>
+          <!--        <el-input width="250px" v-model="formData.apsTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>-->
+        </el-form-item>
         <el-form-item label="优先级" prop="priority" v-if="apsType === 1">
-          <el-select v-model="formData.priority" placeholder="排程类型"
-                     style="width:200px;">
-            <el-option v-for="item in apsPriority" :label="item.dictLabel" :value="item.dictValue" :key="item.dictValue"></el-option>
+          <el-select
+            v-model="formData.priority"
+            placeholder="排程类型"
+            style="width: 200px"
+          >
+            <el-option
+              v-for="item in apsPriority"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+              :key="item.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="排程类型" prop="apsModel">
+          <el-select
+            v-model="formData.apsModel"
+            placeholder="排程类型"
+            style="width: 200px"
+          >
+            <el-option
+              v-for="item in schedulingTypes"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+              :key="item.dictValue"
+            ></el-option>
           </el-select>
         </el-form-item>
-      <el-form-item label="排程类型" prop="apsModel">
-        <el-select v-model="formData.apsModel" placeholder="排程类型"
-                   style="width:200px;">
-          <el-option v-for="item in schedulingTypes" :label="item.dictLabel" :value="item.dictValue" :key="item.dictValue"></el-option>
-        </el-select>
-      </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -208,7 +272,6 @@
           <el-button @click="dialog5.visible = false">取 消</el-button>
         </div>
       </template>
-
     </el-dialog>
   </div>
 </template>
@@ -216,38 +279,44 @@
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import buttonPermission from "@/common/configs/buttonPermission";
-import {apsWorkOrder,distributeWorkOrder,revokeWorkOrder,lockWorkOrder,zipWorkOrder} from "@/api/order"
+import {
+  apsWorkOrder,
+  distributeWorkOrder,
+  revokeWorkOrder,
+  lockWorkOrder,
+  zipWorkOrder,
+} from "@/api/order";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import ChoiceRoutePage from "./components/choice-route-page.vue";
 import ChoiceWorkshopPage from "./components/choice-workshop-page.vue";
 import WorkOrderSeq from "./components/work-order-seq.vue";
 import { checkPerm } from "@/directive/permission";
-import {queryDictDataByType} from "@/api/system/dict"
+import { queryDictDataByType } from "@/api/system/dict";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 const router = useRouter();
 const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const processRouteType = ref('')
+const processRouteType = ref("");
 const permission = reactive({
   delBtn: checkPerm(buttonPermission.PLAN.BTNS.work_order_del),
   addBtn: checkPerm(buttonPermission.PLAN.BTNS.work_order_add),
   editBtn: checkPerm(buttonPermission.PLAN.BTNS.work_order_edit),
   menu: true,
 });
-const disabledDate = (time) =>{
+const disabledDate = (time) => {
   return time.getTime() < Date.now(); // 8.64e7 毫秒数代表一天
-}
+};
 
-const jumpPage= (workOrderCode,type) =>{
-  if(type === 1){
-    router.push('/requisition?workOrderCode=' + workOrderCode);
-  }else{
-    router.push('/plan/prepare?workOrderCode=' + workOrderCode);
+const jumpPage = (workOrderCode, type) => {
+  if (type === 1) {
+    router.push("/requisition?workOrderCode=" + workOrderCode);
+  } else {
+    router.push("/plan/prepare?workOrderCode=" + workOrderCode);
   }
-}
+};
 const dialog = reactive({
   title: "订单选择",
   visible: false,
@@ -272,99 +341,96 @@ const dialog5 = reactive({
   title: "排程确认",
   visible: false,
 });
-const apsType = ref(0)
-const aps =(id)=>{
-  apsType.value = 0
-  formData.workOrderIds = [id]
-  dialog5.visible = true
-}
-const showSeqPage =(workOrderCode)=>{
-  form.value = workOrderCode
-  dialog4.visible = true
-}
-const distribute = (id)=>{
+const apsType = ref(0);
+const aps = (id) => {
+  apsType.value = 0;
+  formData.workOrderIds = [id];
+  dialog5.visible = true;
+};
+const showSeqPage = (workOrderCode) => {
+  form.value = workOrderCode;
+  dialog4.visible = true;
+};
+const distribute = (id) => {
   ElMessageBox.confirm("当前操作不可逆,确定下发工单吗?")
-      .then(() => {
-        loading.value=true;
-        distributeWorkOrder(id).then((data)=>{
-          loading.value=false;
-          ElMessage.success(data.msg);
-          dataList()
-        })
-      })
-      .catch(() => {
-        // catch error
-      });
-}
-const lockOrUnLockWorkOrder = (id,status)=>{
-  let message = status === "4" ? "解冻" : "冻结"
-  ElMessageBox.confirm("当前操作不可逆,确定"+message+"工单吗?")
-      .then(() => {
-        loading.value=true;
-        lockWorkOrder({id: id,workOrderState: status}).then((data)=>{
-          loading.value=false;
-          ElMessage.success(data.msg);
-          dataList()
-        })
-      })
-      .catch(() => {
-        // catch error
+    .then(() => {
+      loading.value = true;
+      distributeWorkOrder(id).then((data) => {
+        loading.value = false;
+        ElMessage.success(data.msg);
+        dataList();
       });
-}
-const loading=ref(false);
-const zipWork=ref({});
-const zipData=(workOrderCode)=>{
-  loading.value=true;
-  zipWork.value.workOrderCode=workOrderCode;
-  zipWorkOrder(zipWork.value).then(
-    (data)=>{
-      if(data.code === '200'){
-        loading.value=false;
+    })
+    .catch(() => {
+      // catch error
+    });
+};
+const lockOrUnLockWorkOrder = (id, status) => {
+  let message = status === "4" ? "解冻" : "冻结";
+  ElMessageBox.confirm("当前操作不可逆,确定" + message + "工单吗?")
+    .then(() => {
+      loading.value = true;
+      lockWorkOrder({ id: id, workOrderState: status }).then((data) => {
+        loading.value = false;
         ElMessage.success(data.msg);
-        dataList()
-      }else{
-        loading.value=false;
-        ElMessage.error(data.msg);
-      }
+        dataList();
+      });
+    })
+    .catch(() => {
+      // catch error
+    });
+};
+const loading = ref(false);
+const zipWork = ref({});
+const zipData = (workOrderCode) => {
+  loading.value = true;
+  zipWork.value.workOrderCode = workOrderCode;
+  zipWorkOrder(zipWork.value).then((data) => {
+    if (data.code === "200") {
+      loading.value = false;
+      ElMessage.success(data.msg);
+      dataList();
+    } else {
+      loading.value = false;
+      ElMessage.error(data.msg);
     }
-
-  )
-}
-const revoke = (id)=>{
+  });
+};
+const revoke = (id) => {
   ElMessageBox.confirm("当前操作不可逆,确定撤销工单吗?")
-      .then(() => {
-        loading.value=true;
-        revokeWorkOrder(id).then((data)=>{
-          if(data.code === '200'){
-            loading.value=false;
-            ElMessage.success(data.msg);
-            dataList()
-          }else{
-            loading.value=false;
-            ElMessage.error(data.msg)
-          }
-        })
-      })
-      .catch(() => {
-        // catch error
+    .then(() => {
+      loading.value = true;
+      revokeWorkOrder(id).then((data) => {
+        if (data.code === "200") {
+          loading.value = false;
+          ElMessage.success(data.msg);
+          dataList();
+        } else {
+          loading.value = false;
+          ElMessage.error(data.msg);
+        }
       });
-}
-const handleEdit = (row, index) =>{
+    })
+    .catch(() => {
+      // catch error
+    });
+};
+const handleEdit = (row, index) => {
   crudRef.value && crudRef.value.rowEdit(row, index);
-}
-const aps1 =()=>{
-  apsType.value = 1
-  formData.workOrderIds = toDeleteIds
-  dialog5.visible = true
-}
+};
+const aps1 = () => {
+  apsType.value = 1;
+  formData.workOrderIds = toDeleteIds;
+  dialog5.visible = true;
+};
 const dataFormRef = ref(ElForm);
-const schedulingTypes = ref([])
-const apsPriority = ref([])
+const schedulingTypes = ref([]);
+const apsPriority = ref([]);
 const formData = reactive({
   apsTime: null,
   priority: "1",
   apsModel: "0",
-  workOrderId: 0
+  workOrderId: 0,
 });
 
 const rules = reactive({
@@ -372,65 +438,66 @@ const rules = reactive({
   apsTime: [{ required: true, message: "排程时间不能为空", trigger: "blur" }],
   apsModel: [{ required: true, message: "排程类型不能为空", trigger: "blur" }],
 });
-const handleSubmit =()=>{
+const handleSubmit = () => {
   dataFormRef.value.validate((isValid) => {
     if (isValid) {
-      apsWorkOrder(formData).then((data)=>{
-        if(data.code === '200'){
+      apsWorkOrder(formData).then((data) => {
+        if (data.code === "200") {
           ElMessage.success(data.msg);
-          dialog5.visible = false
-          dataList()
-        }else{
+          dialog5.visible = false;
+          dataList();
+        } else {
           ElMessage.error(data.msg);
         }
-      })
+      });
     }
   });
-}
+};
 
 const orderInfo = (value) => {
-  form.value.orderCode = value.orderCode
-  form.value.orderName = value.orderName
-  form.value.materialCode = value.materialCode
-  form.value.materialName = value.materialName
-  form.value.materialModel = value.materialModel
-  form.value.priority = value.priority
-  form.value.orderType = value.orderType
-  form.value.processRouteId = ''
-  form.value.processRouteCode = ''
-  form.value.processRouteName = ''
-  form.value.processRouteVersion = ''
-  form.value.productLineId = ''
-  form.value.productLineName = ''
-  form.value.workshopName = ''
-  form.value.workshopCode = ''
-  form.value.workshopName = ''
-  dialog.visible = false
-}
+  form.value.orderCode = value.orderCode;
+  form.value.orderName = value.orderName;
+  form.value.materialCode = value.materialCode;
+  form.value.materialName = value.materialName;
+  form.value.materialModel = value.materialModel;
+  form.value.priority = value.priority;
+  form.value.orderType = value.orderType;
+  form.value.processRouteId = "";
+  form.value.processRouteCode = "";
+  form.value.processRouteName = "";
+  form.value.processRouteVersion = "";
+  form.value.productLineId = "";
+  form.value.productLineName = "";
+  form.value.workshopName = "";
+  form.value.workshopCode = "";
+  form.value.workshopName = "";
+  dialog.visible = false;
+};
 const lineInfo = (value) => {
-  form.value.productLineId = value.id
-  form.value.productLineName = value.name
-  dialog3.visible = false
-}
+  form.value.productLineId = value.id;
+  form.value.productLineName = value.name;
+  dialog3.visible = false;
+};
 const workShopInfo = (value) => {
-  form.value.workshopName = value.id
-  form.value.workshopCode = value.code
-  form.value.workshopName = value.name
-  dialog2.visible = false
-}
+  form.value.workshopName = value.id;
+  form.value.workshopCode = value.code;
+  form.value.workshopName = value.name;
+  dialog2.visible = false;
+};
 const routeInfo = (value) => {
-  form.value.processRouteId = value.id
-  form.value.processRouteCode = value.processRouteCode
-  form.value.processRouteName = value.processRouteName
-  form.value.processRouteVersion = value.processRouteVersion
-  dialog1.visible = false
-}
+  form.value.processRouteId = value.id;
+  form.value.processRouteCode = value.processRouteCode;
+  form.value.processRouteName = value.processRouteName;
+  form.value.processRouteVersion = value.processRouteVersion;
+  dialog1.visible = false;
+};
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/plan/workOrder",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 
@@ -465,8 +532,8 @@ option.value = Object.assign(option.value, {
         },
       ],
       click: ({ value, column }) => {
-        if(column.boxType){
-          dialog.visible = true
+        if (column.boxType) {
+          dialog.visible = true;
         }
       },
     },
@@ -522,7 +589,7 @@ option.value = Object.assign(option.value, {
       width: "80",
       type: "select", //类型为下拉选择框
       dicUrl:
-          dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_order_priority,
+        dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_order_priority,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -535,7 +602,7 @@ option.value = Object.assign(option.value, {
       display: false,
       type: "select", //类型为下拉选择框
       dicUrl:
-          dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_work_order_state,
+        dictDataUtil.request_url + dictDataUtil.TYPE_CODE.plan_work_order_state,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -554,30 +621,34 @@ option.value = Object.assign(option.value, {
         },
       ],
       click: ({ value, column }) => {
-        if(column.boxType){
-          if(!form.value.materialCode){
+        if (column.boxType) {
+          if (!form.value.materialCode) {
             ElMessage({
               message: "请先选择订单",
               type: "warning",
-            })
+            });
             return;
           }
-          processRouteType.value = form.value.orderType === '1' ? "ZC" : "FG"
-          dialog1.visible = true
+          processRouteType.value = form.value.orderType === "1" ? "ZC" : "FG";
+          dialog1.visible = true;
         }
       },
     },
     {
-    label: "工艺版本",
-    width: 100,
-    overHidden: true,
-    prop: "processRouteVersion",
-    display: false,
+      label: "工艺版本",
+      width: 100,
+      overHidden: true,
+      prop: "processRouteVersion",
+      display: false,
       html: true,
       formatter: (val) => {
-        return '<b class="el-tag el-tag--success el-tag--light">'+val.processRouteVersion+'</b>';
+        return (
+          '<b class="el-tag el-tag--success el-tag--light">' +
+          val.processRouteVersion +
+          "</b>"
+        );
       },
-  },
+    },
     {
       label: "生产车间",
       prop: "workshopName",
@@ -591,8 +662,8 @@ option.value = Object.assign(option.value, {
         },
       ],
       click: ({ value, column }) => {
-        if(column.boxType){
-          dialog2.visible = true
+        if (column.boxType) {
+          dialog2.visible = true;
         }
       },
     },
@@ -609,15 +680,15 @@ option.value = Object.assign(option.value, {
         },
       ],
       click: ({ value, column }) => {
-        if(column.boxType){
-          if(!form.value.workshopCode){
+        if (column.boxType) {
+          if (!form.value.workshopCode) {
             ElMessage({
               message: "请先选择生产车间",
               type: "warning",
-            })
+            });
             return;
           }
-          dialog3.visible = true
+          dialog3.visible = true;
         }
       },
     },
@@ -655,7 +726,6 @@ option.value = Object.assign(option.value, {
       width: 85,
       display: false,
       prop: "completeNum",
-
     },
     {
       label: "下线数量",
@@ -686,7 +756,7 @@ option.value = Object.assign(option.value, {
       width: 90,
       display: false,
       prop: "packageUrl",
-      hide:true
+      hide: true,
     },
   ],
 });
@@ -694,11 +764,11 @@ option.value = Object.assign(option.value, {
 onMounted(() => {
   // console.log("crudRef", crudRef)
   dataList();
-  queryDictDataByType("order_scheduling_type").then((data)=>{
-    schedulingTypes.value = data.data
-  })
-  queryDictDataByType("aps_priority").then((data)=>{
-    apsPriority.value = data.data
-  })
+  queryDictDataByType("order_scheduling_type").then((data) => {
+    schedulingTypes.value = data.data;
+  });
+  queryDictDataByType("aps_priority").then((data) => {
+    apsPriority.value = data.data;
+  });
 });
 </script>

+ 218 - 197
src/views/quality/faultHandle/index.vue

@@ -1,7 +1,5 @@
 <template>
   <div class="mainContentBox">
-
-
     <avue-crud
       ref="crudRef"
       v-model:search="search"
@@ -19,42 +17,54 @@
       @selection-change="selectionChange"
     >
       <template #menu-left>
-        <el-radio-group v-model="radio1" size="large" @change="searchChangeState">
+        <el-radio-group
+          v-model="radio1"
+          size="large"
+          @change="searchChangeState"
+        >
           <el-radio-button label="未完成" value="1" />
           <el-radio-button label="已完成" value="3" />
         </el-radio-group>
-       </template>
-      <template #menu="{row,index,type}">
-        <el-button @click="viewFault(row)"
-                   icon="el-icon-view"
-                   text
-                   type="primary"
-        >查看</el-button>
-        <el-button @click="faultEdit(row)"
-                   icon="el-icon-link"
-                   text
-                   type="primary"
-                   v-if="row.currentState==6"
-                   v-hasPerm="[ButtonPermKeys.FAULT.BTNS.faultHandle_handle]"
-        >处理</el-button>
-
-        <el-button @click="faultThaw(row)"
-                   icon="el-icon-open"
-                   text
-                   type="primary"
-                   v-hasPerm="[ButtonPermKeys.FAULT.BTNS.faultHandle_thaw]"
-                   v-if="row.currentState==4"
-        >解冻</el-button>
-        <el-button @click="faultExamine(row)"
-                   icon="el-icon-reading"
-                   text
-                   type="primary"
-                   v-hasPerm="[ButtonPermKeys.FAULT.BTNS.faultHandle_examine]"
-                   v-if="row.currentState==1"
-        >审核</el-button>
       </template>
+      <template #menu="{ row, index, type }">
+        <el-button
+          @click="viewFault(row)"
+          icon="el-icon-view"
+          text
+          type="primary"
+          >查看</el-button
+        >
+        <el-button
+          @click="faultEdit(row)"
+          icon="el-icon-link"
+          text
+          type="primary"
+          v-if="row.currentState == 6"
+          v-hasPerm="[ButtonPermKeys.FAULT.BTNS.faultHandle_handle]"
+          >处理</el-button
+        >
 
-
+        <el-button
+          @click="faultThaw(row)"
+          text
+          type="primary"
+          v-hasPerm="[ButtonPermKeys.FAULT.BTNS.faultHandle_thaw]"
+          v-if="row.currentState == 4"
+          >解冻
+          <template #icon>
+            <svg-icon icon-class="jiedong"></svg-icon>
+          </template>
+        </el-button>
+        <el-button
+          @click="faultExamine(row)"
+          icon="el-icon-reading"
+          text
+          type="primary"
+          v-hasPerm="[ButtonPermKeys.FAULT.BTNS.faultHandle_examine]"
+          v-if="row.currentState == 1"
+          >审核</el-button
+        >
+      </template>
     </avue-crud>
 
     <el-dialog
@@ -64,7 +74,7 @@
       @close="dialog.visible = false"
       :destroy-on-close="true"
     >
-      <fault-detail  :escalationFaultId="fault.id" :dialog="dialog" />
+      <fault-detail :escalationFaultId="fault.id" :dialog="dialog" />
     </el-dialog>
 
     <el-dialog
@@ -74,7 +84,7 @@
       @close="closeFaultDetail"
       :destroy-on-close="true"
     >
-      <fault-handle  :escalationId="faultInfo.id" :dia="dialog1" />
+      <fault-handle :escalationId="faultInfo.id" :dia="dialog1" />
     </el-dialog>
 
     <el-dialog
@@ -84,7 +94,11 @@
       @close="closeFaultHandel"
       :destroy-on-close="true"
     >
-      <fault-page  :faultId="faultEs.id" :dial="dialog2" :workOrderCode="faultEs.workOrderCode"/>
+      <fault-page
+        :faultId="faultEs.id"
+        :dial="dialog2"
+        :workOrderCode="faultEs.workOrderCode"
+      />
     </el-dialog>
 
     <el-dialog
@@ -94,180 +108,187 @@
       @close="closeFault"
       :destroy-on-close="true"
     >
-      <FaultExamine  :escFaultId="faultExa.id" :dialogPs="dialog3" />
+      <FaultExamine :escFaultId="faultExa.id" :dialogPs="dialog3" />
     </el-dialog>
   </div>
 </template>
 <script setup>
-  import { ref, getCurrentInstance } from "vue";
-  import { useCrud } from "@/hooks/userCrud";
-  import ButtonPermKeys from "@/common/configs/buttonPermission";
-  import dictDataUtil from "@/common/configs/dictDataUtil";
-  import { useCommonStoreHook, useDictionaryStore } from "@/store";
-  import FaultExamine from "@/views/quality/faultHandle/components/fault-examine.vue"
-  const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-  // 数据字典相关
-  const { dicts } = useDictionaryStore();
-
-  const test = () => {
-    isShowTable.value = true;
-    tableType.value = tableType.value == 1 ? 2 : 1;
-  };
-  const dialog = ref({
-    title: "报故详情",
-    visible: false,
-  });
-  const dialog1 = ref({
-    title: "报故处理",
-    visible: false,
-  });
-  const dialog2 = ref({
-    title: "解冻",
-    visible: false,
-  });
-  const dialog3 = ref({
-    title: "审核",
-    visible: false,
-  });
-
-  const closeFaultDetail=()=>{
-    dialog1.visible = false;
-    dataList();
-  }
-  const closeFaultHandel=()=>{
-    dialog2.visible = false;
-    dataList();
-  }
-  const fault=ref({});
-  const faultInfo=ref({});
-  const faultEs=ref({});
-  const faultExa=ref({});
-  const faultEdit=(row)=>{
-
-    faultInfo.value.id=row.id;
-
-    dialog1.value.visible=true;
-  }
-  const faultThaw=(row)=>{
-    faultEs.value=row;
-    dialog2.value.visible=true;
-  }
-
-  const faultExamine =(row)=>{
-    faultExa.value.id=row.id;
-    dialog3.value.visible=true;
-  }
-  const closeFault=()=>{
-    dialog3.value.visible=false;
-    dataList();
-  }
-  // 传入一个url,后面不带/
-  const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/process/escalationFault",
-    });
-  const { dataList, 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,
-  // });
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import dictDataUtil from "@/common/configs/dictDataUtil";
+import { useCommonStoreHook, useDictionaryStore } from "@/store";
+import FaultExamine from "@/views/quality/faultHandle/components/fault-examine.vue";
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+// 数据字典相关
+const { dicts } = useDictionaryStore();
 
-  const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-  const router = useRouter();
-  const route = useRoute();
-  const viewFault = (row) => {
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
+const dialog = ref({
+  title: "报故详情",
+  visible: false,
+});
+const dialog1 = ref({
+  title: "报故处理",
+  visible: false,
+});
+const dialog2 = ref({
+  title: "解冻",
+  visible: false,
+});
+const dialog3 = ref({
+  title: "审核",
+  visible: false,
+});
 
-    fault.value.id=row.id;
-    console.info(fault)
-    dialog.value.visible=true;
-  };
-  onMounted(() => {
-    // console.log("crudRef", crudRef)
+const closeFaultDetail = () => {
+  dialog1.visible = false;
+  dataList();
+};
+const closeFaultHandel = () => {
+  dialog2.visible = false;
+  dataList();
+};
+const fault = ref({});
+const faultInfo = ref({});
+const faultEs = ref({});
+const faultExa = ref({});
+const faultEdit = (row) => {
+  faultInfo.value.id = row.id;
 
-    search.value.id = route.query.id;
-    search.value.state = radio1.value;
-    dataList();
+  dialog1.value.visible = true;
+};
+const faultThaw = (row) => {
+  faultEs.value = row;
+  dialog2.value.visible = true;
+};
 
+const faultExamine = (row) => {
+  faultExa.value.id = row.id;
+  dialog3.value.visible = true;
+};
+const closeFault = () => {
+  dialog3.value.visible = false;
+  dataList();
+};
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/process/escalationFault",
   });
+const { dataList, 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 searchChangeState=()=>{
-    search.value.state=radio1.value;
-    dataList();
-  }
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+const router = useRouter();
+const route = useRoute();
+const viewFault = (row) => {
+  fault.value.id = row.id;
+  console.info(fault);
+  dialog.value.visible = true;
+};
+onMounted(() => {
+  // console.log("crudRef", crudRef)
 
-  const radio1 = ref('1')
+  search.value.id = route.query.id;
+  search.value.state = radio1.value;
+  dataList();
+});
 
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    addBtn: false,
-    editBtn:false,
-    delBtn:false,
-    viewBtn:false,
-    column: [
+const searchChangeState = () => {
+  search.value.state = radio1.value;
+  dataList();
+};
 
-      {
-        label: "审理单号",
-        prop: "trackingNumber",
-        overHidden: true,
-        search: true,
-      },
-      {
-        label: "工单号",
-        prop: "workOrderCode",
-        overHidden: true,
-        search: true,
-      },
-      {
-        label: "订单号",
-        prop: "orderCode",
-        overHidden: true,
-        width:120,
-        search: true,
-      },
-      {
-        label: "不合格数量",
-        overHidden: true,
-        width:100,
-        prop: "unqualifiedNum",
-      },
-      {
-        label: "产品编码", prop: "materialCode", overHidden: true,
-
-      },
-      {
-        label: "产品名称", prop: "materialName", overHidden: true,
-        width:100,
-      },
-
-      {
-        label: "流转卡号", prop: "seqNo", overHidden: true,search:true,
-      },
-      {
-        label: "状态", prop: "state", overHidden: true,
-        width:120,
-        dicUrl:dictDataUtil.request_url + dictDataUtil.TYPE_CODE.escalation_fault_state,
-        props: { label: "dictLabel", value: "dictValue" },
-      },
-      {
-        label: "跟踪状态", prop: "currentState", overHidden: true,
-        width:100,
-        dicUrl:dictDataUtil.request_url + dictDataUtil.TYPE_CODE.fault_current_state,
-        props: { label: "dictLabel", value: "dictValue" },
-      },
-      {
-        label: "报故人", prop: "creator",
-        overHidden: true,
-        width:100,
-      },
-
-    ],
-  });
+const radio1 = ref("1");
 
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  addBtn: false,
+  editBtn: false,
+  delBtn: false,
+  viewBtn: false,
+  column: [
+    {
+      label: "审理单号",
+      prop: "trackingNumber",
+      overHidden: true,
+      search: true,
+    },
+    {
+      label: "工单号",
+      prop: "workOrderCode",
+      overHidden: true,
+      search: true,
+    },
+    {
+      label: "订单号",
+      prop: "orderCode",
+      overHidden: true,
+      width: 120,
+      search: true,
+    },
+    {
+      label: "不合格数量",
+      overHidden: true,
+      width: 100,
+      prop: "unqualifiedNum",
+    },
+    {
+      label: "产品编码",
+      prop: "materialCode",
+      overHidden: true,
+    },
+    {
+      label: "产品名称",
+      prop: "materialName",
+      overHidden: true,
+      width: 100,
+    },
 
+    {
+      label: "流转卡号",
+      prop: "seqNo",
+      overHidden: true,
+      search: true,
+    },
+    {
+      label: "状态",
+      prop: "state",
+      overHidden: true,
+      width: 120,
+      dicUrl:
+        dictDataUtil.request_url +
+        dictDataUtil.TYPE_CODE.escalation_fault_state,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
+    {
+      label: "跟踪状态",
+      prop: "currentState",
+      overHidden: true,
+      width: 100,
+      dicUrl:
+        dictDataUtil.request_url + dictDataUtil.TYPE_CODE.fault_current_state,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
+    {
+      label: "报故人",
+      prop: "creator",
+      overHidden: true,
+      width: 100,
+    },
+  ],
+});
 </script>

+ 139 - 131
src/views/quality/outsource/index.vue

@@ -1,78 +1,83 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        v-loading="loading2"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      v-loading="loading2"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
-      <template #menu="{size,row,index}">
-<!--        <el-button
+      <template #menu="{ size, row, index }">
+        <!--        <el-button
             icon="el-icon-delete"
             text
             @click="deleteRow(row)"
             type="danger"
             :size="size">删除</el-button>-->
         <el-button
-            icon="el-icon-edit"
-            text
-            v-if="row.state === '0'"
-            @click="openDialog(1,row.id)"
-            type="primary"
-            :size="size">审核</el-button>
+          icon="el-icon-edit"
+          text
+          v-if="row.state === '0'"
+          @click="openDialog(1, row.id)"
+          type="primary"
+          :size="size"
+          >审核</el-button
+        >
 
         <el-button
-            icon="el-icon-edit"
-            text
-            @click="openDialog(0,row.id)"
-            type="primary"
-            :size="size">详情</el-button>
+          text
+          @click="openDialog(0, row.id)"
+          type="primary"
+          :size="size"
+          >详情
+          <template #icon>
+            <svg-icon icon-class="xiangqing"></svg-icon>
+          </template>
+        </el-button>
         <el-button
-          v-if="row.state==='1' && row.sendState!='3' "
+          v-if="row.state === '1' && row.sendState != '3'"
           icon="el-icon-position"
           text
           @click="sendTdms(row.id)"
           type="primary"
           :size="size"
-        >发送TDM</el-button
+          >发送TDM</el-button
         >
       </template>
     </avue-crud>
     <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="950px"
-        @close="dialog.visible = false"
+      v-model="dialog.visible"
+      :title="dialog.title"
+      width="950px"
+      @close="dialog.visible = false"
     >
-
-      <el-form ref="queryFormRef"  label-width="100" :inline="true">
+      <el-form ref="queryFormRef" label-width="100" :inline="true">
         <el-row :gutter="24">
           <el-col :lg="10" :xs="24">
             <el-form-item label="产品名称">
-              <el-text>{{form.materialName}}</el-text>
+              <el-text>{{ form.materialName }}</el-text>
             </el-form-item>
           </el-col>
 
           <el-col :lg="6" :xs="24">
             <el-form-item label="产品编码">
-              <el-text>{{form.materialCode}}</el-text>
+              <el-text>{{ form.materialCode }}</el-text>
             </el-form-item>
           </el-col>
 
           <el-col :lg="2" :xs="24">
             <el-form-item label="产品数量">
-              <el-text>{{form.outNum}}</el-text>
+              <el-text>{{ form.outNum }}</el-text>
             </el-form-item>
           </el-col>
         </el-row>
@@ -80,32 +85,32 @@
         <el-row :gutter="24">
           <el-col :lg="24" :xs="24">
             <el-form-item label=" ">
-              <el-table border=true
-                  class="gray-header-table"
-                  v-loading="loading"
-                  :data="form.details"
-                  highlight-current-row>
+              <el-table
+                border="true"
+                class="gray-header-table"
+                v-loading="loading"
+                :data="form.details"
+                highlight-current-row
+              >
                 <el-table-column
-                    label="流转卡号"
-                    align="left"
-                    width=350
-                    prop="seqNo"
+                  label="流转卡号"
+                  align="left"
+                  width="350"
+                  prop="seqNo"
                 />
                 <el-table-column
-                    label="状态"
-                    width=250
-                    align="left"
-                    prop="state"
+                  label="状态"
+                  width="250"
+                  align="left"
+                  prop="state"
                 >
                   <template #default="scope">
-                    <el-tag
-                        v-if="scope.row.state === 0"
-                        type="success"
-                    >合格</el-tag>
-                    <el-tag
-                        v-if="scope.row.state === 1"
-                        type="error"
-                    >不合格</el-tag>
+                    <el-tag v-if="scope.row.state === 0" type="success"
+                      >合格</el-tag
+                    >
+                    <el-tag v-if="scope.row.state === 1" type="error"
+                      >不合格</el-tag
+                    >
                   </template>
                 </el-table-column>
               </el-table>
@@ -115,49 +120,53 @@
         <el-row :gutter="24">
           <el-col :lg="24" :xs="24">
             <el-form-item label="委外工序">
-              <el-text>{{form.operationNames}}</el-text>
+              <el-text>{{ form.operationNames }}</el-text>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="24">
-        <el-col :lg="24" :xs="24">
-          <el-form-item label="委外供应商">
-            <el-text>{{form.manufacturers}}</el-text>
-          </el-form-item>
-        </el-col>
+          <el-col :lg="24" :xs="24">
+            <el-form-item label="委外供应商">
+              <el-text>{{ form.manufacturers }}</el-text>
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row>
-        <el-col :lg="24" :xs="24">
-          <el-form-item label="备注">
-            <el-text>{{form.remark}}</el-text>
-          </el-form-item>
-        </el-col>
-      </el-row>
-        <el-row  v-if="dialog.type === 1 && checkPerm('outsource:audit')" >
+          <el-col :lg="24" :xs="24">
+            <el-form-item label="备注">
+              <el-text>{{ form.remark }}</el-text>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row v-if="dialog.type === 1 && checkPerm('outsource:audit')">
           <el-col :lg="24" :xs="24">
             <el-form-item label="审核意见">
               <el-radio-group v-model="radio">
-                <el-radio :value=0>通 过</el-radio>
-                <el-radio :value=1>不通过</el-radio>
+                <el-radio :value="0">通 过</el-radio>
+                <el-radio :value="1">不通过</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row  v-if="form.state !== '0'" >
+        <el-row v-if="form.state !== '0'">
           <el-col :lg="8" :xs="24">
             <el-form-item label="审核人">
-              <el-text>{{form.auditUser}}</el-text>
+              <el-text>{{ form.auditUser }}</el-text>
             </el-form-item>
           </el-col>
           <el-col :lg="8" :xs="24">
             <el-form-item label="审核时间">
-              <el-text>{{form.auditTime}}</el-text>
+              <el-text>{{ form.auditTime }}</el-text>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
 
-      <div class="dialog-footer" align="center" v-if="dialog.type === 1 && checkPerm('outsource:audit')">
+      <div
+        class="dialog-footer"
+        align="center"
+        v-if="dialog.type === 1 && checkPerm('outsource:audit')"
+      >
         <el-button @click="dialog.visible = false">取 消</el-button>
         <el-button type="primary" @click="audit">审 核</el-button>
       </div>
@@ -169,7 +178,11 @@ import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import { checkPerm } from "@/directive/permission";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
-import {queryOutSourceDetails,updateOutSourceApply,sendTdm} from "@/api/process";
+import {
+  queryOutSourceDetails,
+  updateOutSourceApply,
+  sendTdm,
+} from "@/api/process";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -177,48 +190,49 @@ const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const radio = ref(0)
+const radio = ref(0);
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/process/outsource",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
-const loading = ref(false)
+const loading = ref(false);
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 const dialog = reactive({
   title: "委外详情",
   visible: false,
-  type: 0
+  type: 0,
 });
-const openDialog = (type,id) =>{
-  dialog.title = type === 0 ? '委外详情' : '委外审核' ;
-  queryOutSourceDetails(id).then((data)=>{
-    form.value = data.data
-    radio.value = 0
-    if(form.value){
-      if(form.value.state === '2'){
-        radio.value = 1
+const openDialog = (type, id) => {
+  dialog.title = type === 0 ? "委外详情" : "委外审核";
+  queryOutSourceDetails(id).then((data) => {
+    form.value = data.data;
+    radio.value = 0;
+    if (form.value) {
+      if (form.value.state === "2") {
+        radio.value = 1;
       }
     }
-    dialog.visible = true
-    dialog.type = type
-  })
-}
-const audit = () =>{
-  form.value.state = radio.value === 0 ? 1: 2;
-  updateOutSourceApply(form.value).then((data)=>{
-    if(data.code === '200'){
-      ElMessage.success("操作成功")
-      dialog.visible = false
-      dataList()
-    }else{
-      ElMessage.error(data.msg)
+    dialog.visible = true;
+    dialog.type = type;
+  });
+};
+const audit = () => {
+  form.value.state = radio.value === 0 ? 1 : 2;
+  updateOutSourceApply(form.value).then((data) => {
+    if (data.code === "200") {
+      ElMessage.success("操作成功");
+      dialog.visible = false;
+      dataList();
+    } else {
+      ElMessage.error(data.msg);
     }
-  })
-}
+  });
+};
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   addBtn: false,
@@ -283,9 +297,7 @@ option.value = Object.assign(option.value, {
       type: "select",
       search: true,
       width: 90,
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.outsource_state,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.outsource_state,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -313,8 +325,8 @@ option.value = Object.assign(option.value, {
       label: "发送状态",
       prop: "sendState",
       width: 90,
-      hide:true,
-      display:false
+      hide: true,
+      display: false,
     },
     {
       label: "审核时间",
@@ -336,26 +348,22 @@ option.value = Object.assign(option.value, {
     },
   ],
 });
-const updateApply=ref({});
-const loading2=ref(false);
-const sendTdms=(rowId)=>{
-  loading2.value=true;
-  updateApply.value.id=rowId;
-  sendTdm(updateApply.value).then(
-
-    (data)=>{
-      if (data.code === "200") {
-        loading2.value=false;
-        ElMessage.success("操作成功");
-        dataList();
-      } else {
-        loading2.value=false;
-        ElMessage.error(data.msg);
-      }
+const updateApply = ref({});
+const loading2 = ref(false);
+const sendTdms = (rowId) => {
+  loading2.value = true;
+  updateApply.value.id = rowId;
+  sendTdm(updateApply.value).then((data) => {
+    if (data.code === "200") {
+      loading2.value = false;
+      ElMessage.success("操作成功");
+      dataList();
+    } else {
+      loading2.value = false;
+      ElMessage.error(data.msg);
     }
-  )
-
-}
+  });
+};
 onMounted(() => {
   // console.log("crudRef", crudRef)
   dataList();

+ 5 - 3
src/views/quality/tdm/index.vue

@@ -18,13 +18,15 @@
     >
       <template #menu="{ size, row, index }">
         <el-button
-          icon="el-icon-edit"
           text
           @click="openDialog(0, row.id, row.outsourceId)"
           type="primary"
           :size="size"
-          >详情</el-button
-        >
+          >详情
+          <template #icon>
+            <svg-icon icon-class="xiangqing"></svg-icon>
+          </template>
+        </el-button>
       </template>
     </avue-crud>
     <el-dialog

File diff suppressed because it is too large
+ 390 - 275
src/views/storage/check/index.vue


+ 8 - 6
src/views/system/logs/index.vue

@@ -21,7 +21,10 @@
               v-hasPerm="['plan:order:export']"
               @click="clearLog1"
             >
-              <template #icon> <i-ep-download /> </template>清空
+              清空
+              <template #icon>
+                <svg-icon icon-class="qingkong"></svg-icon>
+              </template>
             </el-button>
           </template>
         </avue-crud>
@@ -110,7 +113,6 @@ option.value = {
       label: "编号",
       prop: "id",
       width: 80,
-
     },
     {
       label: "系统模块",
@@ -160,7 +162,7 @@ option.value = {
       label: "操作地址",
       prop: "requestUrl",
       width: 200,
-      overHidden: true
+      overHidden: true,
     },
     {
       label: "操作人员",
@@ -216,7 +218,7 @@ optionLogin.value = {
     {
       label: "编号",
       prop: "id",
-      width: 80
+      width: 80,
     },
     {
       label: "用户名称",
@@ -233,11 +235,11 @@ optionLogin.value = {
       html: true,
       type: "select",
       formatter: (val) => {
-        if (val.operatorType === 'aio') {
+        if (val.operatorType === "aio") {
           return '<b class="el-tag el-tag--info el-tag--light">一体机</b>';
         }
         return '<b class="el-tag el-tag--info el-tag--light">后台</b>';
-      }
+      },
     },
     {
       label: "浏览器",