소스 검색

2022.7.26 合同金额

ggooalice 2 년 전
부모
커밋
c366b20ff2
2개의 변경된 파일148개의 추가작업 그리고 6개의 파일을 삭제
  1. 145 3
      fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue
  2. 3 3
      fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

+ 145 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue

@@ -22,7 +22,11 @@
                         <el-col :span="5" ><span class="gray_label">项目编号: </span></el-col><el-col :span="7" ><span >{{project.projectCode}}&nbsp;</span></el-col>
                         <el-col :span="5" v-if="permissions.projectContract"><span class="gray_label">合同金额:</span></el-col>
                         <el-col :span="7" >
-                        <span v-if="permissions.projectContract">{{project.contractAmount == null?'-':project.contractAmount | numberToCurrency}} 元</span></el-col>
+                        <span style="float:left;" v-if="permissions.projectContract">{{project.contractAmount == null?'-':project.contractAmount | numberToCurrency}} 元</span>
+                        <el-link v-if="user.id == project.creatorId || user.id == project.inchargerId" @click="contractRecord" style="float:left;"><i class="iconfont firerock-iconrecord"></i></el-link>
+                        <el-link v-if="user.id == project.creatorId || user.id == project.inchargerId" @click="contractChange" style="float:right;"><i class="el-icon-edit"  ></i></el-link>
+                        </el-col>
+                        
                     </el-row>
                     <el-row :gutter="10">
                         <el-col :span="5" ><span class="gray_label">项目级别: </span></el-col><el-col :span="7" ><span >{{levelTxt[project.level]}}</span></el-col>
@@ -181,6 +185,50 @@
             </div>
         </el-dialog>
 
