南大三十年教职工疗休养

This commit is contained in:
2026-06-29 11:01:59 +08:00
parent 1b888b4fce
commit e5a7b49bc1
16 changed files with 388 additions and 129 deletions
@@ -1,7 +1,7 @@
-- 30年教龄疗休养报名图片材料字段。
-- 30年教龄疗休养30年前图片材料字段。
-- PC端选择线路、移动端提交报名上传的多张图片统一保存为逗号分隔路径。
ALTER TABLE `thirty_teach_tour_user_assignment`
ADD COLUMN `photoFiles` text DEFAULT NULL COMMENT '报名图片材料' AFTER `boardingPlace`;
ADD COLUMN `photoFiles` text DEFAULT NULL COMMENT '30年前图片材料' AFTER `boardingPlace`;
ALTER TABLE `thirty_teach_tour_ledger`
ADD COLUMN `photoFiles` text DEFAULT NULL COMMENT '报名图片材料' AFTER `boardingPlace`;
ADD COLUMN `photoFiles` text DEFAULT NULL COMMENT '30年前图片材料' AFTER `boardingPlace`;
@@ -22,7 +22,8 @@ CREATE TABLE IF NOT EXISTS `thirty_teach_tour_ledger` (
`travelAgencyId` varchar(32) DEFAULT NULL COMMENT '旅行社ID',
`travelAgencyName` varchar(100) DEFAULT NULL COMMENT '旅行社',
`boardingPlace` varchar(100) DEFAULT NULL COMMENT '乘车地点',
`photoFiles` text DEFAULT NULL COMMENT '报名图片材料',
`photoFiles` text DEFAULT NULL COMMENT '30年前图片材料',
`currentPeriodPhotoFiles` text DEFAULT NULL COMMENT '当前时间段图片材料',
`hasFamily` tinyint(1) DEFAULT 0 COMMENT '是否携带家属',
`intendedRoommate` varchar(100) DEFAULT NULL COMMENT '意向拼床人',
`bedType` varchar(50) DEFAULT NULL COMMENT '床型',
@@ -9,7 +9,8 @@ CREATE TABLE IF NOT EXISTS `thirty_teach_tour_user_assignment` (
`lineId` varchar(32) DEFAULT NULL COMMENT '线路ID',
`lineName` varchar(100) DEFAULT NULL COMMENT '线路名称',
`boardingPlace` varchar(100) DEFAULT NULL COMMENT '乘车地点',
`photoFiles` text DEFAULT NULL COMMENT '报名图片材料',
`photoFiles` text DEFAULT NULL COMMENT '30年前图片材料',
`currentPeriodPhotoFiles` text DEFAULT NULL COMMENT '当前时间段图片材料',
`periodId` varchar(32) DEFAULT NULL COMMENT '出行时间段ID',
`periodName` varchar(50) DEFAULT NULL COMMENT '出行时间段名称',
`userId` varchar(32) DEFAULT NULL COMMENT '人员ID',
@@ -95,7 +95,7 @@ layout("/layouts/platform.html"){
<el-table-column label="操作" width="470" align="center" header-align="center" fixed="right">
<template slot-scope="{row}">
<el-button v-if="!row.matterId && row.personType !== 'BACKUP' && $auth.hasPermission('thirtyTeachTour.branchUserAssignment.selectMatter')" size="mini" type="primary" @click="openSelectMatter(row)">选择路线</el-button>
<el-button v-if="$auth.hasPermission('thirtyTeachTour.branchUserAssignment.assign')" size="mini" type="primary" @click="openListPhotoUpload(row)">{{ row.photoFiles ? "已上传" : "上传图片" }}</el-button>
<el-button v-if="$auth.hasPermission('thirtyTeachTour.branchUserAssignment.assign')" size="mini" type="primary" @click="openListPhotoUpload(row)">{{ photoFileCount(row) > 0 ? "已上传" : "上传图片" }}</el-button>
<el-button v-if="$auth.hasPermission('thirtyTeachTour.branchUserAssignment.switchPersonType')" size="mini" type="primary" :loading="personTypeSwitching === row.id" @click="switchPersonType(row, row.personType === 'BACKUP' ? 'FORMAL' : 'BACKUP')">{{ row.personType === 'BACKUP' ? '转为正式' : '转为替补' }}</el-button>
<el-button v-if="isCancelled(row) && $auth.hasPermission('thirtyTeachTour.branchUserAssignment.cancelRestore')" size="mini" type="warning" @click="restoreCancel(row)">取消退出</el-button>
<el-button v-if="$auth.hasPermission('thirtyTeachTour.branchUserAssignment.delete')" size="mini" type="danger" @click="doDelete(row)">删除</el-button>
@@ -228,7 +228,7 @@ layout("/layouts/platform.html"){
<el-table-column label="材料" width="110" align="center" header-align="center">
<template slot-scope="{row}">
<el-button type="text" size="mini" :disabled="!isCandidateSelected(row)" @click="openPhotoUpload(row)">
{{ row.photoFiles ? "已上传" : "上传" }}
{{ photoFileCount(row) > 0 ? "已上传" : "上传" }}
</el-button>
</template>
</el-table-column>
@@ -261,7 +261,7 @@ layout("/layouts/platform.html"){
<el-form-item label="人员">
<el-input v-model="photoUploadForm.userName" disabled></el-input>
</el-form-item>
<el-form-item label="图片材料">
<el-form-item label="30年前图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
@@ -273,6 +273,18 @@ layout("/layouts/platform.html"){
upload_result_category="interval">
</file-upload>
</el-form-item>
<el-form-item label="当前时间段图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
:upload_size="20971520"
:value.sync="photoUploadForm.currentPeriodPhotoFiles"
accept=".jpg,.jpeg,.png"
complete_result
upload_mode="image"
upload_result_category="interval">
</file-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="photoUploadDialogVisible = false">取消</el-button>
@@ -290,7 +302,7 @@ layout("/layouts/platform.html"){
<el-form-item label="人员">
<el-input v-model="listPhotoForm.userName" disabled></el-input>
</el-form-item>
<el-form-item label="图片材料">
<el-form-item label="30年前图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
@@ -302,6 +314,18 @@ layout("/layouts/platform.html"){
upload_result_category="interval">
</file-upload>
</el-form-item>
<el-form-item label="当前时间段图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
:upload_size="20971520"
:value.sync="listPhotoForm.currentPeriodPhotoFiles"
accept=".jpg,.jpeg,.png"
complete_result
upload_mode="image"
upload_result_category="interval">
</file-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="listPhotoDialogVisible = false">取消</el-button>
@@ -324,7 +348,7 @@ layout("/layouts/platform.html"){
<el-option v-for="item in selectMatterOptions" :key="item.matterId" :label="matterOptionLabel(item)" :value="item.matterId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="图片材料">
<el-form-item label="30年前图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
@@ -336,6 +360,18 @@ layout("/layouts/platform.html"){
upload_result_category="interval">
</file-upload>
</el-form-item>
<el-form-item label="当前时间段图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
:upload_size="20971520"
:value.sync="selectMatterForm.currentPeriodPhotoFiles"
accept=".jpg,.jpeg,.png"
complete_result
upload_mode="image"
upload_result_category="interval">
</file-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="selectMatterDialogVisible = false">取消</el-button>
@@ -464,7 +500,8 @@ layout("/layouts/platform.html"){
photoUploadForm: {
userId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
},
selectMatterDialogVisible: false,
selectMatterSubmitting: false,
@@ -475,7 +512,8 @@ layout("/layouts/platform.html"){
listPhotoForm: {
id: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
},
personTypeSwitching: "",
pageForm: {
@@ -510,7 +548,8 @@ layout("/layouts/platform.html"){
settingId: "",
matterId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
},
assignRules: {
year: [{required: true, message: "请选择年度", trigger: ["change", "blur"]}],
@@ -557,7 +596,8 @@ layout("/layouts/platform.html"){
settingId: "",
matterId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}
},
resetSearch() {
@@ -818,14 +858,15 @@ layout("/layouts/platform.html"){
pageNumber: this.candidateForm.pageNumber,
pageSize: this.candidateForm.pageSize,
settingId: this.assignForm.settingId,
retiringSoon: this.candidateForm.retiringSoon,
retiringSoon: this.normalizeCandidateFilterValue(this.candidateForm.retiringSoon),
keyword: (this.selectedCandidateIds || []).length > 0 ? "" : this.candidateForm.keyword,
userIds: JSON.stringify(this.selectedCandidateIds || [])
}).then((res) => {
if (res.code === 0) {
const data = res.data || {}
this.candidateData = (data.list || []).map(item => Object.assign({}, item, {
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}))
this.candidateForm.totalCount = data.totalCount || 0
this.mergeCandidateOptions(this.candidateData)
@@ -876,7 +917,7 @@ layout("/layouts/platform.html"){
pageNumber: 1,
pageSize: 20,
settingId: this.assignForm.settingId,
retiringSoon: this.candidateForm.retiringSoon,
retiringSoon: this.normalizeCandidateFilterValue(this.candidateForm.retiringSoon),
keyword: keyword || ""
}).then((res) => {
if (res.code === 0) {
@@ -891,6 +932,10 @@ layout("/layouts/platform.html"){
// 人员选择器仅作为查询条件;最终分配人员仍由下方列表勾选决定。
this.selectedCandidateIds = userIds || []
},
normalizeCandidateFilterValue(value) {
// 候选人员下拉清空后按“不筛选”处理,避免空字符串被后端转换成 false 后继续追加条件。
return value === "" || value === undefined ? null : value
},
candidateOptionLabel(item) {
if (!item) {
return ""
@@ -922,13 +967,15 @@ layout("/layouts/platform.html"){
this.photoUploadForm = {
userId: row.userId || "",
userName: row.userName || "",
photoFiles: row.photoFiles || ""
photoFiles: row.photoFiles || "",
currentPeriodPhotoFiles: row.currentPeriodPhotoFiles || ""
}
this.photoUploadDialogVisible = true
},
confirmPhotoUpload() {
if (this.photoUploadRow) {
this.$set(this.photoUploadRow, "photoFiles", this.photoUploadForm.photoFiles || "")
this.$set(this.photoUploadRow, "currentPeriodPhotoFiles", this.photoUploadForm.currentPeriodPhotoFiles || "")
}
this.photoUploadDialogVisible = false
},
@@ -937,7 +984,8 @@ layout("/layouts/platform.html"){
this.photoUploadForm = {
userId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}
},
openListPhotoUpload(row) {
@@ -946,7 +994,8 @@ layout("/layouts/platform.html"){
this.listPhotoForm = {
id: row.id || "",
userName: row.userName || "",
photoFiles: row.photoFiles || ""
photoFiles: row.photoFiles || "",
currentPeriodPhotoFiles: row.currentPeriodPhotoFiles || ""
}
this.listPhotoDialogVisible = true
},
@@ -956,7 +1005,8 @@ layout("/layouts/platform.html"){
this.listPhotoForm = {
id: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}
},
saveListPhotoFiles() {
@@ -967,11 +1017,13 @@ layout("/layouts/platform.html"){
this.listPhotoSubmitting = true
this.$axios.post(loc() + "/updatePhotoFiles", {
id: this.listPhotoForm.id,
photoFiles: this.listPhotoForm.photoFiles || ""
photoFiles: this.listPhotoForm.photoFiles || "",
currentPeriodPhotoFiles: this.listPhotoForm.currentPeriodPhotoFiles || ""
}).then((res) => {
if (res.code === 0) {
if (this.listPhotoRow) {
this.$set(this.listPhotoRow, "photoFiles", this.listPhotoForm.photoFiles || "")
this.$set(this.listPhotoRow, "currentPeriodPhotoFiles", this.listPhotoForm.currentPeriodPhotoFiles || "")
}
this.$message.success("图片材料保存成功")
this.listPhotoDialogVisible = false
@@ -1008,7 +1060,8 @@ layout("/layouts/platform.html"){
const assignItems = this.selectedCandidates.map(item => {
return {
userId: item.userId,
photoFiles: item.photoFiles || ""
photoFiles: item.photoFiles || "",
currentPeriodPhotoFiles: item.currentPeriodPhotoFiles || ""
}
})
this.assignSubmitting = true
@@ -1055,7 +1108,8 @@ layout("/layouts/platform.html"){
settingId: row.settingId,
matterId: "",
userName: row.userName || "",
photoFiles: ""
photoFiles: row.photoFiles || "",
currentPeriodPhotoFiles: row.currentPeriodPhotoFiles || ""
}
this.selectMatterOptions = []
this.selectMatterDialogVisible = true
@@ -1084,7 +1138,8 @@ layout("/layouts/platform.html"){
this.$axios.post(loc() + "/selectMatter", {
id: this.selectMatterForm.id,
matterId: this.selectMatterForm.matterId,
photoFiles: this.selectMatterForm.photoFiles
photoFiles: this.selectMatterForm.photoFiles,
currentPeriodPhotoFiles: this.selectMatterForm.currentPeriodPhotoFiles
}).then((res) => {
if (res.code === 0) {
const data = res.data || {}
@@ -1134,10 +1189,12 @@ layout("/layouts/platform.html"){
return row && (row.cancelled === true || row.cancelled === 1)
},
photoFileCount(row) {
if (!row || !row.photoFiles) {
if (!row) {
return 0
}
return String(row.photoFiles).split(",").map(item => item.trim()).filter(item => item).length
const photoCount = row.photoFiles ? String(row.photoFiles).split(",").map(item => item.trim()).filter(item => item).length : 0
const currentPhotoCount = row.currentPeriodPhotoFiles ? String(row.currentPeriodPhotoFiles).split(",").map(item => item.trim()).filter(item => item).length : 0
return photoCount + currentPhotoCount
},
restoreCancel(row) {
this.$confirm("确定将【" + row.userName + "】恢复为未退出状态吗?", "提示", {
@@ -118,7 +118,7 @@ layout("/layouts/platform.html"){
<el-table-column label="操作" width="410" align="center" header-align="center" fixed="right">
<template slot-scope="{row}">
<el-button v-if="isSchoolUnionAssignment(row) && !row.matterId && row.personType !== 'BACKUP'" size="mini" type="primary" @click="openSelectMatter(row)">选择线路</el-button>
<el-button v-if="isSchoolUnionAssignment(row)" size="mini" type="primary" @click="openListPhotoUpload(row)">{{ row.photoFiles ? "已上传" : "上传图片" }}</el-button>
<el-button v-if="isSchoolUnionAssignment(row)" size="mini" type="primary" @click="openListPhotoUpload(row)">{{ photoFileCount(row) > 0 ? "已上传" : "上传图片" }}</el-button>
<el-button v-if="isSchoolUnionAssignment(row) && isCancelled(row) && $auth.hasPermission('thirtyTeachTour.schoolUserAssignment.cancelRestore')" size="mini" type="warning" @click="restoreCancel(row)">取消退出</el-button>
<el-button v-if="isSchoolUnionAssignment(row)" size="mini" type="danger" @click="doDelete(row)">删除</el-button>
</template>
@@ -261,7 +261,7 @@ layout("/layouts/platform.html"){
<el-table-column label="材料" width="110" align="center" header-align="center">
<template slot-scope="{row}">
<el-button type="text" size="mini" :disabled="!isCandidateSelected(row)" @click="openPhotoUpload(row)">
{{ row.photoFiles ? "已上传" : "上传" }}
{{ photoFileCount(row) > 0 ? "已上传" : "上传" }}
</el-button>
</template>
</el-table-column>
@@ -294,7 +294,7 @@ layout("/layouts/platform.html"){
<el-form-item label="人员">
<el-input v-model="photoUploadForm.userName" disabled></el-input>
</el-form-item>
<el-form-item label="图片材料">
<el-form-item label="30年前图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
@@ -306,6 +306,18 @@ layout("/layouts/platform.html"){
upload_result_category="interval">
</file-upload>
</el-form-item>
<el-form-item label="当前时间段图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
:upload_size="20971520"
:value.sync="photoUploadForm.currentPeriodPhotoFiles"
accept=".jpg,.jpeg,.png"
complete_result
upload_mode="image"
upload_result_category="interval">
</file-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="photoUploadDialogVisible = false">取消</el-button>
@@ -323,7 +335,7 @@ layout("/layouts/platform.html"){
<el-form-item label="人员">
<el-input v-model="listPhotoForm.userName" disabled></el-input>
</el-form-item>
<el-form-item label="图片材料">
<el-form-item label="30年前图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
@@ -335,6 +347,18 @@ layout("/layouts/platform.html"){
upload_result_category="interval">
</file-upload>
</el-form-item>
<el-form-item label="当前时间段图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
:upload_size="20971520"
:value.sync="listPhotoForm.currentPeriodPhotoFiles"
accept=".jpg,.jpeg,.png"
complete_result
upload_mode="image"
upload_result_category="interval">
</file-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="listPhotoDialogVisible = false">取消</el-button>
@@ -357,7 +381,7 @@ layout("/layouts/platform.html"){
<el-option v-for="item in selectMatterOptions" :key="item.matterId" :label="matterOptionLabel(item)" :value="item.matterId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="图片材料">
<el-form-item label="30年前图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
@@ -369,6 +393,18 @@ layout("/layouts/platform.html"){
upload_result_category="interval">
</file-upload>
</el-form-item>
<el-form-item label="当前时间段图片">
<file-upload
style="--upload-width: 96px;--upload-height:96px"
:upload_number="9"
:upload_size="20971520"
:value.sync="selectMatterForm.currentPeriodPhotoFiles"
accept=".jpg,.jpeg,.png"
complete_result
upload_mode="image"
upload_result_category="interval">
</file-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="selectMatterDialogVisible = false">取消</el-button>
@@ -453,7 +489,8 @@ layout("/layouts/platform.html"){
photoUploadForm: {
userId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
},
selectMatterDialogVisible: false,
selectMatterSubmitting: false,
@@ -464,7 +501,8 @@ layout("/layouts/platform.html"){
listPhotoForm: {
id: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
},
pageForm: {
pageNumber: 1,
@@ -502,7 +540,8 @@ layout("/layouts/platform.html"){
settingId: "",
matterId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
},
remindForm: {
content: ""
@@ -545,7 +584,8 @@ layout("/layouts/platform.html"){
settingId: "",
matterId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}
},
defaultRemindForm() {
@@ -805,9 +845,9 @@ layout("/layouts/platform.html"){
pageSize: this.candidateForm.pageSize,
settingId: this.assignForm.settingId,
unionId: this.candidateForm.unionId,
retiringSoon: this.candidateForm.retiringSoon,
summerJoined: this.candidateForm.summerJoined,
lastThirtyJoined: this.candidateForm.lastThirtyJoined,
retiringSoon: this.normalizeCandidateFilterValue(this.candidateForm.retiringSoon),
summerJoined: this.normalizeCandidateFilterValue(this.candidateForm.summerJoined),
lastThirtyJoined: this.normalizeCandidateFilterValue(this.candidateForm.lastThirtyJoined),
keyword: (this.selectedCandidateIds || []).length > 0 ? "" : this.candidateForm.keyword,
userIds: JSON.stringify(this.selectedCandidateIds || [])
}).then((res) => {
@@ -815,7 +855,8 @@ layout("/layouts/platform.html"){
const data = res.data || {}
this.candidateData = (data.list || []).map(item => Object.assign({}, item, {
assignmentMatterId: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}))
this.candidateForm.totalCount = data.totalCount || 0
this.mergeCandidateOptions(this.candidateData)
@@ -886,9 +927,9 @@ layout("/layouts/platform.html"){
pageSize: 20,
settingId: this.assignForm.settingId,
unionId: this.candidateForm.unionId,
retiringSoon: this.candidateForm.retiringSoon,
summerJoined: this.candidateForm.summerJoined,
lastThirtyJoined: this.candidateForm.lastThirtyJoined,
retiringSoon: this.normalizeCandidateFilterValue(this.candidateForm.retiringSoon),
summerJoined: this.normalizeCandidateFilterValue(this.candidateForm.summerJoined),
lastThirtyJoined: this.normalizeCandidateFilterValue(this.candidateForm.lastThirtyJoined),
keyword: keyword || ""
}).then((res) => {
if (res.code === 0) {
@@ -903,6 +944,10 @@ layout("/layouts/platform.html"){
// 人员选择器仅作为查询条件;最终分配人员仍由下方列表勾选决定。
this.selectedCandidateIds = userIds || []
},
normalizeCandidateFilterValue(value) {
// 候选人员下拉清空后按“不筛选”处理,避免空字符串被后端转换成 false 后继续追加条件。
return value === "" || value === undefined ? null : value
},
candidateOptionLabel(item) {
if (!item) {
return ""
@@ -934,13 +979,15 @@ layout("/layouts/platform.html"){
this.photoUploadForm = {
userId: row.userId || "",
userName: row.userName || "",
photoFiles: row.photoFiles || ""
photoFiles: row.photoFiles || "",
currentPeriodPhotoFiles: row.currentPeriodPhotoFiles || ""
}
this.photoUploadDialogVisible = true
},
confirmPhotoUpload() {
if (this.photoUploadRow) {
this.$set(this.photoUploadRow, "photoFiles", this.photoUploadForm.photoFiles || "")
this.$set(this.photoUploadRow, "currentPeriodPhotoFiles", this.photoUploadForm.currentPeriodPhotoFiles || "")
}
this.photoUploadDialogVisible = false
},
@@ -949,7 +996,8 @@ layout("/layouts/platform.html"){
this.photoUploadForm = {
userId: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}
},
openListPhotoUpload(row) {
@@ -958,7 +1006,8 @@ layout("/layouts/platform.html"){
this.listPhotoForm = {
id: row.id || "",
userName: row.userName || "",
photoFiles: row.photoFiles || ""
photoFiles: row.photoFiles || "",
currentPeriodPhotoFiles: row.currentPeriodPhotoFiles || ""
}
this.listPhotoDialogVisible = true
},
@@ -968,7 +1017,8 @@ layout("/layouts/platform.html"){
this.listPhotoForm = {
id: "",
userName: "",
photoFiles: ""
photoFiles: "",
currentPeriodPhotoFiles: ""
}
},
saveListPhotoFiles() {
@@ -979,11 +1029,13 @@ layout("/layouts/platform.html"){
this.listPhotoSubmitting = true
this.$axios.post(loc() + "/updatePhotoFiles", {
id: this.listPhotoForm.id,
photoFiles: this.listPhotoForm.photoFiles || ""
photoFiles: this.listPhotoForm.photoFiles || "",
currentPeriodPhotoFiles: this.listPhotoForm.currentPeriodPhotoFiles || ""
}).then((res) => {
if (res.code === 0) {
if (this.listPhotoRow) {
this.$set(this.listPhotoRow, "photoFiles", this.listPhotoForm.photoFiles || "")
this.$set(this.listPhotoRow, "currentPeriodPhotoFiles", this.listPhotoForm.currentPeriodPhotoFiles || "")
}
this.$message.success("图片材料保存成功")
this.listPhotoDialogVisible = false
@@ -1017,7 +1069,8 @@ layout("/layouts/platform.html"){
return {
userId: item.userId,
matterId: item.assignmentMatterId || this.assignForm.matterId || "",
photoFiles: item.photoFiles || ""
photoFiles: item.photoFiles || "",
currentPeriodPhotoFiles: item.currentPeriodPhotoFiles || ""
}
})
this.assignSubmitting = true
@@ -1045,7 +1098,8 @@ layout("/layouts/platform.html"){
settingId: row.settingId,
matterId: "",
userName: row.userName || "",
photoFiles: ""
photoFiles: row.photoFiles || "",
currentPeriodPhotoFiles: row.currentPeriodPhotoFiles || ""
}
this.selectMatterOptions = []
this.selectMatterDialogVisible = true
@@ -1074,7 +1128,8 @@ layout("/layouts/platform.html"){
this.$axios.post(loc() + "/selectMatter", {
id: this.selectMatterForm.id,
matterId: this.selectMatterForm.matterId,
photoFiles: this.selectMatterForm.photoFiles
photoFiles: this.selectMatterForm.photoFiles,
currentPeriodPhotoFiles: this.selectMatterForm.currentPeriodPhotoFiles
}).then((res) => {
if (res.code === 0) {
const data = res.data || {}
@@ -1136,10 +1191,12 @@ layout("/layouts/platform.html"){
return row && (row.cancelled === true || row.cancelled === 1)
},
photoFileCount(row) {
if (!row || !row.photoFiles) {
if (!row) {
return 0
}
return String(row.photoFiles).split(",").map(item => item.trim()).filter(item => item).length
const photoCount = row.photoFiles ? String(row.photoFiles).split(",").map(item => item.trim()).filter(item => item).length : 0
const currentPhotoCount = row.currentPeriodPhotoFiles ? String(row.currentPeriodPhotoFiles).split(",").map(item => item.trim()).filter(item => item).length : 0
return photoCount + currentPhotoCount
},
restoreCancel(row) {
this.$confirm("确定将【" + row.userName + "】恢复为未退出状态吗?", "提示", {