Kaynağa Gözat

人员绩效

yuhan 1 yıl önce
ebeveyn
işleme
a1e23e27a5

+ 51 - 30
itdmWeb/src/views/module-iTDM/itdmYeWu/itdmGcShishi.vue

@@ -2,33 +2,56 @@
   <div>
     <div class="head">第三部分 项目过程实施</div>
     <table class="main-table">
-      <tr>
-        <td class="title" style="width: 100px">姓名</td>
-        <td class="content" style="width: 540px" colspan="2">
-          <div style="width: 540px"></div>
+      <tr v-for="(item, index) in tableData.assessmentLog" :key="index">
+        <!-- <td :rowspan="12" style="width: 80px">项目成员<br/>考核日志</td> -->
+        <td class="title" style="width: 100px">
+          <div>{{ tableData.assessmentLog.length }}</div>
+          <input v-model="item.name" style="width: 80px;text-align: center" />
         </td>
-        <td class="content" style="width: 450px">量化积分
-          <input v-model="tableData.shuruLeixing" style="text-align: center" />
+        <td class="content" colspan="3">
+          <table>
+            <thead>
+              <td style="width: 80px;">序号</td>
+              <td style="width: 80px;">日期</td>
+              <td style="width: 80px;">工时</td>
+              <td style="width: 80px;">强度</td>
+              <td style="width: 80px;">工作量</td>
+              <td style="width: 80px;">告知数</td>
+              <td style="width: 80px;">差错数</td>
+              <td style="width: 80px;">催促数</td>
+              <td style="width: 80px;">警告数</td>
+              <!-- <td style="width: 60px">操作</td> -->
+            </thead>
+            <tr>
+              <td>1</td>
+              <td><input style="width: 80px;" v-model="item.resultData.date" /></td>
+              <td><input style="width: 80px;" v-model="item.resultData.gongshi" /></td>
+              <td><input style="width: 80px;" v-model="item.resultData.qiangdu" /></td>
+              <td><input style="width: 80px;" v-model="item.resultData.gongzuoliang" /></td>
+              <td><input style="width: 80px;" v-model="item.resultData.gaozhiNum" /></td>
+              <td><input style="width: 80px;" v-model="item.resultData.chacuoNum" /></td>
+              <td><input style="width: 80px;" v-model="item.resultData.cuicuNum" /></td>
+              <td><input style="width: 80px;" v-model="item.resultData.jinggaoNum" /></td>
+              <!-- <td><div class="delBtn" @click="delRow(index)" v-show="tableData.cleanPrice.length >= 2">删除</div></td> -->
+            </tr>
+          </table>
         </td>
+        <td class="content" style="width: 100px">量化积分</td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">非考核支持人员</td>
-        <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+        <td class="title" style="width: 80px">非考核<br/>支持人员</td>
+        <td class="content" style="width: 100px">
         </td>
-        <td class="title white" style="width: 100px">项目成员 考核汇总</td>
-        <td class="content" style="width: 450px">
-          <input v-model="tableData.shuruLeixing" style="text-align: center" />
+        <td class="title white" style="width: 80px">项目成员<br/>考核汇总</td>
+        <td class="content" style="width: 100px" colspan="2">
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">项目完工申请</td>
-        <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+        <td class="title" style="width: 80px">项目完工<br/>申请</td>
+        <td class="content" style="width: 100px">
         </td>
-        <td class="title white" style="width: 100px">提交人</td>
-        <td class="content" style="width: 450px">
-          <input v-model="tableData.shuruLeixing" style="text-align: center" />
+        <td class="title white" style="width: 80px">提交人</td>
+        <td class="content" style="width: 100px" colspan="2">
         </td>
       </tr>
     </table>
@@ -37,18 +60,16 @@
 
 <script>
 export default {
-    name: 'itdmGcShishi',
-    data() {
-        return {
-            tableData: {
-              cleanPrice: [
-                {
-                  total: 0,
-                },
-              ],
-            },
-        }
-    },
+  name: 'itdmGcShishi',
+  data() {
+    return {
+      tableData: {
+        assessmentLog: [
+          { name: '', resultData: {} }
+        ]
+      },
+    }
+  },
 }
 </script>
 

