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

This commit is contained in:
zhn
2023-12-18 15:26:46 +08:00
4 changed files with 157 additions and 25 deletions
@@ -501,6 +501,7 @@
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import axios from 'axios' import axios from 'axios'
import Vue from 'vue' import Vue from 'vue'
import { ImagePreview } from 'vant'
const toolbarOptions = [ const toolbarOptions = [
['bold', 'italic', 'underline', 'strike'], // toggled buttons ['bold', 'italic', 'underline', 'strike'], // toggled buttons
@@ -723,7 +724,7 @@
// return // return
// } // }
this.formInline.progressTrackingList.push({ progressTracking: text, isDescription: false }) this.formInline.progressTrackingList.push({ progressTracking: text, isDescription: true })
} }
}, },
Standardselectioninput(val) { Standardselectioninput(val) {
@@ -799,6 +800,10 @@
} }
if (this.formInline.progressTrackingList == null) { if (this.formInline.progressTrackingList == null) {
this.formInline.progressTrackingList = [] this.formInline.progressTrackingList = []
} else {
this.formInline.progressTrackingList.forEach(val => {
val.isDescription = true
})
} }
if (this.formInline.approvalEvidenceLinkList == null) { if (this.formInline.approvalEvidenceLinkList == null) {
this.formInline.approvalEvidenceLinkList = [{}] this.formInline.approvalEvidenceLinkList = [{}]
@@ -837,7 +842,7 @@
// this.formInline.progressTrackingList.splice(0, 1) // this.formInline.progressTrackingList.splice(0, 1)
// } // }
// }) // })
this.formInline.progressTrackingList.push({ progressTracking: text, isDescription: false }) this.formInline.progressTrackingList.push({ progressTracking: text, isDescription: true })
// this.formInline.progressTrackingList.splice(this.index + 1, 1, { progressTracking: text }) // this.formInline.progressTrackingList.splice(this.index + 1, 1, { progressTracking: text })
console.log(this.formInline.progressTrackingList) console.log(this.formInline.progressTrackingList)
@@ -1052,7 +1057,14 @@
}, },
progressTrackingOpenClick(e) { progressTrackingOpenClick(e) {
if (e.target.localName == 'img') { if (e.target.localName == 'img') {
this.$refs.viewImgRef.getData(e.target.currentSrc) ImagePreview(
{
images: [
e.target.currentSrc
],
closeable: true
})
// this.$refs.viewImgRef.getData(e.target.currentSrc)
} }
} }
} }
@@ -1308,6 +1320,7 @@
.progressTrackingListClass:last-child { .progressTrackingListClass:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
::v-deep .text-box-index-text-top img { ::v-deep .text-box-index-text-top img {
max-width: 100% !important; max-width: 100% !important;
} }
@@ -167,9 +167,27 @@
:title="$t('progresstracking')">{{$t('progresstracking')}}</span> :title="$t('progresstracking')">{{$t('progresstracking')}}</span>
</div> </div>
<div class="itemModel"> <div class="itemModel">
<div class="text-box" v-for="(item,index) in formInline.progressTrackingList" :key="index"> <div v-for="(item,index) in formInline.progressTrackingList" :key="index">
<div class="text-box-index-text-top" @click="progressTrackingOpenClick($event)" <div class="text-box" v-if="!item.isDescription">
v-html="item.progressTracking"></div> <div class="text-box-index-text-top" @click="progressTrackingOpenClick($event)"
v-html="item.progressTracking"></div>
<div class="text-box-index-text-right">
<div class="text-box-index-text-right-text" @click="openClick(item)">
<img src="../../../../assets/progressExit.png" alt="">
<span style="margin-left: 2px">{{$t('putAway')}}</span>
</div>
</div>
</div>
<div class="text-box-index" v-if="item.isDescription">
<div class="text-box-index-text" @click="progressTrackingOpenClick($event)"
v-html="item.progressTracking"></div>
<div class="text-box-index-text-right">
<div class="text-box-index-text-right-text" @click="openClick(item)">
<img src="../../../../assets/medieProgress.png" alt="">
<span style="margin-left: 2px">{{$t('open')}}</span>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -224,6 +242,7 @@
import moment from 'moment' import moment from 'moment'
import viewImg from './viewImg' import viewImg from './viewImg'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { ImagePreview } from 'vant'
export default { export default {
name: 'fillAdd', name: 'fillAdd',
@@ -280,7 +299,7 @@
}, },
formInline: { formInline: {
fileLinkList: [{}], fileLinkList: [{}],
progressTrackingList: [{}], progressTrackingList: [],
approvalEvidenceLinkList: [{}], approvalEvidenceLinkList: [{}],
dutyTerritory: undefined, dutyTerritory: undefined,
projectId: undefined, projectId: undefined,
@@ -362,6 +381,14 @@
} else if (row.projectType == 'numberPlatform' || row.projectType == 'carPlatform') { } else if (row.projectType == 'numberPlatform' || row.projectType == 'carPlatform') {
this.getPlatform(row.projectType) this.getPlatform(row.projectType)
} }
if (this.formInline.progressTrackingList && this.formInline.progressTrackingList.length > 0) {
this.formInline.progressTrackingList.forEach(res => {
res.isDescription = true
})
} else {
this.formInline.progressTrackingList = []
}
// if (this.formInline.dutyTerritory != null) { // if (this.formInline.dutyTerritory != null) {
// this.formInline.dutyTerritory = this.formInline.dutyTerritory.split(',') // this.formInline.dutyTerritory = this.formInline.dutyTerritory.split(',')
// } else { // } else {
@@ -377,7 +404,6 @@
} }
}) })
this.formInline = { ...this.formInline } this.formInline = { ...this.formInline }
console.log(this.formInline)
this.visible = true this.visible = true
this.disabled = true this.disabled = true
this.$nextTick(() => { this.$nextTick(() => {
@@ -401,8 +427,19 @@
}, },
progressTrackingOpenClick(e) { progressTrackingOpenClick(e) {
if (e.target.localName == 'img') { if (e.target.localName == 'img') {
this.$refs.viewImgRef.getData(e.target.currentSrc) ImagePreview(
{
images: [
e.target.currentSrc
],
closeable: true
})
// this.$refs.viewImgRef.getData(e.target.currentSrc)
} }
},
openClick(item) {
item.isDescription = !item.isDescription
this.formInline = { ...this.formInline }
} }
} }
} }
@@ -512,14 +549,6 @@
word-break: break-word; word-break: break-word;
} }
.text-box {
width: 100%;
height: 200px;
display: inline-block;
border: 1px solid #ccc;
padding: 0 15px;
margin-bottom: 10px;
}
.itemModel-text { .itemModel-text {
box-sizing: border-box; box-sizing: border-box;
@@ -538,12 +567,13 @@
.text-box { .text-box {
width: 100%; width: 100%;
height: 200px; height: auto;
display: inline-block; display: inline-block;
border: 1px solid #ccc; border: 1px solid #ccc;
padding: 0; padding: 0;
border-radius: 4px; border-radius: 4px;
position: relative; position: relative;
margin-bottom: 10px;
} }
::v-deep .text-box-index-text-top p { ::v-deep .text-box-index-text-top p {
@@ -590,7 +620,7 @@
.itemModel-text-box { .itemModel-text-box {
width: 100%; width: 100%;
white-space: pre-wrap; white-space: pre-wrap;
height: 200px; height: auto;
display: inline-block; display: inline-block;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 4px; border-radius: 4px;
@@ -605,4 +635,46 @@
::v-deep .text-box-index-text-top img { ::v-deep .text-box-index-text-top img {
max-width: 100% !important; max-width: 100% !important;
} }
.text-box-index-text-right {
position: absolute;
display: flex;
align-items: center;
top: 13px;
right: 2px;
}
.text-box-index-text-right-text {
font-size: 14px;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #01A0AC;
display: flex;
align-items: center;
margin-right: 10px;
cursor: pointer;
}
.text-box-index {
width: 100%;
height: 46px;
display: inline-block;
padding: 0 15px;
border: 1px solid #ccc;
border-radius: 4px 4px 0px 0px;
white-space: pre-wrap;
overflow: hidden;
position: relative;
margin-bottom: 6px;
}
.text-box-index-text {
width: 100%;
overflow: hidden;
white-space: pre-wrap;
}
::v-deep .text-box-index-text .text-class {
background: #fff !important;
}
</style> </style>
@@ -58,6 +58,7 @@
</div> </div>
<a-form-model-item class="itemModel" :prop="'flag'"> <a-form-model-item class="itemModel" :prop="'flag'">
<a-radio-group class="box-input" <a-radio-group class="box-input"
@change="reviewResultChange"
v-model="formInline.flag"> v-model="formInline.flag">
<a-radio value="Accepted" v-if="titleName == $t('Taskresponsibilityrecognition')"> <a-radio value="Accepted" v-if="titleName == $t('Taskresponsibilityrecognition')">
{{$t('accept')}} {{$t('accept')}}
@@ -81,6 +82,26 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24" v-if="isDeliveryTime">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('expectedDeliveryTime')">{{$t('expectedDeliveryTime')}}</span>
</div>
</div>
<a-form-model-item class="itemModel" :prop="'deliveryTime'">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('expectedDeliveryTime')"
@change="dateChange({db_field_name:'deliveryTime'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.deliveryTime"
style="width: 100%"/>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="24"> <a-col :span="24">
<div class="box-title-text"> <div class="box-title-text">
@@ -140,6 +161,7 @@
props: {}, props: {},
data() { data() {
return { return {
isDeliveryTime: false,
titleName: '', titleName: '',
allTitle: '', allTitle: '',
visible: false, visible: false,
@@ -247,19 +269,40 @@
message: this.$t('feedbackMessage') + this.$t('cannotExceed') + 300 + this.$t('Characters'), message: this.$t('feedbackMessage') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur' trigger: 'blur'
} }
] ],
deliveryTime: [
{
required: true,
message: this.$t('expectedDeliveryTime') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
}, },
formInline: {}, formInline: {},
uploadName: '' uploadName: ''
} }
}, },
methods: { methods: {
dateChange(item) {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
this.formInline = { ...this.formInline }
},
reviewResultChange(value) {
if (value.target.value == 'To be tracked') {
this.isDeliveryTime = true
} else {
this.isDeliveryTime = false
this.formInline.deliveryTime = ''
}
this.formInline = { ...this.formInline }
},
...mapGetters(['userInfo']), ...mapGetters(['userInfo']),
confirmation(data, name) { confirmation(data, name) {
this.visible = true this.visible = true
this.processableList = [] this.processableList = []
this.noProcessableList = [] this.noProcessableList = []
this.formInline = {} this.formInline = {}
this.isDeliveryTime = false
data.forEach(res => { data.forEach(res => {
res = JSON.parse(res) res = JSON.parse(res)
if (name == this.$t('Taskresponsibilityrecognition')) { if (name == this.$t('Taskresponsibilityrecognition')) {
@@ -306,6 +349,9 @@
taskIds.push(res.taskId) taskIds.push(res.taskId)
}) })
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
if (this.formInline.flag == 'To be tracked') {
this.formInline.approvalOpinion = this.formInline.approvalOpinion + ';' + this.$t('expectedDeliveryTime') + ':' + this.formInline.deliveryTime
}
let query = { let query = {
...this.formInline, ...this.formInline,
taskIds: taskIds.join(','), taskIds: taskIds.join(','),
@@ -481,7 +527,7 @@
color: red; color: red;
} }
::v-deep .ant-drawer-header .ant-drawer-title{ ::v-deep .ant-drawer-header .ant-drawer-title {
font-weight: bold; font-weight: bold;
} }
</style> </style>
@@ -32,7 +32,8 @@
:standardContentQuery="queryProject" :standardContentQuery="queryProject"
/> />
<!-- :class="{'circulationHistory':this.queryData.isDisplay,'circulationHistoryOne':!this.queryData.isDisplay}"--> <!-- :class="{'circulationHistory':this.queryData.isDisplay,'circulationHistoryOne':!this.queryData.isDisplay}"-->
<experienceReferenceList ref="experienceReferenceListRef"/> <experienceReferenceList v-if="isDisplay"
ref="experienceReferenceListRef"/>
<div> <div>
<circulationHistory <circulationHistory
v-if="isDisplay" v-if="isDisplay"
@@ -300,14 +301,14 @@
if (this.queryData.platform) { if (this.queryData.platform) {
this.queryProject.platform = this.queryData.platform this.queryProject.platform = this.queryData.platform
} }
this.$nextTick(() => {
this.$refs.experienceReferenceListRef.getData(this.queryProject.serialNumber)
})
// if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr') { // if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr') {
// this.queryProject.endTime = this.queryData.endTime // this.queryProject.endTime = this.queryData.endTime
// } // }
this.loading = false this.loading = false
this.isDisplay = true this.isDisplay = true
this.$nextTick(() => {
this.$refs.experienceReferenceListRef.getData(this.queryProject.serialNumber)
})
} else { } else {
this.queryProject = {} this.queryProject = {}
this.loading = false this.loading = false