|
@@ -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;
|
|
|
}
|