diff --git a/.drone.yml b/.drone.yml index e0b66f4..5e7f6bc 100644 --- a/.drone.yml +++ b/.drone.yml @@ -25,9 +25,9 @@ steps: - npm -v - mkdir -p ./node_modules - export NODE_MODULES_PATH=`pwd`/node_modules - - npm config set registry https://registry.npmmirror.com - - set NODE_OPTIONS=--openssl-legacy-provider - - npm install + # - npm config set registry https://registry.npmmirror.com + # - set NODE_OPTIONS=--openssl-legacy-provider + # - npm install - npm run build - ls /app/build/$DRONE_REPO_NAME/ - echo $NODE_MODULES_PATH diff --git a/src/api/project-manage/index.js b/src/api/project-manage/index.js index 37ca9e1..c457e8d 100644 --- a/src/api/project-manage/index.js +++ b/src/api/project-manage/index.js @@ -145,3 +145,16 @@ export const getPreProcess= () => { method: "get" }); }; +export const updateLedger = (data) => { + return request({ + url: '/workflow/mosr/expense/ledger/replenishment', + method: "post", + data: data + }); +}; +export const searchUpdateLedgerData = (projectId) => { + return request({ + url: `/workflow/mosr/expense/ledger/${projectId}`, + method: "get" + }); +}; diff --git a/src/api/workflow/process-user.js b/src/api/workflow/process-user.js index fd623f9..733d39c 100644 --- a/src/api/workflow/process-user.js +++ b/src/api/workflow/process-user.js @@ -22,7 +22,7 @@ export function getDepartmentTree() { method: 'get' }) } -export function getMosrDept(params) { +export function getMosrUser(params) { return request({ url: '/admin/mosr/user/choose', method: 'get', diff --git a/src/components/DetailComponent/AllocationSummaryDetail.vue b/src/components/DetailComponent/AllocationSummaryDetail.vue index 2df5099..ccd1b78 100644 --- a/src/components/DetailComponent/AllocationSummaryDetail.vue +++ b/src/components/DetailComponent/AllocationSummaryDetail.vue @@ -1,6 +1,6 @@ - diff --git a/src/layout/navbar/index.vue b/src/layout/navbar/index.vue index 7803cc6..642f14a 100644 --- a/src/layout/navbar/index.vue +++ b/src/layout/navbar/index.vue @@ -97,7 +97,7 @@ const handleVisitedP = () => { ElNotification({ title: '提示', message: res.msg, - type: res.code === 1000 ? 'success' : 'error' + type: 'error' }) } accountList.value = res.data diff --git a/src/router/index.js b/src/router/index.js index 39d999e..d0b07f3 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -25,6 +25,11 @@ const router = createRouter({ name: 'casLogin', component: () => import('@/views/cas-login/index.vue'), }, + { + path: '/projectdetail/mobile', + name: 'projectDetailMobile', + component: () => import('@/views/project-management/mobledetail/index.vue') + }, { path: '/', name: 'layout', diff --git a/src/utils/export-excel.js b/src/utils/export-excel.js index b05118e..afeeb79 100644 --- a/src/utils/export-excel.js +++ b/src/utils/export-excel.js @@ -7,8 +7,9 @@ import XLSX from "xlsx-style-vite"; * @param $table 表格html dom元素 * @param columnLength 列长度 * @param excelName 导出文件名称 + * @param bigWidthIndex 更宽列的索引 */ -export function exportExcel($table, columnLength, excelName,bigWidth) { +export function exportExcel($table, columnLength, excelName, bigWidthIndex) { //从el-table表生成工作簿对象 //使用原始的格式,保留表格中的格式如%、小数末尾的0等 let workbook = utils.table_to_book($table, { @@ -16,7 +17,7 @@ export function exportExcel($table, columnLength, excelName,bigWidth) { }); //列宽,需要导出的表格有多少列这里的i就小于多少 for (let i = 1; i < columnLength; i++) { - if(i==bigWidth){ + if (i === bigWidthIndex) { workbook.Sheets.Sheet1["!cols"].push({wpx: 300}); } workbook.Sheets.Sheet1["!cols"].push({wpx: 100}); diff --git a/src/views/expense-management/share/add.vue b/src/views/expense-management/share/add.vue index 37567de..47f618c 100644 --- a/src/views/expense-management/share/add.vue +++ b/src/views/expense-management/share/add.vue @@ -3,13 +3,13 @@ - + - + @@ -65,7 +56,7 @@ @@ -113,7 +104,8 @@ - +
添加一行 @@ -161,22 +153,24 @@ import { import {useProcessStore} from '@/stores/processStore.js'; import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue'; import OperationRender from '@/views/workflow/common/OperationRender.vue' +import {ref} from "vue"; + import UserPicker from "@/views/workflow/process/common/UserPicker.vue"; const userList = ref([]) const changeDiagram = ref(false) const rules = reactive({ - shareName: [{required: true, message: '请输入分摊名称', trigger: ['blur', 'change']}], - apportionmentMonth: [{required: true, message: '请选择月份', trigger: ['blur', 'change']}], - projectId: [{required: true, message: '请选择项目名称', trigger: ['blur', 'change']}], - researchPersonnel: [{required: true, message: '请选择研发人员', trigger: ['blur', 'change']}], - wagesPayable: [{required: true, message: '请输入应发工资', trigger: ['blur', 'change']}], - performance: [{required: true, message: '请输入绩效', trigger: ['blur', 'change']}], - reserveFund: [{required: true, message: '请输入公积金', trigger: ['blur', 'change']}], - socialSecurity: [{required: true, message: '请输入社保', trigger: ['blur', 'change']}], - annuity: [{required: true, message: '请输入年金', trigger: ['blur', 'change']}], - workday: [{required: true, message: '请输入工作日', trigger: ['blur', 'change']}], - researchDuration: [{required: true, message: '请输入研发时长', trigger: ['blur', 'change']}], + shareName: [{required: true, message: '请输入分摊名称', trigger: 'blur'}], + apportionmentMonth: [{required: true, message: '请选择月份', trigger: 'blur'}], + projectId: [{required: true, message: '请选择项目名称', trigger: 'blur'}], + // researchPersonnel: [{required: true, message: '请选择研发人员', trigger: 'blur'}], + wagesPayable: [{required: true, message: '请输入应发工资', trigger: 'blur'}], + performance: [{required: true, message: '请输入绩效', trigger: 'blur'}], + reserveFund: [{required: true, message: '请输入公积金', trigger: 'blur'}], + socialSecurity: [{required: true, message: '请输入社保', trigger: 'blur'}], + annuity: [{required: true, message: '请输入年金', trigger: 'blur'}], + workday: [{required: true, message: '请输入工作日', trigger: 'blur'}], + researchDuration: [{required: true, message: '请输入研发时长', trigger: 'blur'}], }) const processStore = useProcessStore() const opentionData = ref() @@ -206,29 +200,26 @@ const formData = ref({ }) const userPicker = ref() const form = ref() +const currentReachPerson = ref({}) const currentRow = ref() -const currentIndex= ref() +const currentIndex = ref() const nameOptions = ref([]) const researchOptions = ref([]) -const showPersonnelPicker = (row,index) => { - currentRow.value=row - currentIndex.value=index +const showPersonnelPicker = (row, index) => { + currentRow.value = row + currentIndex.value = index userPicker.value.showUserPicker() } -const chooseUserInfo = () => { - if (userList.value.length > 0) { - return userList.value.map(item => { - return item.name - }).join(',') - } else { - return null - } -} const selected = (select) => { - console.log('select',select) - console.log('currentRow.value',currentRow.value) - console.log('currentRow.value',currentIndex.value) - // userList.value = select + for (const selectElement of select) { + currentReachPerson.value = selectElement + } + formData.value.tableData.forEach((item, index) => { + if (index == currentIndex.value) { + item.researchPersonnel = currentReachPerson.value.id + item.researchPersonnelName = currentReachPerson.value.name + } + }) } const getResearchOptions = async () => { const res = await getResearchUser() @@ -290,13 +281,8 @@ const handleSubmit = (instance) => { type: 'error' }) } - let researchPersonId = '' - userList.value.forEach(item => { - researchPersonId = item.id - }) formData.value.tableData.forEach(item => { item.projectName = getProjectName(item.projectId) - item.researchPersonnel = researchPersonId if (item.performance == 0) { item.performance = null } @@ -332,14 +318,9 @@ const handleResubmit = (instance) => { type: 'error' }) } - let researchPersonId = '' - userList.value.forEach(item => { - researchPersonId = item.id - }) formData.value.tableData.forEach(item => { item.allocationId = formData.value.allocationId item.projectName = getProjectName(item.projectId) - item.researchPersonnel = researchPersonId if (item.performance == 0) { item.performance = null } @@ -351,7 +332,7 @@ const handleResubmit = (instance) => { usrAllocations: formData.value.tableData, deploymentId: processInstanceData.value.deploymentId, } - // console.log('params',params) + console.log('params', params) const {code, msg} = await editAllocation(params) ElNotification({ title: '提示', diff --git a/src/views/project-management/implementation/account.vue b/src/views/project-management/implementation/account.vue index 42d202f..fa6a2e9 100644 --- a/src/views/project-management/implementation/account.vue +++ b/src/views/project-management/implementation/account.vue @@ -12,30 +12,107 @@ diff --git a/src/views/project-management/implementation/uploadFee.vue b/src/views/project-management/implementation/uploadFee.vue index f3662e5..68027a0 100644 --- a/src/views/project-management/implementation/uploadFee.vue +++ b/src/views/project-management/implementation/uploadFee.vue @@ -56,8 +56,8 @@ @@ -127,7 +127,7 @@ const tableForm = reactive({ projectCost: '', researchStage: '', digest: '', - afterTax: '' + afterTax: null } ] }) @@ -148,7 +148,7 @@ const handleAdd = () => { projectCost: '', researchStage: '', digest: '', - afterTax: '' + afterTax: null } tableForm.tableData.push(row) } diff --git a/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue new file mode 100644 index 0000000..322fb4b --- /dev/null +++ b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue @@ -0,0 +1,272 @@ + + + + + diff --git a/src/views/project-management/mobledetail/CollectionDetailMoblie.vue b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue new file mode 100644 index 0000000..83b15c6 --- /dev/null +++ b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/src/views/project-management/mobledetail/OpinionMoblie.vue b/src/views/project-management/mobledetail/OpinionMoblie.vue new file mode 100644 index 0000000..9b775e6 --- /dev/null +++ b/src/views/project-management/mobledetail/OpinionMoblie.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/views/project-management/mobledetail/ProjectApplyMoblie.vue b/src/views/project-management/mobledetail/ProjectApplyMoblie.vue new file mode 100644 index 0000000..28e4403 --- /dev/null +++ b/src/views/project-management/mobledetail/ProjectApplyMoblie.vue @@ -0,0 +1,429 @@ + + + + + diff --git a/src/views/project-management/mobledetail/StepsMoblie.vue b/src/views/project-management/mobledetail/StepsMoblie.vue new file mode 100644 index 0000000..a42e83b --- /dev/null +++ b/src/views/project-management/mobledetail/StepsMoblie.vue @@ -0,0 +1,314 @@ + + + + + diff --git a/src/views/project-management/mobledetail/SummaryDetailMoblie.vue b/src/views/project-management/mobledetail/SummaryDetailMoblie.vue new file mode 100644 index 0000000..9706b26 --- /dev/null +++ b/src/views/project-management/mobledetail/SummaryDetailMoblie.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/src/views/project-management/mobledetail/api/index.js b/src/views/project-management/mobledetail/api/index.js new file mode 100644 index 0000000..a6d331c --- /dev/null +++ b/src/views/project-management/mobledetail/api/index.js @@ -0,0 +1,15 @@ +import request from '@/utils/request' + +export const getBaseInfoApi = (projectId) => { + return request({ + url: '/workflow/details/info/'+projectId, + method: 'get', + }) +} + +export const getMapProjectStateInfo = (projectId, state) => { + return request({ + url: `/workflow/details/${projectId}/${state}`, + method: 'get' + }) +} \ No newline at end of file diff --git a/src/views/project-management/mobledetail/index.vue b/src/views/project-management/mobledetail/index.vue new file mode 100644 index 0000000..d24040b --- /dev/null +++ b/src/views/project-management/mobledetail/index.vue @@ -0,0 +1,170 @@ + + + + + + \ No newline at end of file diff --git a/src/views/workflow/process/common/UserPicker.vue b/src/views/workflow/process/common/UserPicker.vue index 9a4dc64..835a571 100644 --- a/src/views/workflow/process/common/UserPicker.vue +++ b/src/views/workflow/process/common/UserPicker.vue @@ -70,9 +70,8 @@