Kaynağa Gözat

Merge remote-tracking branch 'origin/cf_dev' into cf_dev

# Conflicts:
#	src/views/pro/traceability/index.vue
lupeng 7 ay önce
ebeveyn
işleme
d69889539b

+ 1 - 1
package.json

@@ -76,7 +76,7 @@
     "vue": "^3.4.21",
     "vue-draggable-plus": "^0.4.0",
     "vue-i18n": "9.9.1",
-    "vue-pdf-embed": "^2.0.2",
+    "vue-pdf-embed": "2.0.2",
     "vue-qrcode": "^2.2.2",
     "vue-router": "^4.3.0",
     "vue3-pdfjs": "^0.1.6",

+ 2 - 1
src/components/Upload/FilesUpload.vue

@@ -15,7 +15,8 @@
     >
     <template #tip>
       <div class="tip" v-if="showTip">
-        文件类型限制为.jpg,.jpeg,.png,word文档,pdf,大小不超过{{ size }}M
+        文件类型限制为jpg.jpeg.png.word.pdf.txt.dwg,大小不超过{{ size }}M
+        <br>dwg版本:R11/R12/preR13a/preR13b/R13/R14/R2000/R2004/R2007/R2010/R2013/R2014/R2015/R2018
       </div>
     </template>
     <div>

+ 159 - 159
src/views/pro/traceability/index.vue

@@ -1,4 +1,6 @@
 <template>
+  <div class="mainContentBox flex">
+    <div>
   <div class="mainContentBox common-layout">
     <el-container>
       <el-aside width="200px" style="min-height: 800px; max-height: calc(100vh - 200px);overflow-y:hidden">
@@ -34,166 +36,164 @@
           </template>
         </avue-crud>
       </el-aside>
-      <el-container>
-        <el-header style="height: 20%">
-          <el-descriptions title="产品信息一览" border>
-            <el-descriptions-item label="产品名称">{{
-              productReviewInfo.materialName
-            }}</el-descriptions-item>
-            <el-descriptions-item label="流转卡号">{{
-              productReviewInfo.seqNo
-            }}</el-descriptions-item>
-            <el-descriptions-item label="物料编号">{{
-              productReviewInfo.materialCode
-            }}</el-descriptions-item>
-            <el-descriptions-item label="产品规格">{{
-              productReviewInfo.materialModel
-            }}</el-descriptions-item>
-            <el-descriptions-item label="铭牌号">-</el-descriptions-item>
-            <el-descriptions-item label="是否返工">
-              <el-tag size="small">{{ productReviewInfo.rework }}</el-tag>
-            </el-descriptions-item>
-            <el-descriptions-item label="工单出站">{{
-              productReviewInfo.outNum
-            }}</el-descriptions-item>
-            <el-descriptions-item label="交付日期">{{
-              productReviewInfo.planStartEnd
-            }}</el-descriptions-item>
-            <el-descriptions-item label="工单报故"
-              ><el-tag size="small">{{
-                productReviewInfo.bug
-              }}</el-tag></el-descriptions-item
-            >
-          </el-descriptions>
-        </el-header>
-        <el-main>
-          <el-tabs
-            type="border-card"
-            @tab-click="tabsEvent"
-            v-model="defaultTabName"
+    </div>
+    <div style="width: calc(100% - 600px)">
+      <el-header style="height: 20%">
+        <el-descriptions title="产品信息一览" border>
+          <el-descriptions-item label="产品名称">{{
+            productReviewInfo.materialName
+          }}</el-descriptions-item>
+          <el-descriptions-item label="管号">{{
+            productReviewInfo.seqNo
+          }}</el-descriptions-item>
+          <el-descriptions-item label="物料编号">{{
+            productReviewInfo.materialCode
+          }}</el-descriptions-item>
+          <el-descriptions-item label="产品规格">{{
+            productReviewInfo.materialModel
+          }}</el-descriptions-item>
+          <el-descriptions-item label="铭牌号">-</el-descriptions-item>
+          <el-descriptions-item label="是否返工">
+            <el-tag size="small">{{ productReviewInfo.rework }}</el-tag>
+          </el-descriptions-item>
+          <el-descriptions-item label="工单出站">{{
+            productReviewInfo.outNum
+          }}</el-descriptions-item>
+          <el-descriptions-item label="交付日期">{{
+            productReviewInfo.planStartEnd
+          }}</el-descriptions-item>
+          <el-descriptions-item label="工单报故"
+            ><el-tag size="small">{{
+              productReviewInfo.bug
+            }}</el-tag></el-descriptions-item
           >
