|
@@ -14,12 +14,38 @@
|
|
|
<view class="label">产品描述</view>
|
|
|
<view class="value">{{ lot.productDescription }}</view>
|
|
|
</view>
|
|
|
+ <view class="info-row uni-row">
|
|
|
+ <view class="label">咨询部门</view>
|
|
|
+ <view class="value" >
|
|
|
+ <checkbox-group @change="checkboxChange" style="margin-top: 16px;">
|
|
|
+ <view v-for="(item, index) in consulteList" :key="item.value">
|
|
|
+ <view class="uni-row checkbox-item" >
|
|
|
+ <view style="flex-grow: 1;font-size: 16px;">{{item.label}}</view>
|
|
|
+ <view class="checkboxHidden">
|
|
|
+ <checkbox :value="item.value" :checked="selected.includes(item.value)" color="#0000ff"
|
|
|
+ class="checkbox" />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="index!=consulteList.length -1" class='middle'>
|
|
|
+ <view class='segment'></view>
|
|
|
+ <view class='segment'></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </checkbox-group>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
<view class="info-row uni-column">
|
|
|
<view class="label" style="margin-bottom: 16rpx;">问题描述</view>
|
|
|
<view class="value uni-row">
|
|
|
<textarea v-model="lot.question"></textarea>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <view class="info-row">
|
|
|
+ <view class="label" style="margin-bottom: 16rpx;">照片</view>
|
|
|
+ <view >
|
|
|
+ <uni-file-picker :value="photoList.url" @select="select" file-mediatype="image" class="my-files" @delete="handleDeletedPhoto" ></uni-file-picker>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
<view class="btn uni-row" @click.stop="handleSubmit">提交</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -30,7 +56,6 @@
|
|
|
ref,
|
|
|
onMounted,
|
|
|
onBeforeUnmount,
|
|
|
- onUnload,
|
|
|
getCurrentInstance
|
|
|
} from 'vue'
|
|
|
import {
|
|
@@ -44,8 +69,23 @@
|
|
|
import {
|
|
|
getProductConsult
|
|
|
} from '@/api/business/processInspection.js'
|
|
|
-
|
|
|
+ import {getURL} from '@/api/sys/user.js'
|
|
|
const lot = ref({});
|
|
|
+ const selected = ref([]);
|
|
|
+ const selectedPhotos = ref([])
|
|
|
+ const urlList = JSON.parse(uni.getStorageSync('baseUrl'))
|
|
|
+ const webHost = ref(urlList.pdfAppURL)
|
|
|
+ const photoList = ref([])
|
|
|
+ const consulteList = ref([
|
|
|
+ {
|
|
|
+ value: 0,
|
|
|
+ label: "技术"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ label: "品管"
|
|
|
+ },
|
|
|
+ ])
|
|
|
// 创建一个引用来存储最后一次请求的时间戳
|
|
|
const lastRequestTimestamp = ref(0);
|
|
|
|
|
@@ -75,9 +115,44 @@
|
|
|
onLoad(() => {
|
|
|
|
|
|
})
|
|
|
-
|
|
|
+ function upLoadImageHandler(arg) {
|
|
|
+ getURL(arg).then(res =>{
|
|
|
+ let data = JSON.parse(res)
|
|
|
+ selectedPhotos.value.push({
|
|
|
+ url:data.fileName,
|
|
|
+ pictureName:data.originalFilename
|
|
|
+ })
|
|
|
+ console.log(selectedPhotos.value)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ function select (e) {
|
|
|
+ console.log(e)
|
|
|
+ const {
|
|
|
+ tempFilePaths,
|
|
|
+ tempFiles
|
|
|
+ } = e
|
|
|
+ tempFiles.forEach((item,index)=>{
|
|
|
+ upLoadImageHandler({ filePath: tempFilePaths[index],name:item.name})
|
|
|
+ })
|
|
|
+ }
|
|
|
+ function handleDeletedPhoto(e) {
|
|
|
+ let fileName = selectedPhotos.value.map(info => info.name)
|
|
|
+ let index = fileName.findIndex(name => name === e.tempFile.name);
|
|
|
+ selectedPhotos.value.splice(index,1)
|
|
|
+ }
|
|
|
+ //选中咨询部门数据
|
|
|
+ function checkboxChange(value) {
|
|
|
+ lot.value.departments = value.detail.value; // 添加选中项
|
|
|
+ }
|
|
|
|
|
|
const handleSubmit = () => {
|
|
|
+ if (lot.value.department ===null) {
|
|
|
+ uni.showToast({
|
|
|
+ icon: 'none',
|
|
|
+ title: '请选择咨询部门'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
if (lot.value.question == null || lot.value.question == '') {
|
|
|
uni.showToast({
|
|
|
icon: 'none',
|
|
@@ -99,9 +174,15 @@
|
|
|
return;
|
|
|
}
|
|
|
store.processInspection = null;
|
|
|
- uni.$emit('addWasteConsultationEvent', {
|
|
|
- question: lot.value.question
|
|
|
- })
|
|
|
+ var consultList = []
|
|
|
+ for(let i = 0;i<lot.value.departments.length;i++) {
|
|
|
+ let consult = {}
|
|
|
+ consult.content = lot.value.question
|
|
|
+ consult.consultDepartment = lot.value.departments[i]
|
|
|
+ consult.pictures = selectedPhotos.value
|
|
|
+ consultList.push(consult)
|
|
|
+ }
|
|
|
+ uni.$emit('addWasteConsultationEvent',consultList)
|
|
|
lot.value = {};
|
|
|
|
|
|
uni.navigateBack();
|
|
@@ -157,4 +238,38 @@
|
|
|
align-items: center;
|
|
|
}
|
|
|
}
|
|
|
+ .middle {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center
|
|
|
+ }
|
|
|
+
|
|
|
+ .segment {
|
|
|
+ width: 60%;
|
|
|
+ background-color: rgba(213, 213, 213, 1);
|
|
|
+ border: 1rpx solid rgba(213, 213, 213, 1);
|
|
|
+ margin:8px 0;
|
|
|
+ }
|
|
|
+ .checkbox-item {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .checkbox {
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ // .uni-file-picker__container{
|
|
|
+ // }
|
|
|
+ .my-files {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ :deep(.uni-file-picker__container) {
|
|
|
+ flex-direction: row;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
</style>
|