ZaiZai 1 年間 前
コミット
4a64a74996
36 ファイル変更297 行追加332 行削除
  1. 1 1
      public/version.json
  2. 1 1
      src/api/modules/attendance/business-trip.js
  3. 2 2
      src/api/modules/expense/finReimburse.js
  4. 14 14
      src/api/modules/home/index.js
  5. 4 4
      src/api/modules/other.js
  6. 4 4
      src/api/modules/people/archive.js
  7. 1 1
      src/api/modules/people/contract.js
  8. 1 1
      src/api/modules/people/salary.js
  9. 4 4
      src/api/modules/static/actual.js
  10. 2 2
      src/api/modules/static/plan.js
  11. 4 4
      src/api/modules/static/project.js
  12. 3 3
      src/api/modules/system/menu.js
  13. 9 9
      src/api/modules/system/organization.js
  14. 5 7
      src/api/modules/system/user.js
  15. 184 175
      src/views/attendance/business-trip/info.vue
  16. 0 2
      src/views/expense/finReimburse/index.vue
  17. 0 5
      src/views/expense/finReimburse/record.vue
  18. 0 4
      src/views/expense/invoice/billing.vue
  19. 0 1
      src/views/expense/invoice/index.vue
  20. 0 2
      src/views/expense/loanRequest/index.vue
  21. 0 4
      src/views/expense/loanRequest/record.vue
  22. 0 2
      src/views/expense/outsourcing/index.vue
  23. 1 5
      src/views/expense/outsourcing/record.vue
  24. 0 2
      src/views/expense/paymentRequest/index.vue
  25. 0 4
      src/views/expense/paymentRequest/record.vue
  26. 0 2
      src/views/expense/purchaseRequest/index.vue
  27. 0 4
      src/views/expense/purchaseRequest/record.vue
  28. 0 2
      src/views/expense/vehicleRequest/index.vue
  29. 0 4
      src/views/expense/vehicleRequest/record.vue
  30. 0 2
      src/views/people/archive/info.vue
  31. 0 2
      src/views/people/contract/info.vue
  32. 0 2
      src/views/people/dimission.vue
  33. 0 2
      src/views/people/entry.vue
  34. 17 10
      src/views/system/user.vue
  35. 40 35
      src/views/task/logs/components/logs-content.vue
  36. 0 4
      src/views/task/logs/index.vue

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20240613145319"
+  "value": "20240613173544"
 }

+ 1 - 1
src/api/modules/attendance/business-trip.js

@@ -63,7 +63,7 @@ export default {
           url: '/api/blade-control/ex/ma/project/budget/list',
           method: 'get',
           params: form,
-      }, false)
+      })
   },
 }
 

+ 2 - 2
src/api/modules/expense/finReimburse.js

@@ -63,7 +63,7 @@ export default {
             url: '/api/blade-control/ex/ma/project/budget/list',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //获取我的借款列表
     async loanList(form = {}) {
@@ -71,6 +71,6 @@ export default {
             url: '/api/blade-control/ex/ma/loan/list',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
 }

+ 14 - 14
src/api/modules/home/index.js

@@ -7,7 +7,7 @@ export default {
             url: '/api/blade-control/projectCostBudget/planOverview',
             method: 'get',
             params: {},
-        }, false)
+        })
     },
     //门户普通权限预警
     async postponePlan() {
@@ -15,7 +15,7 @@ export default {
             url: '/api/blade-control/projectCostBudget/postponePlan',
             method: 'get',
             params: {},
-        }, false)
+        })
     },
     //获取用户计划通知
     async getUserInform() {
@@ -23,7 +23,7 @@ export default {
             url: '/api/blade-control/planInform/getUserInform',
             method: 'get',
             params: {},
-        }, false)
+        })
     },
     //门户普通权限单月计划统计
     async monthPlanOverview(form) {
@@ -31,7 +31,7 @@ export default {
             url: '/api/blade-control/projectCostBudget/MonthPlanOverview',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //门户普通权限计划统计图
     async monthOfYearPlanOverview() {
@@ -39,7 +39,7 @@ export default {
             url: '/api/blade-control/projectCostBudget/MonthOfYearPlanOverview',
             method: 'get',
             params: {},
-        }, false)
+        })
     },
 
     //门户-年度指标统计
@@ -48,7 +48,7 @@ export default {
             url: '/api/blade-control/annualBudget/portalAnnualTarget',
             method: 'get',
             params: {},
-        }, false)
+        })
     },
     //门户-年度列表
     async yearList() {
@@ -58,7 +58,7 @@ export default {
             params: {
                 type: 1,
             },
-        }, false)
+        })
     },
     //门户-年度各项费用统计
     async portalAnnualCost(form) {
@@ -66,7 +66,7 @@ export default {
             url: '/api/blade-control/annualBudget/portalAnnualCost',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //门户-年度各项目支出对比
     async portalAnnualProjectCost(form) {
@@ -74,7 +74,7 @@ export default {
             url: '/api/blade-control/annualBudget/portalAnnualProjectCost',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //门户-当月各部门计划安排比重
     async portalDeptMonthPlanRatio(form) {
@@ -82,7 +82,7 @@ export default {
             url: '/api/blade-control/annualBudget/portalDeptMonthPlanRatio',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //门户-风险计划
     async portalRiskPlan() {
@@ -90,7 +90,7 @@ export default {
             url: '/api/blade-control/annualBudget/portalRiskPlan',
             method: 'get',
             params: {},
-        }, false)
+        })
     },
 
     //门户-各项目支出占比
@@ -101,7 +101,7 @@ export default {
             params: {
                 date,
             },
-        }, false)
+        })
     },
     //门户-各项目收入占比
     async portalProjectIncomeRatio(date) {
@@ -111,7 +111,7 @@ export default {
             params: {
                 date,
             },
-        }, false)
+        })
     },
     //门户-项目服务阶段进程
     async portalProjectProcess(projectId) {
@@ -121,6 +121,6 @@ export default {
             params: {
                 projectId,
             },
-        }, false)
+        })
     },
 }

