南大三十年教职工疗休养
This commit is contained in:
@@ -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',
|
||||
|
||||
+79
-22
@@ -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 + "】恢复为未退出状态吗?", "提示", {
|
||||
|
||||
+83
-26
@@ -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 + "】恢复为未退出状态吗?", "提示", {
|
||||
|
||||
Reference in New Issue
Block a user