Kaynağa Gözat

报故适配鸿蒙,检验修改。

jiaxiaoqiang 9 ay önce
ebeveyn
işleme
ecc40a22b0

+ 2 - 2
src/styles/index.scss

@@ -62,9 +62,9 @@
 
 .drawerTitle {
   width: 100%;
-  height: 38px;
+  height: 20px;
   font-weight: 500;
-  font-size: 38px;
+  font-size: 20px;
   color: rgba(0, 0, 0, 0.9);
   text-align: center;
 }

+ 25 - 15
src/views/pro-operation/inspect/components/checkForm.vue

@@ -1,10 +1,10 @@
 <template>
-  <el-form :model="modelValue" :rules="rules" label-width="100px" ref="formRef">
+  <el-form ref="formRef" :model="modelValue" :rules="rules" label-width="100px">
     <el-form-item label="检验项名称" prop="checkName">
       <el-input v-model="modelValue.checkName" />
     </el-form-item>
     <el-form-item label="检验内容" prop="checkContent">
-      <el-input type="textarea" v-model="modelValue.checkContent" />
+      <el-input v-model="modelValue.checkContent" type="textarea" />
     </el-form-item>
     <el-form-item label="结果" prop="result">
       <el-select v-model="modelValue.result">
@@ -13,27 +13,28 @@
       </el-select>
     </el-form-item>
     <el-form-item label="流转卡号" prop="seqNoList">
-      <el-select v-model="modelValue.seqNoList" multiple>
-        <el-option
-          v-for="(item, index) in SeqArray"
-          :key="index"
-          :label="item"
-          :value="item"
-        />
-      </el-select>
+      <div>{{ SeqArray?.[0] }}</div>
+      <!--      <el-select v-model="modelValue.seqNoList" multiple>-->
+      <!--        <el-option-->
+      <!--          v-for="(item, index) in SeqArray"-->
+      <!--          :key="index"-->
+      <!--          :label="item"-->
+      <!--          :value="item"-->
+      <!--        />-->
+      <!--      </el-select>-->
     </el-form-item>
     <el-form-item label="备注" prop="remark">
-      <el-input type="textarea" v-model="modelValue.remark" />
-    </el-form-item>
-    <el-form-item label="上传附件">
-      <FilesUpload v-model:src="modelValue.filePath" ref="uploadRef" />
+      <el-input v-model="modelValue.remark" type="textarea" />
     </el-form-item>
+    <!--    <el-form-item label="上传附件">-->
+    <!--      <FilesUpload v-model:src="modelValue.filePath" ref="uploadRef" />-->
+    <!--    </el-form-item>-->
   </el-form>
 </template>
 
 <script setup>
-import { getSeqData } from "@/api/inspect";
 import { useProcessStore } from "@/store/modules/processView";