+ 236 - 62
itdmWeb/src/views/module-iTDM/itdmYeWu/itdmXnJiesuan.vue

@@ -3,123 +3,132 @@
     <div class="head">第五部分 试验虚拟结算</div>
     <table class="main-table">
       <tr>
-        <td class="title" style="width: 100px">核准 虚拟结算额</td>
+        <td rowspan="6" style="width: 100px">市场部<br/>核准</td>
+        <td class="title" style="width: 100px">核准<br/>虚拟结算额</td>
         <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+          <div>
+            <div v-for="(item, index) in tableData.xnJiesuanE" :key="index">{{ item.name }}:{{ item.amount }};</div>
+          </div>
         </td>
-        <td class="title white" style="width: 100px">核准 虚拟结算毛利</td>
-        <td class="content" style="width: 450px">
-          <input v-model="tableData.shuruLeixing" style="text-align: center" />
+        <td class="title white" style="width: 100px">核准<br/>虚拟结算毛利</td>
+        <td class="content">
+          <!-- <input v-model="tableData.xnMaoli" style="text-align: center" /> -->
+          <div>
+            <div v-for="(item, index) in tableData.xnJiesuanE" :key="index">{{ item.name }}:{{ item.amount * 0.8 }};</div>
+          </div>
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">核准 合同总额</td>
+        <td class="title" style="width: 100px">核准<br/>合同总额</td>
         <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+          <input v-model="tableData.hetongZonge" style="text-align: center" />
         </td>
-        <td class="title white" style="width: 100px">核准 外协外购</td>
-        <td class="content" style="width: 450px">
-          <input v-model="tableData.shuruLeixing" style="text-align: center" />
+        <td class="title white" style="width: 100px">核准<br/>外协外购</td>
+        <td class="content" style="width: 350px">
+          <input v-model="tableData.waixieWaigou" style="text-align: center" />
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">销售提成 基数</td>
+        <td class="title" style="width: 100px">销售提成<br/>基数</td>
         <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+          
         </td>
         <td class="title white" style="width: 100px">项目满意度</td>
-        <td class="content" style="width: 450px">
+        <td class="content" style="width: 350px">
           <input v-model="tableData.shuruLeixing" style="text-align: center" />
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">项目计算标准</td>
+        <td class="title" style="width: 100px">项目计算<br/>标准</td>
         <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+          <div>
+            <div>虚拟结算量化标准</div>
+            <div>0-5万:5%</div>
+            <div>5-10万:4%</div>
+            <div>10-50万:3%</div>
+            <div>50万以上:2%</div>
+          </div>
         </td>
-        <td class="title white" style="width: 100px">项目绩效 基数计算</td>
-        <td class="content" style="width: 450px">
-          <input v-model="tableData.shuruLeixing" style="text-align: center" />
+        <td class="title white" style="width: 100px">项目绩效<br/>基数计算</td>
+        <td class="content" style="width: 350px">
+          <el-table :data="jixiaoData" style="width: 100%">
+            <el-table-column type="index" label="序号"></el-table-column>
+            <!-- <el-table-column prop="type" label="试验类型"></el-table-column> -->
+            <el-table-column prop="name" label="试验类型"></el-table-column>
+            <el-table-column prop="fenduan" label="合同分段"></el-table-column>
+            <el-table-column prop="bili" label="分段比例"></el-table-column>
+            <el-table-column prop="ticheng" label="分段提成"></el-table-column>
+            <el-table-column prop="yue" label="分段余额"></el-table-column>
+          </el-table>
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">项目得分(百分制)</td>
+        <td class="title" style="width: 100px">项目得分<br/>(百分制)</td>
         <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+          <!-- <itdm-device-run-list></itdm-device-run-list> -->
         </td>
         <!-- <td class="content" style="width: 100px" colspan="2"></td> -->
