浏览代码

修改人员详情、变更记录

余思翰 1年前
父节点
当前提交
5425c521ce

+ 11
- 2
oa-ui/src/api/oa/price/price.js 查看文件

@@ -1,8 +1,8 @@
1 1
 /*
2 2
  * @Author: wrh
3 3
  * @Date: 2024-03-21 10:27:54
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-03-21 16:56:25
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-20 17:02:00
6 6
  */
7 7
 import request from '@/utils/request'
8 8
 
@@ -98,4 +98,13 @@ export function getUnitPrice(params) {
98 98
     method: 'get',
99 99
     params:params
100 100
   })
101
+}
102
+
103
+// 根据单价类别查询备注
104
+export function getPriceRemarkByWorkType(params) {
105
+  return request({
106
+    url: '/oa/price/remark',
107
+    method: 'get',
108
+    params:params
109
+  })
101 110
 }

+ 1
- 0
oa-ui/src/assets/icons/svg/contractExpire.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="m19 19.425l-1.425 1.4q-.275.275-.687.288t-.713-.288q-.275-.275-.275-.7t.275-.7l1.4-1.425l-1.4-1.425q-.275-.275-.288-.687t.288-.713q.275-.275.7-.275t.7.275l1.425 1.4l1.425-1.4q.275-.275.688-.288t.712.288q.275.275.275.7t-.275.7L20.425 18l1.4 1.425q.275.275.288.688t-.288.712q-.275.275-.7.275t-.7-.275zM10 9q-.425 0-.712-.288T9 8q0-.425.288-.712T10 7h7q.425 0 .713.288T18 8q0 .425-.288.713T17 9zm0 3q-.425 0-.712-.288T9 11q0-.425.288-.712T10 10h7q.425 0 .713.288T18 11q0 .425-.288.713T17 12zM6 22q-1.25 0-2.125-.875T3 19v-1q0-.825.588-1.412T5 16h1V4q0-.825.588-1.412T8 2h11q.825 0 1.413.588T21 4v8q0 .425-.288.713T20 13q-.425 0-.712-.288T19 12V4H8v12h4.15q.45 0 .738.35t.187.8q-.05.2-.062.425T13 18q0 .725.175 1.438T13.7 20.8q.225.425.025.813T13.1 22z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/contractSign.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M10 7h7q.425 0 .713.288T18 8q0 .425-.288.713T17 9h-7q-.425 0-.712-.288T9 8q0-.425.288-.712T10 7m0 3h7q.425 0 .713.288T18 11q0 .425-.288.713T17 12h-7q-.425 0-.712-.288T9 11q0-.425.288-.712T10 10m2 10H5zm-6 2q-1.25 0-2.125-.875T3 19v-2q0-.425.288-.712T4 16h2V4q0-.825.588-1.412T8 2h11q.825 0 1.413.588T21 4v6q0 .425-.288.713T20 11q-.425 0-.712-.288T19 10V4H8v12h3q.425 0 .713.288T12 17q0 .425-.288.713T11 18H5v1q0 .425.288.713T6 20h5q.425 0 .713.288T12 21q0 .425-.288.713T11 22zm8-1v-1.65q0-.2.075-.387t.225-.338l5.225-5.2q.225-.225.5-.325t.55-.1q.3 0 .575.113t.5.337l.925.925q.2.225.313.5t.112.55q0 .275-.1.563t-.325.512l-5.2 5.2q-.15.15-.337.225T16.65 22H15q-.425 0-.712-.287T14 21m7.5-5.575l-.925-.925zm-6 5.075h.95l3.025-3.05l-.45-.475l-.475-.45l-3.05 3.025zm3.525-3.525l-.475-.45l.925.925z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/degree.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M5 13.18v4L12 21l7-3.82v-4L12 17zM12 3L1 9l11 6l9-4.91V17h2V9z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/engineer.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="m18.85 10l-.2-1.05q-.225-.075-.412-.188T17.9 8.5l-1.05.35l-.7-1.2l.85-.75q-.05-.125-.05-.2v-.4q0-.075.05-.2l-.85-.75l.7-1.2l1.05.35q.15-.15.338-.263t.412-.187l.2-1.05h1.4l.2 1.05q.225.075.413.188t.337.262l1.05-.35l.7 1.2l-.85.75q.05.125.05.2v.4q0 .075-.05.2l.85.75l-.7 1.2l-1.05-.35q-.15.15-.337.263t-.413.187l-.2 1.05h-1.4Zm.7-2.25q.525 0 .888-.363T20.8 6.5q0-.525-.363-.888t-.887-.362q-.525 0-.888.363T18.3 6.5q0 .525.363.888t.887.362Zm-3 7.25l-.15-.75q-.15-.05-.287-.113t-.263-.187l-.7.25l-.5-.9l.55-.5v-.6l-.55-.5l.5-.9l.7.25q.1-.1.25-.175t.3-.125l.15-.75h1l.15.75q.15.05.3.125t.25.175l.7-.25l.5.9l-.55.5v.6l.55.5l-.5.9l-.7-.25q-.125.125-.263.188t-.287.112l-.15.75h-1Zm.5-1.75q.3 0 .525-.225t.225-.525q0-.3-.225-.525t-.525-.225q-.3 0-.525.225t-.225.525q0 .3.225.525t.525.225Zm-8-.25q-1.65 0-2.825-1.175T5.05 9H4.3V8h.75q0-1.125.55-2.025T7.05 4.55v.95q0 .225.138.363T7.55 6q.225 0 .363-.138T8.05 5.5V4.15q.225-.075.475-.113T9.05 4q.275 0 .525.038t.475.112V5.5q0 .225.138.363T10.55 6q.225 0 .363-.138t.137-.362v-.95q.9.525 1.45 1.425T13.05 8h.75v1h-.75q0 1.65-1.175 2.825T9.05 13Zm0-2q.825 0 1.413-.588T11.05 9h-4q0 .825.588 1.413T9.05 11Zm-8 10v-2.8q0-.825.425-1.55t1.175-1.1q1.275-.65 2.875-1.1T9.05 14q1.925 0 3.525.45t2.875 1.1q.75.375 1.175 1.1t.425 1.55V21h-16Z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/flower.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 512 512"><circle cx="256" cy="256" r="48" fill="currentColor"/><path fill="currentColor" d="M475.93 303.91a67.49 67.49 0 0 0-44.34-115.53a5.2 5.2 0 0 1-4.58-3.21a5.21 5.21 0 0 1 1-5.51A67.83 67.83 0 0 0 378 66.33h-.25A67.13 67.13 0 0 0 332.35 84a5.21 5.21 0 0 1-5.52 1a5.23 5.23 0 0 1-3.22-4.58a67.68 67.68 0 0 0-135.23 0a5.2 5.2 0 0 1-3.21 4.58a5.21 5.21 0 0 1-5.52-1a67.11 67.11 0 0 0-45.44-17.69H134a67.91 67.91 0 0 0-50 113.34a5.21 5.21 0 0 1 1 5.51a5.2 5.2 0 0 1-4.58 3.21a67.71 67.71 0 0 0 0 135.23a5.23 5.23 0 0 1 4.58 3.23a5.22 5.22 0 0 1-1 5.52a67.54 67.54 0 0 0 50.08 113h.25A67.38 67.38 0 0 0 179.65 428a5.21 5.21 0 0 1 5.51-1a5.2 5.2 0 0 1 3.21 4.58a67.71 67.71 0 0 0 135.23 0a5.23 5.23 0 0 1 3.22-4.58a5.21 5.21 0 0 1 5.51 1a67.38 67.38 0 0 0 45.29 17.42h.25a67.48 67.48 0 0 0 50.08-113a5.22 5.22 0 0 1-1-5.52a5.23 5.23 0 0 1 4.58-3.22a67.31 67.31 0 0 0 44.4-19.77M256 336a80 80 0 1 1 80-80a80.09 80.09 0 0 1-80 80"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/homePlace.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M15.19 21C14.12 19.43 13 17.36 13 15.5c0-1.83.96-3.5 2.4-4.5H15V9h2v1.23c.5-.14 1-.23 1.5-.23c.17 0 .34 0 .5.03V3H5v18h6v-3.5h2V21zM15 5h2v2h-2zM9 19H7v-2h2zm0-4H7v-2h2zm0-4H7V9h2zm0-4H7V5h2zm2-2h2v2h-2zm0 4h2v2h-2zm0 6v-2h2v2zm7.5-3c-1.9 0-3.5 1.61-3.5 3.5c0 2.61 3.5 6.5 3.5 6.5s3.5-3.89 3.5-6.5c0-1.89-1.6-3.5-3.5-3.5m0 4.81c-.7 0-1.2-.6-1.2-1.2c0-.7.6-1.2 1.2-1.2s1.2.59 1.2 1.2c.1.6-.5 1.2-1.2 1.2"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/idCard.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035c-.01-.004-.019-.001-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427c-.002-.01-.009-.017-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093c.012.004.023 0 .029-.008l.004-.014l-.034-.614c-.003-.012-.01-.02-.02-.022m-.715.002a.023.023 0 0 0-.027.006l-.006.014l-.034.614c0 .012.007.02.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M4 4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 2h16v12H4zm6.25 3.75a1.75 1.75 0 1 1-3.5 0a1.75 1.75 0 0 1 3.5 0M5 14.5A2.5 2.5 0 0 1 7.5 12h2a2.5 2.5 0 0 1 2.5 2.5v.5a1 1 0 1 1-2 0v-.5a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5v.5a1 1 0 1 1-2 0zm8-3.5a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2h-2a1 1 0 0 1-1-1m1 2a1 1 0 1 0 0 2h4a1 1 0 1 0 0-2z"/></g></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/major.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M22 18V3H2v15H0v2h24v-2zm-8 0h-4v-1h4zm6-3H4V5h16z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/operator.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M4 21q-.825 0-1.413-.588T2 19V5q0-.825.588-1.413T4 3h14q.825 0 1.413.588T20 5v2h2v2h-2v2h2v2h-2v2h2v2h-2v2q0 .825-.588 1.413T18 21H4Zm2-4h5v-4H6v4Zm6-7h4V7h-4v3Zm-6 2h5V7H6v5Zm6 5h4v-6h-4v6Z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/pmLevel.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M7.475 21Q5.2 21 3.6 19.4T2 15.525q0-2.15 1.438-3.713t3.587-1.737l-3.3-6.625q-.25-.5.038-.975T4.625 2h4.15q.575 0 1.038.3t.737.8L12 6l1.45-2.9q.275-.5.738-.8t1.037-.3h4.15q.575 0 .863.475t.037.975L17 10.025q2.125.2 3.563 1.763T22 15.5q0 2.3-1.6 3.9T16.5 21q-.225 0-.463-.013t-.462-.062q1.375-.9 2.15-2.337T18.5 15.5q0-2.725-1.888-4.612T12 9q-2.725 0-4.612 1.888T5.5 15.5q0 1.7.7 3.2t2.2 2.225q-.225.05-.463.063T7.476 21ZM12 20q-1.875 0-3.188-1.313T7.5 15.5q0-1.875 1.313-3.188T12 11q1.875 0 3.188 1.313T16.5 15.5q0 1.875-1.313 3.188T12 20Zm0-3.15l1.225.925q.15.125.3.013t.1-.288l-.475-1.525l1.225-.875q.15-.125.1-.288t-.25-.162h-1.5l-.475-1.625q-.05-.175-.25-.175t-.25.175l-.475 1.625h-1.5q-.2 0-.25.163t.1.287l1.225.875l-.475 1.525q-.05.175.1.288t.3-.013L12 16.85Z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/politicalAffiliation.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 50 50"><path fill="currentColor" d="M12.333 22H15v16h4V24h4v14h4V24h4v14h4V22h2.666c.736 0 1.334-.736 1.334-1.399c0-.401-.221-.853-.555-1.071l.002-.052l-.021-.037l.134-.033L26 12.939v-1.892c2 1.059 3.951-.765 7 .332V7.2c-3.051-1.096-5 .727-7-.332V6.6c0-.331-.631-.6-1-.6s-1 .269-1 .6v6.339l-12.559 6.456l.271.021l.288.011v.002c-1 .218-.776.77-.776 1.171c-.001.664.373 1.4 1.109 1.4M14 39l-3 3h28l-3-3zm22-16v15h.885l.391.553l2.666 2.499l.943.948H49V23zm6 12h-3v-3h3zm0-6h-3v-3h3zm4 6h-2v-3h2zm0-6h-2v-3h2zm-32.886 9H14V23H1v19h8.114l.942-.848l2.667-2.6zM6 35H4v-3h2zm0-6H4v-3h2zm5 6H8v-3h3zm0-6H8v-3h3z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/school.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 15 15"><path fill="none" stroke="currentColor" d="m7.5 4.5l4 2v8h-8v-8zm0 0V0M0 14.5h15m-13.5 0v-6h2m10 6v-6h-2m-5 6v-3h2v3m-1-14h3v2h-3m0 7a1 1 0 1 1 0-2a1 1 0 0 1 0 2Z"/></svg>