+ 4 - 4
src/api/modules/other.js

@@ -21,7 +21,7 @@ export const getProjectList = () => HcApi({
     url: '/api/blade-control/ex/ma/project/list',
     method: 'get',
     params: {},
-}, false)
+})
 
 //将数字转换为汉语大写,支持小数点
 export const getNumberToChinese = (form) => HcApi({
@@ -30,7 +30,7 @@ export const getNumberToChinese = (form) => HcApi({
     params: {
         value: form,
     },
-}, false)
+})
 
 //字典数据查询接口
 export const getDictInfo = (code) => HcApi({
@@ -39,7 +39,7 @@ export const getDictInfo = (code) => HcApi({
     params: {
         code,
     },
-}, false)
+})
 //获取部门列表
 export const getdepartmentList = (form, msg = true) => HcApi({
     url: '/api/blade-system/dept/listAllByType',
@@ -74,7 +74,7 @@ export const getTaskType = (form, msg = true) => HcApi({
 export const getVersionJson = () => HcApi({
     url: 'version.json?time=' + new Date().getTime(),
     method: 'get',
-}, false)
+})
 
 
 //获取类型

+ 4 - 4
src/api/modules/people/archive.js

@@ -7,7 +7,7 @@ export default {
             url: '/api/blade-control/userfilesinfo/get-user-file-page',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //删除
     async remove(ids) {
@@ -17,7 +17,7 @@ export default {
             params: {
                 ids,
             },
-        }, false)
+        })
     },
     //详情
     async detail(form) {
@@ -25,7 +25,7 @@ export default {
             url: '/api/blade-control/userfilesinfo/get-user-file-detail',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //提交
     async submit(form) {
@@ -33,6 +33,6 @@ export default {
             url: '/api/blade-control/userfilesinfo/submit-user-file',
             method: 'post',
             data: form,
-        }, false)
+        })
     },
 }

+ 1 - 1
src/api/modules/people/contract.js

@@ -15,7 +15,7 @@ export default {
             url: '/api/blade-control/usercontractinfo/remove',
             method: 'post',
             params: form,
-        }, false)
+        })
     },
     //员工合同、入职、离职的详情
     async detail(form, msg = true) {

+ 1 - 1
src/api/modules/people/salary.js

@@ -16,6 +16,6 @@ export default {
             method: 'get',
             params: {},
             responseType: 'blob',
-        }, false)
+        })
     },
 }

+ 4 - 4
src/api/modules/static/actual.js

@@ -7,7 +7,7 @@ export default {
             url: '/api/blade-control/annualBudget/budgetAndPracticalByMonth',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //预算与实际统计-部门支出统计
     async budgetAndPracticalByDept(form) {
@@ -15,7 +15,7 @@ export default {
             url: '/api/blade-control/annualBudget/budgetAndPracticalByDept',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //预算与实际统计-人工和管理统计
     async budgetAndPracticalByManage(form) {
@@ -23,7 +23,7 @@ export default {
             url: '/api/blade-control/annualBudget/budgetAndPracticalByManage',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //预算与实际统计-总经营
     async budgetAndPracticalByBusiness(form) {
@@ -31,7 +31,7 @@ export default {
             url: '/api/blade-control/annualBudget/budgetAndPracticalByBusiness',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
 
 }

+ 2 - 2
src/api/modules/static/plan.js

@@ -7,7 +7,7 @@ export default {
             url: '/api/blade-control/projectCostBudget/MonthOfYearPlanOverview2',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //任务统计完成率
     async planFinishedRatio(form) {
@@ -15,7 +15,7 @@ export default {
             url: '/api/blade-control/projectCostBudget/planFinishedRatio',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
 
 }

+ 4 - 4
src/api/modules/static/project.js

@@ -7,7 +7,7 @@ export default {
             url: '/api/blade-control/projectInfo/allProjectStats',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //项目统计列表统计
     async ProjectListStats(form = {}) {
@@ -15,7 +15,7 @@ export default {
             url: '/api/blade-control/projectInfo/ProjectListStats',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //项目统计费用分类
     async ProjectCostTypeStats(form) {
@@ -23,7 +23,7 @@ export default {
             url: '/api/blade-control/projectInfo/ProjectCostTypeStats',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //项目统计-环节费用
     async projectLinkCost(form) {
@@ -31,6 +31,6 @@ export default {
             url: '/api/blade-control/projectProcess/projectLinkCost',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
 }

+ 3 - 3
src/api/modules/system/menu.js

@@ -11,7 +11,7 @@ export default {
                 sysId: config.sysId,
                 ...form,
             },
-        }, false)
+        })
     },
     //删除菜单
     async remove(ids) {
@@ -21,7 +21,7 @@ export default {
             params: {
                 ids,
             },
-        }, false)
+        })
     },
     //提交
     async submit(form) {
@@ -29,6 +29,6 @@ export default {
             url: '/api/blade-system/menu/submit',
             method: 'post',
             data: form,
-        }, false)
+        })
     },
 }

+ 9 - 9
src/api/modules/system/organization.js

@@ -11,7 +11,7 @@ export default {
             params: {
                 tenantId: store.tenantId,
             },
-        }, false)
+        })
     },
 
     //列表数据(用户部门)
@@ -24,7 +24,7 @@ export default {
                 tenantId: store.tenantId,
                 deptType,
             },
