提交 3cf60d21 authored 作者: lidongxu's avatar lidongxu

feat(scheduledisplay.vue): 新增:档期陈列对接接口完成

上级 67171863
...@@ -81,16 +81,19 @@ ...@@ -81,16 +81,19 @@
ref="conventionRef" /> ref="conventionRef" />
</van-tab> </van-tab>
<van-tab title="档期陈列"> <van-tab title="档期陈列">
<scheduleDisplay :rstId="form.rstId" <scheduleDisplay :isInitializing="isInitializing"
:form="form" /> :form="form"
ref="scheduleDisplayRef" />
</van-tab> </van-tab>
<van-tab title="档期补差"> <van-tab title="档期补差">
<scheduleAdjustment :rstId="form.rstId" <scheduleAdjustment :isInitializing="isInitializing"
:form="form" /> :form="form"
ref="scheduleAdjustmentRef" />
</van-tab> </van-tab>
<van-tab title="品类信息"> <van-tab title="品类信息">
<categoryInfomation :rstId="form.rstId" <categoryInfomation :isInitializing="isInitializing"
:form="form" /> :form="form"
ref="categoryInfomationRef" />
</van-tab> </van-tab>
</van-tabs> </van-tabs>
<!-- 任务总结 --> <!-- 任务总结 -->
...@@ -165,6 +168,9 @@ const router = useRouter() ...@@ -165,6 +168,9 @@ const router = useRouter()
const route = useRoute() const route = useRoute()
const conventionRef = ref(null) const conventionRef = ref(null)
const scheduleDisplayRef = ref(null)
const scheduleAdjustmentRef = ref(null)
const categoryInfomationRef = ref(null)
/*************** 稽查任务总体 ***************/ /*************** 稽查任务总体 ***************/
const isInitializing = ref(true) const isInitializing = ref(true)
...@@ -223,6 +229,9 @@ const getInspectionTaskDetailFn = async () => { ...@@ -223,6 +229,9 @@ const getInspectionTaskDetailFn = async () => {
nextTick(() => { nextTick(() => {
isInitializing.value = false isInitializing.value = false
conventionRef.value.init() conventionRef.value.init()
scheduleDisplayRef.value.init()
// scheduleAdjustmentRef.value.init()
// categoryInfomationRef.value.init()
}) })
// 一定在这里获取地理位置(保证稽查任务 id 创建完毕) // 一定在这里获取地理位置(保证稽查任务 id 创建完毕)
...@@ -343,7 +352,7 @@ const handleTypeConfirm = async ({ selectedValues }) => { ...@@ -343,7 +352,7 @@ const handleTypeConfirm = async ({ selectedValues }) => {
} }
/*************** tabs 组 ***************/ /*************** tabs 组 ***************/
const active = ref(0) const active = ref(1)
/*************** 其他信息填写 ***************/ /*************** 其他信息填写 ***************/
// 礼盒礼袋在售 // 礼盒礼袋在售
...@@ -532,7 +541,7 @@ const deleteLongTimePictureArr = async (file, { name, index }) => { ...@@ -532,7 +541,7 @@ const deleteLongTimePictureArr = async (file, { name, index }) => {
} }
} }
.van-overlay{ .van-overlay {
background-color: rgba(0, 0, 0, 0.2); background-color: rgba(0, 0, 0, 0.2);
display: flex; display: flex;
align-items: center; align-items: center;
......
...@@ -115,14 +115,16 @@ const createTask = async () => { ...@@ -115,14 +115,16 @@ const createTask = async () => {
const init = () => { const init = () => {
// 查询外层是否传入初始数据 // 查询外层是否传入初始数据
if (props.form.detailMap) { if (props.form.detailMap) {
if (props.form.detailMap['常规陈列']) {
checkProperty(props.form.detailMap['常规陈列']) checkProperty(props.form.detailMap['常规陈列'])
displayGroup.value = props.form.detailMap['常规陈列'] || [] displayGroup.value = props.form.detailMap['常规陈列'] || []
} else { return
}
}
// 没传递则自己至少新建 1 个 // 没传递则自己至少新建 1 个
if (displayGroup.value.length === 0) { if (displayGroup.value.length === 0) {
createTask() createTask()
} }
}
} }
/*************** 基本信息 ***************/ /*************** 基本信息 ***************/
// 形式修改 // 形式修改
......
...@@ -5,18 +5,20 @@ ...@@ -5,18 +5,20 @@
v-for="(obj, index) in displayGroup"> v-for="(obj, index) in displayGroup">
<p class="title">档期陈列{{ index + 1 }}</p> <p class="title">档期陈列{{ index + 1 }}</p>
<van-cell-group inset> <van-cell-group inset>
<van-field v-model="obj.modality" <van-field v-model="obj.modal"
name="modality" name="modal"
label="形式" label="形式"
placeholder="请输入形式" placeholder="请输入形式"
auto-complete="off" auto-complete="off"
:rules="[{ required: true, message: '请输入形式' }]" /> :rules="[{ required: true, message: '请输入形式' }]"
@change="handleModalityChange(index)" />
<van-field v-model="obj.cost" <van-field v-model="obj.cost"
name="cost" name="cost"
label="费用" label="费用"
placeholder="费用" placeholder="费用"
auto-complete="off" auto-complete="off"
:rules="[{ required: true, message: '请输入费用' }]" /> :rules="[{ required: true, message: '请输入费用' }]"
@change="handleCostChange(index)" />
<van-field label="档期陈列照片" <van-field label="档期陈列照片"
label-align="top" label-align="top"
class="header-photo-section"> class="header-photo-section">
...@@ -24,7 +26,7 @@ ...@@ -24,7 +26,7 @@
<van-uploader :max-count="2" <van-uploader :max-count="2"
accept="image/*" accept="image/*"
capture="camera" capture="camera"
:model-value="obj.displayPhotos" :model-value="obj.photoArr"
:name="index" :name="index"
:after-read="displayPhotosRead" :after-read="displayPhotosRead"
preview-size="78" preview-size="78"
...@@ -35,9 +37,10 @@ ...@@ -35,9 +37,10 @@
<van-field label="核查结果" <van-field label="核查结果"
label-align="top"> label-align="top">
<template #input> <template #input>
<van-checkbox-group v-model="obj.verify" <van-checkbox-group v-model="obj.riskRArr"
direction="horizontal" direction="horizontal"
shape="square"> shape="square"
@change="handleVerifyChange(index)">
<van-checkbox name="合格">合格</van-checkbox> <van-checkbox name="合格">合格</van-checkbox>
<van-checkbox name="需整改">需整改</van-checkbox> <van-checkbox name="需整改">需整改</van-checkbox>
<van-checkbox name="不合格">不合格</van-checkbox> <van-checkbox name="不合格">不合格</van-checkbox>
...@@ -50,13 +53,14 @@ ...@@ -50,13 +53,14 @@
<!-- 新增按钮 --> <!-- 新增按钮 -->
<van-button class="add-item" <van-button class="add-item"
type="primary" type="primary"
@click="addItem">新增一组陈列</van-button> @click="createTask">新增一组陈列</van-button>
<!-- 总体判定 --> <!-- 总体判定 -->
<div class="overall"> <div class="overall">
<p class="title">档期陈列总体判定结果:</p> <p class="title">档期陈列总体判定结果:</p>
<van-checkbox-group v-model="overAll.verify" <van-checkbox-group v-model="form.cgclRiskRArr"
direction="horizontal" direction="horizontal"
shape="square"> shape="square"
@change="handleOverallChange">
<van-checkbox name="合格">合格</van-checkbox> <van-checkbox name="合格">合格</van-checkbox>
<van-checkbox name="需整改">需整改</van-checkbox> <van-checkbox name="需整改">需整改</van-checkbox>
<van-checkbox name="不合格">不合格</van-checkbox> <van-checkbox name="不合格">不合格</van-checkbox>
...@@ -67,47 +71,144 @@ ...@@ -67,47 +71,144 @@
</template> </template>
<script setup> <script setup>
import { uploadFileToOSSAPI } from '@/api' import { uploadFileToOSSAPI, createInspectionTaskAPI, createInspectionTaskDetailAPI } from '@/api'
import useUserStore from '@/store/modules/user' import useUserStore from '@/store/modules/user'
import { v4 as uuidv4 } from 'uuid' import { v4 as uuidv4 } from 'uuid'
const route = useRoute() const route = useRoute()
const props = defineProps({
isInitializing: {
type: Boolean,
default: false
},
form: {
type: Object,
default: () => { }
}
})
const displayGroup = ref([])
/*************** 陈列组信息 ***************/ /*************** 陈列组信息 ***************/
const displayGroup = ref([ // 特殊字段处理
{ const checkProperty = (list) => {
modality: '', // 形式 list.map(item => {
cost: '', // 费用 item.riskRArr = item.riskRArr || []
displayPhotos: [], // 陈列照片 item.photoArr = item.photoArr?.map(o => ({
verify: [] // 核查结果 url: o
} })) || []
]) })
// 新增一组 }
const addItem = () => { // 创建任务组
displayGroup.value.push({ const createTask = async () => {
modality: '', // 形式 const { data } = await createInspectionTaskDetailAPI({
cost: '', // 费用 taskDetail: {
displayPhotos: [], // 陈列照片 rstId: props.form.rstId,
verify: [] // 核查结果 detailName: '档期陈列'
}
})
checkProperty([data])
displayGroup.value.push(data)
}
const init = () => {
// 查询外层是否传入初始数据
if (props.form.detailMap) {
if (props.form.detailMap['档期陈列']) {
checkProperty(props.form.detailMap['档期陈列'])
displayGroup.value = props.form.detailMap['档期陈列'] || []
return
}
}
// 没传递则自己至少新建 1 个
if (displayGroup.value.length === 0) {
createTask()
}
}
/*************** 基本信息 ***************/
// 形式修改
const handleModalityChange = async (index) => {
await createInspectionTaskDetailAPI({
taskDetail: {
rstId: props.form.rstId,
...displayGroup.value[index]
}
}) })
showNotify({ type: 'success', message: '形式,保存成功' })
} }
// 费用修改
const handleCostChange = async (index) => {
await createInspectionTaskDetailAPI({
taskDetail: {
rstId: props.form.rstId,
...displayGroup.value[index]
}
})
/*************** 照片 ***************/ showNotify({ type: 'success', message: '费用,保存成功' })
}
// 上传照片
const displayPhotosRead = async (file, { name, index }) => { const displayPhotosRead = async (file, { name, index }) => {
// 处理上传的文件 // name:是当前照片组件所在陈列组的索引
const pictureUrl = await uploadFileToOSSAPI(`risk/scheduleDisplayPhoto/${useUserStore().empInfo.empNo}/${form.storeCode}.png`, file.file) // index: 当前照片组的索引
displayGroup.value[name].displayPhotos.push({ const target = displayGroup.value[name]
const pictureUrl = await uploadFileToOSSAPI(`risk/scheduleDisplayPhoto/${useUserStore().empInfo.empNo}/${props.form.storeCode}/${uuidv4()}.png`, file.file)
target.photoArr.push({
url: pictureUrl url: pictureUrl
}) })
showNotify({ type: 'success', message: '照片上传成功' })
await createInspectionTaskDetailAPI({
taskDetail: {
rstId: props.form.rstId,
rstdId: target.rstdId,
photoArr: target.photoArr.map(o => o.url)
}
})
showNotify({ type: 'success', message: '档期陈列照片,上传成功' })
} }
// 删除 照片 // 删除照片
const deletedisplayPhotos = async (file, { name, index }) => { const deletedisplayPhotos = async (file, { name, index }) => {
displayGroup.value[name].displayPhotos.splice(index, 1) const target = displayGroup.value[name]
showNotify({ type: 'success', message: '照片删除成功' }) target.photoArr.splice(index, 1)
await createInspectionTaskDetailAPI({
taskDetail: {
rstId: props.form.rstId,
rstdId: target.rstdId,
photoArr: target.photoArr.map(o => o.url)
}
})
showNotify({ type: 'success', message: '档期陈列照片,删除成功' })
}
// 核查结果
const handleVerifyChange = async (index) => {
const target = displayGroup.value[index]
await createInspectionTaskDetailAPI({
taskDetail: {
rstId: props.form.rstId,
rstdId: target.rstdId,
riskRArr: target.riskRArr
}
})
showNotify({ type: 'success', message: '核查结果,保存成功' })
}
/*************** 总体核查结果 ***************/
const handleOverallChange = async () => {
if (props.isInitializing) return
await createInspectionTaskAPI({
rstId: props.form.rstId,
cgclRiskRArr: props.form.cgclRiskRArr
})
showNotify({ type: 'success', message: '核查结果,保存成功' })
} }
// 总体核查结果 defineExpose({
const overAll = ref({}) init
})
</script> </script>
<style scoped <style scoped
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论