-        <td class="title white" style="width: 100px">虚拟结算 绩效总额</td>
-        <td class="content" style="width: 450px">
-          <input v-model="tableData.shuruLeixing" style="text-align: center" />
+        <td class="title white" style="width: 100px">虚拟结算<br/>绩效总额</td>
+        <td class="content" style="width: 350px">
+          <div v-for="(item, index) in jixiaoZonge" :key="index">{{ item }}</div>
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">
-            <div>市场部核准</div>
-            <div>核准结论</div>
-        </td>
+        <td class="title" style="width: 100px">核准结论</td>
         <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+          <div></div>
         </td>
         <!-- <td class="content" style="width: 100px" colspan="2"></td> -->
         <td class="title white" style="width: 100px">核准人	</td>
-        <td class="content" style="width: 450px">
+        <td class="content" style="width: 350px">
           <input v-model="tableData.shuruLeixing" style="text-align: center" />
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">
-            <div>工程技术部核准</div>
-            <div>核准结论</div>
-        </td>
+        <td class="title" style="width: 100px; background-color: #E5E0EC;">工程技术部<br/>核准</td>
+        <td class="title" style="width: 100px">核准结论</td>
         <td class="content" style="width: 360px; background-color: #E5E0EC;">
-          <div style="width: 440px"></div>
+          <div></div>
         </td>
         <!-- <td class="content" style="width: 100px" colspan="2"></td> -->
         <td class="title white" style="width: 100px">核准人	</td>
-        <td class="content" style="width: 450px; background-color: #E5E0EC;">
+        <td class="content" style="width: 350px; background-color: #E5E0EC;">
           <input v-model="tableData.shuruLeixing" style="text-align: center" />
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">
-            <div>财务部核准</div>
-            <div>核准结论</div>
-        </td>
+        <td class="title" style="width: 100px; background-color: #F2DCDB;">财务部<br/>核准</td>
+        <td class="title" style="width: 100px">核准结论</td>
         <td class="content" style="width: 360px; background-color: #F2DCDB;">
-          <div style="width: 440px"></div>
+          <div></div>
         </td>
         <!-- <td class="content" style="width: 100px" colspan="2"></td> -->
         <td class="title white" style="width: 100px">核准人	</td>
-        <td class="content" style="width: 450px; background-color: #F2DCDB;">
+        <td class="content" style="width: 350px; background-color: #F2DCDB;">
           <input v-model="tableData.shuruLeixing" style="text-align: center" />
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">
-            <div>总经理审批</div>
-            <div>批准结论</div>
-        </td>
+        <td class="title" style="width: 100px; background-color: #E5B9B7;">总经理审批</td>
+        <td class="title" style="width: 100px">批准结论</td>
         <td class="content" style="width: 360px; background-color: #E5B9B7;">
-          <div style="width: 440px"></div>
+          <div></div>
         </td>
         <!-- <td class="content" style="width: 100px" colspan="2"></td> -->
         <td class="title white" style="width: 100px">总经理	</td>
-        <td class="content" style="width: 450px; background-color: #E5B9B7;">
+        <td class="content" style="width: 350px; background-color: #E5B9B7;">
           <input v-model="tableData.shuruLeixing" style="text-align: center" />
         </td>
       </tr>
       <tr>
-        <td class="title" style="width: 100px">
-            <div>归档</div>
-            <div>合同信息</div>
-        </td>
+        <td class="title" style="width: 100px; background-color: #DBEEF3;">归档</td>
+        <td class="title" style="width: 100px">合同信息</td>
         <td class="content" style="width: 360px">
-          <div style="width: 440px"></div>
+          <div></div>
         </td>
         <!-- <td class="content" style="width: 100px" colspan="2"></td> -->
         <td class="title white" style="width: 100px">核准人	</td>
-        <td class="content" style="width: 450px">
+        <td class="content" style="width: 350px">
           <input v-model="tableData.shuruLeixing" style="text-align: center" />
         </td>
       </tr>