+ 1
- 0
oa-ui/src/assets/icons/svg/titles.svg 查看文件

@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M1 3h22v18H1zm2 2v14h18V5h-2v6.5l-3-2.25l-3 2.25V5zm12 0v2.5l1-.75l1 .75V5zM5 11h6v2H5zm0 4h14v2H5z"/></svg>

+ 15
- 33
oa-ui/src/components/FileUpload/index.vue 查看文件

@@ -1,20 +1,9 @@
1 1
 <template>
2 2
   <div class="upload-file">
3
-    <el-upload
4
-      :action="uploadFileUrl"
5
-      :data="additionalData"
6
-      :before-upload="handleBeforeUpload"
7
-      :file-list="fileList"
8
-      :limit="limit"
9
-      :on-error="handleUploadError"
10
-      :on-exceed="handleExceed"
11
-      :on-success="handleUploadSuccess"
12
-      :show-file-list="false"
13
-      :headers="headers"
14
-      class="upload-file-uploader"
15
-      ref="fileUpload"
16
-      accept=".doc,.docx,.xls,.xlsx,.pdf"
17
-    >
3
+    <el-upload :action="uploadFileUrl" :data="additionalData" :before-upload="handleBeforeUpload" :file-list="fileList"
4
+      :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed" :on-success="handleUploadSuccess"
5
+      :show-file-list="false" :headers="headers" class="upload-file-uploader" ref="fileUpload"
6
+      accept=".doc,.docx,.xls,.xlsx,.pdf">
18 7
       <!-- 上传按钮 -->