+        <!-- 修改合同金额 -->
+        <el-dialog title="修改合同金额" v-if="contractDialog" :visible.sync="contractDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
+            <el-form ref="contractForm" :model="contractData" :rules="contractRules" label-width="120px">
+                <el-form-item label="原合同金额"><span>{{contractData.oldContractAmount == null?'-':contractData.oldContractAmount | numberToCurrency}}(单位:元)</span></el-form-item>
+                <el-form-item label="修改金额" prop="contractAmount">
+                    <el-select v-model="contractData.addordelete" style="width:20%">
+                        <el-option label="增加" :value="1"></el-option>
+                        <el-option label="减少" :value="0"></el-option>
+                    </el-select>
+                    <el-input style="width:79%" v-model="contractData.contractAmount" id="contractChange" placeholder="" clearable @keyup.native="restrictNumber('contractChange')"></el-input>
+                </el-form-item>
+                <el-form-item label="修改原因">
+                    <el-input type="textarea" :rows="2" v-model="contractData.contractAmountDesc" maxlength="200" show-word-limit placeholder="请输入修改原因" clearable></el-input>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click.native="contractDialog = false">取消</el-button>
+                <el-button type="primary" @click="contractChangeSure" :loading="addLoading">提交</el-button>
+            </div>
+        </el-dialog>
+
+        <!-- 合同金额修改记录 -->
+        <el-dialog title="合同金额修改记录" v-if="contractRecordDialog" :visible.sync="contractRecordDialog" :close-on-click-modal="false" customClass="customWidth" width="900px">
+            <el-table :data="contractRecordData" height="400px" :loading="contractRecordLoading">
+                <el-table-column label="操作人" prop="name" min-width="60">
+                    <template slot-scope="scope">
+                        <span>{{users.filter(item => item.id == scope.row.editUserId)[0].name}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="修改时间" prop="date" min-width="120">
+                    <template slot-scope="scope">
+                        <span>{{scope.row.updateDate[0] + '-' + scope.row.updateDate[1] + '-' + scope.row.updateDate[2] + '\u3000' + scope.row.updateDate[3] + ':' + scope.row.updateDate[4] + ':' + scope.row.updateDate[5]}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="修改情况" prop="record" min-width="120">
+                    <template slot-scope="scope">
+                        <span>{{scope.row.oldContractAmount - scope.row.newContractAmount > 0 ? '减少' : '增加'}}</span>
+                        <span>{{scope.row.oldContractAmount - scope.row.newContractAmount > 0 ? (scope.row.oldContractAmount - scope.row.newContractAmount).toFixed(2) : (scope.row.newContractAmount - scope.row.oldContractAmount).toFixed(2)}}元</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="修改原因" prop="reason" min-width="180"></el-table-column>
+            </el-table>
+        </el-dialog>
+
         
         <!--编辑基本信息界面-->
         <el-dialog title="项目基本信息" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
@@ -199,8 +247,8 @@
                         <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;">合同金额</span>
-                    <el-input v-model="addForm.contractAmount"  id="contractAmount"  style="width:32%;"
-                    placeholder="整数" clearable @keyup.native="restrictNumber('contractAmount')"></el-input><span style="margin-left:10px;">元</span>
+                    <el-input v-model="addForm.contractAmount" id="contractAmount" :disabled="true" style="width:32%;"
+                    placeholder="" clearable @keyup.native="restrictNumber('contractAmount')"></el-input><span style="margin-left:10px;">元</span>
                 </el-form-item>
                 <el-form-item label="开始日期" prop="planStartDate">
                     <el-date-picker v-model="addForm.planStartDate" 
@@ -470,9 +518,21 @@
                 rules: {
                     name: [{ required: true, message: "请输入项目名称", trigger: "blur" }],
                 },
+                contractRules: {
+                    contractAmount: [{ required: true, message: "请输入合同金额", trigger: "blur" }]
+                },
                 yonghuUser: [],
                 ause: [], // 研究中心总数据
                 auseList: [], // 选中的研究中心
+
+
+                contractDialog: false,
+                contractData: {},
+                contractRecordDialog: false,
+                contractRecordLoading: false,
+                contractRecordData: [
+                    {name:'张三',date:'2022-07-26',record:'1000.00 改为 2000.00',text:'测试'}
+                ]
             };
         },
         filters: {
@@ -492,6 +552,88 @@
             }
         },
         methods: {
+            // 修改合同金额:参数
+            //      oldContractAmount   原合同金额(看你要不要)
+            //      contractAmount      修改后金额
+            //      contractAmountDesc  修改原因(非必填)
+            //      id                  项目id
+            // 获取修改记录:操作人、修改时间、修改情况(增加还是减少 多少金额)、本次修改后的合同金额、修改原因
+            // 修改合同金额
+            contractChange(){
+                let data = JSON.parse(JSON.stringify(this.project));
+                this.contractData.id = data.id
+                this.$set(this.contractData,'oldContractAmount',data.contractAmount)
+                this.$set(this.contractData,'contractAmount',0)
+                this.$set(this.contractData,'contractAmountDesc','')
+                this.$set(this.contractData,'addordelete',1)
+                this.contractDialog = true
+            },
+            contractChangeSure(){
+                this.$refs.contractForm.validate(valid => {
+                    if (valid) {
+                        this.addLoading = true
+                        let parameter = {
+                            projectId: this.contractData.id,
+                            oldContractAmount: this.contractData.oldContractAmount
+                        }
+                        if(this.contractData.addordelete){
+                            parameter.newContractAmount = this.contractData.oldContractAmount*1 + this.contractData.contractAmount*1
+                        }else{
+                            parameter.newContractAmount =  this.contractData.oldContractAmount*1 - this.contractData.contractAmount*1
+                        }
+                        if(this.contractData.contractAmountDesc.trim()){
+                            parameter.reason = this.contractData.contractAmountDesc.trim()
+                        }
+                        this.http.post('/project/modifyContract',parameter,
+                        res => {
+                            this.addLoading = false
+                            if(res.code == 'ok'){
+                                this.contractDialog = false
+                                this.$message({
+                                    message: '修改成功',
+                                    type: 'success'
+                                })
+                                this.getProjectInfo()
+                            }else {
+                                this.$message({
+                                    message: res.msg,
+                                    type: 'error'
+                                })
+                            }
+                        },err => {
+                            this.addLoading = false
+                            this.$message({
+                                message: err,
+                                type: 'error'
+                            })
+                        })
+                    }})
+            },
+            contractRecord(){   //修改记录
+                this.contractRecordDialog = true
+                this.contractRecordLoading = true
+                this.http.post('/contract-modify-record/list',{
+                    projectId: this.project.id
+                },res => {
+                    this.contractRecordLoading = false
+                    if(res.code == 'ok'){
+                        this.contractRecordData = res.data
+                    }else {
+                        this.$message({
+                            message: res.msg,
+                            type: 'error'
+                        })
+                    }
+                },err => {
+                    this.contractRecordLoading = false
+                    this.$message({
+                        message: err,
+                        type: 'error'
+                    })
+                })
+            },
+
+
             yanjiuzx() {
                 this.http.post('/report-extra-degree/getAll ',{},
                 res => {

+ 3 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -241,10 +241,10 @@
                     <el-input v-model="addForm.name" :maxlength="40" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id" placeholder="请输入任务内容" clearable></el-input>
                 </el-form-item>
                 
-                <el-form-item label="开始时间" prop="startDate">
+                <el-form-item :label="addForm.taskType == 1 ? '截至时间' : '开始时间'" :prop="addForm.taskType == 1 ? 'endDate' : 'startDate'">
                     <el-date-picker v-model="addForm.startDate" type="date" style="width:40%;" value-format="yyyy-MM-dd"  
-                    placeholder="请选择日期" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id"></el-date-picker>
-                    <span style="margin-left:30px;margin-right:10px;">截止时间</span>
+                    placeholder="请选择日期" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id" v-if="addForm.taskType != 1"></el-date-picker>
+                    <span style="margin-left:30px;margin-right:10px;" v-if="addForm.taskType != 1">截止时间</span>
                     <el-date-picker v-model="addForm.endDate" type="date" value-format="yyyy-MM-dd"  
                     placeholder="请选择日期" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id"></el-date-picker>
                     </el-form-item>