+
 const rules = reactive({
   checkContent: [{ required: true, trigger: "blur" }],
   checkName: [{ required: true, trigger: "blur" }],
@@ -86,4 +87,13 @@ defineExpose({
   width: 100%;
   height: 100%;
 }
+
+.btns {
+  width: 100%;
+  height: 60px;
+  display: flex;
+  align-items: center;
+  padding: 0 20%;
+  justify-content: space-evenly;
+}
 </style>

+ 17 - 7
src/views/pro-operation/inspect/index.vue

@@ -127,9 +127,9 @@
       <div v-if="editStatus" class="content">
         <div class="form">
           <div class="formContent">
-            <el-scrollbar style="height: calc(100vh - 260px); padding: 20px">
-              <CheckForm ref="formRef" v-model="formData"
-            /></el-scrollbar>
+            <el-scrollbar style="height: calc(100vh - 200px); padding: 20px">
+              <CheckForm ref="formRef" v-model="formData" />
+            </el-scrollbar>
           </div>
           <div class="btns">
             <el-button class="sureBtn" type="primary" @click="submit"
@@ -147,17 +147,17 @@
 
 <script setup>
 import {
-  checkUser,
-  getCheckList,
   addCheckList,
-  editCheckList,
+  checkUser,
   deleteCheckList,
+  editCheckList,
+  getCheckList,
 } from "@/api/inspect";
 import { useProcessStore } from "@/store/modules/processView";
 import { useInspectStore } from "@/store/modules/inspect";
 import { downloadFile } from "@/utils/downLoad";
-import PDFView from "@/components/PDFView/index.vue";
 import CheckForm from "./components/checkForm.vue";
+
 const formRef = ref(null);
 const formData = ref({});
 const checkName = ref(null);
@@ -313,6 +313,7 @@ const options = [
 ];
 const inputValue = ref("");
 const handleSubmit = () => {
+  inputValue.value = inputValue.value.trim();
   checkUserVal();
 };
 const logOff = () => {
@@ -360,27 +361,32 @@ onUnmounted(() => {
   cursor: pointer;
   color: rgb(64, 158, 255);
 }
+
 .sureBtn {
   border-radius: 16px;
   font-size: 16px;
   font-size: 500;
 }
+
 .body {
   width: 100vw;
   height: calc(100vh - 120px);
   display: flex;
   align-items: center;
   justify-content: center;
+
   .checkBody {
     width: 30vw;
     align-items: center;
     justify-content: center;
   }
+
   .checkForm {
     width: 100%;
     height: 100%;
     display: flex;
     flex-direction: column;
+
     .headerName {
       width: 100%;
       height: 40px;
@@ -392,9 +398,11 @@ onUnmounted(() => {
       justify-content: space-between;
       align-items: center;
     }
+
     .content {
       flex: 1;
       padding: 20px;
+
       .form {
         width: 800px;
         height: 100%;
@@ -403,9 +411,11 @@ onUnmounted(() => {
         border-radius: 16px;
         display: flex;
         flex-direction: column;
+
         .formContent {
           flex: 1;
         }
+
         .btns {
           width: 100%;
           height: 60px;

+ 121 - 74
src/views/pro-operation/report-break/index.vue

@@ -3,13 +3,14 @@
     v-model="drawerVisible"
     :close-on-click-modal="false"
     :show-close="false"
+    :with-header="false"
     destroy-on-close
     direction="rtl"
     size="990px"
   >
-    <template #header>
-      <div class="drawerTitle">报故</div>
-    </template>
+    <!--    <template #header>-->
+    <!--      <div class="drawerTitle">报故</div>-->
+    <!--    </template>-->
     <template #default>
       <el-scrollbar>
         <div id="drawContent">
@@ -19,7 +20,6 @@
             :rules="rules"
             label-position="top"
             label-width="auto"
-            size="large"
           >
             <el-form-item label="基本信息">
               <div class="base-info">
@@ -48,25 +48,38 @@
                 </div>
               </div>
             </el-form-item>
-            <el-form-item
-              :label="`报故数量[${formLabelAlign.seqNoList.length}]`"
-              prop="seqNoList"
-            >
-              <el-select
-                v-model="formLabelAlign.seqNoList"
-                multiple
-                placeholder="请选择"
-                value-key="value"
-                @change="selectProcessWorkSeqChange"
-              >
-                <el-option
-                  v-for="item in infoData?.processWorkSeq"
-                  :key="item"
-                  :label="item"
-                  :value="item"
-                />
-              </el-select>
-            </el-form-item>
+
+            <el-row>
+              <el-col :span="11">
+                <el-form-item
+                  :label="`报故数量[${formLabelAlign.seqNoList.length}]`"
+                  prop="seqNoList"
+                >
+                  <el-select
+                    v-model="formLabelAlign.seqNoList"
+                    multiple
+                    placeholder="请选择"
+                    value-key="value"
+                    @change="selectProcessWorkSeqChange"
+                  >
+                    <el-option
+                      v-for="item in infoData?.processWorkSeq"
+                      :key="item"
+                      :label="item"
+                      :value="item"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :offset="1" :span="12">
+                <el-form-item label="是否首检" prop="firstInspection">
+                  <el-radio-group v-model="formLabelAlign.firstInspection">
+                    <el-radio :value="0" border>否</el-radio>
+                    <el-radio :value="1" border>是</el-radio>
+                  </el-radio-group>
+                </el-form-item>
+              </el-col>
+            </el-row>
 
             <el-row>
               <el-col :span="11">
@@ -106,45 +119,62 @@
               </el-col>
             </el-row>
 
-            <el-form-item label="是否首检" prop="firstInspection">
-              <el-radio-group v-model="formLabelAlign.firstInspection">
-                <el-radio :value="0" border size="large">否</el-radio>
-                <el-radio :value="1" border size="large">是</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="不合格品分布情况及工序" prop="processesList">
-              <el-select
-                v-model="formLabelAlign.processesList"
-                multiple
-                placeholder="请选择"
-                value-key="operationId"
-              >
-                <el-option
-                  v-for="item in operationList"
-                  :key="item.operationId"
-                  :label="item.operationName"
-                  :value="item.operationId"
-                />
-              </el-select>
-            </el-form-item>
+            <el-row>
+              <el-col :span="11">
+                <el-form-item
+                  label="不合格品分布情况及工序"
+                  prop="processesList"
+                >
+                  <el-select
+                    v-model="formLabelAlign.processesList"
+                    multiple
+                    placeholder="请选择"
+                    value-key="operationId"
+                  >
+                    <el-option
+                      v-for="item in operationList"
+                      :key="item.operationId"
+                      :label="item.operationName"
+                      :value="item.operationId"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :offset="1" :span="12">
+                <el-form-item label="责任/经办者" prop="personResponsible">
+                  <el-select
+                    v-model="formLabelAlign.personResponsible"
+                    filterable
+                    placeholder="请选择"
+                    value-key="id"
+                  >
+                    <el-option
+                      v-for="item in dictStroe.allUsers"
+                      :key="item.id"
+                      :label="item.userName"
+                      :value="item.userName"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
 
-            <el-form-item label="责任/经办者" prop="personResponsible">
-              <el-select
-                v-model="formLabelAlign.personResponsible"
-                filterable
-                placeholder="请选择"
-                value-key="id"
-              >
-                <el-option
-                  v-for="item in dictStroe.allUsers"
-                  :key="item.id"
-                  :label="item.userName"
-                  :value="item.userName"
-                />
-              </el-select>
-            </el-form-item>
             <el-form-item label="缺陷图片" prop="fileList">
-              <MultiUpload v-model="formLabelAlign.fileList" />
+              <div>
+                <div>
+                  <el-button style="margin-bottom: 8px" @click="camera_ohos"
+                    >上传图片
+                  </el-button>
+                </div>
+                <div v-if="formLabelAlign.fileList?.length > 0">
+                  <el-image
+                    v-for="url in formLabelAlign.fileList"
+                    :src="url"
+                    fit="cover"
+                    style="width: 100px; height: 100px; margin-right: 10px"
+                  />
+                </div>
+              </div>
             </el-form-item>
 
             <el-form-item label="备注" prop="remark">
@@ -156,16 +186,15 @@
             </el-form-item>
           </el-form>
         </div>
+        <div class="bottom-btns">
+          <el-button class="cancelBtn" @click="cancelClick">取消</el-button>
+          <el-button class="sureBtn" type="primary" @click="confirmClick"
+            >报故
+          </el-button>
+        </div>
       </el-scrollbar>
     </template>
-    <template #footer>
-      <div class="bottom-btns">
-        <el-button class="cancelBtn" @click="cancelClick">取消</el-button>
-        <el-button class="sureBtn" type="primary" @click="confirmClick"
-          >报故
-        </el-button>
-      </div>
-    </template>
+    <template #footer></template>
   </el-drawer>
 </template>
 
@@ -179,7 +208,6 @@ import {
 import { useProcessStore } from "@/store/modules/processView";
 import { useDictionaryStore } from "@/store/modules/dictionary";
 import { getProcessInfo } from "@/api/prosteps";
-import MultiUpload from "@/components/Upload/MultiUpload.vue";
 
 const processStore = useProcessStore();
 const dictStroe = useDictionaryStore();
@@ -264,6 +292,25 @@ const confirmClick = () => {
     });
 };
 
+const camera_ohos = () => {
+  let p = {
+    token: localStorage.getItem("token"),
+    method: "post",
+    methodName: "startCamera",
+    messageKey: "report_bad",
+  };
+  if (window.openHarmonyBridge && window.openHarmonyBridge.startCamera) {
+    window.openHarmonyBridge.startCamera(JSON.stringify(p));
+  }
+};
+
+window.addEventListener("message", (event) => {
+  const data = JSON.parse(event.data);
+  if (data.fullUrl && data.messageKey && data.messageKey === "report_bad") {
+    formLabelAlign.fileList.push(data.fullUrl);
+  }
+});
+
 defineExpose({
   openReportBreakDrawer,
 });
@@ -290,16 +337,16 @@ defineExpose({
     display: flex;
     justify-content: space-between;
     align-items: center;
-    height: 64px;
+    height: 30px;
 
     .item-label {
-      font-size: 20px;
+      font-size: 18px;
       color: rgba(0, 0, 0, 0.6);
     }
 
     .item-value {
       font-weight: 500;
-      font-size: 24px;
+      font-size: 18px;
       color: rgba(0, 0, 0, 0.9);
     }
   }
@@ -321,14 +368,14 @@ defineExpose({
 
   .cancelBtn {
     width: 292px;
-    height: 80px;
+    height: 40px;
     background: rgba(0, 0, 0, 0.06);
     border-radius: 76px 76px 76px 76px;
   }
 
   .sureBtn {
     width: 292px;
-    height: 80px;
+    height: 40px;
     background: #0a59f7;
     border-radius: 76px 76px 76px 76px;
   }