19 8
       <el-button size="mini" type="primary" :disabled="disabled">选取文件</el-button>
20 9
       <!-- 上传提示 -->
@@ -31,24 +20,14 @@
31 20
     </el-upload>
32 21
 
33 22
     <!-- 文件列表 -->
34
-    <transition-group
35
-      class="upload-file-list el-upload-list el-upload-list--text"
36
-      name="el-fade-in-linear"
37
-      tag="ul"
38
-    >
39
-      <li
40
-        :key="file.url"
41
-        class="el-upload-list__item ele-upload-list__item-content"
42
-        v-for="(file, index) in fileList"
43
-        v-if="!isModify"
44
-      >
23
+    <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
24
+      <li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList"
25
+        v-if="!isModify">
45 26
         <el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
46 27
           <span class="el-icon-document"> {{ getFileName(file.name) }} </span>
47 28
         </el-link>
48 29
         <div class="ele-upload-list__item-content-action" :disabled="disabled">
49
-          <el-link :underline="false" @click="handleDelete(index)" type="danger"
50
-            >删除</el-link
51
-          >
30
+          <el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
52 31
         </div>
53 32
       </li>
54 33
     </transition-group>
@@ -87,17 +66,20 @@ export default {
87 66
       type: Boolean,
88 67
       default: false,
89 68
     },