-        }, false)
+        })
     },
 
     //列表数据(用户部门通过 depttype)
@@ -36,7 +36,7 @@ export default {
                 tenantId: store.tenantId,
                 deptType: 2,
             },
-        }, false)
+        })
     },
 
     //删除
@@ -47,7 +47,7 @@ export default {
             params: {
                 ids,
             },
-        }, false)
+        })
     },
     //提交
     async submit(form) {
@@ -55,7 +55,7 @@ export default {
             url: '/api/blade-system/dept/submit',
             method: 'post',
             data: form,
-        }, false)
+        })
     },
     //获取相关数据
     async getList(form) {
@@ -63,7 +63,7 @@ export default {
             url: '/api/blade-system/dept/list',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //非树形结构,查询所有部门
     async getlistAllByType(form) {
@@ -71,7 +71,7 @@ export default {
             url: '/api/blade-system/dept/listAllByType',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //获取相关数据
     async getMenuKeys(id) {
@@ -81,7 +81,7 @@ export default {
             params: {
                 roleIds: id,
             },
-        }, false)
+        })
     },
     //获取相关数据
     async setMenuGrant(id, ids = []) {
@@ -92,6 +92,6 @@ export default {
                 roleIds: [id],
                 menuHacIds: ids,
             },
-        }, false)
+        })
     },
 }

+ 5 - 7
src/api/modules/system/user.js

@@ -7,17 +7,15 @@ export default {
             url: '/api/blade-user/page',
             method: 'get',
             params: form,
-        }, false)
+        })
     },
     //删除
     async remove(ids) {
         return HcApi({
             url: '/api/blade-user/remove',
             method: 'post',
-            params: {
-                ids,
-            },
-        }, false)
+            params: { ids },
+        })
     },
     //修改
     async update(form) {
@@ -25,7 +23,7 @@ export default {
             url: '/api/blade-user/update',
             method: 'post',
             data: form,
-        }, false)
+        })
     },
     //提交
     async submit(form) {
@@ -33,6 +31,6 @@ export default {
             url: '/api/blade-user/submit',
             method: 'post',
             data: form,
-        }, false)
+        })
     },
 }

+ 184 - 175
src/views/attendance/business-trip/info.vue

@@ -8,16 +8,29 @@
         <div class="hac-card-project-box">
             <div class="left-box">
                 <el-scrollbar>
-                    <el-form ref="formRef" :model="formModel" :rules="formRules" label-width="auto" size="large" :disabled="dataType === 'view'">
+                    <el-form
+                        ref="formRef" :model="formModel" :rules="formRules" label-width="auto" size="large"
+                        :disabled="dataType === 'view'"
+                    >
                         <div class="project-form-top">
                             <el-form-item label="出差事由:" prop="tripDesc">
                                 <el-input v-model="formModel.tripDesc" />
                             </el-form-item>
-                            <HcCardItem v-for="(item, index) in formModel.journeyList" :title="`行程${Number(index + 1)}` " class="hc-card-item-box mt-2" ui="hac-bg-grey">
-                                <el-form :ref="(el) => setFormItemRefs(el, index)" :model="item" :rules="formItemRules" label-position="left" size="large">
+                            <HcCardItem
+                                v-for="(item, index) in formModel.journeyList"
+                                :title="`行程${Number(index + 1)}` " class="hc-card-item-box mt-2"
+                                ui="hac-bg-grey"
+                            >
+                                <el-form
+                                    :ref="(el) => setFormItemRefs(el, index)" :model="item" :rules="formItemRules"
+                                    label-position="left" size="large"
+                                >
                                     <el-form-item label="交通工具" prop="trafficType">
                                         <el-select v-model="item.trafficType" clearable block placeholder="请选择">
-                                            <el-option v-for="item in trafficTypeData" :label="item.dictName" :value="item.dictValue" />
+                                            <el-option
+                                                v-for="item in trafficTypeData" :label="item.dictName"
+                                                :value="item.dictValue"
+                                            />
                                         </el-select>
                                     </el-form-item>
                                     <el-form-item label="单程往返" prop="isSingletonType">
@@ -102,7 +115,10 @@
                             </el-form-item>
                             <el-form-item label="所属项目" prop="projectId">
                                 <el-select v-model="formModel.projectId" clearable block placeholder="请选择">
-                                    <el-option v-for="item in projectType" :label="item.projectName" :value="item.projectId" />
+                                    <el-option
+                                        v-for="item in projectType" :label="item.projectName"
+                                        :value="item.projectId"
+                                    />
                                 </el-select>
                             </el-form-item>
                             <el-form-item label="关联预算计划" prop="key">
@@ -148,10 +164,15 @@
             </div>
         </div>
         <!-- 关联预算计划 -->
-        <HcDialog v-model="budgetModal" is-table title="关联预算计划" widths="80%" save-text="保存" @close="budgetCloseClick" @save="budgetSaveClick">
+        <HcDialog
+            v-model="budgetModal" is-table title="关联预算计划" widths="80%" save-text="保存"
+            @close="budgetCloseClick" @save="budgetSaveClick"
+        >
             <HcTable :column="tableBudgetColumn" :datas="tableBudgetData" :loading="tableBudgetLoading">
                 <template #action="{ row }">
-                    <el-button v-if="row.isRelevance" size="small" type="danger" @click="rowDisassociate(row)">取消关联</el-button>
+                    <el-button v-if="row.isRelevance" size="small" type="danger" @click="rowDisassociate(row)">
+                        取消关联
+                    </el-button>
                     <el-button v-else size="small" type="primary" @click="rowRelevance(row)">关联</el-button>
                 </template>
             </HcTable>
