From a99eb7a5b48208c7b355eb7957f16f825c5b91d5 Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Tue, 24 Jun 2025 22:40:05 +0800 Subject: [PATCH] 开发完成办公下功能 --- src/api/community/communityApi.js | 6 ------ src/api/oa/addExamineStaffApi.js | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/oa/addOwnerVotingApi.js | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/oa/editExamineStaffApi.js | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/oa/editOwnerVotingApi.js | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/oa/examineProjectManageApi.js | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/oa/examineStaffManageApi.js | 40 ++++++++++++++++++++++++++++++++++++++++ src/api/oa/examineStaffValueApi.js | 41 +++++++++++++++++++++++++++++++++++++++++ src/api/oa/ownerVotingApi.js | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/oa/printOwnerVotingApi.js | 42 ++++++++++++++++++++++++++++++++++++++++++ src/components/oa/addExamineProject.vue | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/addOwnerVoting.vue | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/deleteExamineProject.vue | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/deleteExamineStaff.vue | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/deleteOwnerVoting.vue | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/deleteQuestionAnswer.vue | 66 +++++++++++++++++++++++++----------------------------------------- src/components/oa/editExamineProject.vue | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/editOwnerVoting.vue | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/orgTreeShow.vue | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/publishQuestionAnswer.vue | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------ src/components/oa/selectStaff.vue | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/oa/uploadImageUrl.vue | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------- src/components/oa/viewImage.vue | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i18n/oaI18n.js | 28 ++++++++++++++++++++++++++++ src/router/index.js | 5 +++++ src/router/oaRouter.js | 47 +++++++++++++++++++++++++++++++++++++++++++---- src/views/oa/addExamineStaffLang.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/addExamineStaffList.vue | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/addOwnerVotingLang.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/addOwnerVotingList.vue | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/editExamineStaffLang.js | 42 ++++++++++++++++++++++++++++++++++++++++++ src/views/oa/editExamineStaffList.vue | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/editOwnerVotingLang.js | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/editOwnerVotingList.vue | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/examineProjectManageLang.js | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/examineProjectManageList.vue | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/examineStaffManageLang.js | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/examineStaffManageList.vue | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/examineStaffValueLang.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/examineStaffValueList.vue | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/ownerVotingLang.js | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/ownerVotingList.vue | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/oa/printOwnerVotingLang.js | 18 ++++++++++++++++++ src/views/oa/printOwnerVotingList.vue | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 44 files changed, 4633 insertions(+), 188 deletions(-) create mode 100644 src/api/oa/addExamineStaffApi.js create mode 100644 src/api/oa/addOwnerVotingApi.js create mode 100644 src/api/oa/editExamineStaffApi.js create mode 100644 src/api/oa/editOwnerVotingApi.js create mode 100644 src/api/oa/examineProjectManageApi.js create mode 100644 src/api/oa/examineStaffManageApi.js create mode 100644 src/api/oa/examineStaffValueApi.js create mode 100644 src/api/oa/ownerVotingApi.js create mode 100644 src/api/oa/printOwnerVotingApi.js create mode 100644 src/components/oa/addExamineProject.vue create mode 100644 src/components/oa/addOwnerVoting.vue create mode 100644 src/components/oa/deleteExamineProject.vue create mode 100644 src/components/oa/deleteExamineStaff.vue create mode 100644 src/components/oa/deleteOwnerVoting.vue create mode 100644 src/components/oa/editExamineProject.vue create mode 100644 src/components/oa/editOwnerVoting.vue create mode 100644 src/components/oa/orgTreeShow.vue create mode 100644 src/components/oa/selectStaff.vue create mode 100644 src/components/oa/viewImage.vue create mode 100644 src/views/oa/addExamineStaffLang.js create mode 100644 src/views/oa/addExamineStaffList.vue create mode 100644 src/views/oa/addOwnerVotingLang.js create mode 100644 src/views/oa/addOwnerVotingList.vue create mode 100644 src/views/oa/editExamineStaffLang.js create mode 100644 src/views/oa/editExamineStaffList.vue create mode 100644 src/views/oa/editOwnerVotingLang.js create mode 100644 src/views/oa/editOwnerVotingList.vue create mode 100644 src/views/oa/examineProjectManageLang.js create mode 100644 src/views/oa/examineProjectManageList.vue create mode 100644 src/views/oa/examineStaffManageLang.js create mode 100644 src/views/oa/examineStaffManageList.vue create mode 100644 src/views/oa/examineStaffValueLang.js create mode 100644 src/views/oa/examineStaffValueList.vue create mode 100644 src/views/oa/ownerVotingLang.js create mode 100644 src/views/oa/ownerVotingList.vue create mode 100644 src/views/oa/printOwnerVotingLang.js create mode 100644 src/views/oa/printOwnerVotingList.vue diff --git a/src/api/community/communityApi.js b/src/api/community/communityApi.js index ad79679..dab8ec1 100644 --- a/src/api/community/communityApi.js +++ b/src/api/community/communityApi.js @@ -57,12 +57,6 @@ export function getCommunityId() { return getCurrentCommunity().communityId } -/************* ✨ Windsurf Command ⭐ *************/ -/** - * Get the current community - * @returns {Object} The current community object - */ -/******* 8c78c7d7-a438-4630-a8c7-b05b9f491159 *******/ export function getCommunity() { diff --git a/src/api/oa/addExamineStaffApi.js b/src/api/oa/addExamineStaffApi.js new file mode 100644 index 0000000..8ddef06 --- /dev/null +++ b/src/api/oa/addExamineStaffApi.js @@ -0,0 +1,101 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 保存考核员工信息 +export function saveExamineStaff(data) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.saveExamineStaff', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取考核项目列表 +export function listExamineProject(params) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.listExamineProject', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取组织树 +export function listOrgTree(params) { + return new Promise((resolve, reject) => { + request({ + url: '/org.listOrgTree', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询员工信息 +export function queryStaffInfos(params) { + return new Promise((resolve, reject) => { + request({ + url: '/query.staff.infos', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 上传图片 +export function uploadImage(data) { + return new Promise((resolve, reject) => { + const formData = new FormData() + formData.append('uploadFile', data) + formData.append('communityId', getCommunityId()) + + request({ + url: '/uploadFile/uploadImage', + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/addOwnerVotingApi.js b/src/api/oa/addOwnerVotingApi.js new file mode 100644 index 0000000..c00b477 --- /dev/null +++ b/src/api/oa/addOwnerVotingApi.js @@ -0,0 +1,59 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 查询楼栋和单元信息 +export function queryFloorAndUnits(params) { + return new Promise((resolve, reject) => { + request({ + url: '/floor.queryFloorAndUnits', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询房屋信息 +export function queryRooms(params) { + return new Promise((resolve, reject) => { + request({ + url: '/room.queryRooms', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 保存业主投票 +export function saveOwnerVote(data) { + return new Promise((resolve, reject) => { + request({ + url: '/question.saveOwnerVote', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/editExamineStaffApi.js b/src/api/oa/editExamineStaffApi.js new file mode 100644 index 0000000..7d2d85a --- /dev/null +++ b/src/api/oa/editExamineStaffApi.js @@ -0,0 +1,73 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 更新考核员工信息 +export function updateExamineStaff(data) { + return new Promise((resolve, reject) => { + data.communityId = getCommunityId() + request({ + url: '/examine.updateExamineStaff', + method: 'post', + data + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取考核项目列表 +export function listExamineProjects(params) { + return new Promise((resolve, reject) => { + params.communityId = getCommunityId() + request({ + url: '/examine.listExamineProject', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取考核员工列表 +export function listExamineStaffs(params) { + return new Promise((resolve, reject) => { + params.communityId = getCommunityId() + request({ + url: '/examine.listExamineStaff', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 上传图片 +export function uploadImage(data) { + return new Promise((resolve, reject) => { + data.append('communityId', getCommunityId()) + request({ + url: '/uploadFile', + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/editOwnerVotingApi.js b/src/api/oa/editOwnerVotingApi.js new file mode 100644 index 0000000..0e19cc5 --- /dev/null +++ b/src/api/oa/editOwnerVotingApi.js @@ -0,0 +1,78 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取投票详情 +export function listOwnerVote(params) { + return new Promise((resolve, reject) => { + request({ + url: '/question.listOwnerVote', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 更新投票信息 +export function updateOwnerVote(data) { + return new Promise((resolve, reject) => { + request({ + url: '/question.updateOwnerVote', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询楼栋和单元信息 +export function queryFloorAndUnits(params) { + return new Promise((resolve, reject) => { + request({ + url: '/floor.queryFloorAndUnits', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询房屋信息 +export function queryRooms(params) { + return new Promise((resolve, reject) => { + request({ + url: '/room.queryRooms', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/examineProjectManageApi.js b/src/api/oa/examineProjectManageApi.js new file mode 100644 index 0000000..264842f --- /dev/null +++ b/src/api/oa/examineProjectManageApi.js @@ -0,0 +1,78 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取考核项目列表 +export function listExamineProject(params) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.listExamineProject', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 添加考核项目 +export function saveExamineProject(data) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.saveExamineProject', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 更新考核项目 +export function updateExamineProject(data) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.updateExamineProject', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 删除考核项目 +export function deleteExamineProject(data) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.deleteExamineProject', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/examineStaffManageApi.js b/src/api/oa/examineStaffManageApi.js new file mode 100644 index 0000000..581cb7a --- /dev/null +++ b/src/api/oa/examineStaffManageApi.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取考核人员列表 +export function listExamineStaff(params) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.listExamineStaff', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 删除考核人员 +export function deleteExamineStaff(data) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.deleteExamineStaff', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/examineStaffValueApi.js b/src/api/oa/examineStaffValueApi.js new file mode 100644 index 0000000..d401032 --- /dev/null +++ b/src/api/oa/examineStaffValueApi.js @@ -0,0 +1,41 @@ +import request from '@/utils/request' + +/** + * 获取员工考核记录列表 + * @param {Object} params 查询参数 + * @returns {Promise} + */ +export function listExamineStaffValue(params) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.listExamineStaffValue', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +/** + * 添加员工考核记录 + * @param {Object} data 考核数据 + * @returns {Promise} + */ +export function addExamineStaffValue(data) { + return new Promise((resolve, reject) => { + request({ + url: '/examine.saveExamineStaffValue', + method: 'post', + data + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/ownerVotingApi.js b/src/api/oa/ownerVotingApi.js new file mode 100644 index 0000000..bd3045a --- /dev/null +++ b/src/api/oa/ownerVotingApi.js @@ -0,0 +1,116 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取业主投票列表 +export function listOwnerVote(params) { + return new Promise((resolve, reject) => { + request({ + url: '/question.listOwnerVote', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取投票详情 +export function getOwnerVoteDetail(params) { + return new Promise((resolve, reject) => { + request({ + url: '/question.getOwnerVoteDetail', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 添加投票 +export function addOwnerVote(data) { + return new Promise((resolve, reject) => { + request({ + url: '/question.addOwnerVote', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 删除投票 +export function deleteOwnerVote(data) { + return new Promise((resolve, reject) => { + request({ + url: '/question.deleteOwnerVote', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 删除问卷 +export function deleteQuestionAnswer(data) { + return new Promise((resolve, reject) => { + request({ + url: '/question.deleteQuestionAnswer', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 发布投票 +export function publishQuestion(data) { + return new Promise((resolve, reject) => { + request({ + url: '/question.publishQuestion', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/oa/printOwnerVotingApi.js b/src/api/oa/printOwnerVotingApi.js new file mode 100644 index 0000000..389d3ee --- /dev/null +++ b/src/api/oa/printOwnerVotingApi.js @@ -0,0 +1,42 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取业主投票信息 +export function listOwnerVote(params) { + return new Promise((resolve, reject) => { + const defaultParams = { + communityId: getCommunityId(), + ...params + } + request({ + url: '/question.listOwnerVote', + method: 'get', + params: defaultParams + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取用户问题答案列表 +export function listUserQuestionAnswer(params) { + return new Promise((resolve, reject) => { + const defaultParams = { + communityId: getCommunityId(), + ...params + } + request({ + url: '/question.listUserQuestionAnswer', + method: 'get', + params: defaultParams + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/oa/addExamineProject.vue b/src/components/oa/addExamineProject.vue new file mode 100644 index 0000000..3aa2768 --- /dev/null +++ b/src/components/oa/addExamineProject.vue @@ -0,0 +1,142 @@ + + + \ No newline at end of file diff --git a/src/components/oa/addOwnerVoting.vue b/src/components/oa/addOwnerVoting.vue new file mode 100644 index 0000000..5e77874 --- /dev/null +++ b/src/components/oa/addOwnerVoting.vue @@ -0,0 +1,222 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/deleteExamineProject.vue b/src/components/oa/deleteExamineProject.vue new file mode 100644 index 0000000..66e5701 --- /dev/null +++ b/src/components/oa/deleteExamineProject.vue @@ -0,0 +1,71 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/deleteExamineStaff.vue b/src/components/oa/deleteExamineStaff.vue new file mode 100644 index 0000000..3b1e701 --- /dev/null +++ b/src/components/oa/deleteExamineStaff.vue @@ -0,0 +1,58 @@ + + + \ No newline at end of file diff --git a/src/components/oa/deleteOwnerVoting.vue b/src/components/oa/deleteOwnerVoting.vue new file mode 100644 index 0000000..e7dac37 --- /dev/null +++ b/src/components/oa/deleteOwnerVoting.vue @@ -0,0 +1,61 @@ + + + \ No newline at end of file diff --git a/src/components/oa/deleteQuestionAnswer.vue b/src/components/oa/deleteQuestionAnswer.vue index f5611c6..cc04ddf 100644 --- a/src/components/oa/deleteQuestionAnswer.vue +++ b/src/components/oa/deleteQuestionAnswer.vue @@ -1,28 +1,29 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/src/components/oa/editExamineProject.vue b/src/components/oa/editExamineProject.vue new file mode 100644 index 0000000..f75d8ae --- /dev/null +++ b/src/components/oa/editExamineProject.vue @@ -0,0 +1,150 @@ + + + \ No newline at end of file diff --git a/src/components/oa/editOwnerVoting.vue b/src/components/oa/editOwnerVoting.vue new file mode 100644 index 0000000..45b18f6 --- /dev/null +++ b/src/components/oa/editOwnerVoting.vue @@ -0,0 +1,165 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/orgTreeShow.vue b/src/components/oa/orgTreeShow.vue new file mode 100644 index 0000000..07b21cf --- /dev/null +++ b/src/components/oa/orgTreeShow.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/src/components/oa/publishQuestionAnswer.vue b/src/components/oa/publishQuestionAnswer.vue index 2793a56..9049e38 100644 --- a/src/components/oa/publishQuestionAnswer.vue +++ b/src/components/oa/publishQuestionAnswer.vue @@ -1,60 +1,72 @@ + + \ No newline at end of file diff --git a/src/components/oa/uploadImageUrl.vue b/src/components/oa/uploadImageUrl.vue index c13f01d..9d93c32 100644 --- a/src/components/oa/uploadImageUrl.vue +++ b/src/components/oa/uploadImageUrl.vue @@ -1,34 +1,36 @@ \ No newline at end of file diff --git a/src/i18n/oaI18n.js b/src/i18n/oaI18n.js index c42c9e5..e4a242f 100644 --- a/src/i18n/oaI18n.js +++ b/src/i18n/oaI18n.js @@ -17,6 +17,16 @@ import { messages as printQuestionAnswerMessages } from '../views/oa/printQuesti import { messages as addQuestionAnswerMessages } from '../views/oa/addQuestionAnswerLang' import { messages as editQuestionAnswerMessages } from '../views/oa/editQuestionAnswerLang' import { messages as printQuestionAnswerDetailMessages } from '../views/oa/printQuestionAnswerDetailLang' +import { messages as ownerVotingMessages } from '../views/oa/ownerVotingLang' +import { messages as addOwnerVotingMessages } from '../views/oa/addOwnerVotingLang' +import { messages as editOwnerVotingMessages } from '../views/oa/editOwnerVotingLang' +import { messages as printOwnerVotingMessages } from '../views/oa/printOwnerVotingLang' +import { messages as examineProjectManageMessages } from '../views/oa/examineProjectManageLang' +import { messages as examineStaffManageMessages } from '../views/oa/examineStaffManageLang' +import { messages as addExamineStaffMessages } from '../views/oa/addExamineStaffLang' +import { messages as editExamineStaffMessages } from '../views/oa/editExamineStaffLang' +import { messages as examineStaffValueMessages } from '../views/oa/examineStaffValueLang' + export const messages ={ en:{ ...activitiesTypeManageMessages.en, @@ -38,6 +48,15 @@ export const messages ={ ...addQuestionAnswerMessages.en, ...editQuestionAnswerMessages.en, ...printQuestionAnswerDetailMessages.en, + ...ownerVotingMessages.en, + ...addOwnerVotingMessages.en, + ...editOwnerVotingMessages.en, + ...printOwnerVotingMessages.en, + ...examineProjectManageMessages.en, + ...examineStaffManageMessages.en, + ...addExamineStaffMessages.en, + ...editExamineStaffMessages.en, + ...examineStaffValueMessages.en, }, zh:{ ...activitiesTypeManageMessages.zh, @@ -59,5 +78,14 @@ export const messages ={ ...addQuestionAnswerMessages.zh, ...editQuestionAnswerMessages.zh, ...printQuestionAnswerDetailMessages.zh, + ...ownerVotingMessages.zh, + ...addOwnerVotingMessages.zh, + ...editOwnerVotingMessages.zh, + ...printOwnerVotingMessages.zh, + ...examineProjectManageMessages.zh, + ...examineStaffManageMessages.zh, + ...addExamineStaffMessages.zh, + ...editExamineStaffMessages.zh, + ...examineStaffValueMessages.zh, } } \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index c6172a6..2962268 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -955,6 +955,11 @@ const routes = [ name: '/pages/question/printQuestionAnswerDetail', component: () => import('@/views/oa/printQuestionAnswerDetailList.vue') }, + { + path:'/views/oa/printOwnerVoting', + name:'/views/oa/printOwnerVoting', + component: () => import('@/views/oa/printOwnerVotingList.vue') + }, ] const router = new VueRouter({ diff --git a/src/router/oaRouter.js b/src/router/oaRouter.js index eec7a52..de1f73a 100644 --- a/src/router/oaRouter.js +++ b/src/router/oaRouter.js @@ -80,9 +80,48 @@ export default [ component: () => import('@/views/oa/addQuestionAnswerList.vue') }, { - path:'/views/oa/editQuestionAnswer', - name:'/views/oa/editQuestionAnswer', + path: '/views/oa/editQuestionAnswer', + name: '/views/oa/editQuestionAnswer', component: () => import('@/views/oa/editQuestionAnswerList.vue') - }, - + }, + { + path: '/pages/question/ownerVoting', + name: '/pages/question/ownerVoting', + component: () => import('@/views/oa/ownerVotingList.vue') + }, + { + path: '/views/oa/addOwnerVoting', + name: '/views/oa/addOwnerVoting', + component: () => import('@/views/oa/addOwnerVotingList.vue') + }, + { + path: '/views/oa/editOwnerVoting', + name: '/views/oa/editOwnerVoting', + component: () => import('@/views/oa/editOwnerVotingList.vue') + }, + { + path: '/pages/examine/examineProjectManage', + name: '/pages/examine/examineProjectManage', + component: () => import('@/views/oa/examineProjectManageList.vue') + }, + { + path: '/pages/examine/examineStaffManage', + name: '/pages/examine/examineStaffManage', + component: () => import('@/views/oa/examineStaffManageList.vue') + }, + { + path: '/views/oa/addExamineStaff', + name: '/views/oa/addExamineStaff', + component: () => import('@/views/oa/addExamineStaffList.vue') + }, + { + path: '/views/oa/editExamineStaff', + name: '/views/oa/editExamineStaff', + component: () => import('@/views/oa/editExamineStaffList.vue') + }, + { + path: '/pages/examine/examineStaffValue', + name: '/pages/examine/examineStaffValue', + component: () => import('@/views/oa/examineStaffValueList.vue') + }, ] \ No newline at end of file diff --git a/src/views/oa/addExamineStaffLang.js b/src/views/oa/addExamineStaffLang.js new file mode 100644 index 0000000..a2024d6 --- /dev/null +++ b/src/views/oa/addExamineStaffLang.js @@ -0,0 +1,52 @@ +export const messages = { + en: { + addExamineStaff: { + title: 'Add Examine Staff', + staffName: 'Staff Name', + staffNamePlaceholder: 'Required, please fill in staff name', + select: 'Select', + projects: 'Examine Projects', + staffAvatar: 'Staff Avatar', + staffPost: 'Staff Post', + staffPostPlaceholder: 'Required, please fill in staff post', + staffIntroduction: 'Staff Introduction', + staffIntroductionPlaceholder: 'Required, please fill in staff introduction' + }, + selectStaff: { + title: 'Select Staff', + orgInfo: 'Organization Information', + staffInfo: 'Staff Information', + submitter: 'Submitter', + dynamicAssign: 'Dynamic Assignment' + }, + uploadImage: { + imageSizeLimit: 'Image size cannot exceed 2MB', + uploadFailed: 'Upload failed' + } + }, + zh: { + addExamineStaff: { + title: '添加考核员工', + staffName: '员工名称', + staffNamePlaceholder: '必填,请填写员工名称', + select: '选择', + projects: '考核项目', + staffAvatar: '员工头像', + staffPost: '员工岗位', + staffPostPlaceholder: '必填,请填写员工岗位', + staffIntroduction: '员工简介', + staffIntroductionPlaceholder: '必填,请输入员工简介' + }, + selectStaff: { + title: '选择员工', + orgInfo: '组织信息', + staffInfo: '员工信息', + submitter: '提交者', + dynamicAssign: '动态指定' + }, + uploadImage: { + imageSizeLimit: '图片大小不能超过2MB', + uploadFailed: '上传失败' + } + } +} \ No newline at end of file diff --git a/src/views/oa/addExamineStaffList.vue b/src/views/oa/addExamineStaffList.vue new file mode 100644 index 0000000..3a39734 --- /dev/null +++ b/src/views/oa/addExamineStaffList.vue @@ -0,0 +1,203 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/addOwnerVotingLang.js b/src/views/oa/addOwnerVotingLang.js new file mode 100644 index 0000000..d47831e --- /dev/null +++ b/src/views/oa/addOwnerVotingLang.js @@ -0,0 +1,70 @@ +export const messages = { + en: { + addOwnerVoting: { + title: 'Add Voting', + voteName: 'Vote Name', + voteNamePlaceholder: 'Required, please enter vote name', + type: 'Type', + typePlaceholder: 'Required, please select type', + singleChoice: 'Single Choice', + multipleChoice: 'Multiple Choice', + startTime: 'Start Time', + startTimePlaceholder: 'Required, please select start time', + endTime: 'End Time', + endTimePlaceholder: 'Required, please select end time', + option: 'Option ', + optionPlaceholder: 'Required, please enter option content', + addOption: 'Add Option', + deleteOption: 'Delete Option', + voteDescription: 'Vote Description', + voteDescriptionPlaceholder: 'Required, please enter vote description', + voteRooms: 'Vote Rooms', + validate: { + voteName: 'Vote name cannot be empty', + type: 'Please select type', + startTime: 'Please select start time', + endTime: 'Please select end time', + option: 'Please fill in all options' + } + }, + selectRoom: { + buildingUnit: 'Building Unit', + roomInfo: 'Room Information', + unit: 'Unit' + } + }, + zh: { + addOwnerVoting: { + title: '添加投票', + voteName: '投票名称', + voteNamePlaceholder: '必填,请填写投票名称', + type: '类型', + typePlaceholder: '必填,请选择类型', + singleChoice: '单选', + multipleChoice: '多选', + startTime: '开始时间', + startTimePlaceholder: '必填,请选择开始时间', + endTime: '结束时间', + endTimePlaceholder: '必填,请选择结束时间', + option: '选项', + optionPlaceholder: '必填,请填写选项内容', + addOption: '增加选项', + deleteOption: '删除选项', + voteDescription: '投票说明', + voteDescriptionPlaceholder: '必填,请输入投票说明', + voteRooms: '投票房屋', + validate: { + voteName: '名称不能为空', + type: '请选择类型', + startTime: '请选择开始时间', + endTime: '请选择结束时间', + option: '请填写所有选项内容' + } + }, + selectRoom: { + buildingUnit: '楼栋单元', + roomInfo: '房屋信息', + unit: '单元' + } + } +} \ No newline at end of file diff --git a/src/views/oa/addOwnerVotingList.vue b/src/views/oa/addOwnerVotingList.vue new file mode 100644 index 0000000..9025740 --- /dev/null +++ b/src/views/oa/addOwnerVotingList.vue @@ -0,0 +1,218 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/editExamineStaffLang.js b/src/views/oa/editExamineStaffLang.js new file mode 100644 index 0000000..1e9c9f9 --- /dev/null +++ b/src/views/oa/editExamineStaffLang.js @@ -0,0 +1,42 @@ +export const messages = { + en: { + editExamineStaff: { + title: 'Edit Examine Staff', + staffName: 'Staff Name', + staffNamePlaceholder: 'Required, please enter staff name', + projects: 'Examine Projects', + staffPhoto: 'Staff Photo', + post: 'Post', + postPlaceholder: 'Required, please enter post', + introduction: 'Introduction', + staffNameRequired: 'Staff name is required', + postRequired: 'Post is required', + fetchProjectsError: 'Failed to get examine projects', + fetchStaffError: 'Failed to get staff information' + }, + uploadImage: { + imageSizeLimit: 'Image size cannot exceed 2MB', + uploadError: 'Image upload failed' + } + }, + zh: { + editExamineStaff: { + title: '修改考核员工', + staffName: '员工名称', + staffNamePlaceholder: '必填,请填写员工名称', + projects: '考核项目', + staffPhoto: '员工头像', + post: '员工岗位', + postPlaceholder: '必填,请填写员工岗位', + introduction: '员工简介', + staffNameRequired: '员工名称不能为空', + postRequired: '员工岗位不能为空', + fetchProjectsError: '获取考核项目失败', + fetchStaffError: '获取员工信息失败' + }, + uploadImage: { + imageSizeLimit: '图片大小不能超过2MB', + uploadError: '图片上传失败' + } + } +} \ No newline at end of file diff --git a/src/views/oa/editExamineStaffList.vue b/src/views/oa/editExamineStaffList.vue new file mode 100644 index 0000000..a67b989 --- /dev/null +++ b/src/views/oa/editExamineStaffList.vue @@ -0,0 +1,223 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/editOwnerVotingLang.js b/src/views/oa/editOwnerVotingLang.js new file mode 100644 index 0000000..a15d8e7 --- /dev/null +++ b/src/views/oa/editOwnerVotingLang.js @@ -0,0 +1,78 @@ +export const messages = { + en: { + editOwnerVoting: { + title: 'Edit Voting', + voteName: 'Vote Name', + voteNamePlaceholder: 'Required, please enter vote name', + type: 'Type', + typePlaceholder: 'Required, please select type', + singleChoice: 'Single Choice', + multipleChoice: 'Multiple Choice', + startTime: 'Start Time', + startTimePlaceholder: 'Required, please select start time', + endTime: 'End Time', + endTimePlaceholder: 'Required, please select end time', + option: 'Option', + optionPlaceholder: 'Required, please enter option content', + addOption: 'Add Option', + deleteOption: 'Delete Option', + description: 'Description', + descriptionPlaceholder: 'Required, please enter description', + voteRooms: 'Vote Rooms', + houseVote: 'house(s) voting', + reselect: 'Reselect', + validate: { + voteNameRequired: 'Vote name is required', + voteNameLength: 'Vote name length must be between 1 and 256 characters', + startTimeRequired: 'Start time is required', + endTimeRequired: 'End time is required' + }, + saveSuccess: 'Save successfully', + saveFailed: 'Save failed' + }, + selectRooms: { + title: 'Select Rooms', + buildingUnit: 'Building Unit', + roomInfo: 'Room Information', + unit: 'Unit' + } + }, + zh: { + editOwnerVoting: { + title: '编辑投票', + voteName: '投票名称', + voteNamePlaceholder: '必填,请填写投票名称', + type: '类型', + typePlaceholder: '必填,请选择类型', + singleChoice: '单选', + multipleChoice: '多选', + startTime: '开始时间', + startTimePlaceholder: '必填,请选择开始时间', + endTime: '结束时间', + endTimePlaceholder: '必填,请选择结束时间', + option: '选项', + optionPlaceholder: '必填,请填写选项内容', + addOption: '增加选项', + deleteOption: '删除选项', + description: '投票说明', + descriptionPlaceholder: '必填,请输入投票说明', + voteRooms: '投票房屋', + houseVote: '户投票', + reselect: '重新选择', + validate: { + voteNameRequired: '名称不能为空', + voteNameLength: '名称长度必须在1位至256位', + startTimeRequired: '开始时间不能为空', + endTimeRequired: '结束时间不能为空' + }, + saveSuccess: '修改成功', + saveFailed: '修改失败' + }, + selectRooms: { + title: '选择房屋', + buildingUnit: '楼栋单元', + roomInfo: '房屋信息', + unit: '单元' + } + } +} \ No newline at end of file diff --git a/src/views/oa/editOwnerVotingList.vue b/src/views/oa/editOwnerVotingList.vue new file mode 100644 index 0000000..9ef2b9d --- /dev/null +++ b/src/views/oa/editOwnerVotingList.vue @@ -0,0 +1,194 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/examineProjectManageLang.js b/src/views/oa/examineProjectManageLang.js new file mode 100644 index 0000000..269ac12 --- /dev/null +++ b/src/views/oa/examineProjectManageLang.js @@ -0,0 +1,126 @@ +export const messages = { + en: { + examineProjectManage: { + search: { + title: 'Search Conditions', + namePlaceholder: 'Please enter project name', + postPlaceholder: 'Please enter post', + statePlaceholder: 'Please select status' + }, + list: { + title: 'Examination Projects' + }, + table: { + name: 'Project Name', + post: 'Post', + weight: 'Weight', + state: 'Status' + }, + form: { + name: 'Project Name', + namePlaceholder: 'Required, please enter project name', + post: 'Post', + postPlaceholder: 'Required, please select post', + commonPost: 'Common Post', + weight: 'Weight', + weightPlaceholder: 'Required, please enter weight', + state: 'Status', + statePlaceholder: 'Required, please select status' + }, + status: { + enable: 'Enable', + disable: 'Disable' + }, + validate: { + idRequired: 'ID is required', + nameRequired: 'Project name is required', + nameMaxLength: 'Project name cannot exceed 64 characters', + postRequired: 'Post is required', + postMaxLength: 'Post cannot exceed 30 characters', + weightRequired: 'Weight is required', + weightMaxLength: 'Weight cannot exceed 12 characters', + stateRequired: 'Status is required', + stateMaxLength: 'Status cannot exceed 12 characters' + }, + add: { + title: 'Add Examination Project', + success: 'Added successfully', + error: 'Failed to add' + }, + edit: { + title: 'Edit Examination Project', + success: 'Updated successfully', + error: 'Failed to update' + }, + delete: { + title: 'Delete Confirmation', + confirmText: 'Are you sure to delete this examination project?', + success: 'Deleted successfully', + error: 'Failed to delete' + }, + fetchError: 'Failed to fetch data' + } + }, + zh: { + examineProjectManage: { + search: { + title: '查询条件', + namePlaceholder: '请输入项目名称', + postPlaceholder: '请输入岗位', + statePlaceholder: '请选择状态' + }, + list: { + title: '考核项目' + }, + table: { + name: '项目名称', + post: '岗位', + weight: '比重', + state: '状态' + }, + form: { + name: '项目名称', + namePlaceholder: '必填,请填写项目名称', + post: '岗位', + postPlaceholder: '必填,请选择岗位', + commonPost: '通用岗位', + weight: '比重', + weightPlaceholder: '必填,请填写比重', + state: '状态', + statePlaceholder: '必填,请选择状态' + }, + status: { + enable: '启用', + disable: '停用' + }, + validate: { + idRequired: '编号不能为空', + nameRequired: '项目名称不能为空', + nameMaxLength: '项目名称不能超过64个字符', + postRequired: '岗位不能为空', + postMaxLength: '岗位编号不能超过30个字符', + weightRequired: '比重不能为空', + weightMaxLength: '比重不能超过12个字符', + stateRequired: '状态不能为空', + stateMaxLength: '状态不能超过12个字符' + }, + add: { + title: '添加考核项目', + success: '添加成功', + error: '添加失败' + }, + edit: { + title: '修改考核项目', + success: '修改成功', + error: '修改失败' + }, + delete: { + title: '删除确认', + confirmText: '确定删除该考核项目吗?', + success: '删除成功', + error: '删除失败' + }, + fetchError: '获取数据失败' + } + } +} \ No newline at end of file diff --git a/src/views/oa/examineProjectManageList.vue b/src/views/oa/examineProjectManageList.vue new file mode 100644 index 0000000..760b0ff --- /dev/null +++ b/src/views/oa/examineProjectManageList.vue @@ -0,0 +1,194 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/examineStaffManageLang.js b/src/views/oa/examineStaffManageLang.js new file mode 100644 index 0000000..f159ba9 --- /dev/null +++ b/src/views/oa/examineStaffManageLang.js @@ -0,0 +1,58 @@ +export const messages = { + en: { + examineStaffManage: { + search: { + title: 'Search Conditions', + staffName: 'Please enter staff name', + projectName: 'Please enter project name' + }, + list: { + title: 'Assessment Staff', + add: 'Add' + }, + table: { + face: 'Face', + staffId: 'Staff ID', + staffName: 'Staff Name', + post: 'Post', + projects: 'Assessment Projects', + operation: 'Operation' + }, + delete: { + title: 'Confirm Operation', + confirm: 'Are you sure to delete this assessment staff?', + success: 'Delete successfully', + error: 'Delete failed' + }, + fetchError: 'Failed to fetch assessment staff data' + } + }, + zh: { + examineStaffManage: { + search: { + title: '查询条件', + staffName: '请输入员工名称', + projectName: '请输入考核项目' + }, + list: { + title: '考核人员', + add: '添加' + }, + table: { + face: '人脸', + staffId: '员工编号', + staffName: '员工名称', + post: '岗位', + projects: '考核项目', + operation: '操作' + }, + delete: { + title: '确认操作', + confirm: '确定删除该考核人员吗?', + success: '删除成功', + error: '删除失败' + }, + fetchError: '获取考核人员数据失败' + } + } +} \ No newline at end of file diff --git a/src/views/oa/examineStaffManageList.vue b/src/views/oa/examineStaffManageList.vue new file mode 100644 index 0000000..432c821 --- /dev/null +++ b/src/views/oa/examineStaffManageList.vue @@ -0,0 +1,186 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/examineStaffValueLang.js b/src/views/oa/examineStaffValueLang.js new file mode 100644 index 0000000..3e39eb0 --- /dev/null +++ b/src/views/oa/examineStaffValueLang.js @@ -0,0 +1,52 @@ +export const messages = { + en: { + examineStaffValue: { + search: { + title: 'Search Conditions', + staffName: 'Please select staff name', + projectName: 'Please select examine project' + }, + list: { + title: 'Examine Records' + }, + table: { + year: 'Year', + staffId: 'Staff ID', + staffName: 'Staff Name', + projectName: 'Examine Project', + weight: 'Weight', + examineValue: 'Score', + actualScore: 'Actual Score', + ownerName: 'Rater', + roomName: 'Room', + createTime: 'Rating Time' + }, + fetchError: 'Failed to fetch examine records' + } + }, + zh: { + examineStaffValue: { + search: { + title: '查询条件', + staffName: '请选择员工名称', + projectName: '请选择考核项目' + }, + list: { + title: '考核记录' + }, + table: { + year: '年度', + staffId: '员工ID', + staffName: '员工名称', + projectName: '考核项目', + weight: '权重', + examineValue: '评分', + actualScore: '实际得分', + ownerName: '评分人', + roomName: '房屋', + createTime: '评分时间' + }, + fetchError: '获取考核记录失败' + } + } +} \ No newline at end of file diff --git a/src/views/oa/examineStaffValueList.vue b/src/views/oa/examineStaffValueList.vue new file mode 100644 index 0000000..8756569 --- /dev/null +++ b/src/views/oa/examineStaffValueList.vue @@ -0,0 +1,149 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/ownerVotingLang.js b/src/views/oa/ownerVotingLang.js new file mode 100644 index 0000000..ce027db --- /dev/null +++ b/src/views/oa/ownerVotingLang.js @@ -0,0 +1,192 @@ +export const messages = { + en: { + ownerVoting: { + search: { + title: 'Search Conditions', + qaId: 'Please enter voting ID', + qaName: 'Please enter voting name' + }, + list: { + title: 'Voting Information' + }, + table: { + qaName: 'Voting Name', + validity: 'Validity Period', + type: 'Type', + options: 'Options', + voteCount: 'Total Votes/Voted', + state: 'Status', + createTime: 'Create Time', + operation: 'Operation', + peopleChose: ' people chose' + }, + type: { + single: 'Single Choice', + multiple: 'Multiple Choice' + }, + state: { + published: 'Published', + unpublished: 'Unpublished' + }, + operation: { + result: 'Result', + publish: 'Publish' + }, + add: { + title: 'Add Voting', + success: 'Add voting successfully', + error: 'Failed to add voting' + }, + edit: { + title: 'Edit Voting', + noId: 'No voting ID provided', + fetchError: 'Failed to get voting details' + }, + delete: { + title: 'Delete Voting', + confirm: 'Are you sure to delete this voting?', + success: 'Delete voting successfully', + error: 'Failed to delete voting' + }, + deleteQuestionAnswer: { + title: 'Delete Questionnaire', + confirm: 'Are you sure to delete this questionnaire?', + success: 'Delete questionnaire successfully', + error: 'Failed to delete questionnaire' + }, + publish: { + title: 'Publish Voting', + name: 'Name', + tip: 'Tips', + tipContent: 'After publishing, it cannot be modified again. Please confirm before publishing!', + notifyWay: 'Notification Method', + notifyWayPlaceholder: 'Required, please select notification method', + sms: 'SMS', + wechat: 'WeChat Message', + noNotify: 'No Notification', + notifyWayRequired: 'Notification method is required', + publishBtn: 'Publish', + success: 'Publish successfully', + error: 'Failed to publish' + }, + form: { + qaName: 'Voting Name', + qaNamePlaceholder: 'Please enter voting name', + type: 'Type', + typePlaceholder: 'Please select type', + startTime: 'Start Time', + startTimePlaceholder: 'Please select start time', + endTime: 'End Time', + endTimePlaceholder: 'Please select end time', + options: 'Options', + optionPlaceholder: 'Option {num}', + addOption: 'Add Option' + }, + validate: { + qaName: 'Voting name is required', + type: 'Type is required', + startTime: 'Start time is required', + endTime: 'End time is required', + endTimeAfterStart: 'End time must be after start time', + atLeastOneOption: 'At least one option is required', + optionNotEmpty: 'Option cannot be empty' + }, + fetchError: 'Failed to get voting list' + } + }, + zh: { + ownerVoting: { + search: { + title: '查询条件', + qaId: '请输入投票ID', + qaName: '请输入投票名称' + }, + list: { + title: '投票信息' + }, + table: { + qaName: '投票名称', + validity: '有效期', + type: '类型', + options: '选项', + voteCount: '总投票/已投票', + state: '状态', + createTime: '创建时间', + operation: '操作', + peopleChose: '人选择' + }, + type: { + single: '单选', + multiple: '多选' + }, + state: { + published: '已发布', + unpublished: '待发布' + }, + operation: { + result: '结果', + publish: '发布' + }, + add: { + title: '添加投票', + success: '添加投票成功', + error: '添加投票失败' + }, + edit: { + title: '编辑投票', + noId: '未提供投票ID', + fetchError: '获取投票详情失败' + }, + delete: { + title: '删除投票', + confirm: '确定删除该投票吗?', + success: '删除投票成功', + error: '删除投票失败' + }, + deleteQuestionAnswer: { + title: '删除问卷', + confirm: '确定删除该问卷吗?', + success: '删除问卷成功', + error: '删除问卷失败' + }, + publish: { + title: '发布投票', + name: '名称', + tip: '温馨提示', + tipContent: '发布后将无法再次修改,请确认无误后再发布!', + notifyWay: '通知方式', + notifyWayPlaceholder: '必填,请选择通知方式', + sms: '短信', + wechat: '微信消息', + noNotify: '不通知', + notifyWayRequired: '通知方式不能为空', + publishBtn: '发布', + success: '发布成功', + error: '发布失败' + }, + form: { + qaName: '投票名称', + qaNamePlaceholder: '请输入投票名称', + type: '类型', + typePlaceholder: '请选择类型', + startTime: '开始时间', + startTimePlaceholder: '请选择开始时间', + endTime: '结束时间', + endTimePlaceholder: '请选择结束时间', + options: '选项', + optionPlaceholder: '选项{num}', + addOption: '添加选项' + }, + validate: { + qaName: '投票名称不能为空', + type: '类型不能为空', + startTime: '开始时间不能为空', + endTime: '结束时间不能为空', + endTimeAfterStart: '结束时间必须晚于开始时间', + atLeastOneOption: '至少需要一个选项', + optionNotEmpty: '选项不能为空' + }, + fetchError: '获取投票列表失败' + } + } +} \ No newline at end of file diff --git a/src/views/oa/ownerVotingList.vue b/src/views/oa/ownerVotingList.vue new file mode 100644 index 0000000..e9f5f4f --- /dev/null +++ b/src/views/oa/ownerVotingList.vue @@ -0,0 +1,216 @@ + + + + + \ No newline at end of file diff --git a/src/views/oa/printOwnerVotingLang.js b/src/views/oa/printOwnerVotingLang.js new file mode 100644 index 0000000..1ffd1ec --- /dev/null +++ b/src/views/oa/printOwnerVotingLang.js @@ -0,0 +1,18 @@ +export const messages = { + en: { + printOwnerVoting: { + room: 'Room', + totalVotes: 'Total votes', + votedCount: 'Voted count', + person: 'person' + } + }, + zh: { + printOwnerVoting: { + room: '房间', + totalVotes: '投票总数', + votedCount: '已投票', + person: '人' + } + } +} \ No newline at end of file diff --git a/src/views/oa/printOwnerVotingList.vue b/src/views/oa/printOwnerVotingList.vue new file mode 100644 index 0000000..9a86cef --- /dev/null +++ b/src/views/oa/printOwnerVotingList.vue @@ -0,0 +1,235 @@ + + + + + \ No newline at end of file -- libgit2 0.21.4