فهرست منبع

Merge remote-tracking branch 'origin/master'

ljy121 1 سال پیش
والد
کامیت
0700d1068e

+ 1 - 0
client/src/views/OaSystem/components/DeptTree/index.vue

@@ -3,6 +3,7 @@
     style="width: 100%"
     v-model="receiveUserId"
     :data="allUserList"
+    :default-expand-all="true"
     :filter-node-method="filterNodeMethod"
     placeholder=" "
     @node-click="nodeClickHandler"

+ 2 - 3
client/src/views/OaSystem/financialManagement/kpglPage/deptIndex.vue

@@ -136,8 +136,7 @@
         <el-table-column
           align="center"
           prop="invoiceDate"
-          :show-overflow-tooltip="true"
-          :formatter="dateFormatter"
+          :formatter="dateFormatter2"
           label="开票日期"
         />
         <el-table-column
@@ -223,7 +222,7 @@
 
 <script setup lang="ts">
 import * as kpglApi from '@/api/oa/kpgl'
-import { dateFormatter } from '@/utils/formatTime'
+import { dateFormatter2 } from '@/utils/formatTime'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 import TableLayout from '../../oaViews/layout/TableLayout.vue'
 

+ 10 - 41
client/src/views/OaSystem/financialManagement/kpglPage/index.vue

@@ -20,19 +20,11 @@
       </div>
       <div class="form">
         <span class="formSpan">区域经理:</span>
-        <el-input
-          v-model="queryParams.commonCostNo"
-          placeholder="请输入区域经理"
-          style="width: 210px"
-        />
+        <UserOrgTree v-model="queryParams['userId']" />
       </div>
       <div class="form">
         <span class="formSpan">责任部门:</span>
-        <el-input
-          v-model="queryParams.commonCostNo"
-          placeholder="请输入责任部门"
-          style="width: 210px"
-        />
+        <DeptTree v-model="queryParams['deptId']" />
       </div>
       <div class="form">
         <span class="formSpan">项目名称:</span>
@@ -47,34 +39,10 @@
         />
       </div>
 
-      <div class="form">
-        <span class="formSpan">未回款金额:</span>
-        <el-input
-          v-model="queryParams.totalAmount"
-          placeholder="请输入报销总金额"
-          style="width: 160px"
-        />
-      </div>
       <div class="form">
         <span class="formSpan">开票状态:</span>
         <el-input v-model="queryParams.status" style="width: 160px" />
       </div>
-      <div class="form">
-        <span class="formSpan">开票金额:</span>
-        <el-input
-          v-model="queryParams.totalAmount"
-          placeholder="请输入开票金额"
-          style="width: 160px"
-        />
-      </div>
-      <div class="form">
-        <span class="formSpan">开票单位:</span>
-        <el-input
-          v-model="queryParams.totalAmount"
-          placeholder="请输入开票金额"
-          style="width: 160px"
-        />
-      </div>
 
       <div class="form" style="width: 380px">
         <span class="formSpan">开票日期:</span>
@@ -98,10 +66,10 @@
           end-placeholder="结束日期"
         />
       </div>
-      <div class="form" style="margin-right: 80px">
-        <el-radio-group v-model="queryParams.isSign">
-          <el-radio label="1">未回款</el-radio>
-        </el-radio-group>
+
+      <div class="form">
+        <span class="formSpan">是否回款:</span>
+        <el-input v-model="queryParams.status" style="width: 160px" />
       </div>
       <div class="from">
         <div class="btnBox">
@@ -130,8 +98,7 @@
         <el-table-column
           align="center"
           prop="invoiceDate"
-          :show-overflow-tooltip="true"
-          :formatter="dateFormatter"
+          :formatter="dateFormatter2"
           label="开票日期"
         />
         <el-table-column
@@ -208,8 +175,10 @@
 import * as kpglApi from '@/api/oa/kpgl'
 import { getFlowUrl } from '@/api/oa/index'
 import { openFlow } from '@/utils/flow'
