浏览代码

修改。。

jxq 1 月之前
父节点
当前提交
660cb7489a
共有 2 个文件被更改,包括 482 次插入450 次删除
  1. 324 332
      src/views/plan/order/index.vue
  2. 158 118
      src/views/plan/prepare/index.vue

+ 324 - 332
src/views/plan/order/index.vue

@@ -1,85 +1,92 @@
 <template>
-
   <div class="mainContentBox">
     <el-container>
-    <el-aside width="200px" style="min-height: 800px; max-height: calc(100vh - 200px);overflow-y:hidden">
-      <avue-tree :option="treeOption"
-                 :data="treeData"
-                 v-model="formTree"
-                 @node-click="nodeClick"
-                 @save="save"
-                 @update="updateRow"
-                 @del="delRow"
-      ></avue-tree>
-    </el-aside>
-    <el-main>
-    <avue-crud
-      ref="crudRef"
-      :option="option"
-      v-model:page="page"
-      v-model:search="search"
-      v-model="form"
-      :table-loading="loading"
-      :permission="permission"
-      @search-change="handleQuery"
-      @search-reset="resetChange"
-      @size-change="handleQuery"
-      @current-change="handleQuery"
-      @row-save="rowSave"
-      @row-update="rowUpdate"
-      @row-del="rowDel"
-      :data="pageData"
-    >
-      <!--      <template #menu-left="{ size }">
+      <el-aside
+        width="200px"
+        style="
+          min-height: 800px;
+          max-height: calc(100vh - 200px);
+          overflow-y: hidden;
+        "
+      >
+        <avue-tree
+          :option="treeOption"
+          :data="treeData"
+          v-model="formTree"
+          @node-click="nodeClick"
+          @save="save"
+          @update="updateRow"
+          @del="delRow"
+        ></avue-tree>
+      </el-aside>
+      <el-main>
+        <avue-crud
+          ref="crudRef"
+          :option="option"
+          v-model:page="page"
+          v-model:search="search"
+          v-model="form"
+          :table-loading="loading"
+          :permission="permission"
+          @search-change="handleQuery"
+          @search-reset="resetChange"
+          @size-change="handleQuery"
+          @current-change="handleQuery"
+          @row-save="rowSave"
+          @row-update="rowUpdate"
+          @row-del="rowDel"
+          :data="pageData"
+        >
+          <!--      <template #menu-left="{ size }">
         <el-button type="primary" @click="scan">扫码导入</el-button>
         <el-button type="primary" @click="test">测试数据</el-button>
       </template>-->
-      <template #menu-left="{ size }">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          :size="size"
-          @click="rowAdd"
-        >新增</el-button
-        >
-      </template>
-      <template #menu-right="{}">
-        <el-dropdown split-button v-hasPerm="['plan:order:import']"
-          >导入
-          <template #dropdown>
-            <el-dropdown-menu>
-              <el-dropdown-item @click="downloadTemplate">
-                <i-ep-download />下载模板
-              </el-dropdown-item>
-              <el-dropdown-item @click="openDialog('obj-import')">
-                <i-ep-top />导入数据
-              </el-dropdown-item>
-            </el-dropdown-menu>
+          <template #menu-left="{ size }">
+            <el-button
+              type="primary"
+              icon="el-icon-plus"
+              :size="size"
+              @click="rowAdd"
+              >新增</el-button
+            >
           </template>
-        </el-dropdown>
-        <el-button
-          class="ml-3"
-          v-hasPerm="['plan:order:export']"
-          @click="handleExport"
-        >
-          <template #icon> <i-ep-download /> </template>导出
-        </el-button>
-      </template>
-      <template #menu="{ size, row, index }">
-        <el-button
-          v-hasPerm="[buttonPermission.PLAN.BTNS.order_edit]"
-          v-if="
-            row.orderState === '0' ||
-            row.orderState === '1' ||
-            row.orderState === '2'
-          "
-          type="primary"
-          link
-          size="small"
-          @click="handleEdit(row, 0)"
-          ><i-ep-edit />编辑
-        </el-button>
-        <!--        <el-button
+          <template #menu-right="{}">
+            <el-dropdown split-button v-hasPerm="['plan:order:import']"
+              >导入
+              <template #dropdown>
+                <el-dropdown-menu>
+                  <el-dropdown-item @click="downloadTemplate">
+                    <i-ep-download />下载模板
+                  </el-dropdown-item>
+                  <el-dropdown-item @click="openDialog('obj-import')">
+                    <i-ep-top />导入数据
+                  </el-dropdown-item>
+                </el-dropdown-menu>
+              </template>
+            </el-dropdown>
+            <el-button
+              class="ml-3"
+              v-hasPerm="['plan:order:export']"
+              @click="handleExport"
+            >
+              <template #icon> <i-ep-download /> </template>导出
+            </el-button>
+          </template>
+          <template #menu="{ size, row, index }">
+            <el-button
+              v-hasPerm="[buttonPermission.PLAN.BTNS.order_edit]"
+              v-if="
+                row.orderState === '0' ||
+                row.orderState === '1' ||
+                row.orderState === '2'
+              "
+              type="primary"
+              link
+              size="small"
+              @click="handleEdit(row, 0)"
+              ><i-ep-edit />编辑
+            </el-button>
+            <!--        <el-button
             v-if="row.nameplated === 1"
             type="info"
             link
