Browse Source

confilct solved

seyason 4 years ago
parent
commit
e9791b139e

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/config/index.js

@@ -1,6 +1,6 @@
 var path = require('path')
 
-var ip = '127.0.0.1'
+var ip = '192.168.2.21'
 
 // var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
 // for (var i in ifaces) {

+ 108 - 9
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -116,9 +116,16 @@
                     <el-select v-model="addForm.level"  placeholder="请选择级别" style="width:32%;" >
                         <el-option v-for="item in importanceList" :key="item.id" :label="item.label" :value="item.id"></el-option>
                     </el-select>
-                    <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">项目预算</span>
+                    <!-- <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">项目预算</span>
                     <el-input v-model="addForm.budget"    style="width:32%;"
-                    placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span>
+                    placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span> -->
+
+                <!-- 增加合同金额字段 -->
+                        <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">合同金额</span>
+                        <el-input v-model="addForm.contractAmount" style="width:33%;"
+                        placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span>
+                <!-- 增加合同金额字段 -->   
+
                 </el-form-item>
                 <el-form-item label="开始日期" prop="planStartDate" v-if="user.company.packageProject==1" >
                     <el-date-picker v-model="addForm.planStartDate" 
@@ -136,9 +143,53 @@
                      :clearable="false" type="date" 
                      placeholder="选择日期"></el-date-picker>
                 </el-form-item>
-               
+            <!-- 项目基线 -->
+                <!-- <div style="width: 100%;border: 1px solid #ddd"></div> -->
+                <el-divider ></el-divider>
+                <div style="margin: 20px 0 30px 0">
+                    <span class="el-dialog__title">成本基线</span>
+                </div>
+            <!-- 人工成本 -->
+            <span class="rg_span">
+                <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">人工成本</span>
+                <el-input @input="addUpfun(addForm.baseMan)" v-model="addForm.baseMan" style="width:22%; margin-bottom: 20px"
+                placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span>
+            </span>
+            <!-- 费用 -->
+            <span class="rg_span">
+                <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">费用</span>
+                <el-input @input="addUpfun(addForm.baseFee)" v-model="addForm.baseFee" style="width:22%;"
+                placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span>
+            </span>
+            <!-- 外包费用 -->
+            <div class="rg_span">
+                <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">外包费用</span>
+                <el-input @input="addUpfun(addForm.baseOutsourcing)" v-model="addForm.baseOutsourcing" style="width:22%;"
+                placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span>
+            </div>
+            <!-- 预留风险金额1 -->
+            <div style="margin-bottom: 20px">
+                <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">预留风险金额1</span>
+                <el-input @input="addUpfun(addForm.baseRisk1)" v-model="addForm.baseRisk1" style="width:22%;"
+                placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span>
+            </div>
+            <!-- 预留风险金额2 -->
+            <div style="margin-bottom: 20px">
+                <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">预留风险金额2</span>
+                <el-input @input="addUpfun(addForm.baseRisk2)" v-model="addForm.baseRisk2" style="width:22%;"
+                placeholder="整数" clearable @keyup.native="number"></el-input><span style="margin-left:10px;">元</span>
+            </div>
+            <!-- 合计 -->
+            <div style="margin-bottom: 20px">
+                <span style="margin-left:50px;margin-right:10px;" v-if="user.company.packageProject==1">合计</span>
+                 <span v-if="addForm.budget <= 0 || addForm.budget == undefined">0</span>
+                 <span>{{addForm.budget}}</span>
+                <span style="margin-left:10px;">元</span>
+            </div>
+
+
             </el-form>
-            <div slot="footer" class="dialog-footer">
+            <div slot="footer" class="dialog-footer;">
                 <el-button @click.native="addFormVisible = false">取消</el-button>
                 <el-button type="primary" @click="submitInsert" :loading="addLoading">提交</el-button>
             </div>
@@ -235,6 +286,7 @@
                 addSubProject: false,
                 addFormVisible: false,
                 addLoading: false,