-import { dateFormatter } from '@/utils/formatTime'
+import { dateFormatter2 } from '@/utils/formatTime'
 import TableLayout from '../../oaViews/layout/TableLayout.vue'
+import UserOrgTree from '@/views/OaSystem/components/UserOrgTree/index.vue'
+import DeptTree from '@/views/OaSystem/components/DeptTree/index.vue'
 
 defineOptions({ name: 'CommonCost' })
 const xmztMap: any = {

+ 2 - 4
client/src/views/OaSystem/financialManagement/kpglPage/myIndex.vue

@@ -135,8 +135,7 @@
         <el-table-column
           align="center"
           prop="invoiceDate"
-          show-overflow-tooltip="true"
-          :formatter="dateFormatter"
+          :formatter="dateFormatter2"
           label="开票日期"
         />
         <el-table-column
@@ -207,9 +206,8 @@
 
 <script setup lang="ts">
 import * as kpglApi from '@/api/oa/kpgl'
-import { dateFormatter } from '@/utils/formatTime'
+import { dateFormatter2 } from '@/utils/formatTime'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
-import { UserFilled } from 'node_modules/_@element-plus_icons-vue@2.3.1@@element-plus/icons-vue/dist/types'
 import TableLayout from '../../oaViews/layout/TableLayout.vue'
 
 defineOptions({ name: 'CommonCost' })

+ 5 - 5
client/src/views/OaSystem/home/components/CardItemThree.vue

@@ -29,10 +29,10 @@ interface SignInterface {
   unit: string
 }
 const signs = ref<SignInterface[]>([
-  { icon: '签', title: '2023年度签约', value: 0, unit: '万元' },
-  { icon: '回', title: '2023年度回款', value: 0, unit: '万元' },
-  { icon: '净', title: '2023年度净合同额', value: 0, unit: '万元' },
-  { icon: '拓', title: '2023年度新开拓', value: 0, unit: '万元' },
+  { icon: '签', title: '2024年度签约', value: 0, unit: '万元' },
+  { icon: '回', title: '2024年度回款', value: 0, unit: '万元' },
+  { icon: '净', title: '2024年度净合同额', value: 0, unit: '万元' },
+  { icon: '拓', title: '2024年度新开拓', value: 0, unit: '万元' },
   { icon: '分包', title: '待支付', value: 0, unit: '万元' },
   { icon: '外包', title: '待支付', value: 0, unit: '万元' }
 ])
@@ -50,7 +50,7 @@ const queryContractInfo = async (): Promise<void> => {
     {
       url: urlApi,
       data: {
-        year: 2023
+        year: 2024
       }
     },
     'business'

+ 2 - 3
client/src/views/OaSystem/home/components/CardItemTwo.vue

@@ -30,13 +30,12 @@ const functions = ref<
     key: string
   }[]
 >([
-  { title: '驾驶舱', icon: 'jsc-icon', key: '' },
   { title: '差旅报销', icon: 'clvbx-icon', key: '' },
   { title: '普通报销', icon: 'ptbx-icon', key: '' },
   { title: '用款申请', icon: 'yksq-icon', key: '' },
   { title: '合同签订', icon: 'htqd-icon', key: '' },
-  { title: '开票申请', icon: 'kpsq-icon', key: '' },
-  { title: '添加功能', icon: 'tjgn-icon', key: 'addFunction' }
+  { title: '开票申请', icon: 'kpsq-icon', key: '' }
+  // { title: '添加功能', icon: 'tjgn-icon', key: 'addFunction' }
 ])
 const $emit = defineEmits<{
   (e: 'click', val: any): void

+ 2 - 2
client/src/views/OaSystem/marketCenter/khglPage/components/CustomerTable.vue

@@ -132,8 +132,8 @@ const newCustomer = (isAdd: boolean, row?) => {
   const params = !isAdd
     ? `?id=${row.id}&name=${row.customerName}&edit=true`
     : row
-      ? `?id=${row.id}&name=${row.customerName}`
-      : ''
+    ? `?id=${row.id}&name=${row.customerName}`
+    : ''
   push(`/newCustomer${params}`)
 }
 // 查看客户详情

+ 1 - 0
client_h5/.env.dev

@@ -0,0 +1 @@
+VITE_BASE_URL='http://10.10.10.7:48080/'

+ 1 - 0
client_h5/.env.pro

@@ -0,0 +1 @@
+VITE_BASE_URL='http://10.10.10.7:48080/'

+ 9 - 2
client_h5/package.json

@@ -4,14 +4,21 @@
   "version": "0.0.0",
   "type": "module",
   "scripts": {
-    "dev": "vite",
-    "build": "vue-tsc && vite build",
+    "start": "npm run dev",
+    "local": "vite --mode local",
+    "dev": "vite --mode dev",
+    "pro": "vite --mode pro",
+    "build": "npm run build:dev",
+    "build:local": "vue-tsc && vite build --mode local",
+    "build:dev": "vue-tsc && vite build --mode dev",
+    "build:prod": "vue-tsc && vite build --mode pro",
     "preview": "vite preview"
   },
   "dependencies": {
     "axios": "^1.6.8",
     "dingtalk-jsapi": "^3.0.33",
     "pinia": "^2.1.7",
+    "vant": "^4.8.11",
     "vue": "^3.4.19",
     "vue-router": "^4.2.5"
   },

+ 1 - 1
client_h5/src/App.vue

@@ -17,7 +17,7 @@ const initUserInfoHandler = async () => {
             }
             userStore.setUser(userInfo)
             localStorage.setItem("ACCESS_TOKEN", userIdResult?.data.accessToken)
-          localStorage.setItem("_userInfo", JSON.stringify(userInfo))
+            localStorage.setItem("_userInfo", JSON.stringify(userInfo))
             console.log(localStorage.getItem("ACCESS_TOKEN"))
         }
     }