@@ -87,161 +94,161 @@
             @click="handleNameplated(row)"
         ><i-ep-edit />铭牌
         </el-button>-->
-        <el-button
-          v-hasPerm="[buttonPermission.PLAN.BTNS.order_del]"
-          v-if="
-            row.orderState === '0' ||
-            row.orderState === '1' ||
-            row.orderState === '2'
-          "
-          type="danger"
-          link
-          size="small"
-          @click="rowDel(row, 0)"
-          ><i-ep-edit />删除
-        </el-button>
-        <!--        <el-button
+            <el-button
+              v-hasPerm="[buttonPermission.PLAN.BTNS.order_del]"
+              v-if="
+                row.orderState === '0' ||
+                row.orderState === '1' ||
+                row.orderState === '2'
+              "
+              type="danger"
+              link
+              size="small"
+              @click="rowDel(row, 0)"
+              ><i-ep-edit />删除
+            </el-button>
+            <!--        <el-button
           type="primary"
           size="small"
           v-if="row.orderState == '5'"
           @click="handleScanCode(row.id)"
           >二维码生成
         </el-button>-->
-      </template>
-    </avue-crud>
-    <el-dialog
-      v-model="dialog1.visible"
-      :title="dialog1.title"
-      width="950px"
-      @close="dialog1.visible = false"
-    >
-      <choice-item-page @material-info="materialInfo" />
-    </el-dialog>
-    <el-dialog
-      v-model="dialog.visible"
-      :title="dialog.title"
-      width="500px"
-      @close="closeDialog"
-    >
-      <el-form
-        v-if="dialog.type === 'obj-import'"
-        :model="importData"
-        label-width="100px"
-      >
-        <el-form-item label="Excel文件">
-          <el-upload
-            ref="uploadRef"
-            action=""
-            drag
-            accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
-            :limit="1"
-            :auto-upload="false"
-            :file-list="importData.fileList"
-            :on-change="handleFileChange"
-            :on-exceed="handleFileExceed"
+          </template>
+        </avue-crud>
+        <el-dialog
+          v-model="dialog1.visible"
+          :title="dialog1.title"
+          width="950px"
+          @close="dialog1.visible = false"
+        >
+          <choice-item-page @material-info="materialInfo" />
+        </el-dialog>
+        <el-dialog
+          v-model="dialog.visible"
+          :title="dialog.title"
+          width="500px"
+          @close="closeDialog"
+        >
+          <el-form
+            v-if="dialog.type === 'obj-import'"
+            :model="importData"
+            label-width="100px"
           >