@@ -129,18 +138,183 @@
 
 <script>
 export default {
-    name: 'itdmXnJiesuan',
-    data() {
-        return {
-            tableData: {
-              cleanPrice: [
-                {
-                  total: 0,
-                },
-              ],
+  name: 'itdmXnJiesuan',
+  data() {
+    return {
+      tableData: {
+        xnJiesuanE: [
+          { type: 0, name: '气候试验', amount: 50000 },
+          { type: 1, name: '力学试验', amount: 510000 },
+          { type: 2, name: '重要/非标试验', amount: 100000 },
+        ],
+        jixiaoData: [],
+        jixiaoZonge: null
+      },
+    }
+  },
+  computed: {
+    jixiaoData(){
+      var dataLists = []
+      for (let i = 0; i < this.tableData.xnJiesuanE.length; i++) {
+        const item = this.tableData.xnJiesuanE[i];
+        const money = item.amount * 0.8
+        if(money > 500000){
+          // 50万以上
+          console.log(money+':50万以上')
+          var arr = [
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.05,
+              ticheng: 50000 * 0.05,
+              yue: 50000
+            },
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.04,
+              ticheng: 50000 * 0.04,
+              yue: 50000
             },
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.03,
+              ticheng: 400000 * 0.03,
+              yue: 400000
+            },
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.02,
+              ticheng: (money - 500000) * 0.02,
+              yue: money - 500000
+            },
+          ]
+          dataLists.push(...arr)
+        } else if (money > 100000){
+          // 10万-50万之间
+          console.log(money+':10万-50万之间')
+          var arr = [
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.05,
+              ticheng: 50000 * 0.05,
+              yue: 50000
+            },
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.04,
+              ticheng: 50000 * 0.04,
+              yue: 50000
+            },
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.03,
+              ticheng: (money - 100000) * 0.03,
+              yue: money - 100000
+            },
+          ]
+          dataLists.push(...arr)
+        } else if (money > 50000){
+          // 5万-10万(包含)之间
+          console.log(money+':5万-10万(包含)之间')
+          var arr = [
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.05,
+              ticheng: 50000 * 0.05,
+              yue: 50000
+            },
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.04,
+              ticheng: (money - 50000) * 0.04,
+              yue: money - 50000
+            },
+          ]
+          dataLists.push(...arr)
+        } else if (money >= 0){
+          // 0-5万(包含)之间
+          console.log(money+':0-5万(包含)之间')
+          var arr = [
+            {
+              type: item.type,
+              name: item.name,
+              fenduan: item.fenduan,
+              bili: 0.05,
+              ticheng: money * 0.05,
+              yue: money
+            },
+          ]
+          dataLists.push(...arr)
         }
+      }
+      return dataLists
     },
+    jixiaoZonge(){
+      console.log(this.jixiaoData)
+      
+      let totalArr = []
+      let total = 0
+
+      var arr0 = this.jixiaoData.filter(res => res.type === 0)
+      var arr1 = this.jixiaoData.filter(res => res.type === 1)
+      var arr2 = this.jixiaoData.filter(res => res.type === 2)
+      
+      // 默认传如一个参数0,prev的第一项就是0,每次加上下一次的价格即可
+      let total0 = 0
+      let total1 = 0
+      let total2 = 0
+      if(arr0.length > 0){
+        var d = arr0.reduce((prev, next) => {
+          console.log(prev, next)
+          return prev + next.ticheng
+        }, 0)
+        total0 = d * 0.4
+        totalArr.push(`气候试验:${total0};`)
+        total = total + total0
+      }
+      if(arr1.length > 0){
+        var d = arr1.reduce((prev, next) => {
+          console.log(prev, next)
+          return prev + next.ticheng
+        }, 0)
+        total1 = d * 0.7
+        totalArr.push(`力学试验:${total1};`)
+        total = total + total1
+      }
+      if(arr2.length > 0){
+        var d = arr2.reduce((prev, next) => {
+          console.log(prev, next)
+          return prev + next.ticheng
+        }, 0)
+        total2 = d * 1
+        totalArr.push(`重要/非标试验:${total2};`)
+        total = total + total2
+      }
+      totalArr.push(`总计:${total};`)
+      // console.log(total)
+      return totalArr
+    }
+  },
+  methods: {
+    
+  },
 }
 </script>