90
-    filePathName:{
69
+    filePathName: {
91 70
       type: String,
92 71
       default: '',
93 72
     },
94
-    disabled:{
73
+    disabled: {
95 74
       type: Boolean,
96
-      default:false,
75
+      default: false,
97 76
     }
98 77
   },
99
-  created(){
78
+  created() {
100 79
     this.additionalData.fileType = this.filePathName
80
+  },
81
+  mounted() {
82
+    
101 83
   },
102 84
   data() {
103 85
     return {

+ 19
- 2
oa-ui/src/views/flowable/form/budget/components/chooseMoney.vue 查看文件

@@ -123,7 +123,7 @@
123 123
               <el-input-number v-model="work.coefficient" :controls="false" :precision="2" :step="0.01" :max="10"
124 124
                 @blur="getTotal(work)" style="width:60px;">
125 125
               </el-input-number>
126
-              <!-- <el-input v-model="work.coefficient" placeholder="请输入系数" @blur="getTotal(work)"></el-input> -->
126
+              <el-button type="text" @click="getCoefficientRemark(work.workType)">系数备注</el-button>
127 127
             </td>
128 128
             <td class="workTotal">
129 129
               {{ work.settle }}
@@ -157,7 +157,9 @@
157 157
 <script>
158 158
 import { getWorkTypeList, getWorkItemList, getSubItemList, getScaleGradeList, getUnitPrice } from '@/api/oa/price/price'
159 159
 import { deepClone } from '@/utils'
160
+import { getPriceRemarkByWorkType } from '@/api/oa/price/price'
160 161
 export default {
162
+  components: {},
161 163
   props: {
162 164
     workList: {
163 165
       type: Array,
@@ -314,7 +316,7 @@ export default {
314 316
       }
315 317
       this.peopleNumber = days
316 318
       if (this.budgetForm.inOutPriceSum && this.budgetForm.inOutPriceSum != 0) {
317
-        if (this.inOutPriceSum ==0 ) {
319
+        if (this.inOutPriceSum == 0) {
318 320
           this.settle = Number(this.settle) + Number(this.budgetForm.inOutPriceSum)
319 321
           this.inOutPrice = Number(this.budgetForm.inOutPriceSum) / this.peopleNumber
320 322
           this.inOutPriceSum = this.budgetForm.inOutPriceSum
@@ -350,6 +352,21 @@ export default {
350 352
     },
351 353
     setValue(key, name, val) {
352 354
       this.$set(key, name, val)
355
+    },
356
+    getCoefficientRemark(workType) {
357
+      getPriceRemarkByWorkType({workType}).then(res => {
358
+        console.log(res);
359
+        if (res.code == 200) {
360
+          if(workType != undefined)
361
+            this.$notify({
362
+              title: workType ,
363
+              dangerouslyUseHTMLString: true,
364
+              message: res.msg,
365
+              duration: 0
366
+            });
367
+        }
368
+
369
+      })
353 370
     }
354 371
   }
355 372
 }

+ 3
- 3
oa-ui/src/views/flowable/form/projectProcess/addproject.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-27 14:49:15
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-15 14:40:45
5
+ * @LastEditTime: 2024-05-20 16:15:23
6 6
 -->
7 7
 
8 8
 <template>
@@ -122,8 +122,8 @@
122 122
       </el-row>
123 123
     </el-form>
124 124
     <div slot="footer" class="dialog-footer" style="text-align: center">
125
-      <el-button type="primary" @click="confirmAddForm" :disabled="disabled">确 定</el-button>
126
-      <el-button @click="cancel" :disabled="disabled">取 消</el-button>
125
+      <el-button type="primary" @click="confirmAddForm" :disabled="disabled">提 交</el-button>
126
+      <!-- <el-button @click="cancel" :disabled="disabled">取 消</el-button> -->
127 127
     </div>
128 128
   </div>
129 129
 </template>

+ 73
- 24
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue 查看文件

@@ -2,12 +2,12 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-19 09:24:06
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-26 16:58:04
5
+ * @LastEditTime: 2024-05-20 16:20:49
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
9 9
     <h2 style="text-align: center;">项目安排</h2>
10
-    <el-form :model="form" :rules="rules" label-width="100px" :disabled="disabled">
10
+    <el-form :model="form" :rules="rules" label-width="120px" :disabled="disabled">
11 11
       <el-row :gutter="20">
12 12
         <el-col :span="12" :xs="24">
13 13
           <el-form-item label="承担部门:" prop="undertakingDept">
@@ -32,7 +32,7 @@
32 32
           <el-form-item label="项目负责人:" prop="projectLeader">
33 33
             <el-tag effect="plain" type="warning" style="margin-right: 10px;"
34 34
               v-if="form.projectLeader != '' && form.projectLeader != undefined">{{
35
-                form.projectLeaderName }}</el-tag>
35
+      form.projectLeaderName }}</el-tag>
36 36
             <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="choosePeople">选择</el-button>
37 37
           </el-form-item>
38 38
         </el-col>
@@ -46,20 +46,43 @@
46 46
           </el-form-item>
47 47
         </el-col>
48 48
       </el-row>
49
+      <el-row :gutter="20">
50
+        <el-col :span="12" :xs="24">
51
+          <el-form-item label="组织交底日期:" prop="organizeTime">
52
+            <el-date-picker style="width: 100%;" v-model="form.organizeTime" value-format="yyyy-MM-dd" type="date"
53
+              placeholder="选择日期">
54
+            </el-date-picker>
55
+          </el-form-item>
56
+        </el-col>
57
+        <el-col :span="12" :xs="24">
58
+          <el-form-item label="组织交底文档:" prop="organizeDocument">
59
+            <FileUpload ref="orz" :limit="1" :filePathName="'组织交底文件'" :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']"
60
+              @input="setOrganizeDocument">
61
+            </FileUpload>
62
+            <div v-if="$route.query.taskName != '项目安排'" class="upload-list">
63
+              <el-link :href="`${baseUrl}${'/profile/upload' + form.organizeDocument}`" :underline="false"
64
+                target="_blank">
65
+                <span class="el-icon-document"> {{ getFileName(form.organizeDocument) }} </span>
66
+              </el-link>
67
+            </div>
68
+          </el-form-item>
69
+        </el-col>
70
+      </el-row>
49 71
     </el-form>
50 72
     <!-- 人员选择对话框 -->
51 73
     <el-dialog width="320px" title="选择项目负责人" :visible.sync="peopleVisible" append-to-body>
52 74
       <el-form>
53 75
         <el-form-item label="部门:">
54 76
           <el-select v-model="peopleForm.deptId" @change="handleChangeDept">
55
-            <el-option v-for="item in peopleForm.deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId"
56
-              v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
77
+            <el-option v-for="item in peopleForm.deptList" :key="item.deptId" :label="item.deptName"
78
+              :value="item.deptId" v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
57 79
             </el-option>
58 80
           </el-select>
59 81
         </el-form-item>
60 82
         <el-form-item label="人员:">
61 83
           <el-select v-model="peopleForm.userId">
62
-            <el-option v-for="item in peopleForm.userList" :key="item.userId" :label="item.nickName" :value="item.userId">
84
+            <el-option v-for="item in peopleForm.userList" :key="item.userId" :label="item.nickName"
85
+              :value="item.userId">
63 86
             </el-option>
64 87
           </el-select>
65 88
         </el-form-item>
@@ -70,8 +93,8 @@
70 93
       </el-form>
71 94
     </el-dialog>
72 95
     <div slot="footer" class="dialog-footer" style="text-align: center;">
73
-      <el-button type="primary" @click="confirmPlanForm" :disabled="disabled">确 定</el-button>
74
-      <el-button @click="cancel" :disabled="disabled">取 消</el-button>
96
+      <el-button type="primary" @click="confirmPlanForm" :disabled="disabled">提 交</el-button>
97
+      <!-- <el-button @click="cancel" :disabled="disabled">取 消</el-button> -->
75 98
     </div>
76 99
   </div>
77 100
 </template>
@@ -95,6 +118,7 @@ export default {
95 118
   },
96 119
   data() {
97 120
     return {
121
+      baseUrl: process.env.VUE_APP_BASE_API,
98 122
       form: {},
99 123
       rules: {},
100 124
       deptList: [],
@@ -124,6 +148,7 @@ export default {
124 148
     initForm() {
125 149
       getProject(this.taskForm.formId).then(res => {
126 150
         this.form = res.data;
151
+        console.log(this.form);
127 152
         if (this.form.undertakingDept != null && this.form.undertakingDept != "" && this.form.undertakingDept != undefined) {
128 153
           this.form.deptId = this.form.undertakingDeptName.split(',')
129 154
         }
@@ -137,9 +162,9 @@ export default {
137 162
         } else {
138 163
           this.$set(this.form, 'deptId', [])
139 164
         }
140
-        this.$store.commit('SET_PROJECTNUMBER',this.form.projectNumber)
141
-        this.$store.commit('SET_PROJECTNAME',this.form.projectName)
142
-        this.$store.commit('SET_PROJECT',this.form)
165
+        this.$store.commit('SET_PROJECTNUMBER', this.form.projectNumber)
166
+        this.$store.commit('SET_PROJECTNAME', this.form.projectName)
167
+        this.$store.commit('SET_PROJECT', this.form)
143 168
       })
144 169
     },
145 170
     getUserList() {
@@ -203,24 +228,48 @@ export default {
203 228
       updateProject(this.form)
204 229
       const params = { taskId: this.taskForm.taskId };
205 230
       // 获取下一个流程节点
206
-      getNextFlowNode(params).then(res => {
207
-        this.$set(this.taskForm.variables, "formId", this.taskForm.formId);
208
-        this.$set(this.taskForm.variables, "budgetInitiator", this.peopleForm.userId);
209
-        getUsersDeptLeaderByDept({ deptId: 105 }).then(res => {
210
-          let userId = res.data.userId;
211
-          this.$set(this.taskForm.variables, "approval", userId);
212
-          complete(this.taskForm).then(response => {
213
-            this.$modal.msgSuccess(response.msg);
214
-            this.$emit('goBack');
215
-          });
216
-        })
217
-      })
231
+      // getNextFlowNode(params).then(res => {
232
+      //   this.$set(this.taskForm.variables, "formId", this.taskForm.formId);
233
+      //   this.$set(this.taskForm.variables, "budgetInitiator", this.peopleForm.userId);
234
+      //   getUsersDeptLeaderByDept({ deptId: 105 }).then(res => {
235
+      //     let userId = res.data.userId;
236
+      //     this.$set(this.taskForm.variables, "approval", userId);
237
+      //     complete(this.taskForm).then(response => {
238
+      //       this.$modal.msgSuccess(response.msg);
239
+      //       this.$emit('goBack');
240
+      //     });
241
+      //   })
242
+      // })
218 243
     },
219 244
     cancel() {
220 245
       this.form = {}
221 246
     },
247
+    setOrganizeDocument(val) {
248
+      let arr = val.split('/upload')
249
+      this.form.organizeDocument = arr[1]
250
+      if (val == "") {
251
+        this.form.organizeDocument = ""
252
+      }
253
+    },
254
+    getFileName(name) {
255
+      if (name != null) {
256
+        let arr = name.split('/')
257
+        return arr[arr.length - 1];
258
+      }
259
+
260
+    },
261
+    handleFileDelete() {
262
+      console.log(this);
263
+      // this.$refs.orz.handleDelete(0);
264
+    },
222 265
   }
223 266
 }
224 267
 </script>
225 268
 
226
-<style lang="scss" scoped></style>
269
+<style lang="scss" scoped>
270
+.upload-list {
271
+  display: flex;
272
+  text-align: left;
273
+  justify-content: space-around;
274
+}
275
+</style>

+ 11
- 3
oa-ui/src/views/flowable/form/projectProcess/inProgress.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-15 09:35:41
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-10 14:45:57
5
+ * @LastEditTime: 2024-05-20 17:58:13
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -69,7 +69,8 @@
69 69
                   value-format="yyyy-MM-dd"></el-date-picker>
70 70
               </td>
71 71
               <td>
72
-                <el-input-number v-model="progress.percentage" :controls="false" style="width: 120px"></el-input-number>%
72
+                <el-input-number v-model="progress.percentage" :controls="false"
73
+                  style="width: 120px"></el-input-number>%
73 74
               </td>
74 75
               <td>
75 76
                 <el-input v-model="progress.situation" type="textarea"></el-input>
@@ -100,7 +101,7 @@
100 101
       </div>
101 102
       <div slot="footer" class="dialog-footer" style="text-align: center">
102 103
         <el-button @click="preserve()" :disabled="disabled" type="warning">保 存</el-button>
103
-        <el-button type="primary" @click="submitNextFlow()" :disabled="disabled">提交下一个流程</el-button>
104
+        <el-button type="primary" @click="submitNextFlow()" :disabled="disabled">项目结束</el-button>
104 105
       </div>
105 106
     </div>
106 107
   </div>
@@ -297,6 +298,13 @@ export default {
297 298
     submitNextFlow() {
298 299
       this.preserve();
299 300
       const params = { taskId: this.taskForm.taskId };
301
+      // this.$confirm('结束后流程不可再修改,请问是否确定结束?', '提示', {
302
+      //     confirmButtonText: '确定',
303
+      //     cancelButtonText: '取消',
304
+      //     type: 'warning'
305
+      //   }).then(() => {
306
+
307
+      //   }).catch(() => { });
300 308
       // 获取下一个流程节点
301 309
       getNextFlowNode(params).then(res => {
302 310
         getProject(this.taskForm.formId).then(res => {

+ 99
- 51
oa-ui/src/views/oa/staff/changeRecord.vue 查看文件

@@ -1,20 +1,36 @@
1 1
 <!--
2 2
  * @Author: wrh
3 3
  * @Date: 2024-03-25 17:38:39
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-05-17 18:10:49
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-20 14:39:09
6 6
 -->
7 7
 <template>
8 8
   <div>
9
-    <el-table v-loading="loading" :data="changeRecordList">
9
+    <el-table v-loading="loading" :data="displayData">
10 10
       <el-table-column label="序号" align="center" prop="id" />
11 11
       <el-table-column label="类型" align="center" prop="field" />
12
-      <el-table-column label="变更前" align="center" prop="before" />
13
-      <el-table-column label="变更后" align="center" prop="after" />
12
+      <el-table-column label="变更前" align="center" prop="before">
13
+        <template slot-scope="scope">
14
+          {{ formatRow(scope.row, 'before') }}
15
+        </template>
16
+      </el-table-column>
17
+      <el-table-column label="变更后" align="center" prop="after">
18
+        <template slot-scope="scope">
19
+          {{ formatRow(scope.row, 'after') }}
20
+        </template>
21
+      </el-table-column>
14 22
       <el-table-column label="变更日期" align="center" prop="date" />
15 23
     </el-table>
16
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
17
-      @pagination="getChangeRecordList" />
24
+    <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
25
+      @pagination="getChangeRecordList" /> -->
26
+    <div class="mt20" style="text-align:right">
27
+      <el-pagination @current-change="handleCurrentChange" @size-change="handleSizeChange" background
28
+        :current-page.sync="queryParams.pageNum" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
29
+        :total="total">
30
+      </el-pagination>
31
+    </div>
32
+
33
+
18 34
   </div>
19 35
 </template>
20 36
 
@@ -31,70 +47,102 @@ export default {
31 47
       total: 0,
32 48
       // 变更记录表格数据
33 49
       changeRecordList: [],
50
+      filteredData: [], // 搜索后的数据
34 51
       queryParams: {
35 52
         pageNum: 1,
36 53
         pageSize: 10,
37 54
         userId: undefined
38 55
       },
56
+      currentPage: 1,
57
+      pageSize: 20,
58
+      searchText: ''
39 59
     };
40 60
   },
61
+  computed: {
62
+    displayData() {
63
+      // 根据当前页码和每页数量计算显示的数据
64
+      const startIndex = (this.currentPage - 1) * this.pageSize;
65
+      const endIndex = startIndex + this.pageSize;
66
+      return this.filteredData.slice(startIndex, endIndex);
67
+    },
68
+  },
41 69
   created() {
42 70
     this.getChangeRecordList();
43 71
   },
72
+  mounted() {
73
+    this.searchTextFun();
74
+  },
44 75
   methods: {
45 76
     /** 查询变更记录列表 */
46 77
     getChangeRecordList() {
47 78
       this.loading = true;
48 79
       this.queryParams.userId = Number(this.$route.query.userId);
49 80
       getUserChangeInfo(this.queryParams).then(response => {
50
-        for (let row of response.rows) {
51
-          if (row.field == '执业证书') {
52
-            row.before = this.formatDict(this.dict.type.sys_user_certificates, row.before);
53
-            row.after = this.formatDict(this.dict.type.sys_user_certificates, row.after);
54
-          }
55
-          else if (row.field == '项目经理级别') {
56
-            row.before = this.formatDict(this.dict.type.sys_user_pmlevel, row.before);
57
-            row.after = this.formatDict(this.dict.type.sys_user_pmlevel, row.after);
58
-          }
59
-          else if (row.field == '技术职称') {
60
-            row.before = this.formatDict(this.dict.type.sys_user_titles, row.before);
61
-            row.after = this.formatDict(this.dict.type.sys_user_titles, row.after);
62
-          }
63
-          else if (row.field == '工程师岗级') {
64
-            row.before = this.formatDict(this.dict.type.sys_user_engineerlevel, row.before);
65
-            row.after = this.formatDict(this.dict.type.sys_user_engineerlevel, row.after);
66
-          }
67
-          else if (row.field == '岗级') {
68
-            row.before = this.formatDict(this.dict.type.sys_user_postlevel, row.before);
69
-            row.after = this.formatDict(this.dict.type.sys_user_postlevel, row.after);
70
-          }
71
-          else if (row.field == '薪档') {
72
-            row.before = this.formatDict(this.dict.type.sys_user_salarylevel, row.before);
73
-            row.after = this.formatDict(this.dict.type.sys_user_salarylevel, row.after);
74
-          }
75
-          else if (row.field == '技工等级') {
76
-            row.before = this.formatDict(this.dict.type.sys_user_operatorlevel, row.before);
77
-            row.after = this.formatDict(this.dict.type.sys_user_operatorlevel, row.after);
78
-          }
79
-          else if (row.field == '政治面貌') {
80
-            row.before = this.formatDict(this.dict.type.sys_user_political, row.before);
81
-            row.after = this.formatDict(this.dict.type.sys_user_political, row.after);
82
-          }
83
-          else if (row.field == '学历') {
84
-            row.before = this.formatDict(this.dict.type.sys_user_degree, row.before);
85
-            row.after = this.formatDict(this.dict.type.sys_user_degree, row.after);
86
-          }
87
-          else if (row.field == '合同期满' || row.field == '合同签订') {
88
-            row.before = parseTime(row.before, '{y}-{m}-{d}');
89
-            row.after = parseTime(row.after, '{y}-{m}-{d}');
90
-          }
91
-          this.changeRecordList.push(row);
92
-        }
81
+        this.changeRecordList = response.rows;
82
+        this.filteredData = this.changeRecordList;
93 83
         this.total = response.total;
94 84
         this.loading = false;
95 85
       });
96 86
     },
97
-
87
+    // 改变每页显示的数量时触发
88
+    handleSizeChange(newSize) {
89
+      this.pageSize = newSize;
90
+      this.currentPage = 1; // 重置当前页码为第一页
91
+    },
92
+    // 改变当前页码时触发
93
+    handleCurrentChange(newPage) {
94
+      this.currentPage = newPage;
95
+    },
96
+    // 根据搜索文本过滤数据
97
+    searchTextFun() {
98
+      this.filteredData = this.changeRecordList.filter(item =>
99
+        item.field.includes(this.searchText)
100
+      );
101
+      this.currentPage = 1; // 重置当前页码为第一页
102
+    },
103
+    formatRow(row, key) {
104
+      if (row.field == '执业证书') {
105
+        row.before = row.before == null ? '' : this.selectDictLabels(this.dict.type.sys_user_certificates, row.before, ',');
106
+        row.after = row.after == null ? '' : this.selectDictLabels(this.dict.type.sys_user_certificates, row.after, ',');
107
+      }
108
+      else if (row.field == '项目经理级别') {
109
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_pmlevel, row.before);
110
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_pmlevel, row.after);
111
+      }
112
+      else if (row.field == '技术职称') {
113
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_titles, row.before);
114
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_titles, row.after);
115
+      }
116
+      else if (row.field == '工程师岗级') {
117
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_engineerlevel, row.before);
118
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_engineerlevel, row.after);
119
+      }
120
+      else if (row.field == '岗级') {
121
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_postlevel, row.before);
122
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_postlevel, row.after);
123
+      }
124
+      else if (row.field == '薪档') {
125
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_salarylevel, row.before);
126
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_salarylevel, row.after);
127
+      }
128
+      else if (row.field == '技工等级') {
129
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_operatorlevel, row.before);
130
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_operatorlevel, row.after);
131
+      }
132
+      else if (row.field == '政治面貌') {
133
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_political, row.before);
134
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_political, row.after);
135
+      }
136
+      else if (row.field == '学历') {
137
+        row.before = row.before == null ? '' : this.selectDictLabel(this.dict.type.sys_user_degree, row.before);
138
+        row.after = row.after == null ? '' : this.selectDictLabel(this.dict.type.sys_user_degree, row.after);
139
+      }
140
+      else if (row.field == '合同期满' || row.field == '合同签订') {
141
+        row.before = parseTime(row.before, '{y}-{m}-{d}');
142
+        row.after = parseTime(row.after, '{y}-{m}-{d}');
143
+      }
144
+      return row[key]
145
+    },
98 146
     formatDict(arr, val) {
99 147
       if (val != null && val != undefined && val != "") {
100 148
         let valArr = val.split(',');

+ 5
- 19
oa-ui/src/views/oa/staff/index.vue 查看文件

@@ -75,15 +75,13 @@
75 75
         <el-table-column label="岗级" align="center" key="postLevel" v-if="columns[5].visible"
76 76
           :show-overflow-tooltip="true">
77 77
           <template slot-scope="scope">
78
-            {{ formatLevel(scope.row.postLevel, scope.row.salaryLevel,
79
-              dict.type.sys_user_postlevel, dict.type.sys_user_salarylevel) }}
78
+              {{ selectDictLabel(dict.type.sys_user_postlevel,scope.row.postLevel) +  selectDictLabel(dict.type.sys_user_salarylevel,scope.row.salaryLevel)}}
80 79
           </template>
81 80
         </el-table-column>
82 81
         <el-table-column label="职称" align="center" key="titles" prop="titles" v-if="columns[6].visible"
83 82
           :show-overflow-tooltip="true">
84 83
           <template slot-scope="scope">
85
-            {{ (dict.type.sys_user_titles[scope.row.titles]) ? (dict.type.sys_user_titles[scope.row.titles]).label : ""
86
-            }}
84
+            {{ selectDictLabel(dict.type.sys_user_titles,scope.row.titles) }}
87 85
           </template>
88 86
         </el-table-column>
89 87
         <el-table-column label="执业证书" align="center" key="certificates" prop="certificates" v-if="columns[7].visible"
@@ -166,7 +164,7 @@
166 164
                 </el-radio>
167 165
               </el-radio-group>
168 166
             </el-form-item>
169
-            <el-form-item label="年龄" prop="age">
167
+            <el-form-item label="年龄" prop="age" v-if="form.userId != undefined">
170 168
               {{ form.age + '岁' }}
171 169
             </el-form-item>
172 170
             <el-form-item label="手机号码" prop="phonenumber">
@@ -560,7 +558,6 @@ export default {
560 558
     },
561 559
     // 查看人员详情按钮
562 560
     handleView(row) {
563
-      this.formatLevel(row.postLevel, row.salaryLevel, this.dict.type.sys_user_postlevel, this.dict.type.sys_user_salarylevel);
564 561
       this.formatCrtificates(this.dict.type.sys_user_certificates, row.certificates)
565 562
       this.$router.push({
566 563
         path: '/staff/info',
@@ -568,8 +565,8 @@ export default {
568 565
           userId: row.userId,
569 566
           nickName: row.nickName,
570 567
           postIds: this.form.postIds,
571
-          certificates: this.certificates,
572
-          postSalary: this.postSalary,
568
+          // certificates: this.certificates,
569
+          // postSalary: this.postSalary,
573 570
         }
574 571
       })
575 572
     },
@@ -686,17 +683,6 @@ export default {
686 683
     submitFileForm() {
687 684
       this.$refs.upload.submit();
688 685
     },
689
-    // 格式化表格里的薪资岗级
690
-    formatLevel(postLevel, salaryLevel, postLevelList, salaryLevelList) {
691
-      if (postLevel && salaryLevel) {
692
-        let post = postLevelList[postLevel].label
693
-        let salary = salaryLevelList[salaryLevel].label
694
-        this.postSalary = post + salary
695
-        return post + salary
696
-      } else {
697
-        return ''
698
-      }
699
-    },
700 686
     formatCrtificates(arr, val) {
701 687
       if (val != null && val != undefined && val != "") {
702 688
         let valArr = val.split(',');

+ 110
- 38
oa-ui/src/views/oa/staff/info.vue 查看文件

@@ -2,10 +2,10 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-22 14:50:46
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-15 19:09:21
5
+ * @LastEditTime: 2024-05-20 15:17:11
6 6
 -->
7 7
 <template>
8
-  <div class="bg">
8
+  <div class="bg" v-loading="loading">
9 9
     <div class="header">
10 10
       <div class="back">
11 11
         <el-button type="primary" plain @click="goBack">返回</el-button>
@@ -21,16 +21,10 @@
21 21
             <img :src="avatar" class="user-avatar" />
22 22
           </div>
23 23
           <div class="user-name">{{ this.form.nickName }}</div>
24
-          <div class="user-sex">{{ getAgeByIdCard(this.form.idCard) + '岁' }} {{ this.form.sex == '0' ? ' 男' : ' 女' }}</div>
25
-        </div>
26
-        <div class="info-item">
27
-          <div class="item-label">
28
-            <svg-icon icon-class="car" class="info-icon"></svg-icon>
29
-            <div class="item-label">职称:</div>
24
+          <div class="user-sex">
25
+            {{ getAgeByIdCard(this.form.idCard) + '岁' }} {{ this.form.sex == '0' ? ' 男' : ' 女' }}
26
+            <el-tag :type="form.status == '在职' ? 'success' : 'warning'">{{ form.status }}</el-tag>
30 27
           </div>
31
-          <div>{{ (dict.type.sys_user_titles[this.form.titles]) ?
32
-          (dict.type.sys_user_titles[this.form.titles]).label
33
-          : "" }}</div>
34 28
         </div>
35 29
         <div class="info-item">
36 30
           <div class="item-label">
@@ -46,19 +40,15 @@
46 40
           </div>
47 41
           <div class="item-value">{{ form.phonenumber }}</div>
48 42
         </div>
49
-        <div class="info-item">
50
-          <div class="item-label">
51
-            <svg-icon icon-class="certificate" class="info-icon"></svg-icon>
52
-            执业证书:
53
-          </div>
54
-          <div class="item-value">{{ form.certificates }}</div>
55
-        </div>
56 43
         <div class="info-item">
57 44
           <div class="item-label">
58 45
             <svg-icon icon-class="postSalary" class="info-icon"></svg-icon>
59 46
             <div class="item-label">薪资岗级:</div>
60 47
           </div>
61
-          <div>{{ form.postSalary }}</div>
48
+          <div>
49
+            {{ selectDictLabel(dict.type.sys_user_postlevel, form.postLevel) +
50
+          selectDictLabel(dict.type.sys_user_salarylevel, form.salaryLevel) }}
51
+          </div>
62 52
         </div>
63 53
         <div class="info-item">
64 54
           <div class="item-label">
@@ -67,19 +57,26 @@
67 57
           </div>
68 58
           <div>{{ parseTime(form.entryDate, '{y}-{m}') }}</div>
69 59
         </div>
60
+        <div class="info-item" v-for="item in userInfo">
61
+          <div class="item-label">
62
+            <svg-icon :icon-class="item.icon" class="info-icon"></svg-icon>
63
+            <div class="item-label">{{ item.label }}</div>
64
+          </div>
65
+          <div>{{ item.value }}</div>
66
+        </div>
70 67
         <div class="info-item">
71 68
           <div class="item-label">
72
-            <svg-icon icon-class="rate" class="info-icon"></svg-icon>
73
-            <div class="item-label">状态:</div>
69
+            <svg-icon icon-class="homePlace" class="info-icon"></svg-icon>
70
+            <div class="item-label" style="min-width:70px;">家庭住址:</div>
74 71
           </div>
75
-          <div>{{ form.status }}</div>
72
+          <div>{{ form.homePlace }}</div>
76 73
         </div>
77 74
       </el-col>
78 75
       <el-col :span="17" class="stateInfo">
79 76
         <el-tabs v-model="activeName" @tab-click="handleClick">
80
-          <el-tab-pane label="负责项目" name="1">
77
+          <!-- <el-tab-pane label="负责项目" name="1">
81 78
             <projectInfo></projectInfo>
82
-          </el-tab-pane>
79
+          </el-tab-pane> -->
83 80
           <el-tab-pane label="变更记录" name="2">
84 81
             <changeRecord></changeRecord>
85 82
           </el-tab-pane>
@@ -92,21 +89,19 @@
92 89
 <script>
93 90
 import userAvatar from "@/views/system/user/profile/userAvatar.vue"
94 91
 import { getUser } from "@/api/system/user"
95
-import { mapGetters } from "vuex"
96 92
 import projectInfo from './projectInfo'
97 93
 import changeRecord from './changeRecord'
98 94
 export default {
99 95
   components: { userAvatar, projectInfo, changeRecord },
100
-  dicts: ['sys_normal_disable', 'sys_user_sex', 'sys_user_titles', 'sys_user_certificates', 'sys_user_pmlevel', 'sys_user_postlevel', 'sys_user_salarylevel'],
101
-  computed: {
102
-    ...mapGetters(["avatar"]),
103
-  },
96
+  dicts: ['sys_normal_disable', 'sys_user_sex', 'sys_user_titles', 'sys_user_certificates', 'sys_user_pmlevel',
97
+    'sys_user_postlevel', 'sys_user_salarylevel', 'sys_user_political', 'sys_user_degree', 'sys_user_engineerlevel', 'sys_user_operatorlevel'],
104 98
   created() {
105 99
     if (this.$route.query)
106 100
       this.getUserInfo(this.$route.query.userId);
107 101
   },
108 102
   data() {
109 103
     return {
104
+      loading: true,
110 105
       form: {
111 106
         userId: undefined,
112 107
         nickName: '',
@@ -114,9 +109,11 @@ export default {
114 109
           deptName: ''
115 110
         }
116 111
       },
112
+      userInfo: [],
117 113
       postOptions: [],
118 114
       postData: '',
119
-      activeName: '1'
115
+      activeName: '2',
116
+      avatar: ''
120 117
     }
121 118
   },
122 119
   methods: {
@@ -124,8 +121,82 @@ export default {
124 121
       getUser(id).then(res => {
125 122
         this.postOptions = res.posts;
126 123
         if (res.data) {
124
+        this.avatar =  (res.data.avatar == "" || res.data.avatar == null) ? require("@/assets/images/user.png") : process.env.VUE_APP_BASE_API + res.data.avatar;
127 125
           this.form = res.data;
128 126
           this.formartForm(res);
127
+          this.userInfo = [
128
+            {
129
+              label: '技术职称:',
130
+              icon: 'titles',
131
+              value: this.form.titles != null ? this.selectDictLabels(this.dict.type.sys_user_titles, this.form.titles, ',') : ''
132
+            },
133
+            {
134
+              label: '执业证书:',
135
+              icon: 'certificate',
136
+              value: this.form.certificates != null ? this.selectDictLabels(this.dict.type.sys_user_certificates, this.form.certificates, ',') : ''
137
+            },
138
+            {
139
+              label: '工程师岗级:',
140
+              icon: 'engineer',
141
+              value: this.selectDictLabel(this.dict.type.sys_user_engineerlevel, this.form.engineerLevel)
142
+            },
143
+            {
144
+              label: '技工等级:',
145
+              icon: 'operator',
146
+              value: this.selectDictLabel(this.dict.type.sys_user_operatorlevel, this.form.operatorLevel)
147
+            },
148
+            {
149
+              label: '项目经理级别:',
150
+              icon: 'pmLevel',
151
+              value: this.selectDictLabel(this.dict.type.sys_user_pmlevel, this.form.pmLevel)
152
+            },
153
+            {
154
+              label: '身份证号码:',
155
+              icon: 'idCard',
156
+              value: this.form.idCard
157
+            },
158
+            {
159
+              label: '籍贯:',
160
+              icon: 'place',
161
+              value: this.form.nativePlace
162
+            },
163
+            {
164
+              label: '政治面貌:',
165
+              icon: 'politicalAffiliation',
166
+              value: this.selectDictLabels(this.dict.type.sys_user_political, this.form.politicalAffiliation, ',')
167
+            },
168
+            {
169
+              label: '民族:',
170
+              icon: 'flower',
171
+              value: this.form.ethnic
172
+            },
173
+            {
174
+              label: '毕业院校:',
175
+              icon: 'school',
176
+              value: this.form.graduateSchool
177
+            },
178
+            {
179
+              label: '专业:',
180
+              icon: 'major',
181
+              value: this.form.major
182
+            },
183
+            {
184
+              label: '学历:',
185
+              icon: 'degree',
186
+              value: this.selectDictLabel(this.dict.type.sys_user_degree, this.form.degree)
187
+            },
188
+            {
189
+              label: '合同签订:',
190
+              icon: 'contractSign',
191
+              value: this.parseTime(this.form.contractSign, '{y}-{m}-{d}')
192
+            },
193
+            {
194
+              label: '合同期满:',
195
+              icon: 'contractExpire',
196
+              value: this.parseTime(this.form.contractExpire, '{y}-{m}-{d}')
197
+            },
198
+          ]
199
+          this.loading =false;
129 200
         }
130 201
       })
131 202
     },
@@ -133,8 +204,6 @@ export default {
133 204
       if (this.$route.query) {
134 205
         this.form.userId = this.$route.query.userId
135 206
         this.form.nickName = this.$route.query.nickName
136
-        this.form.certificates = this.$route.query.certificates
137
-        this.form.postSalary = this.$route.query.postSalary
138 207
       }
139 208
       let postArr = [];
140 209
       for (let post of res.posts) {
@@ -194,7 +263,7 @@ export default {
194 263
 <style lang="scss" scoped>
195 264
 .bg {
196 265
   background-color: #F0F2F5;
197
-  height: 100vh;
266
+  height: 1000px;
198 267
 }
199 268
 
200 269
 .header {
@@ -219,16 +288,17 @@ export default {
219 288
 
220 289
 .userInfo {
221 290
   background-color: #fff;
222
-  height: 650px;
291
+  // height: 800px;
223 292
   margin-right: 40px;
293
+  padding: 5px;
224 294
 
225 295
   .avatar {
226 296
     text-align: center;
227 297
 
228 298
     // padding: 10px 0;
229 299
     .user-avatar {
230
-      width: 150px;
231
-      height: 150px;
300
+      width: 130px;
301
+      height: 130px;
232 302
       border-radius: 50%;
233 303
     }
234 304
 
@@ -260,9 +330,11 @@ export default {
260 330
     }
261 331
 
262 332
     .item-label {
263
-      max-width: 120px;
333
+      max-width: 150px;
264 334
       display: flex;
265 335
       align-items: center;
336
+      font-family: '微软雅黑';
337
+      font-weight: bold;
266 338
       // text-align: right;
267 339
       // display: inline-block;
268 340
     }
@@ -276,7 +348,7 @@ export default {
276 348
 
277 349
 .stateInfo {
278 350
   background-color: #fff;
279
-  height: 650px;
351
+  height: 800px;
280 352
   padding: 10px 30px 0;
281 353
 }
282 354
 </style>

正在加载...
取消
保存