-            <el-icon class="el-icon--upload">
-              <i-ep-upload-filled />
-            </el-icon>
-            <div class="el-upload__text">
-              将文件拖到此处,或
-              <em>点击上传</em>
-            </div>
-            <template #tip>
-              <div style="color: red">文件类型: xls/xlsx</div>
-            </template>
-          </el-upload>
-        </el-form-item>
-      </el-form>
-      <!-- 弹窗底部操作按钮 -->
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="handleSubmit">确 定</el-button>
-          <el-button @click="closeDialog">取 消</el-button>
-        </div>
-      </template>
-    </el-dialog>
-    <el-dialog
-      v-model="dialog2.visible"
-      :title="dialog2.title"
-      width="950px"
-      @close="
-        dialog2.visible = false;
-        scanArray = [];
-        scanCpArray = [];
-      "
-    >
-      <el-input
-        @keyup.enter="scanFnc"
-        v-model="scanCode"
-        style="padding: 20px"
-        placeholder="请扫码"
-      />
-
-      <div class="scanInfo">
-        <el-scrollbar class="scrollbar">
-          <div class="item" v-for="(item, index) in scanArray" :key="index">
-            <div class="text">扫码Cp: {{ item.cp }}</div>
-            <div @click="deleteItem(index)" class="text">
-              <el-icon><Delete /></el-icon>
+            <el-form-item label="Excel文件">
+              <el-upload
+                ref="uploadRef"
+                action=""
+                drag
+                accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+                :limit="1"
+                :auto-upload="false"
+                :file-list="importData.fileList"
+                :on-change="handleFileChange"
+                :on-exceed="handleFileExceed"
+              >
+                <el-icon class="el-icon--upload">
+                  <i-ep-upload-filled />
+                </el-icon>
+                <div class="el-upload__text">
+                  将文件拖到此处,或
+                  <em>点击上传</em>
+                </div>
+                <template #tip>
+                  <div style="color: red">文件类型: xls/xlsx</div>
+                </template>
+              </el-upload>
+            </el-form-item>
+          </el-form>
+          <!-- 弹窗底部操作按钮 -->
+          <template #footer>
+            <div class="dialog-footer">
+              <el-button type="primary" @click="handleSubmit">确 定</el-button>
+              <el-button @click="closeDialog">取 消</el-button>
             </div>
-          </div>
-          <div v-if="scanArray.length < 1">暂无数据</div>
-        </el-scrollbar>
-        <div class="bottombtn">
-          <el-button
-            type="primary"
-            :disabled="scanArray.length < 1"
-            @click="scanSubmit"
-            >生 成</el-button
-          >
-        </div>
+          </template>
+        </el-dialog>
+        <el-dialog
+          v-model="dialog2.visible"
+          :title="dialog2.title"
+          width="950px"
+          @close="
+            dialog2.visible = false;
+            scanArray = [];
+            scanCpArray = [];
+          "
+        >
+          <el-input
+            @keyup.enter="scanFnc"
+            v-model="scanCode"
+            style="padding: 20px"
+            placeholder="请扫码"
+          />
 
-        <!-- <vue-qrcode value="1241421gaga" size="45" error-level="H" /> -->
-      </div>
-    </el-dialog>
-    <el-dialog
-      v-model="dialog3.visible"
-      :title="dialog3.title"
-      width="950px"
-      @close="
-        dialog3.visible = false;
-        scanCodeArray = [];
-      "
-    >
-      <div class="scanInfo">
-        <div style="padding: 0 20px; text-align: center">
-          二维码数量:{{ scanCodeArray.length }}
-        </div>
-        <el-scrollbar class="scrollbarA">
-          <div
-            class="box"
-            :style="
-              scanCodeArray.length == 1 ? '   justify-content: center;' : ''
-            "
-          >
-            <div
-              class="scancodeitem"
-              v-for="(item, index) in scanCodeArray"
-              :key="index"
-            >
-              <div class="qrcodeItem">
-                <vue-qrcode :value="item" size="70" error-level="low" />
+          <div class="scanInfo">
+            <el-scrollbar class="scrollbar">
+              <div class="item" v-for="(item, index) in scanArray" :key="index">
+                <div class="text">扫码Cp: {{ item.cp }}</div>
+                <div @click="deleteItem(index)" class="text">
+                  <el-icon><Delete /></el-icon>
+                </div>
               </div>
+              <div v-if="scanArray.length < 1">暂无数据</div>
+            </el-scrollbar>
+            <div class="bottombtn">
+              <el-button
+                type="primary"
+                :disabled="scanArray.length < 1"
+                @click="scanSubmit"
+                >生 成</el-button
+              >
             </div>
+
+            <!-- <vue-qrcode value="1241421gaga" size="45" error-level="H" /> -->
           </div>
+        </el-dialog>
+        <el-dialog
+          v-model="dialog3.visible"
+          :title="dialog3.title"
+          width="950px"
+          @close="
+            dialog3.visible = false;
+            scanCodeArray = [];
+          "
+        >
+          <div class="scanInfo">
+            <div style="padding: 0 20px; text-align: center">
+              二维码数量:{{ scanCodeArray.length }}
+            </div>
+            <el-scrollbar class="scrollbarA">
+              <div
+                class="box"
+                :style="
+                  scanCodeArray.length == 1 ? '   justify-content: center;' : ''
+                "
+              >
+                <div
+                  class="scancodeitem"
+                  v-for="(item, index) in scanCodeArray"
+                  :key="index"
+                >
+                  <div class="qrcodeItem">
+                    <vue-qrcode :value="item" size="70" error-level="low" />
+                  </div>
+                </div>
+              </div>
 