-            <el-tab-pane name="traceabilityComRef" label="维修履历">
-              <template #label>
-                <span
-                  >维修履历
-                  <el-badge
-                    :value="tabCount.traceability"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <TraceabilityCom ref="traceabilityComRef" />
-            </el-tab-pane>
-            <el-tab-pane name="materialsComRef" label="已采物料">
-              <template #label>
-                <span
-                  >已采物料
-                  <el-badge
-                    :value="tabCount.materials"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <MaterialsCom ref="materialsComRef" />
-            </el-tab-pane>
-            <el-tab-pane name="recordComRef" label="记录项">
-              <template #label>
-                <span
-                  >记录项
-                  <el-badge
-                    :value="tabCount.record"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <RecordCom ref="recordComRef"
-            /></el-tab-pane>
-            <el-tab-pane name="checkComRef" label="点检判定">
-              <template #label>
-                <span
-                  >点检判定
-                  <el-badge
-                    :value="tabCount.checks"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <CheckCom ref="checkComRef" />
-            </el-tab-pane>
-            <el-tab-pane name="equitComRef" label="设备使用">
-              <template #label>
-                <span
-                  >设备使用
-                  <el-badge
-                    :value="tabCount.equit"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <EquitCom ref="equitComRef"
-            /></el-tab-pane>
-            <el-tab-pane name="faultComRef" label="报故记录">
-              <template #label>
-                <span
-                  >报故记录
-                  <el-badge
-                    :value="tabCount.fault"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <FaultCom ref="faultComRef" />
-            </el-tab-pane>
-            <!--            <el-tab-pane name="bugComRef" label="缺陷项">缺陷项</el-tab-pane>-->
-            <el-tab-pane name="mediaComRef" label="图片采集"
-              ><template #label>
-                <span
-                  >图片采集
-                  <el-badge
-                    :value="tabCount.medias"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <media-com ref="mediaComRef"
-            /></el-tab-pane>
-            <el-tab-pane name="excelComRef" label="表格数据"
-              ><template #label>
-                <span
-                  >表格数据
-                  <el-badge
-                    :value="tabCount.excel"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <ExcelCom ref="excelComRef"
-            /></el-tab-pane>
-            <el-tab-pane name="cssjComRef" label="测试数据"
-              ><template #label>
-                <span
-                  >测试数据
-                  <el-badge
-                    :value="tabCount.testData"
-                    class="item"
-                    type="primary"
-                  />
-                </span>
-              </template>
-              <TestData ref="cssjComRef"
-            /></el-tab-pane>
-          </el-tabs>
-        </el-main>
-      </el-container>
-    </el-container>
+        </el-descriptions>
+      </el-header>
+      <el-main>
+        <el-tabs
+          type="border-card"
+          @tab-click="tabsEvent"
+          v-model="defaultTabName"
+        >
+          <el-tab-pane name="traceabilityComRef" label="维修履历">
+            <template #label>
+              <span
+                >维修履历
+                <el-badge
+                  :value="tabCount.traceability"
+                  class="item"
+                  type="primary"
+                />
+              </span>
+            </template>
+            <TraceabilityCom ref="traceabilityComRef" />
+          </el-tab-pane>
+          <el-tab-pane name="materialsComRef" label="已采物料">
+            <template #label>
+              <span
+                >已采物料
+                <el-badge
+                  :value="tabCount.materials"
+                  class="item"
+                  type="primary"
+                />
+              </span>
+            </template>
+            <MaterialsCom ref="materialsComRef" />
+          </el-tab-pane>
+          <el-tab-pane name="recordComRef" label="记录项">
+            <template #label>
+              <span
+                >记录项
+                <el-badge
+                  :value="tabCount.record"
+                  class="item"
+                  type="primary"
+                />
+              </span>
+            </template>
+            <RecordCom ref="recordComRef"
+          /></el-tab-pane>
+          <el-tab-pane name="checkComRef" label="点检判定">
+            <template #label>
+              <span
+                >点检判定
+                <el-badge
+                  :value="tabCount.checks"
+                  class="item"
+                  type="primary"
+                />
+              </span>
+            </template>
+            <CheckCom ref="checkComRef" />
+          </el-tab-pane>
+          <el-tab-pane name="equitComRef" label="设备使用">
+            <template #label>
+              <span
+                >设备使用
+                <el-badge :value="tabCount.equit" class="item" type="primary" />
+              </span>
+            </template>
+            <EquitCom ref="equitComRef"
+          /></el-tab-pane>
+          <el-tab-pane name="faultComRef" label="报故记录">
+            <template #label>
+              <span
+                >报故记录
+                <el-badge :value="tabCount.fault" class="item" type="primary" />
+              </span>
+            </template>
+            <FaultCom ref="faultComRef" />
+          </el-tab-pane>
+          <!--            <el-tab-pane name="bugComRef" label="缺陷项">缺陷项</el-tab-pane>-->
+          <el-tab-pane name="mediaComRef" label="图片采集"
+            ><template #label>
+              <span
+                >图片采集
+                <el-badge
+                  :value="tabCount.medias"
+                  class="item"
+                  type="primary"
+                />
+              </span>
+            </template>
+            <media-com ref="mediaComRef"
+          /></el-tab-pane>
+
+          <el-tab-pane name="excelComRef" label="表格数据"
+            ><template #label>
+              <span
+                >表格数据
+                <el-badge :value="tabCount.excel" class="item" type="primary" />
+              </span>
+            </template>
+            <ExcelCom ref="excelComRef"
+          /></el-tab-pane>
+          <el-tab-pane name="cssjComRef" label="设备数据"
+            ><template #label>
+              <span
+                >设备数据
+                <el-badge
+                  :value="tabCount.testData"
+                  class="item"
+                  type="primary"
+                />
+              </span>
+            </template>
+            <TestData ref="cssjComRef"
+          /></el-tab-pane>
+          <el-tab-pane name="fileComRef" label="工序文件">
+            <template #label>
+              <span
+                >工序文件
+                <el-badge :value="tabCount.file" class="item" type="primary" />
+              </span>
+            </template>
+            <FileCom ref="fileComRef"
+          /></el-tab-pane>
+        </el-tabs>
+      </el-main>
+    </div>
   </div>
 </template>
 <script setup>

