Forráskód Böngészése

外链页面初步实现

songxy 1 éve
szülő
commit
831ad85be2

+ 1 - 1
client/.env.dev

@@ -4,7 +4,7 @@ NODE_ENV=development
 VITE_DEV=false
 
 # 请求路径
-VITE_BASE_URL='http://localhost:48080'
+VITE_BASE_URL='http://10.10.10.7:48080'
 
 # 上传路径
 VITE_UPLOAD_URL='http://10.10.10.7:48080/admin-api/infra/file/upload'

+ 8 - 0
client/src/router/modules/remaining.ts

@@ -127,6 +127,14 @@ const remainingRouter: AppRouteRecordRaw[] = [
         meta: {
           title: '项目详细'
         }
+      },
+      {
+        path: 'processCenter',
+        component: () => import('@/views/OaSystem/platformManagement/processCenter/index.vue'),
+        name: 'processCenter',
+        meta: {
+          title: '流程模版'
+        }
       }
     ]
   },

+ 8 - 2
client/src/utils/business.ts

@@ -5,7 +5,7 @@ export interface IndustryInterface {
   label: string
   value: number
 }
-export const industryList = ref<IndustryInterface[]>([
+const industrySource: Array<IndustryInterface> = [
   {
     label: '政府行业',
     value: 3
@@ -22,4 +22,10 @@ export const industryList = ref<IndustryInterface[]>([
     label: '其他',
     value: 4
   }
-])
+]
+export const industryList = ref<IndustryInterface[]>(industrySource)
+
+const industryAllSource: Array<IndustryInterface> = [{ label: '全部', value: 0 }].concat(
+  industrySource
+)
+export const industryListAll = ref<IndustryInterface[]>(industryAllSource)

+ 16 - 0
client/src/views/OaSystem/oaLayout/menusActive.vue

@@ -32,6 +32,22 @@ const getAssetsFile = (url: string) => {
   return new URL(`../../../assets/imgs/menus/${url}`, import.meta.url).href
 }
 const menuClick = (item: any) => {
+  const path = item['path']
+  if (
+    path &&
+    (path.toLocaleLowerCase().startsWith('http') || path.toLocaleLowerCase().startsWith('https'))
+  ) {
+    push({
+      name: 'processCenter',
+      state: {
+        path
+      }
+    })
+    const routeMap = {}
+    routeMap['processCenter'] = path
+    localStorage.setItem('_routeMap', JSON.stringify(routeMap))
+    return
+  }
   push('/oaSystem/' + pushName.value + '/' + item.path)
 }
 const initAbsolute = () => {

+ 30 - 0
client/src/views/OaSystem/platformManagement/processCenter/index.vue

@@ -0,0 +1,30 @@
+<template>
+  <div class="purchaseContractBox">
+    <iframe v-if="iframeSrc" :src="iframeSrc"></iframe>
+  </div>
+</template>
+
+<script setup lang="ts">
+const iframeSrc = ref<string>('')
+const _routeMap = JSON.parse(localStorage.getItem('_routeMap'))
+if (_routeMap && _routeMap['processCenter']) {
+  iframeSrc.value = _routeMap['processCenter']
+}
+</script>
+
+<style lang="scss" scoped>
+.purchaseContractBox {
+  margin-top: 20px;
+  height: calc(100% - 20px);
+  background-color: #fff;
+  border-radius: 20px;
+  padding: 20px;
+  position: relative;
+  text-align: center;
+  > iframe {
+    width: 100%;
+    height: 100%;
+    border: 0px;
+  }
+}
+</style>

+ 7 - 4
client/src/views/OaSystem/projectCenter/projectBook/projectBook.vue

@@ -34,7 +34,7 @@
           size="large"
         >
           <el-option
-            v-for="item in industryList"
+            v-for="item in industryListAll"
             :key="item.value"
             :label="item.label"
             :value="item.value"
@@ -149,7 +149,7 @@ import moment from 'moment'
 import { useRouter } from 'vue-router'
 import request from '@/config/axios'
 import { getAssetURL } from '@/utils/auth'
-import { industryList } from '@/utils/business'
+import { industryListAll } from '@/utils/business'
 
 defineOptions({ name: 'ProjectBook' })
 const xmztMap: any = { 0: '立项申请中', 1: '进行中', 2: '已结项', 3: '中止' }
@@ -167,7 +167,7 @@ const queryParams = reactive<{
   pageSize: number
   isSign: any
   xmzt: any
-  hyId: string
+  hyId: any
 }>({
   xmbh: '',
   xmmc: '',
@@ -179,7 +179,7 @@ const queryParams = reactive<{
   pageSize: 10,
   isSign: '',
   xmzt: '',
-  hyId: '4'
+  hyId: 0
 })
 const lxsjObj = ref()
 const infoList: any = ref([
@@ -228,6 +228,9 @@ const queryProjectListAjax = async (): Promise<void> => {
     ...queryParams,
     pageSize: 10
   }
+  if (sendData['hyId'] == 0) {
+    sendData['hyId'] = null
+  }
   const result = await request.get({ url: urlApi, params: sendData }, '/business')
   tableData.value = result['records']
   total.value = result['total']

+ 5 - 1
client/src/views/OaSystem/projectCenter/projectDetail/components/xmxx/index.vue

@@ -122,7 +122,7 @@
             </div>
             <i class="del_icon"><Icon icon="ep:delete" /></i>
           </li>
-          <li class="operation"> <i class="icon"></i>项目成员 </li>
+          <li class="operation" @click="addWorkerRelationHandle"> <i class="icon"></i>项目成员 </li>
         </ul>
       </div>
       <div class="xmjdBox" v-else>
@@ -202,6 +202,10 @@ const addProjectHandle = (): void => {
     projectWorkerRelationList.value = result
   })
 }
+/**
+ * 添加主项目成员
+ * **/
+const addWorkerRelationHandle = () => {}
 defineExpose({
   addProjectHandle
 })

+ 0 - 98
client/src/views/OaSystem/projectCenter/projectDetail/projectDetail.scss

@@ -254,104 +254,6 @@
           margin: 35px 0px 5px 0px;
         }
       }
-      >.tabContentTwo {
-        >ul {
-          display: grid;
-          grid-template-columns: repeat(2, 1fr);
-          gap: 10px;
-          > li {
-            border: 1px solid #DEE0E3;
-            padding: 10px;
-            &:not(.operation) {
-              position: relative;
-              >.del_icon {
-                position: absolute;
-                top: 10px;
-                right: 10px;
-                display: inline-block;
-                display: none;
-              }
-              &:hover {
-                background-color: #F2F7FF;
-                cursor: pointer;
-                >.del_icon {
-                  display: block;
-                }
-              }
-              >div {
-                display: inline-block;
-                vertical-align: top;
-              }
-              >.imgBox {
-                border: 1px solid #f00;
-                border-radius: 50%;
-                width: 50px;
-                height: 50px;
-                position: relative;
-                >img {
-                  width: 100%;
-                  height: 100%;
-                }
-                margin-right: 8px;
-                >.icon {
-                  position: absolute;
-                  width: 15px;
-                  height: 15px;
-                  right: -1px;
-                  top: -1px;
-                  border-radius: 50%;
-                  background: url("../../../../../../assets/imgs/OA/sex_icon1.png") no-repeat;
-                  background-size: 100% 100%;
-                }
-
-              }
-              >.userInfo {
-                >.titleBox {
-                  display: flex;
-                  align-items: center;
-                  >h4 {
-                    color: #2D333C;
-                    font-size: 24px;
-                  }
-                  >.tag {
-                    margin-left: 5px;
-                    display: inline-block;
-                    padding: 0px 10px;
-                    border-radius: 20px;
-                    color: #2E77E6;
-                    border: 1px solid #2E77E6;
-                    font-size: 14px;
-                  }
-                }
-                >.dept {
-                  color: #2D333C;
-                  font-size: 18px;
-                  margin-top: 15px;
-                  padding-bottom: 5px;
-                }
-                >.txt {
-                  font-size: 14px;
-                  color: #69717C;
-                  padding: 2px 0px;
-                }
-              }
-            }
-            &.operation {
-              display: flex;
-              align-items: center;
-              justify-content: center;
-              height: 166px;
-              cursor: pointer;
-              >i {
-                width: 20px;
-                height: 20px;
-                background: url("../../../../assets/imgs/OA/add_xmcy_icon.png") no-repeat;
-                background-size: 100% 100%;
-              }
-            }
-          }
-        }
-      }
     }
     >.btnGroup {
       text-align: right;

+ 2 - 29
client/src/views/OaSystem/projectCenter/projectDetail/projectDetail.vue

@@ -72,12 +72,11 @@
     </div>
     <div class="subProjectModalBox" v-show="subProjectShow">
       <ul class="tab">
-        <li @click="switchTabHandle(0)" :class="[tabIndex === 0 ? 'active' : '']">项目信息</li>
-        <li @click="switchTabHandle(1)" :class="[tabIndex === 1 ? 'active' : '']">项目成员</li>
+        <li>项目信息</li>
       </ul>
       <span class="close_icon" @click="subProjectShow = false"></span>
       <div class="tabContent">
-        <div class="tabContentOne" v-if="tabIndex === 0">
+        <div class="tabContentOne">
           <div class="formBox">
             <el-form :model="projectChildForm" label-width="120px">
               <h4>基本信息</h4>
@@ -140,28 +139,6 @@
             </el-form>
           </div>
         </div>
-        <div class="tabContentTwo" v-else>
-          <ul>
-            <li v-for="(item, index) in 6" :key="index">
-              <div class="imgBox">
-                <img src="" />
-                <i class="icon"></i>
-              </div>
-              <div class="userInfo">
-                <div class="titleBox">
-                  <h4>泮道炬</h4>
-                  <span class="tag">项目经理</span>
-                </div>
-                <p class="dept">自然资源产品部</p>
-                <p class="txt">毕业院校:浙江水利水电职业技术学院</p>
-                <p class="txt">学历:大专</p>
-                <p class="txt">电话:15932242593</p>
-              </div>
-              <i class="del_icon"><Icon icon="ep:delete" /></i>
-            </li>
-            <li class="operation"> <i class="icon"></i>项目成员 </li>
-          </ul>
-        </div>
       </div>
       <div class="btnGroup">
         <el-button type="default">取消</el-button>
@@ -199,10 +176,6 @@ const subProjectShow = ref<boolean>(false)
 const addSubProject: () => void = () => {
   subProjectShow.value = true
 }
-const tabIndex = ref<number>(0)
-const switchTabHandle: (i: number) => void = (i: number) => {
-  tabIndex.value = i
-}
 
 /**
  * 项目详情后台接口

+ 78 - 91
zjugis-business/src/main/resources/templates/Leave/index.ftl

@@ -112,7 +112,7 @@ styles=[ '../common/formCommon.css' ,'../timeSelector/TimeSelector.css' ]>
                 <span>请假时间信息</span>
             </div>
             <div class="form-btn">
-                <div>
+                <div id="addData">
                     <img src="/imgs/addIcon.png" alt="">
                     <span>新增</span>
                 </div>
@@ -120,89 +120,18 @@ styles=[ '../common/formCommon.css' ,'../timeSelector/TimeSelector.css' ]>
         </div>
         <div class="qjsjxx-box">
             <table class="form-table-info">
-                <tr>
-                    <td>序号</td>
-                    <td style="width: 30%;">起始时间</td>
-                    <td style="width: 30%;">截止时间</td>
-                    <td>备注</td>
-                    <td>操作</td>
-                </tr>
-                <tr>
-                    <td> 1</td>
-                    <td>
-                        <div class="form-flex">
-                            <div class="form-item" style="width: 50%;margin-right: 5px;">
-                                <div class="z-comp-date" name="LeaveTimeDO[0]$startTime">
-                                    <input type="text" value="2015-05-03">
-                                </div>
-                            </div>
-                            <div style="width: 50%;margin-left: 5px;" class="dateTimeRange dateTimeRange1">
-                            </div>
-                            <span class="nbsp"> - </span>
-                        </div>
-                    </td>
-                    <td>
-                        <div class="form-flex">
-                            <div class="form-item" style="width: 50%;margin-right: 5px;">
-                                <div class="z-comp-date" name="LeaveTimeDO[0]$endTime">
-                                    <input type="text" value="2015-05-03">
-                                </div>
-                            </div>
-                            <div style="width: 50%;margin-left: 5px;" class="dateTimeRange dateTimeRange2">
-                            </div>
-                        </div>
-                    </td>
-                    <td>
-                        <div class="form-item">
-                            <div class="z-comp-input" name="LeaveTimeDO[0]$bz1">
-                                <input type="text" value="111111">
-                            </div>
-                        </div>
-                    </td>
-                    <td>
-                        <div class="table-btn">
-                            <span>删除</span>
-                        </div>
-                    </td>
-                </tr>
-                <tr>
-                    <td> 2</td>
-                    <td>
-                        <div class="form-flex">
-                            <div class="form-item" style="width: 50%;margin-right: 5px;">
-                                <div class="z-comp-date" name="LeaveTimeDO[1]$startTime">
-                                    <input type="text" value="2023-05-03">
-                                </div>
-                            </div>
-                            <div style="width: 50%;margin-left: 5px;" class="dateTimeRange dateTimeRange1">
-                            </div>
-                            <span class="nbsp"> - </span>
-                        </div>
-                    </td>
-                    <td>
-                        <div class="form-flex">
-                            <div class="form-item" style="width: 50%;margin-right: 5px;">
-                                <div class="z-comp-date" name="LeaveTimeDO[1]$endTime">
-                                    <input type="text" value="2023-05-03">
-                                </div>
-                            </div>
-                            <div style="width: 50%;margin-left: 5px;" class="dateTimeRange dateTimeRange2">
-                            </div>
-                        </div>
-                    </td>
-                    <td>
-                        <div class="form-item">
-                            <div class="z-comp-input" name="LeaveTimeDO[1]$bz1">
-                                <input type="text" value="2222">
-                            </div>
-                        </div>
-                    </td>
-                    <td>
-                        <div class="table-btn">
-                            <span>删除</span>
-                        </div>
-                    </td>
-                </tr>
+                <thead>
+                    <tr>
+                        <td>序号</td>
+                        <td style="width: 30%;">起始时间</td>
+                        <td style="width: 30%;">截止时间</td>
+                        <td>备注</td>
+                        <td>操作</td>
+                    </tr>
+                </thead>
+                <tbody id="testTbody">
+
+                </tbody>
             </table>
         </div>
     </div>
@@ -210,16 +139,74 @@ styles=[ '../common/formCommon.css' ,'../timeSelector/TimeSelector.css' ]>
     <script language="javascript">
         ;
         (function () {
-            timeSelector({
-                ele: ".dateTimeRange1",
-                callback: function (val) {
+
+            $("#addData").click(function(){
+                alert(1)
+                var obj = {
+                    startTime: '',
+                    startDate: '',
+                    endTime: '',
+                    endDate: '',
+                    bz: ''
                 }
-            })
-            timeSelector({
-                ele: ".dateTimeRange2",
-                callback: function (val) {
+                var tbodyDom = $("#testTbody");
+                var arr = [];
+                arr.push(obj);
+                for(var i = 0; i < arr.length; i++){
+                    tbodyDom.appendChild(generateTableTrHtml(arr[i], i));
+
+                    timeSelector({
+                        ele: '.dateTimeRange'+(i+1)
+                        callback: function (val) {
+                        }
+                    })
+                    timeSelector({
+                        ele: '.dateTimeRange'+(i+1)+'_2'
+                        callback: function (val) {
+                        }
+                    })
                 }
             })
+            function generateTableTrHtml(data,index){
+                var trDom = document.createElement("tr");
+                trDom.innerHTML = '<td>'+(index+1)+'</td>'
+                +'<td>'
+                        +'<div class="form-flex">'
+                        +'<div class="form-item" style="width: 50%;margin-right: 5px;">'
+                        +'<div class="z-comp-date" name="LeaveTimeDO['+index+']$startTime">'
+                        +'<input type="text" value="2015-05-03">'
+                        +'</div>'
+                        +'</div>'
+                        +'<div style="width: 50%;margin-left: 5px;" class="dateTimeRange dateTimeRange'+(index+1)+'">'
+                        +'</div>'
+                        +'<span class="nbsp"> - </span>'
+                        +'</div>'
+                        +'</td>'
+                        +'<td>'
+                        +'<div class="form-flex">'
+                        +'<div class="form-item" style="width: 50%;margin-right: 5px;">'
+                        +'<div class="z-comp-date" name="LeaveTimeDO['+index+']$endTime">'
+                        +'<input type="text" value="2015-05-03">'
+                        +'</div>'
+                        +'</div>'
+                        +'<div style="width: 50%;margin-left: 5px;" class="dateTimeRange dateTimeRange'+(index+1)+'_2">'
+                        +'</div>'
+                        +'</div>'
+                        +'</td>'
+                        +'<td>'
+                        +'<div class="form-item">'
+                        +'<div class="z-comp-input" name="LeaveTimeDO[0]$bz1">'
+                        +'<input type="text" value="111111">'
+                        +'</div>'
+                        +'</div>'
+                        +'</td>'
+                        +'<td>'
+                        +'<div class="table-btn" data-index="'+(index)+''">'
+                        +'<span>删除</span>'
+                        +'</div>'
+                        +'</td>';
+                return trDom;
+            }
         })();
     </script>
     <style type="text/css">