@@ -163,11 +184,12 @@
 import { onActivated, ref, watch } from 'vue'
 import { useRoute, useRouter } from 'vue-router'
 import { getDictInfo, getProjectList, getuserList } from '~api/other'
-import { arrIndex, deepClone, formValidate, getArrValue } from 'js-fast-way'
+import { arrIndex, deepClone, formValidate, getArrValue, getObjValue } from 'js-fast-way'
 import { getApprovesList } from '~api/other'
 import businessApi from '~api/attendance/business-trip.js'
 import { getDiffDay } from '~uti/tools'
 import { useAppStore } from '~src/store'
+
 const store = useAppStore()
 
 const router = useRouter()
@@ -179,14 +201,15 @@ const dataId = ref(useRoutes?.query?.id ?? '')
 
 //缓存页面被激活时
 onActivated(() => {
-  dataType.value = useRoutes?.query?.type ?? 'view'
-  dataId.value = useRoutes?.query?.id ?? ''
-  getTrafficType()
-  getProjectData()
-  getDetailsData()
-  getUserDict()
-  getApprovesListData()
+    dataType.value = useRoutes?.query?.type ?? 'view'
+    dataId.value = useRoutes?.query?.id ?? ''
+    getTrafficType()
+    getProjectData()
+    getDetailsData()
+    getUserDict()
+    getApprovesListData()
 })