+ 5 - 0
client_h5/src/main.ts

@@ -1,4 +1,8 @@
 import { createApp } from 'vue'
+// 1. 引入你需要的组件
+import vant from 'vant';
+// 2. 引入组件样式
+import 'vant/lib/index.css';
 import { setupStore } from '@/stores'
 import setupRouter from './router'
 import './style.css'
@@ -7,6 +11,7 @@ import App from './App.vue'
 
 const setupAll = () => {
   const app = createApp(App)
+  app.use(vant)
   setupStore(app)
   setupRouter(app)
   return app;

+ 1 - 0
client_h5/src/pages/home/index.vue

@@ -1,6 +1,7 @@
 <script setup lang="ts">
 import { useUserStoreWithOut } from "@/stores/modules/user";
 import { getAssetsURI } from "@/utils/common";
+import { ref } from "vue";
 
 const userStore = useUserStoreWithOut();
 

+ 0 - 0
client_h5/src/pages/leave/index.scss


+ 32 - 0
client_h5/src/pages/leave/index.vue

@@ -0,0 +1,32 @@
+<script setup lang="ts">
+import { useRoute } from 'vue-router';
+import { FlowDTO, getNextActivity } from '@/service/flow';
+
+
+const route = useRoute();
+const { activityInstanceId, participantId } = route.query as {
+  activityInstanceId: string;
+  participantId: string;
+};
+const activityData: FlowDTO = {
+  activityInstanceId,
+  participantId,
+  flowOpinion: ''
+}
+const submitNextActivity = async () => {
+  const result = await getNextActivity(activityData)
+  // getNextActivity(activityData).then(result => {
+  //   console.log(result)
+  // }).catch((err) => {
+  //   console.error(err)
+  // })
+}
+</script>
+
+<template>
+  <div class="Leave_box"></div>
+</template>
+
+<style lang="scss" scoped>
+@import "./index.scss";
+</style>

+ 4 - 4
client_h5/src/router/routes.ts

@@ -14,12 +14,12 @@ const routes: RouteRecordRaw[] = [
         component: () => import("@/pages/home/index.vue"),
       },
       {
-        path: "daily",
-        name: "Daily",
+        path: "leave",
+        name: "Leave",
         meta: {
-          title: "日报填写",
+          title: "请假",
         },
-        component: () => import("@/pages/logs/Daily/index.vue"),
+        component: () => import("@/pages/leave/index.vue"),
       },
     ] as RouteRecordRaw[],
   },