+ 143 - 110
src/views/quality/outsource/index.vue

@@ -1,87 +1,90 @@
 <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="{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>
+          icon="el-icon-edit"
+          text
+          @click="openDialog(0, row.id)"
+          type="primary"
+          :size="size"
+          >详情</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.orderCode}}</el-text>
+              <el-text>{{ form.orderCode }}</el-text>
             </el-form-item>
           </el-col>
 
           <el-col :lg="6" :xs="24">
             <el-form-item label="订单名称">
-              <el-text>{{form.orderName}}</el-text>
+              <el-text>{{ form.orderName }}</el-text>
             </el-form-item>
           </el-col>
 
           <el-col :lg="2" :xs="24">
             <el-form-item label="工单编码">
-              <el-text>{{form.workOrderCode}}</el-text>
+              <el-text>{{ form.workOrderCode }}</el-text>
             </el-form-item>
           </el-col>
         </el-row>
         <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>
@@ -89,32 +92,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>
@@ -124,49 +127,77 @@
         <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-row v-if="form.state !== '0'">
+          <el-col :lg="8" :xs="24">
+            <el-form-item label="接收文件名">
+              <el-text>{{ form.receiveFileName }}</el-text>
+            </el-form-item>
+          </el-col>
+          <el-col :lg="8" :xs="24">
+            <el-form-item label="">
+              <el-button
+                @click="downLoadFile(form.receiveFile)"
+                text
+                type="primary"
+                >下载</el-button
+              >
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row v-if="form.state !== '0'">
+          <el-col :lg="8" :xs="24">
+            <el-form-item label="委外结论">
+              <el-text>{{ form.receiveRemark }}</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>
@@ -178,56 +209,60 @@ import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import { checkPerm } from "@/directive/permission";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
-import {queryOutSourceDetails,updateOutSourceApply} from "@/api/process";
+import { queryOutSourceDetails, updateOutSourceApply } from "@/api/process";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+const downLoadFile = (path) => {
+  location.href = import.meta.env.VITE_APP_UPLOAD_URL + path;
+};
 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,
@@ -292,9 +327,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",