+const detailsData = ref({})
 const getDetailsData = async () => {
     if (dataType.value === 'view') {
         //预览详情
@@ -212,8 +235,6 @@ const getDetailsData = async () => {
         } else {
             newDetails = detailsObj
             newDetails.details = [detailsObj1]
-
-            window.$message?.error(msg)
         }
         detailsData.value = newDetails
     } else if (dataType.value === 'draft') {
@@ -246,14 +267,12 @@ const getDetailsData = async () => {
             console.log(formModel.value, 'formModel.value')
             formModel.value = newDetails
         } else {
-
             formModel.value = {
                 ...detailsObj,
                 details: [detailsObj1],
             }
         }
     } else {
-
         formModel.value = {
             ...detailsObj,
             details: [detailsObj1],
@@ -261,12 +280,12 @@ const getDetailsData = async () => {
     }
 }
 //获取间隔天数
-const getDiffDaydata = (item)=>{
-   let time = getDiffDay(item.startDate, item.endDate)
+const getDiffDaydata = (item) => {
+    let time = getDiffDay(item.startDate, item.endDate)
 
-   item.duration = time || 0
+    item.duration = time || 0
 }
-const getwarin = (item)=>{
+const getwarin = (item) => {
     if (item.endDate < item.startDate) {
         window.$message.warning('结束时间不能小于开始时间')
 
@@ -275,45 +294,45 @@ const getwarin = (item)=>{
 //行程表单
 const formItemRules = {
     isSingletonType: {
-      required: true,
-      trigger: 'blur',
-      message: '请选择单程往返',
-  },
-  trafficType: {
-      required: true,
-      trigger: 'blur',
-      message: '请选择交通工具',
-  },
-  startCity: {
-      required: true,
-      trigger: 'blur',
-      message: '请选择出发城市',
-  },
-  endCity: {
-      required: true,
-      trigger: 'blur',
-      message: '请选择目的城市',
-  },
-  startDate: {
-      required: true,
-      trigger: 'blur',
-      message: '请选择开始时间',
-  },
-  endDate: {
-      required: true,
-      trigger: 'blur',
-      message: '请选择结束时间',
-  },
-  duration: {
-      required: true,
-      trigger: 'blur',
-      message: '请输入时长',
-  },
-  durationAll:{
-    required: true,
-      trigger: 'blur',
-      message: '请输入天数',
-  },
+        required: true,
+        trigger: 'blur',
+        message: '请选择单程往返',
+    },
+    trafficType: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择交通工具',
+    },
+    startCity: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择出发城市',
+    },
+    endCity: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择目的城市',
+    },
+    startDate: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择开始时间',
+    },
+    endDate: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择结束时间',
+    },
+    duration: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入时长',
+    },
+    durationAll: {
+        required: true,
+        trigger: 'blur',
+        message: '请输入天数',
+    },
 }
 const formRefs = ref([])
 const setFormItemRefs = (el, index) => {
@@ -334,23 +353,21 @@ const getFormRef = async (index) => {
 }
 
 //增加行程addJourney
-const addJourney = (item, index)=>{
-   formModel.value?.journeyList.push({})
+const addJourney = (item, index) => {
+    formModel.value?.journeyList.push({})
 }
-const delJourney = (item, index)=>{
+const delJourney = (item, index) => {
     console.log(index, 'index')
     formModel?.value.journeyList.splice(index, 1)
 }
 //单程往返
 const wayType = ref([
-  { name: '单程', key: 1 },
-  { name: '往返', key: 2 },
+    { name: '单程', key: 1 },
+    { name: '往返', key: 2 },
 
 ])
 //交通工具
-const trafficTypeData = ref([
-
-])
+const trafficTypeData = ref([])
 //交通类型字典
 const getTrafficType = async () => {
     const { error, code, data } = await getDictInfo('traffic_type')
@@ -363,15 +380,13 @@ const getTrafficType = async () => {
 }
 //出发城市cityType
 const cityType = ref([
-  { name: '北京', key: '1' },
-  { name: '上海', key: '2' },
-  { name: '深圳', key: '3' },
-  { name: '成都', key: '4' },
+    { name: '北京', key: '1' },
+    { name: '上海', key: '2' },
+    { name: '深圳', key: '3' },
+    { name: '成都', key: '4' },
 ])
 //项目类型
-const projectType = ref([
-
-])
+const projectType = ref([])
 
 //获取项目数据
 
@@ -388,54 +403,53 @@ const getProjectData = async () => {
 
 const partneroptions = ref([])
 
-const getUserDict = async ()=>{
-    const { error, code, data } = await getuserList({ tenantId:store.tenantId })
+const getUserDict = async () => {
+    const { error, code, data } = await getuserList({ tenantId: store.tenantId })
     if (!error && code === 200) {
-      partneroptions.value = getArrValue(data)
+        partneroptions.value = getArrValue(data)
 
     } else {
-      partneroptions.value = []
+        partneroptions.value = []
 
     }
 }
 //合同类型
 const contractType = ref([
-  { name: '咨询服务+软件', key: '1' },
-  { name: '软件', key: '2' },
-  { name: '咨询服务', key: '3' },
-  { name: '后期服务+软件', key: '4' },
-  { name: '数字化扫描+软件', key: '5' },
+    { name: '咨询服务+软件', key: '1' },
+    { name: '软件', key: '2' },
+    { name: '咨询服务', key: '3' },
+    { name: '后期服务+软件', key: '4' },
+    { name: '数字化扫描+软件', key: '5' },
 ])
 
 
-
 //顶部表单数据
 const formRef = ref(null)
 const formModel = ref({
-    journeyList:[{}],
+    journeyList: [{}],
 })
 //深度监听
 watch(() => [
     formModel.value.journeyList,
 ], ([datas]) => {
-   let timeall = 0
-   formModel.value.journeyList.forEach((ele)=>{
-    timeall = ele.duration + timeall
-   })
-   formModel.value.durationAll = timeall//计算总时长
+    let timeall = 0
+    formModel.value.journeyList.forEach((ele) => {
+        timeall = ele.duration + timeall
+    })
+    formModel.value.durationAll = timeall//计算总时长
 }, { deep: true })
 const formRules = {
     tripDesc: {
-      required: true,
-      trigger: 'blur',
-      message: '请输入项出差事由',
-  },
+        required: true,
+        trigger: 'blur',
+        message: '请输入项出差事由',
+    },
 
-  projectId: {
-      required: true,
-      trigger: 'blur',
-      message: '请选择项目',
-  },
+    projectId: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择项目',
+    },
 
 
 }
@@ -444,8 +458,8 @@ const formRules = {
 //日期时间被选择
 const betweenTime = ref(null)
 const betweenTimeUpdate = ({ arr, query }) => {
-  betweenTime.value = arr
-  //formModel.value.betweenTime = query
+    betweenTime.value = arr
+    //formModel.value.betweenTime = query
 }
 
 
@@ -454,20 +468,19 @@ const timeLineData = ref([
     { title: '审批人', section: '' },
 
 
-
 ])
 const timeData = ref([])
-const getApprovesListData = async ()=>{
-    timeLineData.value = [ { title: '审批人', section: '' }]
+const getApprovesListData = async () => {
+    timeLineData.value = [{ title: '审批人', section: '' }]
     const { error, code, data } = await getApprovesList()
     if (!error && code === 200) {
-     timeData.value = data['出差管理流程']
-     let approveArr = timeData.value['审批人']
-     let copyArr = timeData.value['抄送人']
-    approveArr.forEach((ele)=>{
-        timeLineData.value.push({ title:'', section:ele })
-    })
-    timeLineData.value.push({ title:'抄送人', section:copyArr.join(',') })
+        timeData.value = data['出差管理流程']
+        let approveArr = timeData.value['审批人']
+        let copyArr = timeData.value['抄送人']
+        approveArr.forEach((ele) => {
+            timeLineData.value.push({ title: '', section: ele })
+        })
+        timeLineData.value.push({ title: '抄送人', section: copyArr.join(',') })
     } else {
         timeLineData.value = []
     }
@@ -497,7 +510,7 @@ const budgetSaveClick = () => {
     formModel.value.budgetPlanIds = ids
     window.$message.success('操作成功')
     budgetModal.value = false
-    console.log( formModel.value, ' formModel.value.value.details')
+    console.log(formModel.value, ' formModel.value.value.details')
 }
 
 //关联预算计划表格
@@ -549,7 +562,7 @@ const rowDisassociate = (row) => {
 
 //关联
 const rowRelevance = (row) => {
-    tableBudgetData.value.forEach((ele)=>{
+    tableBudgetData.value.forEach((ele) => {
         ele.isRelevance = false
         rowDisassociate(ele)
     })
@@ -581,7 +594,7 @@ const detailsObj = {
     projectId: '', // 所属项目
     submitStatus: null, // 审提交状态 1=暂存 2=提交审批
     journeyList: [detailsObj1],
-    budgetPlanIds:null, //预算计划ID
+    budgetPlanIds: null, //预算计划ID
 }
 const fellowTravelerUserIds = ref([])
 //处理表单数据
@@ -608,7 +621,7 @@ const getFormData = (submitStatus = 1) => {
     return newFormData
 }
 const saveLoading = ref(false)
-const saveClick = async ()=>{
+const saveClick = async () => {
     const res = await formValidate(formRef.value)
     if (!res) return false
     //处理明细表单效验
@@ -643,91 +656,87 @@ const tempLoading = ref(false)
 const tempDraftData = async () => {
     tempLoading.value = true
     const form = getFormData(1)
-    form.forEach((ele)=>{
+    form.forEach((ele) => {
         ele.fellowTravelerUserIds = fellowTravelerUserIds.value.join(',')
     })
     console.log(form, 'form')
-    const { error, code, msg } = await businessApi.submit(form)
-
-
+    const { error, code } = await businessApi.submit(form)
     //判断状态
     tempLoading.value = false
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
-    } else {
-        window.$message?.error(msg)
     }
 }
 </script>
 
 <style lang="scss" scoped>
 .hac-card-project-box {
-  position: relative;
-  height: 100%;
-  display: flex;
-  .left-box, .right-box {
-    //   flex: 1;
-      position: relative;
-      height: 100%;
-  }
-  .left-box {
-    flex: 2;
-      .project-form-top {
-          margin-bottom: 24px;
-          padding-right: 24px;
-      }
-      .project-form-bottom {
-          padding-top: 24px;
-          padding-right: 24px;
-          border-top: 1px solid #e9e9e9;
-      }
-  }
-  .right-box {
-    // flex: 1;
-      padding-left: 24px;
-    //   border-left: 1px solid #e9e9e9;
-
-      .record-flow-box {
+    position: relative;
+    height: 100%;
+    display: flex;
+    .left-box, .right-box {
+        //   flex: 1;
         position: relative;
         height: 100%;
-        width: 380px;
-        padding-left: 24px;
-        border-left: 1px solid #e9e9e9;
-        .title {
-            position: relative;
-            font-size: 20px;
-            color: #101010;
-            font-weight: bold;
-            margin-bottom: 20px;
+    }
+    .left-box {
+        flex: 2;
+        .project-form-top {
+            margin-bottom: 24px;
+            padding-right: 24px;
+        }
+        .project-form-bottom {
+            padding-top: 24px;
+            padding-right: 24px;
+            border-top: 1px solid #e9e9e9;
         }
-        .content {
+    }
+    .right-box {
+        // flex: 1;
+        padding-left: 24px;
+        //   border-left: 1px solid #e9e9e9;
+
+        .record-flow-box {
             position: relative;
-            height: calc(100% - 60px - 43px);
-            .timeline-title {
+            height: 100%;
+            width: 380px;
+            padding-left: 24px;
+            border-left: 1px solid #e9e9e9;
+            .title {
+                position: relative;
                 font-size: 20px;
                 color: #101010;
+                font-weight: bold;
+                margin-bottom: 20px;
             }
-            .timeline-section {
-                margin-top: 10px;
-                color: #1784FC;
-                font-size: 16px;
+            .content {
+                position: relative;
+                height: calc(100% - 60px - 43px);
+                .timeline-title {
+                    font-size: 20px;
+                    color: #101010;
+                }
+                .timeline-section {
+                    margin-top: 10px;
+                    color: #1784FC;
+                    font-size: 16px;
+                }
+            }
+            .action {
+                position: relative;
+                padding: 10px 0;
+                display: flex;
+                justify-content: space-around;
             }
-        }
-        .action {
-            position: relative;
-            padding: 10px 0;
-            display: flex;
-            justify-content: space-around;
         }
     }
-  }
 }
-.tip{
+.tip {
     color: gray;
 
     font-size: 14px;
 }
-.right-box-title{
+.right-box-title {
     font-size: 24px;
     font-weight: bold;
     margin-bottom: 40px;

+ 0 - 2
src/views/expense/finReimburse/index.vue

@@ -188,8 +188,6 @@ const rowCancel = async (row) => {
         window.$message?.success(msg)
         getTableData()
         getDraftNum()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 5
src/views/expense/finReimburse/record.vue

@@ -324,7 +324,6 @@ const getDetailsData = async () => {
             newDetails = detailsObj
             newDetails.details = [detailsObj1]
             totalFrMoney.value = 0
-            window.$message?.error(msg)
         }
         detailsData.value = newDetails
     } else if (dataType.value === 'draft') {
@@ -580,8 +579,6 @@ const tempDraftData = async () => {
     tempLoading.value = false
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -605,8 +602,6 @@ const submitFormData = async () => {
     if (!error && code === 200) {
         window.$message?.success('提交成功')
         router.push({ name: 'expense-finReimburse' })
-    } else {
-        window.$message?.error(msg)
     }
 }
 </script>

+ 0 - 4
src/views/expense/invoice/billing.vue

@@ -291,8 +291,6 @@ const tempDraftData = async () => {
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
         router.push({ name: 'expense-invoice' })
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -311,8 +309,6 @@ const submitFormData = async () => {
         if (!error && code === 200) {
             window.$message?.success('提交成功')
             router.push({ name: 'expense-invoice' })
-        } else {
-            window.$message?.error(msg)
         }
     }
 }

+ 0 - 1
src/views/expense/invoice/index.vue

@@ -188,7 +188,6 @@ const invoiceItemPdf = async (row) => {
         pdfModal.value = true
     } else {
         invoicePdfUrl.value = ''
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 2
src/views/expense/loanRequest/index.vue

@@ -144,8 +144,6 @@ const rowCancel = async (row) => {
     if (!error && code === 200) {
         window.$message?.success(msg)
         getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 4
src/views/expense/loanRequest/record.vue

@@ -265,8 +265,6 @@ const tempDraftData = async () => {
     tempLoading.value = false
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -284,8 +282,6 @@ const submitFormData = async () => {
         if (!error && code === 200) {
             window.$message?.success('提交成功')
             router.push({ name: 'expense-loanRequest' })
-        } else {
-            window.$message?.error(msg)
         }
     }
 }

+ 0 - 2
src/views/expense/outsourcing/index.vue

@@ -166,8 +166,6 @@ const rowCancel = async (row) => {
     if (!error && code === 200) {
         window.$message?.success(msg)
         getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 1 - 5
src/views/expense/outsourcing/record.vue

@@ -105,7 +105,7 @@ onActivated(() => {
 })
 
 const getApi = () => {
-  
+
     getOutsourcingType()
     getProjectData()
     getApprovesListData()
@@ -278,8 +278,6 @@ const tempDraftData = async () => {
     tempLoading.value = false
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -297,8 +295,6 @@ const submitFormData = async () => {
         if (!error && code === 200) {
             window.$message?.success('提交成功')
             router.push({ name: 'expense-outsourcing' })
-        } else {
-            window.$message?.error(msg)
         }
     }
 }

+ 0 - 2
src/views/expense/paymentRequest/index.vue

@@ -174,8 +174,6 @@ const rowCancel = async (row) => {
     if (!error && code === 200) {
         window.$message?.success(msg)
         getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 4
src/views/expense/paymentRequest/record.vue

@@ -436,8 +436,6 @@ const tempDraftData = async () => {
     tempLoading.value = false
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -455,8 +453,6 @@ const submitFormData = async () => {
         if (!error && code === 200) {
             window.$message?.success('提交成功')
             router.push({ name: 'expense-paymentRequest' })
-        } else {
-            window.$message?.error(msg)
         }
     }
 }

+ 0 - 2
src/views/expense/purchaseRequest/index.vue

@@ -176,8 +176,6 @@ const rowCancel = async (row) => {
     if (!error && code === 200) {
         window.$message?.success(msg)
         getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 4
src/views/expense/purchaseRequest/record.vue

@@ -422,8 +422,6 @@ const tempDraftData = async () => {
     tempLoading.value = false
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -450,8 +448,6 @@ const submitFormData = async () => {
     if (!error && code === 200) {
         window.$message?.success('提交成功')
         router.push({ name: 'expense-purchaseRequest' })
-    } else {
-        window.$message?.error(msg)
     }
 }
 </script>

+ 0 - 2
src/views/expense/vehicleRequest/index.vue

@@ -145,8 +145,6 @@ const rowCancel = async (row) => {
     if (!error && code === 200) {
         window.$message?.success(msg)
         getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 4
src/views/expense/vehicleRequest/record.vue

@@ -335,8 +335,6 @@ const tempDraftData = async () => {
     tempLoading.value = false
     if (!error && code === 200) {
         window.$message?.success('暂存成功')
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -363,8 +361,6 @@ const submitFormData = async () => {
     if (!error && code === 200) {
         window.$message?.success('提交成功')
         router.push({ name: 'expense-vehicleRequest' })
-    } else {
-        window.$message?.error(msg)
     }
 }
 </script>

+ 0 - 2
src/views/people/archive/info.vue

@@ -316,8 +316,6 @@ const formSaveClick = async () => {
     if (!error && code === 200) {
         window.$message?.success('提交保存成功')
         router.back()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 2
src/views/people/contract/info.vue

@@ -128,8 +128,6 @@ const formSaveClick = async () => {
     if (!error && code === 200) {
         window.$message?.success('提交成功')
         router.push({ name: 'people-contract' }).then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 </script>

+ 0 - 2
src/views/people/dimission.vue

@@ -196,8 +196,6 @@ const formModalSave = async () => {
         window.$message?.success('提交成功')
         formModalClose()
         getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 2
src/views/people/entry.vue

@@ -189,8 +189,6 @@ const formModalSave = async () => {
         window.$message?.success(msg)
         formModalClose()
         getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 17 - 10
src/views/system/user.vue

@@ -31,9 +31,8 @@
                 <span>{{ row.status === 1 ? '启用' : '停用' }}</span>
             </template>
             <template #action="{ row }">
-                <el-button v-auth-btn="['system-user-edit-btn']" size="small" type="primary" @click="rowEidtClick(row)">
-                    编辑
-                </el-button>
+                <el-button v-auth-btn="['system-user-edit-btn']" size="small" type="primary" @click="rowEidtClick(row)">编辑</el-button>
+                <el-button v-auth-btn="['system-user-del-btn']" size="small" type="danger" @click="rowDelClick(row)">注销</el-button>
             </template>
         </HcTable>
         <template #action>
@@ -203,9 +202,9 @@ const tableColumn = [
     { key: 'plaintextPassword', name: '密码' },
     { key: 'deptName', name: '所属部门' },
     { key: 'postName', name: '岗位' },
-    { key: 'createTime', name: '创建日期' },
-    { key: 'status', name: '启用状态' },
-    { key: 'action', name: '操作', width: 100 },
+    { key: 'createTime', name: '创建日期', width: 170, align: 'center' },
+    { key: 'status', name: '启用状态', width: 80, align: 'center' },
+    { key: 'action', name: '操作', width: 140, align: 'center' },
 ]
 const tableData = ref([])
 
@@ -493,8 +492,6 @@ const formSubmitApi = async (form) => {
         window.$message?.success('提交成功')
         getTableData().then()
         formModalClose()
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -509,8 +506,6 @@ const formUpdateApi = async (form) => {
         window.$message?.success('提交成功')
         getTableData().then()
         formModalClose()
-    } else {
-        window.$message?.error(msg)
     }
 }
 
@@ -532,6 +527,18 @@ const delClick = () => {
         }
     })
 }
+
+//单个删除
+const rowDelClick = ({ id }) => {
+    HcDelMsg(async (resolve) => {
+        const { error, code, msg } = await mainApi.remove(id)
+        resolve()
+        if (!error && code === 200) {
+            window?.$message?.success(msg)
+            getTableData().then()
+        }
+    })
+}
 </script>
 
 <style lang="scss">

+ 40 - 35
src/views/task/logs/components/logs-content.vue

@@ -16,7 +16,10 @@
                 风险预警
             </div>
             <div class="content">
-                <el-input v-model="logData.riskWarning" :autosize="{ minRows: 3, maxRows: 5 }" :readonly="!isEditState" :placeholder="isEditState ? '请输入文字说明' : '无'" type="textarea" />
+                <el-input
+                    v-model="logData.riskWarning" :autosize="{ minRows: 3, maxRows: 5 }" :readonly="!isEditState"
+                    :placeholder="isEditState ? '请输入文字说明' : '无'" type="textarea"
+                />
             </div>
         </div>
 
@@ -28,7 +31,10 @@
                 警告:有{{ undefinedNum }}条任务已超期逾期未完成,请及时完成!
             </div>
             <div class="content">
-                <HcTable :is-index="false" :column="taskColumn" :datas="logData?.taskList ?? []" :row-style="tableRowStyle" />
+                <HcTable
+                    :is-index="false" :column="taskColumn" :datas="logData?.taskList ?? []"
+                    :row-style="tableRowStyle"
+                />
             </div>
         </div>
 
@@ -47,7 +53,11 @@
                     <template #action="{ row }">
                         <!-- <el-button size="small" type="primary" @click="statusClick(row)">{{row.statusName === '未完成' ? '变更已完成': '已完成' }}</el-button> -->
                         <!-- <el-button size="small" type="primary" :disabled="row.status === 1 || row.status === 2" @click="statusClick(row)"> -->
-                        <el-button size="small" type="primary" :disabled="row.statusName === '已完成' || row.statusName === '待审批' || row.statusName === '已审批' || row.status === 1 || row.status === 2" @click="statusClick(row)">
+                        <el-button
+                            size="small" type="primary"
+                            :disabled="row.statusName === '已完成' || row.statusName === '待审批' || row.statusName === '已审批' || row.status === 1 || row.status === 2"
+                            @click="statusClick(row)"
+                        >
                             变更已完成
                         </el-button>
                     </template>
@@ -60,12 +70,18 @@
                 工作内容描述
             </div>
             <div class="content">
-                <el-input v-model="logData.workDesc" :autosize="{ minRows: 5, maxRows: 8 }" :readonly="!isEditState" :placeholder="isEditState ? '请输入工作内容描述' : '无'" type="textarea" />
+                <el-input
+                    v-model="logData.workDesc" :autosize="{ minRows: 5, maxRows: 8 }" :readonly="!isEditState"
+                    :placeholder="isEditState ? '请输入工作内容描述' : '无'" type="textarea"
+                />
             </div>
         </div>
 
         <HcListItem v-if="logData?.expenseReimbursementAmount > 0" title="差旅报销:" is-center class="mt-8">
-            <el-input v-model="logData.expenseReimbursementAmount" class="w-72" :readonly="!isEditState" placeholder="报销金额(元)" />
+            <el-input
+                v-model="logData.expenseReimbursementAmount" class="w-72" :readonly="!isEditState"
+                placeholder="报销金额(元)"
+            />
         </HcListItem>
     </HcCardItem>
 </template>
@@ -86,16 +102,16 @@ const props = defineProps({
         type: Boolean,
         default: true,
     },
-    isShowmyEdit:{
+    isShowmyEdit: {
         type: Boolean,
         default: false,
     },
-    undefinedNum:{
+    undefinedNum: {
         type: Number,
         default: 0,
     },
-    taskList:{
-        type:Array,
+    taskList: {
+        type: Array,
         default: () => ([]),
     },
 })
@@ -164,39 +180,30 @@ const tableColumn = [
 ]
 const tableData = ref([])
 const getTableData = async () => {
-  console.log(ismyEdit.value, '是否修改自己的日志')
-
-        const { error, code, data, msg } = await logsApi.getLogTaskList()
-        //判断状态
-        if (!error && code === 200) {
-            tableData.value = getArrValue(data)
-        } else {
-            tableData.value = []
-            window.$message?.error(msg)
+    const { data } = await logsApi.getLogTaskList()
+    //判断状态
+    tableData.value = getArrValue(data)
+    let arr = []
+    // eslint-disable-next-line array-callback-return
+    arr = tableData.value.filter((ele) => {
+        if (ele?.isOverdue === 1) {
+            return ele
         }
-        let arr = []
-        arr = tableData.value.filter((ele)=>{
+    })
+    undefinedNum.value = arr.length
+    if (ismyEdit.value) {
+        tableData.value = getArrValue(taskList.value)
+        // eslint-disable-next-line array-callback-return
+        arr = tableData.value.filter((ele) => {
             if (ele?.isOverdue === 1) {
                 return ele
             }
         })
         undefinedNum.value = arr.length
-        if (ismyEdit.value) {
-            tableData.value = getArrValue( taskList.value)
-            arr = tableData.value.filter((ele)=>{
-                if (ele?.isOverdue === 1) {
-                    return ele
-                }
-            })
-            undefinedNum.value = arr.length
-        }
-    
-
-
+    }
 }
 
 
-
 //变更状态
 const statusClick = async (row) => {
     const { error, code, msg } = await logsApi.setLogTaskComplete({
@@ -209,8 +216,6 @@ const statusClick = async (row) => {
         row.status = 1
         row.statusName = '待审批'
         // getTableData().then()
-    } else {
-        window.$message?.error(msg)
     }
 }
 

+ 0 - 4
src/views/task/logs/index.vue

@@ -195,7 +195,6 @@ const getLogList = async () => {
     } else {
         userList.value = {}
         userItemId.value = {}
-        window.$message?.error(msg)
     }
 }
 
@@ -235,7 +234,6 @@ const getLogDetail = async () => {
             }
         } else {
             logDetail.value = {}
-            window.$message?.error(msg)
         }
         //计算未完成数量
         console.log(logDetail.value.taskList, 'taskList')
@@ -325,8 +323,6 @@ const submitLogsClick = async () => {
         isEditState.value = false
         window.$message?.success(msg)
         getLogList()
-    } else {
-        window.$message?.error(msg)
     }
 }
 </script>