-          <div v-if="scanCodeArray.length < 1">暂无数据</div>
-        </el-scrollbar>
-      </div>
-    </el-dialog>
-    <CommonTable
-      ref="ctableRef"
-      tableTitle="报故单"
-      tableType="FAULT"
-      @selected-sure="onSelectedFinish"
-    />
-    </el-main>
+              <div v-if="scanCodeArray.length < 1">暂无数据</div>
+            </el-scrollbar>
+          </div>
+        </el-dialog>
+        <CommonTable
+          ref="ctableRef"
+          tableTitle="报故单"
+          tableType="FAULT"
+          @selected-sure="onSelectedFinish"
+        />
+      </el-main>
     </el-container>
   </div>
 </template>
@@ -262,17 +269,20 @@ import {
   getExpandAlias,
   scanImport,
   getScanCode,
-  getTestCode, orderLevelList, addOrderLevel, levelList, updateOrderLevel, delOrderLevel,
+  getTestCode,
+  orderLevelList,
+  addOrderLevel,
+  levelList,
+  updateOrderLevel,
+  delOrderLevel,
 } from "@/api/order";
 import { ref } from "vue";
 import _ from "lodash-es";
 import ChoiceItemPage from "@/views/base/materials/components/choice-item-page.vue";
-import {da} from "element-plus/es/locale";
-import {params} from "postcss-html";
+import { da } from "element-plus/es/locale";
+import { params } from "postcss-html";
 const rowAdd = () => {
   crudRef.value.rowAdd();
-
-
 };
 // 弹窗对象
 const dialog = reactive({
@@ -281,7 +291,7 @@ const dialog = reactive({
   width: 800,
   title: "",
 });
-const formTree=ref(null);
+const formTree = ref(null);
 const ctableRef = ref(null);
 const search = ref({});
 const option = ref({});
@@ -298,108 +308,94 @@ const importData = reactive({
 const treeData = ref([]);
 const dataDetail = ref({});
 const save = (node, data, done, loading) => {
-  if(Object.keys(node).length===0){
-    data.level=1;
+  if (Object.keys(node).length === 0) {
+    data.level = 1;
   }
-  if(Object.keys(node).length>0){
-     data.level=node.level+1;
-     data.parentId=node.data.id;
+  if (Object.keys(node).length > 0) {
+    data.level = node.level + 1;
+    data.parentId = node.data.id;
   }
-  addOrderLevel(data).then(
-    (resouce)=>{
-      done();
-      if(resouce.code==="200"){
-        ElMessage.success("新增成功");
-
-        orderLevelList(dataDetail.value).then(
-          (res)=>{
-            treeData.value=res.data;
-          }
-        )
+  addOrderLevel(data).then((resouce) => {
+    done();
+    if (resouce.code === "200") {
+      ElMessage.success("新增成功");
 
-      }
+      orderLevelList(dataDetail.value).then((res) => {
+        treeData.value = res.data;
+      });
     }
-  )
-
+  });
 };
 const delRow = (data, done) => {
-  ElMessageBox.confirm('此操作将永久删除该文件, 是否继续?', '提示', {
-    confirmButtonText: '确定',
-    cancelButtonText: '取消',
-    type: 'warning'
-  }).then(() => {
-    delOrderLevel(data.data).then(
-      (resouce)=>{
+  ElMessageBox.confirm("此操作将永久删除该文件, 是否继续?", "提示", {
+    confirmButtonText: "确定",
+    cancelButtonText: "取消",
+    type: "warning",
+  })
+    .then(() => {
+      delOrderLevel(data.data).then((resouce) => {
         done();
-        if(resouce.code==="200"){
+        if (resouce.code === "200") {
           ElMessage.success("删除成功");
-
-        }else {
+        } else {
           ElMessage.error(resouce.msg);
-          orderLevelList(dataDetail.value).then(
-            (res)=>{
-              treeData.value=res.data;
-            }
-          )
+          orderLevelList(dataDetail.value).then((res) => {
+            treeData.value = res.data;
+          });
         }
-      }
-
-    )
-  }).catch(() => {
-    ElMessage.info('已取消删除')
-  })
-}
+      });
+    })
+    .catch(() => {
+      ElMessage.info("已取消删除");
+    });
+};
 
 const updateRow = (node, data, done, loading) => {
-  updateOrderLevel(data).then(
-    (resouce)=>{
-      done();
-      if(resouce.code==="200"){
-        ElMessage.success("修改成功");
-
-        orderLevelList(dataDetail.value).then(
-          (res)=>{
-            treeData.value=res.data;
-          }
-        )
+  updateOrderLevel(data).then((resouce) => {
+    done();
+    if (resouce.code === "200") {
+      ElMessage.success("修改成功");
 
-      }else {
-        ElMessage.error(resouce.msg);
-      }
+      orderLevelList(dataDetail.value).then((res) => {
+        treeData.value = res.data;
+      });
+    } else {
+      ElMessage.error(resouce.msg);
     }
-
-  )
-}
-const param =ref({});
+  });
+};
+const param = ref({});
 const nodeClick = (data) => {
-    search.value.aircraftId=null;
-    search.value.sortiesId=null;
-    search.value.subId=null;
-    if(data.level==1){
-        search.value.aircraftId=data.id;
-   }
-    if(data.level==2){
-        search.value.sortiesId=data.id;
-    }
-    if(data.level==3){
-        search.value.subId=data.id;
-    }
-    handleQuery(null,null);
+  search.value.aircraftId = null;
+  search.value.sortiesId = null;
+  search.value.subId = null;
+  if (data.level == 1) {
+    search.value.aircraftId = data.id;
+  }
+  if (data.level == 2) {
+    search.value.sortiesId = data.id;
+  }
+  if (data.level == 3) {
+    search.value.subId = data.id;
+  }
+  handleQuery(null, null);
 };
 const treeOption = {
   formOption: {
     labelWidth: 100,
-    column: [{
-      label: '层级名称',
-      prop: 'label'
-    }],
+    column: [
+      {
+        label: "层级名称",
+        prop: "label",
+      },
+    ],
   },
   props: {
-    labelText: '标题',
-    label: 'label',
-    value: 'value',
-    children: 'children'
-  }
+    labelText: "标题",
+    label: "label",
+    value: "value",
+    children: "children",
+  },
 };
 const materialInfo = (value) => {
   form.value.materialCode = value.materialCode;
@@ -495,13 +491,13 @@ option.value = {
         value: "id",
       },
       change: ({ value, column }) => {
-        form.value.idSorties=null;
-        form.value.idSub=null;
-        sorties.value=[];
-        sub.value=[];
-        sorties1.value = treeData.value.filter(item =>item.id==value);
-        if(sorties1.value!=null&&sorties1.value.length>0){
-          sorties.value=sorties1.value[0].children;
+        form.value.idSorties = null;
+        form.value.idSub = null;
+        sorties.value = [];
+        sub.value = [];
+        sorties1.value = treeData.value.filter((item) => item.id == value);
+        if (sorties1.value != null && sorties1.value.length > 0) {
+          sorties.value = sorties1.value[0].children;
         }
       },
       rules: [
@@ -524,11 +520,11 @@ option.value = {
         value: "id",
       },
       change: ({ value, column }) => {
-        form.value.idSub=null;
-        sub.value=[];
-        sub1.value = sorties.value.filter(item =>item.id==value);
-        if(sub1.value!=null&&sub1.value.length>0){
-          sub.value=sub1.value[0].children;
+        form.value.idSub = null;
+        sub.value = [];
+        sub1.value = sorties.value.filter((item) => item.id == value);
+        if (sub1.value != null && sub1.value.length > 0) {
+          sub.value = sub1.value[0].children;
         }
       },
       rules: [
@@ -580,8 +576,7 @@ option.value = {
       props: {
         label: "label",
         value: "id",
-      }
-
+      },
     },
     {
       label: "计划类型",
@@ -721,7 +716,8 @@ option.value = {
       width: 100,
       overHidden: true,
       min: 1,
-      max: 99999,
+      max: 1,
+      value: 1,
       rules: [
         {
           required: true,
@@ -973,7 +969,8 @@ const handleQuery = (params, done) => {
   const querySearch = {
     pageSize: page.value.pageSize,
     pageNo: page.value.currentPage,
-    ...params,...search.value
+    ...params,
+    ...search.value,
   };
   getOrderPage(querySearch)
     .then(({ data }) => {
@@ -1110,18 +1107,13 @@ const handleExport = () => {
 onMounted?.(() => {
   queryExpandAlias();
   handleQuery(null, null);
-  orderLevelList(dataDetail.value).then(
-    (data)=>{
-      treeData.value=data.data;
-    }
-  )
-  levelList(dataDetail.value).then(
-    (data)=>{
-      sub2.value=data.data;
-      sorties2.value=data.data;
-    }
-  )
-
+  orderLevelList(dataDetail.value).then((data) => {
+    treeData.value = data.data;
+  });
+  levelList(dataDetail.value).then((data) => {
+    sub2.value = data.data;
+    sorties2.value = data.data;
+  });
 });
 
 /** 选择报故单 */

+ 158 - 118
src/views/plan/prepare/index.vue

@@ -1,42 +1,56 @@
 <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"
-        @tree-load="treeLoad"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
-        :span-method="spanMethod"
+      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"
+      @tree-load="treeLoad"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
+      :span-method="spanMethod"
     >
       <template #orderCode="{ row }">
-        <el-text v-if="row.orderCode">{{row.orderCode}}</el-text>
-        <div style="width: 100%; height: 100%;display: flex" v-if="!row.orderCode && row.operationDetails">
-          <div style="width: 120px;height: 100%"  v-for="item in row.operationDetails">
+        <el-text v-if="row.orderCode">{{ row.orderCode }}</el-text>
+        <div
+          style="width: 100%; height: 100%; display: flex"
+          v-if="!row.orderCode && row.operationDetails"
+        >
+          <div
+            style="width: 120px; height: 100%"
+            v-for="item in row.operationDetails"
+          >
             <el-progress
-                :text-inside="true"
-                :stroke-width="35"
-                :font-color="'#ff0000'"
-                :percentage="item.completeNum/row.workOrderNum * 100"
-                status="success"
-            >{{item.operationName}}(完成{{item.completeNum}})
+              :text-inside="true"
+              :stroke-width="35"
+              :font-color="'#ff0000'"
+              :percentage="(item.completeNum / row.workOrderNum) * 100"
+              status="success"
+              >{{ item.operationName }}(完成{{ item.completeNum }})
             </el-progress>
           </div>
         </div>
-        <el-tag v-if="row.workOrderCode === '-' && row.stockNum > 0" type="primary">库存数量:{{ row.stockNum }}</el-tag>
-        <el-tag v-if="row.workOrderCode === '-' && row.stockNum === '0'" type="danger">库存数量:{{ row.stockNum }}</el-tag>
+        <el-tag
+          v-if="row.workOrderCode === '-' && row.stockNum > 0"
+          type="primary"
+          >库存数量:{{ row.stockNum }}</el-tag
+        >
+        <el-tag
+          v-if="row.workOrderCode === '-' && row.stockNum === '0'"
+          type="danger"
+          >库存数量:{{ row.stockNum }}</el-tag
+        >
       </template>
-      <template #menu="{size,row,index}">
-<!--        <el-button
+      <template #menu="{ size, row, index }">
+        <!--        <el-button
             type="primary"
             link
             v-if="row.bom === '0' || row.dataFile === '0'|| row.routeId === '0'|| row.craftFile === '0'"
@@ -45,14 +59,19 @@
         ><i-ep-edit />编辑
         </el-button>-->
         <el-button
-            type="primary"
-            link
-            v-if="row.deviceState === '0' || row.bom === '-' || row.craftFile === '-' || row.materialState === '0'"
-            size="small"
-            @click="handleRefresh(row.workOrderCode)"
-        ><i-ep-edit />刷新
+          type="primary"
+          link
+          v-if="
+            row.deviceState === '0' ||
+            row.bom === '-' ||
+            row.craftFile === '-' ||
+            row.materialState === '0'
+          "
+          size="small"
+          @click="handleRefresh(row.workOrderCode)"
+          ><i-ep-edit />数据同步
         </el-button>
-<!--        <el-button
+        <!--        <el-button
             type="primary"
             link
             v-if="row.bom === '0' || row.dataFile === '0'|| row.routeId === '0'|| row.craftFile === '0' || row.materialState === '0' || row.deviceState === '0'"
@@ -61,7 +80,7 @@
         ><i-ep-edit />删除
         </el-button>-->
       </template>
-<!--      <template #menu-left="{ size }">
+      <!--      <template #menu-left="{ size }">
         <el-button
           :disabled="toDeleteIds.length < 1"
           type="danger"
@@ -73,12 +92,12 @@
       </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"
     >
-      <work-order-page queryType="1"  @orderInfo="orderInfo"/>
+      <work-order-page queryType="1" @orderInfo="orderInfo" />
     </el-dialog>
   </div>
 </template>
@@ -86,8 +105,8 @@
 <script setup>
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
-import {prepareCheckInfo,refreshPrepareCheckInfo} from "@/api/order"
-import {queryChildrenInfo} from "@/api/process"
+import { prepareCheckInfo, refreshPrepareCheckInfo } from "@/api/order";
+import { queryChildrenInfo } from "@/api/process";
 import { useCommonStoreHook } from "@/store";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 const router = useRouter();
@@ -101,7 +120,8 @@ const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/plan/prepare",
   });
-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; //按钮权限等工具
 
@@ -110,17 +130,17 @@ const dialog = reactive({
   title: "计划选择",
   visible: false,
 });
-const merginState = ref(false)
-const spanMethod = ({ row, column, rowIndex, columnIndex })=>{
-  if(row.hasParent){
-    if(columnIndex === 6){
-      merginState.value = true
-      return [1, 11]
-    }else if(columnIndex > 6 && merginState){
-      return [0,0]
+const merginState = ref(false);
+const spanMethod = ({ row, column, rowIndex, columnIndex }) => {
+  if (row.hasParent) {
+    if (columnIndex === 6) {
+      merginState.value = true;
+      return [1, 11];
+    } else if (columnIndex > 6 && merginState) {
+      return [0, 0];
     }
-  }else{
-    merginState.value = false
+  } else {
+    merginState.value = false;
   }
   /*if (rowIndex % 2 === 0) {
     if (columnIndex === 0) {
@@ -129,42 +149,42 @@ const spanMethod = ({ row, column, rowIndex, columnIndex })=>{
       return [0, 0]
     }
   }*/
-}
-const checkInfo = (code) =>{
-  prepareCheckInfo(code).then((data)=>{
-    form.value.deviceStr = data.data.deviceStr
-    form.value.deviceState = data.data.deviceState
-    form.value.materialState = data.data.materialState
-    form.value.materialStr = data.data.materialStr
-  })
-}
-const treeLoad = (tree, treeNode, resolve) =>{
-  queryChildrenInfo(tree.workOrderCode).then((data)=>{
-    resolve(data.data)
-  })
-}
-const handleEdit =(row,index)=>{
-  crudRef.value && crudRef.value.rowEdit(row,index);
-}
-const handleRefresh =(code)=>{
-  refreshPrepareCheckInfo(code).then((data)=>{
-    if(data.code === '200'){
-      ElMessage.success("刷新成功")
-      dataList()
-    }else{
-      ElMessage.error(data.msg)
+};
+const checkInfo = (code) => {
+  prepareCheckInfo(code).then((data) => {
+    form.value.deviceStr = data.data.deviceStr;
+    form.value.deviceState = data.data.deviceState;
+    form.value.materialState = data.data.materialState;
+    form.value.materialStr = data.data.materialStr;
+  });
+};
+const treeLoad = (tree, treeNode, resolve) => {
+  queryChildrenInfo(tree.workOrderCode).then((data) => {
+    resolve(data.data);
+  });
+};
+const handleEdit = (row, index) => {
+  crudRef.value && crudRef.value.rowEdit(row, index);
+};
+const handleRefresh = (code) => {
+  refreshPrepareCheckInfo(code).then((data) => {
+    if (data.code === "200") {
+      ElMessage.success("刷新成功");
+      dataList();
+    } else {
+      ElMessage.error(data.msg);
     }
-  })
-}
+  });
+};
 const orderInfo = (value) => {
-  form.value.workOrderCode = value.workOrderCode
-  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
-  dialog.visible = false
-}
+  form.value.workOrderCode = value.workOrderCode;
+  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;
+  dialog.visible = false;
+};
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   delBtn: false,
@@ -174,16 +194,16 @@ option.value = Object.assign(option.value, {
   viewBtn: false,
   lazy: true,
   menuWidth: 100,
-  rowKey: 'workOrderCode',
+  rowKey: "workOrderCode",
   addBtn: false,
-  dialogWidth: '45%', // 设置编辑弹窗的宽度为50%
+  dialogWidth: "45%", // 设置编辑弹窗的宽度为50%
   column: [
     {
       label: "工单号",
       prop: "workOrderCode",
       search: true,
       minWidth: 200,
-      editDisabled : true,
+      editDisabled: true,
       rules: [
         {
           required: true,
@@ -192,15 +212,15 @@ option.value = Object.assign(option.value, {
         },
       ],
       click: ({ value, column }) => {
-        if(column.boxType){
-          dialog.visible = true
+        if (column.boxType) {
+          dialog.visible = true;
         }
       },
-      change:({ value, column }) =>{
-        if(value){
-          checkInfo(value)
+      change: ({ value, column }) => {
+        if (value) {
+          checkInfo(value);
         }
-      }
+      },
     },
     {
       label: "产品编码",
@@ -294,8 +314,12 @@ option.value = Object.assign(option.value, {
       editDisplay: false,
       html: true,
       formatter: (val) => {
-        if (val.craftFile !== '-') {
-          return '<b class="el-tag el-tag--success el-tag--light">'+val.craftFile+'</b>';
+        if (val.craftFile !== "-") {
+          return (
+            '<b class="el-tag el-tag--success el-tag--light">' +
+            val.craftFile +
+            "</b>"
+          );
         }
         return '<b class="el-tag el-tag--danger el-tag--light">-</b>';
       },
@@ -310,8 +334,12 @@ option.value = Object.assign(option.value, {
       editDisplay: false,
       html: true,
       formatter: (val) => {
-        if (val.bom !== '-') {
-          return '<b class="el-tag el-tag--success el-tag--light">'+val.bom+'</b>';
+        if (val.bom !== "-") {
+          return (
+            '<b class="el-tag el-tag--success el-tag--light">' +
+            val.bom +
+            "</b>"
+          );
         }
         return '<b class="el-tag el-tag--danger el-tag--light">-</b>';
       },
@@ -326,8 +354,12 @@ option.value = Object.assign(option.value, {
       prop: "routeId",
       html: true,
       formatter: (val) => {
-        if (val.routeId !== '-') {
-          return '<b class="el-tag el-tag--success el-tag--light">'+val.routeId+'</b>';
+        if (val.routeId !== "-") {
+          return (
+            '<b class="el-tag el-tag--success el-tag--light">' +
+            val.routeId +
+            "</b>"
+          );
         }
         return '<b class="el-tag el-tag--danger el-tag--light">-</b>';
       },
@@ -340,53 +372,61 @@ option.value = Object.assign(option.value, {
       overHidden: true,
       html: true,
       formatter: (val) => {
-        if (val.deviceState === '1') {
+        if (val.deviceState === "1") {
           return '<b class="el-tag el-tag--success el-tag--light">已齐套</b>';
         }
-        return '<b class="el-tag el-tag--danger el-tag--light">'+val.deviceStr+'</b>';
+        return (
+          '<b class="el-tag el-tag--danger el-tag--light">' +
+          val.deviceStr +
+          "</b>"
+        );
       },
     },
     {
       label: "物料状态",
-      prop: 'materialStr',
+      prop: "materialStr",
       disabled: true,
       width: 200,
       overHidden: true,
       span: 24,
       html: true,
       formatter: (val) => {
-        if (val.materialState === '1') {
+        if (val.materialState === "1") {
           return '<b class="el-tag el-tag--success el-tag--light">已齐套</b>';
         }
-        return '<b class="el-tag el-tag--danger el-tag--light">'+val.materialStr+'</b>';
+        return (
+          '<b class="el-tag el-tag--danger el-tag--light">' +
+          val.materialStr +
+          "</b>"
+        );
       },
     },
     {
       label: "创建时间",
       prop: "created",
       width: 200,
-      display: false
+      display: false,
     },
     {
       label: "创建人",
       width: 200,
       prop: "creator",
-      display: false
+      display: false,
     },
   ],
 });
 
-
 onMounted(() => {
-  form.value.routeId = "1"
-  form.value.materialState = 1
-  let url = window.location.href
-  if(url.includes("workOrderCode")){
-    search.value.workOrderCode = url.substring(url.indexOf("workOrderCode")+ 14)
+  form.value.routeId = "1";
+  form.value.materialState = 1;
+  let url = window.location.href;
+  if (url.includes("workOrderCode")) {
+    search.value.workOrderCode = url.substring(
+      url.indexOf("workOrderCode") + 14
+    );
   }
   dataList();
 });
-
 </script>
 <style scoped>
 :deep(.el-progress-bar__innerText) {