+                addUp: 0, // 合计
                 title: "",
                 addForm: {
                     name: '',
@@ -248,8 +300,8 @@
         },
         methods: {
             number(){  
-             this.addForm.budget = this.addForm.budget.replace(/[^\.\d]/g,'');
-                this.addForm.budget = this.addForm.budget.replace('.','');
+        //      this.addForm.budget = this.addForm.budget.replace(/[^\.\d]/g,'');
+        //         this.addForm.budget = this.addForm.budget.replace('.','');
           },
             deleteSubPro(subProject) {
                 this.$confirm("确定要删除子项目" + subProject.name + "吗?","删除子项目", {
@@ -293,6 +345,7 @@
                 this.getList();
             },
             addNewSubProject(subProject) {
+                console.log(123);
                 if (subProject == null) {
                     this.addForm = {projectId: this.currentProject.id, level:1}
                 } else {
@@ -351,6 +404,7 @@
             changeParticipator() {
                 //检查是否在参与人中,如果没有需要加入到参与人中
                 console.log(this.addForm.userId);
+                console.log(this.addForm)
                 var find = false;
                 this.participator = [];
                 this.addForm.userId.forEach(u=>{
@@ -465,6 +519,12 @@
                         planStartDate: item.planStartDate,
                         planEndDate: item.planEndDate,
                         budget: item.budget,
+                        baseMan: item.baseMan,
+                        contractAmount: item.contractAmount,
+                        baseFee: item.baseFee,
+                        baseRisk1: item.baseRisk1,
+                        baseRisk2: item.baseRisk2,
+                        baseOutsourcing: item.baseOutsourcing
                     }
                     this.changeParticipator();
                 }
@@ -502,6 +562,19 @@
                         }
                 });
             },
+            // 项目基线合计
+            addUpfun(je) {
+                var q = '0'
+                var w = '0'
+                var e = '0'
+                var r = '0'
+                this.addForm.baseMan === undefined || this.addForm.baseMan === NaN ? this.addForm.baseMa = '0' : this.addForm.baseMan
+                if (this.addForm.baseFee !== undefined) q = this.addForm.baseFee
+                if (this.addForm.baseOutsourcing !== undefined) w = this.addForm.baseOutsourcing
+                if (this.addForm.baseRisk1 !== undefined) e = this.addForm.baseRisk1
+                if (this.addForm.baseRisk2 !== undefined) r = this.addForm.baseRisk2
+                this.addForm.budget = +this.addForm.baseMan + +q + +w + +e + +r
+            },
             submitInsert() {
                 this.$refs.form1.validate(valid => {
                     if (valid) {
@@ -531,10 +604,33 @@
                         if(this.addForm.level != null) {
                             formData.append("level", this.addForm.level);
                         }
-                        if(this.addForm.budget != null) {
-                            formData.append("budget", this.addForm.budget);
+                        if(this.addForm.contractAmount != null) {
+                            formData.append("contractAmount", this.addForm.contractAmount)
+                        }
+                        if(this.addForm.baseMan != null) { // 人工成本
+                            formData.append("baseMan", this.addForm.baseMan)
+                        }
+                        if(this.addForm.baseFee != null) { // 费用
+                            formData.append("baseFee", this.addForm.baseFee)
+                        }
+                        if(this.addForm.baseOutsourcing != null) { // 外包费用
+                            formData.append("baseOutsourcing", this.addForm.baseOutsourcing)
                         }
-                        
+                        if(this.addForm.baseRisk1 != null) { // 预留风险金额1
+                            formData.append("baseRisk1", this.addForm.baseRisk1)
+                        }
+                        if(this.addForm.baseRisk2 != null) { //预留风险金额1
+                            formData.append("baseRisk2", this.addForm.baseRisk2)
+                        }
+                         if(this.addForm.budget != null) { //预留风险金额1
+                            formData.append("budget", this.addForm.budget)
+                        }
+                        // 合计
+                        // if(this.addUp != null) {
+                        //     this.addForm.budget = this.addUp
+                        //     formData.append("budget", this.addForm.budget);
+                        // }
+                        console.log(this.addForm.budget, 123, this.addUp);
                         this.http.uploadFile(this.port.project.add,formData,
                         res => {
                             this.addLoading = false;
@@ -622,4 +718,7 @@
 </script>
 
 <style lang="scss" scoped>
+.rg_span{
+    margin-bottom: 20px;
+}
 </style>

+ 92 - 7
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -140,7 +140,7 @@
                                                 <el-button v-if="element.executorName == null" type="primary" @click.stop.native="addAsMyTask(element)" size="mini" style="float:right;width:38px;padding:5px;">认领</el-button>
                                             </div>
                                             <div style="margin: 10px 0px;color:#666;" @click="timess(element.endDate)">
-                                                <span v-if="element.endDate > times || element.taskStatus == 1"><i v-if="element.endDate != null" class="el-icon-date">&nbsp;&nbsp;{{element.endDate}}</i></span>
+                                                <span v-if="element.endDate >= times || element.taskStatus == 1"><i v-if="element.endDate != null" class="el-icon-date">&nbsp;&nbsp;{{element.endDate}}</i></span>
                                                 <span v-else class="element_span"><em v-if="element.endDate != null" style="display: inline-block;padding:3px 5px"><i v-if="element.endDate != null" class="el-icon-date">&nbsp;&nbsp;{{element.endDate}}  截止</i></em></span>
                                                 <i :class="taskTypeIcon[element.taskType]" :style="'float:right;color:'+taskTypeColor[element.taskType]+';margin-right:8px;'" ></i>
                                             </div>
@@ -200,11 +200,17 @@
                                     {{scope.row.executorName == null?"待分配":scope.row.executorName}}
                                 </template>
                             </el-table-column>
+                            <!-- <el-table-column prop="endDate" label="截止时间" width="100" ></el-table-column> -->
+                            <el-table-column prop="endDate" label="截止时间" width="100" >
+                                <template slot-scope="scope">
+                                    <p v-if="scope.row.endDate >= times">{{scope.row.endDate}}</p>
+                                    <p style="border-radius: 3px; text-align: center;background: #e62412; color: #fff;" v-else><span>{{scope.row.endDate}}</span></p>
+                                </template>
+                            </el-table-column>
                             <el-table-column prop="createDate" label="创建时间" width="100" ></el-table-column>
-                            <el-table-column prop="endDate" label="截止时间" width="100" ></el-table-column>
                             <el-table-column prop="taskLevel" label="优先级" width="100" >
                                 <template slot-scope="scope">
-                                    {{importanceList[scope.row.taskLevel].name}}
+                                   {{importanceList[scope.row.taskLevel].name}}
                                 </template>
                             </el-table-column>
                         </el-table>
@@ -263,6 +269,43 @@
                 <!-- 富文本 -->
                 <div v-if="addForm.id != null">
                     <el-divider ></el-divider>
+                    <!-- 任务进展 -->
+                    <p ><i class="iconfont firerock-icontree" style="color:#20A0ff;margin-left:10px;">任务进展</i>
+                        <span ref="addPro" style="display: block; float:right;"><el-link @click="addprogress">添加任务进展</el-link></span>
+                    </p>
+                    <!-- 任务进展展示 -->
+                    <div style="display: none;" ref="proBox" class="progress">
+                        <el-radio-group v-model="radio">
+                            <el-radio label="状态正常" value="0"> </el-radio>
+                            <el-radio label="风险提示" value="1"> </el-radio>
+                            <el-radio label="高度危险" value="2"> </el-radio>
+                        </el-radio-group>
+
+                        <el-input
+                        type="textarea"
+                        border="0"
+                        :autosize="{ minRows: 2, maxRows: 6}"
+                        placeholder="请输入详细进展描述"
+                        v-model="text2"
+                        style="margin:10px 0 0 0">
+                        </el-input>
+
+                        <h4 style="font-weight: normal;">提醒谁查看:0</h4>
+
+                        <i class="el-icon-circle-plus pron_i" style="font-size: 28px;color: #409EFF;"></i>
+
+                        <div class="remind">
+                            <el-checkbox-group v-model="checkedCities">
+                               <el-checkbox v-for="city in cityOptions" :label="city" :key="city"><p>{{city}}</p></el-checkbox>
+                            </el-checkbox-group>
+                        </div>
+
+                        <div class="pro_btn">
+                            <el-button size="mini" @click="shutPro">取消</el-button>
+                            <el-button size="mini" type="primary">发布</el-button>
+                        </div>
+                    </div>
+                    <!-- 子任务 -->
                     <p ><i class="iconfont firerock-icontree" style="color:#20A0ff;margin-left:10px;">子任务</i>
                         <el-link style="float:right;" @click="addSubTask">添加子任务</el-link>
                     </p>
@@ -290,7 +333,12 @@
                                     {{scope.row.executorName == null?"待分配":scope.row.executorName}}
                                 </template>
                             </el-table-column>
-                            <el-table-column prop="endDate" label="截止时间" width="100" ></el-table-column>
+                            <el-table-column prop="endDate" label="截止时间" width="100" >
+                                <template slot-scope="scope">
+                                    <p v-if="scope.row.endDate >= times">{{scope.row.endDate}}</p>
+                                    <p v-else style="background: #e62412; color: #fff;text-align: center; border-radius: 3px;">{{scope.row.endDate}}</p>
+                                </template>
+                            </el-table-column>
                         </el-table>
                     </div>
             </el-form>
@@ -574,6 +622,7 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
                 textarea2: '',
                 taskId: null,
                 commentList: [],
+                radio: 0,
                 critic: [], // 评论头像的数组
                 editorOption: { // 富文本框里面的默认值
                     placeholder: '请输入文本...',
@@ -604,10 +653,21 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
                 },
                 textContent: true, // 控制提交 
                 times: null,
+                text2: '',
+                cityOptions : ['渣渣灰', '渣渣灰', '渣渣灰', '渣渣灰','渣渣灰', '渣渣灰', '渣渣灰', '渣渣灰'],
+                checkedCities: []
             };
         },
         methods: {
-             load () {
+            addprogress(){ // 添加子任务进展事件
+                this.$refs.proBox.style.display="block"
+                this.$refs.addPro.style.display="none"
+            },
+            shutPro() { // 关闭任务进展
+                this.$refs.addPro.style.display="block"
+                this.$refs.proBox.style.display="none"
+            },
+            load () {
                  if(this.count >= 0) return
                 this.count += 2
             },
@@ -868,6 +928,7 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
                 res => {
                     if (res.code == "ok") {
                         this.taskDataList = res.data;
+                        console.log(this.taskDataList, '视图任务列表');
                         this.taskDataList.forEach(t=>{
                             t.isFinish = t.taskStatus==1?true:false;
                         });
@@ -1103,7 +1164,6 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
                 res => {
                     if (res.code == "ok") {
                         this.stageList = res.data;
-                        console.log(this.stageList, '加载项目内的任务列表');
                         this.timess() // 处理时间的方法
                     } else {
                         this.$message({
@@ -1125,7 +1185,6 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
                 let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)
                 let D = date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate()
                 this.times = `${Y}-${M}-${D}`
-                console.log(this.times);
             },
             addStagePost() {
                 let param = JSON.parse(JSON.stringify(this.stageForm));
@@ -1906,6 +1965,11 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
     border-radius: 5px;
 }
 
+.pro_btn{
+    display: inline-block;
+    float: right;
+}
+
 </style>
 <style lang="scss" scoped>
 .counli {
@@ -1985,6 +2049,10 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
     position: absolute;
     bottom: 85px;    
 }
+.scop_span {
+    display: inline-block;
+    padding: 2px 5px;
+}
 </style>
 <style>
 .ql-snow .ql-picker.ql-size .ql-picker-label::before,
@@ -2058,4 +2126,21 @@ toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backc
     position: relative;
     top: -6px;
 }
+
+/* 任务进展 */
+.progress {
+    border: 1px solid #ddd;
+    border-radius: 5px;
+    width: 100%;
+    box-sizing: border-box;
+    padding: 15px;
+    position: relative;
+}
+.remind {
+    width: 30%;
+    height: 100%;
+    position: absolute;
+    left: 0;
+    top: 0;
+}
 </style>