+ 14 - 0
client_h5/src/service/flow.ts

@@ -0,0 +1,14 @@
+import reqest from "@/utils/request";
+
+export interface FlowDTO {
+    activityInstanceId: string
+    participantId: string
+    flowOpinion: string
+}
+
+/**
+ * 获取下一步活动
+ * **/
+export const getNextActivity = async (data: FlowDTO) => {
+  return await reqest.post(`/workflow/Transfer/getNextActivity`, data);
+}

+ 1 - 1
client_h5/src/utils/request.ts

@@ -2,7 +2,7 @@ import axios from 'axios';
  
  
 const defaultConfig = {
-  baseURL:'http://10.10.10.7:48080/'
+  baseURL: import.meta.env.VITE_BASE_URL
 };
  
 const instance = axios.create(Object.assign({}, defaultConfig));

+ 12 - 10
zjugis-business/src/main/resources/templates/Leave/js/all.mobile.min.js

@@ -5416,11 +5416,11 @@ window.pinyin_dict_notone = {
     function date(selector) {
         return dateComp.call(this, selector)
     }
-    date.prototype.init = function() {
-        dateCompInit.call(this, {
+    date.prototype.init = function(option) {
+        dateCompInit.call(this, $.extend(true, {
             type: "date",
             format: "yyyy-MM-dd"
-        })
+        }, option))
     }
     ;
     z.ui.datetime = function(selector) {
@@ -5440,11 +5440,11 @@ window.pinyin_dict_notone = {
     function datetime(selector) {
         return dateComp.call(this, selector)
     }
-    datetime.prototype.init = function() {
-        dateCompInit.call(this, {
+    datetime.prototype.init = function(option) {
+        dateCompInit.call(this, $.extend(true, {
             type: "datetime",
             format: "yyyy-MM-dd HH:mm:ss"
-        })
+        }, option));
     }
     ;
     z.ui.time = function(selector) {
@@ -5465,10 +5465,10 @@ window.pinyin_dict_notone = {
         return dateComp.call(this, selector)
     }
     time.prototype.init = function(option) {
-        dateCompInit.call(this, {
+        dateCompInit.call(this, $.extend(true, {
             type: "time",
             format: "HH:mm:ss"
-        })
+        }, option))
     }
     ;
     function dateComp(selector) {
@@ -5515,9 +5515,11 @@ window.pinyin_dict_notone = {
                             }
                         }
                         _this.elem.value = result.value;
-                        opt.done(result.value)
+                        opt.onSuccess && opt.onSuccess(result.value)
                     },
-                    onFail: function(err) {}
+                    onFail: function(err) {
+                        opt.onFail && opt.onFail(err)
+                    }
                 })
             });
             return

+ 8 - 1
zjugis-business/src/main/resources/templates/Leave/js/mobileIndex.js

@@ -30,7 +30,14 @@
             var uuid = new Date().getTime();   //如果是显示:uuid用数据id
             var rowDom = generateCardHtml({}, index, uuid);
             $(".table_box_list").append(rowDom);
-            z.ui.datetime("[name='createReqVO$startTime_"+uuid+"']").init();
+            z.ui.datetime("[name='createReqVO$startTime_"+uuid+"']").init({
+                onSuccess: function(val){
+
+                },
+                onFail: function(err){
+
+                }
+            });
             $(".card_del_"+uuid).on("touchstart", function(){
                 rowDom.remove();
             })

+ 14 - 13
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/report/ReportServiceImpl.java

@@ -272,19 +272,21 @@ public class ReportServiceImpl implements ReportService {
     public PageResult<ReportStatisticRespVO> getReportStatistics(ReportStatisticReqDTO reportStatisticReqDTO) {
         Short year = reportStatisticReqDTO.getYear();
         Short month = reportStatisticReqDTO.getMonth();
-
+        List<AdminUserRespDTO> records = new ArrayList<>();
         //部门id及子部门id
         Set<String> deptIds = null;
         if (StringUtils.isNotBlank(reportStatisticReqDTO.getDeptId())) {
             deptIds = convertSet(deptApi.getChildDeptList(reportStatisticReqDTO.getDeptId()).getCheckedData(), DeptRespDTO::getId);
             //添加自身部门
             deptIds.add(reportStatisticReqDTO.getDeptId());
+            records = adminUserApi.getUserListByDeptIds(deptIds).getData();
+        }else{
+            records = adminUserApi.getUserList().getData();
         }
 
-        //获取员工列表
-        Page<StaffRecordSDO> staffPage = recordsService.getIncumbentStaffPage(reportStatisticReqDTO.getPageNo(), reportStatisticReqDTO.getPageSize(), deptIds, reportStatisticReqDTO.getUserId());
-        //获取人员Map
-        Map<String, AdminUserRespDTO> userMap = adminUserApi.getUserMap();
+        if(StrUtil.isNotBlank(reportStatisticReqDTO.getUserId())){
+            records = records.stream().filter(user -> reportStatisticReqDTO.getUserId().equals(user.getId())).collect(Collectors.toList());
+        }
         //获取工作报告
         Map<String, List<ReportDO>> staffReportMap = this.getReport(reportStatisticReqDTO.getReportType(), year, month, deptIds, reportStatisticReqDTO.getUserId());
 
@@ -296,21 +298,20 @@ public class ReportServiceImpl implements ReportService {
             shouldFillCount = workdayService.getMonthWorkWeekNum(year, month);
         }
 
-        List<StaffRecordSDO> records = staffPage.getRecords();
         List<ReportStatisticRespVO> respList = new ArrayList<>();
-        for (StaffRecordSDO staff : records) {
+        for (AdminUserRespDTO staff : records) {
             ReportStatisticRespVO statisticRespVO = new ReportStatisticRespVO();
             statisticRespVO.setReportYear(year);
             statisticRespVO.setReportMonth(month);
 
-            statisticRespVO.setUserId(staff.getUserId());
-            statisticRespVO.setNickName(userMap.get(staff.getUserId()) == null ? null : userMap.get(staff.getUserId()).getNickname());
-            statisticRespVO.setDeptId(userMap.get(staff.getUserId()) == null ? null : userMap.get(staff.getUserId()).getDeptId());
-            statisticRespVO.setDeptName(userMap.get(staff.getUserId()) == null ? null : userMap.get(staff.getUserId()).getDeptName());
+            statisticRespVO.setUserId(staff.getId());
+            statisticRespVO.setNickName(staff.getNickname());
+            statisticRespVO.setDeptId(staff.getDeptId());
+            statisticRespVO.setDeptName(staff.getDeptName());
 
             statisticRespVO.setReportType(reportStatisticReqDTO.getReportType());
             statisticRespVO.setShouldFilledCount(shouldFillCount);
-            List<ReportDO> staffReportList = staffReportMap.get(staff.getUserId());
+            List<ReportDO> staffReportList = staffReportMap.get(staff.getId());
             statisticRespVO.setFilledCount(staffReportList == null ? 0 : staffReportList.size());
             statisticRespVO.setNotFilledCount(shouldFillCount - statisticRespVO.getFilledCount());
             statisticRespVO.setFillRate(statisticRespVO.getFilledCount() * 1.0 / shouldFillCount);
@@ -320,7 +321,7 @@ public class ReportServiceImpl implements ReportService {
         respList = respList.stream()
                 .sorted(Comparator.comparing(c -> PinyinUtil.toFirstLetter(c.getDeptName()))).collect(Collectors.toList());
         PageResult<ReportStatisticRespVO> pages = PageUtil.getPages(reportStatisticReqDTO.getPageNo(), reportStatisticReqDTO.getPageSize(), respList);
-        pages.setTotal(staffPage.getTotal());
+        pages.setTotal(Long.valueOf(records.size()));
         return pages;
     }
 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
zjugis-workflow/src/main/resources/static/all.mobile.min.js


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است