Ver código fonte

后端: 业务处室提交日常评价的相关bug修复

baichengfei 4 anos atrás
pai
commit
988b1e615b

+ 8 - 9
src/dashoo.cn/backend/api/controllers/oilcontract/contractEvaluationItems.go

@@ -118,9 +118,9 @@ func (this *OilContractEvaluationItemsController) GetTreeList() {
 	page := this.GetPageInfoForm()
 	orderby := "Id"
 	where := " ParentId = 0 "
-	Id      := this.GetString("ContentReviewId")     // 评价主表ID
-	Category:= this.GetString("Category","0")   // 类型  0 二级部门创建  1 专业处创建
-	Type    := this.GetString("Type","1")       //  项类型 1分值 2布尔
+	Id := this.GetString("ContentReviewId")     // 评价主表ID
+	Category := this.GetString("Category", "0") // 类型  0 二级部门创建  1 专业处创建		2专业处室分办发起
+	Type := this.GetString("Type", "1")         //  项类型 1分值 2布尔
 	if Id != "" {
 		where = where + " and ContentReviewId = '" + Id + "'"
 	}
@@ -150,7 +150,7 @@ func (this *OilContractEvaluationItemsController) GetTreeList() {
 		firstTmp.Category = value.Category
 
 		var list1 []contractEvaluationItems.OilContractEvaluationItems
-		where1 := "ContentReviewId ='" + Id +"' AND ParentId = " + strconv.Itoa(value.ItemId)
+		where1 := "ContentReviewId ='" + Id + "' AND ParentId = " + strconv.Itoa(value.ItemId)
 		if Category != "" {
 			where1 = where1 + " and Category = '" + Category + "'"
 		}
@@ -160,10 +160,10 @@ func (this *OilContractEvaluationItemsController) GetTreeList() {
 		svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, true, &list1, where1)
 		for _, v := range list1 {
 			var secTmp contractEvaluationItems.EvaluationItems
-			secTmp.Content  = v.Content
-			secTmp.Score    = v.Score
+			secTmp.Content = v.Content
+			secTmp.Score = v.Score
 			secTmp.ParentId = v.ParentId
-			secTmp.Id       = v.ItemId
+			secTmp.Id = v.ItemId
 			secTmp.SequenceNo = v.SequenceNo
 			secTmp.NormalScore = v.NormalScore
 			secTmp.Remark = v.Remark
@@ -171,7 +171,7 @@ func (this *OilContractEvaluationItemsController) GetTreeList() {
 			secTmp.Type = v.Type
 			secTmp.Value = v.Value
 			secTmp.ItemId = v.ItemId
-			secTmp.Category=v.Category
+			secTmp.Category = v.Category
 			firstTmp.Son = append(firstTmp.Son, secTmp)
 		}
 		result = append(result, firstTmp)
@@ -185,7 +185,6 @@ func (this *OilContractEvaluationItemsController) GetTreeList() {
 	this.ServeJSON()
 }
 
-
 // @Title 获取字典列表
 // @Description get user by token
 // @Success 200 {object} map[string]interface{}

+ 2 - 2
src/dashoo.cn/frontend_web/src/api/oilcontract/contract.js

@@ -19,9 +19,9 @@ export default {
   },
 
   // 最初始的上级节点
-  evaluationItemsOnelist (params, entityId, myAxios) {
+  evaluationItemsOnelist (params, contractClass, myAxios) {
     return myAxios({
-      url: '/evaluation-items/onelist/' + entityId + '/' + params.Category,
+      url: '/evaluation-items/onelist/' + contractClass + '/' + params.Category,
       method: 'GET'
     })
   },

+ 10 - 3
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/baselist.vue

@@ -67,8 +67,12 @@ export default {
     disabledForm: {
       type: null,
       default: false
+    },
+    // 二级单位提交还是业务处室提交
+    isBusiness: {
+      type: null,
+      default: 0
     }
-
   },
   data () {
     return {
@@ -119,8 +123,10 @@ export default {
     initDatas () {
       this.tableLoading = true
       var data = {
-        Category: 2
+        Category: 2 // 1分值; 2布尔
+        // ContractClass 对应的是表中Type
       }
+      console.log('初始化了没有???')
       api.evaluationItemsOnelist(data, this.ContractClass, this.$axios).then(res => {
         this.tableLoading = false
         console.log('上级节点内容', res)
@@ -155,9 +161,10 @@ export default {
     // 初始数据
     editDatas () {
       this.tableLoading = true
+      console.log('处室初始的分类是什么 ', this.category)
       var data = {
         ContentReviewId: this.evaluateId,
-        Category: this.category,
+        Category: this.isBusiness == 1 ? 2 : this.category,
         Type: 2
       }
       api.contractEvaluationTree(data, this.$axios).then(res => {

+ 109 - 30
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluate.vue

@@ -16,18 +16,24 @@
                      @click="exportExcel">导出</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='7'&&auditBtn"
                      @click="commonAuditClick(7)">企管法规处审批</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='4'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='4'&&auditBtn  && formData.IsBusiness != 1"
                      @click="commonAuditClick(4)">专业处室审核</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='3'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='3'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(3)">专业处室分办</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='2'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='2'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(2)">复审</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='1'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='1'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(1)">初审</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px"
-                     v-if="Number(formData.Status)<=0&&formData.Id!=0&&checkBUtton"
+                     v-if="Number(formData.Status)<=0&&formData.Id!=0&&checkBUtton  && formData.IsBusiness != 1"
                      @click="commonAuditClick(0)">提交审核</el-button>
 
+          <!--业务处室分办发起-->
+          <el-button type="primary" size="mini" style="margin-left: 8px"
+                     v-if="Number(formData.Status) <= 0 && formData.Id != 0 && checkBtnForBus"
+                     @click="commonAuditClick(301)">处室提交审核</el-button>  <!-- 业务处室分办为3 -->
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status == '4' && auditBtn && formData.IsBusiness == 1"
+                     @click="commonAuditClick(401)">专业处室审核</el-button>
           <!--    <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(7)">企管法规处</el-button>
               <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(4)">专业处室审核</el-button>
               <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(3)">专业科室接收</el-button>
@@ -35,8 +41,11 @@
               <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(1)">提交审核</el-button> -->
 
           <el-button type="primary" size="mini"
-                     v-if="(Number(formData.Status) <= 0 && saveButton) || (formData.Status == '4' && auditBtn)  || (formData.Status == '7' && auditBtn)"
-                     @click="onSeaveBigAdd">保存</el-button>
+                     v-if="((Number(formData.Status) <= 0 && saveButton) || (formData.Status == '4' && auditBtn)  || (formData.Status == '7' && auditBtn)) && formData.IsBusiness != 1"
+                     @click="onSeaveBigAdd(1)">保存</el-button>
+          <el-button type="primary" size="mini"
+                     v-if="(Number(formData.Status) <=0 && saveButtonForBusiness) || (formData.Status == '7' && saveButtonForBusiness) && formData.IsBusiness == 1"
+                     @click="onSaveEvaByBusiness(1)">保存</el-button> <!-- 处室保存 -->
           <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回</el-button>
         </span>
       </div>
@@ -116,21 +125,22 @@
         <el-tab-pane label="业绩评价" name="2">
           <evaluation-list ref="evaluation_list_one" :evaluateId="formData.Id" category="0" v-if="contractData.ContractClass"
                            :ContractClass="contractData.ContractClass"
+                           :isBusiness="isBusiness"
                            :disabledForm="auditBtnBoolean"></evaluation-list>
         </el-tab-pane>
         <!-- v-if="formData.Status=='4'||Number(formData.Status)>4" -->
         <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">
           <base-list ref="evaluation_listType_one" :evaluateId="formData.Id" category="0"
-                     :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBoolean"></base-list>
+                     :ContractClass="contractData.ContractClass" :isBusiness="isBusiness" :disabledForm="auditBtnBoolean"></base-list>
         </el-tab-pane>
         <el-tab-pane label="专业处室业绩评价" name="3"
-                     v-if="departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4">
+                     v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4) && formData.IsBusiness != 1">
           <evaluation-list ref="evaluation_list_two" :evaluateId="formData.Id" category="1" v-if="contractData.ContractClass"
                            :ContractClass="contractData.ContractClass"
                            :disabledForm="auditBtnBooleanZhuan"></evaluation-list>
         </el-tab-pane>
         <el-tab-pane
-          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02'"
+          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02' && formData.IsBusiness != 1"
           label="专业处室基本条件评价" name="5">
           <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"
                      :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>
@@ -188,8 +198,9 @@ export default {
 
   data () {
     return {
+      isBusiness: 0,
       IsFinal: 0,
-
+      checkBtnForBus: false, // 业务处室分办提交审核权限
       routeData: {}, //  上一页面传过来的值
       routeDataType: '', //  上一页面传过来的type
 
@@ -232,16 +243,16 @@ export default {
 
       departmentBoolean: false,
       checkBUtton: false, // 提交审核按钮
-      saveButton: false // 保存按钮
-
+      saveButton: false,
+      saveButtonForBusiness: false
     }
   },
   created () {
     //  this.routeData = this.$route.query.item
     this.routeDataType = this.$route.query.type
-
+    this.isBusiness = this.$route.query.isBusiness == 1 ? 1 : 0
     // console.log('跳转数据', this.routeData)
-    this.serviceId = this.$route.params.opera
+    this.serviceId = this.$route.params.opera // 评价的ID
     //  this.getDictOptions()
 
     this.IsFinal = this.$route.query.IsFinal
@@ -325,6 +336,30 @@ export default {
       }).catch(err => {
         console.error(err)
       })
+      let dataBusSave = {
+        percode: 'oil_contract.Review.Business.Save'
+      }
+      permissionApi.permissionIsauth(dataBusSave, this.$axios).then(res => {
+        if (res.data.code == 0) {
+          if (res.data.message == '有权限') {
+            this.saveButtonForBusiness = true
+          }
+        }
+      }).catch(err => {
+        console.error(err)
+      })
+      let dataBusReview = {
+        percode: 'oil_contract.Review.Business.Check'
+      }
+      permissionApi.permissionIsauth(dataBusReview, this.$axios).then(res => {
+        if (res.data.code == 0) {
+          if (res.data.message == '有权限') {
+            this.checkBtnForBus = true
+          }
+        }
+      }).catch(err => {
+        console.error(err)
+      })
     },
     // 刷新数据接口
     refreshPage () {
@@ -390,15 +425,29 @@ export default {
           this.onSeaveBigAdd()
           this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
           break
-        //  企管法规处
+        // 专业科室提交评价审核
+        case 301:
+          this.onSaveEvaByBusiness()
+          this.$refs.submitpopup.auditOrgChangeForBusiness()
+          this.$refs.submitpopup.dialogBusinessOfficeSeparateSubmitVisible = true
+          break
+        case 401:
+          this.onSaveEvaByBusiness()
+          this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
+          break
+        // 企管法规处
         case 7:
-          this.onSeaveBigAdd()
+          if (this.formData.IsBusiness == 1) {
+            this.onSaveEvaByBusiness()
+          } else {
+            this.onSeaveBigAdd()
+          }
           this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
           break
       }
     },
     //  保存评价
-    onSeaveBigAdd () {
+    onSeaveBigAdd (val) {
       if (this.formData.Status <= 0) { //  普通二级用户评价evaluation_listType_one
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
         if (this.contractData.ContractClass == '02') {
@@ -415,9 +464,9 @@ export default {
         this.$refs.evaluation_list_one.$refs.formEvaluation.validate((valid) => {
           if (valid) {
             if (this.formData.Id == 0 || this.formData.Id == undefined || this.formData.Id == null) {
-              this.addEvaluate()
+              this.addEvaluate(0)
             } else {
-              this.updateEvaluate()
+              this.updateEvaluate(val, 0)
             }
           } else {
             this.$message.error('业绩评价填写的分数有误')
@@ -515,6 +564,33 @@ export default {
         }
       }
     },
+    // 业务处室保存评价
+    onSaveEvaByBusiness (val) {
+      if (this.formData.Status <= 0) { // 业务处室保存评价
+        this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
+        if (this.contractData.ContractClass == '02') {
+          this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
+        }
+        var list = this.evaluation_list
+        for (var i = 0; i < list.length; i++) {
+          if (Number(list[i].Score) > Number(list[i].NormalScore)) {
+            this.$message.error('业绩评价填写的分数不能大于标准分值')
+            return
+          }
+        }
+        this.$refs.evaluation_list_one.$refs.formEvaluation.validate((valid) => {
+          if (valid) {
+            if (this.formData.Id == 0 || this.formData.Id == undefined || this.formData.Id == null) {
+              this.addEvaluate(1)
+            } else {
+              this.updateEvaluate(val, 1)
+            }
+          } else {
+            this.$message.error('业绩评价填写的分数有误')
+          }
+        })
+      }
+    },
     // 专业处室评价
     majorEvaluate () {
       //  var formData = this.evaluation_list
@@ -535,14 +611,14 @@ export default {
       })
     },
     // 新增评价
-    addEvaluate () {
+    addEvaluate (isBusiness) {
       var formData = {
         ContractId: this.contractData.Id,
         Items: this.evaluation_list,
-        IsFinal: Number(this.IsFinal) // 是否履行,最终
+        IsFinal: Number(this.IsFinal), // 是否履行,最终
+        IsBusiness: isBusiness == 1 ? 1 : 0
       }
       api.addContractEvaluate(formData, this.$axios).then(res => {
-        console.log('新增', res)
         if (res.data.code == 0) {
           this.formData.Id = res.data.item
           this.$message({
@@ -556,19 +632,22 @@ export default {
       })
     },
     // 编辑评价
-    updateEvaluate () {
+    updateEvaluate (val, isBusiness) {
       var formData = {
         ContractId: this.contractData.Id,
-        Items: this.evaluation_list
+        Items: this.evaluation_list,
+        IsBusiness: isBusiness == 1 ? 1 : 0
       }
       api.updateContractEvaluate(this.formData.Id, formData, this.$axios).then(res => {
-        console.log('编辑', res)
+        console.log('编辑11111', val)
         if (res.data.code == 0) {
           //  this.formData.Id = res.data.item
-          this.$message({
-            type: 'success',
-            message: res.data.message
-          })
+          if (val) {
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+          }
           this.refreshPage()
         }
       }).catch(err => {

+ 83 - 79
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluationlist.vue

@@ -104,7 +104,7 @@
   </div>
 </template>
 <script>
-import {mapGetters} from 'vuex';
+import {mapGetters} from 'vuex'
 import api from '@/api/oilcontract/contract'
 // import api from '@/api/oilcontract/contractEvaluationItems';
 
@@ -119,29 +119,33 @@ export default {
     // 评价id
     evaluateId: {
       type: null,
-      default: '',
+      default: ''
     },
     // 类型 0 二级部门创建 1 专业处创建
     category: {
       type: null,
-      default: '',
+      default: ''
     },
-    //项目类型
+    // 项目类型
     ContractClass: {
       type: null,
-      default: '',
+      default: ''
     },
-    //是否禁用
+    // 是否禁用
     disabledForm: {
       type: null,
-      default: false,
+      default: false
     },
-
+    // 二级单位提交还是业务处室提交
+    isBusiness: {
+      type: null,
+      default: 0
+    }
   },
   computed: {
     scoreFun: function () {
       return function (type, k) {
-        var num = 0;
+        var num = 0
         var list = this.entityListData.entityList
         for (var index = 0; index < list.length; index++) {
           var code = Number(list[index].LevelCode)
@@ -170,12 +174,12 @@ export default {
       }
     }
   },
-  data() {
+  data () {
     var validatePass = (rule, value, callback) => {
       var num = Number(value)
       if (num == '' && num != 0) {
         this.fractionBoolean = false
-        callback(new Error('请输入分值'));
+        callback(new Error('请输入分值'))
         return
       }
       // if (num > Number(this.branchNum)) {
@@ -185,43 +189,43 @@ export default {
       // }
       if (num < 0) {
         this.fractionBoolean = false
-        callback(new Error('不能为负数'));
+        callback(new Error('不能为负数'))
         return
       }
       this.fractionBoolean = true
-      callback();
-    };
+      callback()
+    }
     return {
-      tableLoading:false,
+      tableLoading: false,
       fractionBoolean: true,
       dialogVisibleCom: false,
       loading: false,
       UnitOrgOptions: [],
-      textareaValue: '',//扣分原因
+      textareaValue: '', // 扣分原因
       dialogBoolean: false,
       rules: {
         relation: [
           {validator: validatePass, trigger: 'blur'}
-        ],
+        ]
       },
       dialogVisible: false,
-      //列表数据
+      // 列表数据
       entityListData: {
-        entityList: [],
+        entityList: []
       },
 
-      //分页参数
+      // 分页参数
       size: 10,
       currentPage: 1,
       currentItemCount: 0,
-      //列表排序
+      // 列表排序
       Column: {
         Order: '',
         Prop: ''
       },
-      //查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
+      // 查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
       CreateOn: [],
-      //查询项
+      // 查询项
       searchFormReset: {},
       searchForm: {
         Id: '',
@@ -235,7 +239,7 @@ export default {
         Remark: '',
         ModifiedOn: '',
         ModifiedUserId: '',
-        ModifiedBy: '',
+        ModifiedBy: ''
 
       },
       auditform: {
@@ -247,12 +251,12 @@ export default {
         TypeCode: '03'
       },
       entityListItemIndex: '',
-      standardNum: 0,//标准分数
-      getNum: 0,//实得总分
+      standardNum: 0, // 标准分数
+      getNum: 0// 实得总分
 
     }
   },
-  created() {
+  created () {
     // 数据列表
     // 判断是编辑状态还是新增状态
     console.log(this.evaluateId, '2323232')
@@ -261,19 +265,20 @@ export default {
     } else {
       this.editDatas()
     }
-    //this.getDictOptions()
+    // this.getDictOptions()
   },
   methods: {
     // 初始数据
-    initDatas() {
-      this.tableLoading = true;
+    initDatas () {
+      this.tableLoading = true
       // 普通的传1,条件评价穿2
       var data = {
-        Category: 1
+        // Category: 1
+        Category: this.isBusiness == 1 ? 2 : 1 // 0二级单位发起的评价,1专业处室的评价,2条件评价 3专业处室发起的评价, 4专业处室发起的条件评价
       }
       this.standardNum = 0
       api.evaluationItemsOnelist(data, this.ContractClass, this.$axios).then(res => {
-        this.tableLoading = false;
+        this.tableLoading = false
         console.log('上级节点内容', res)
         let data = res.data.items
         let list = []
@@ -299,21 +304,22 @@ export default {
         this.entityListData.entityList = list
         console.log('处理完的数据(业绩评价)', list)
       }).catch(err => {
-        this.tableLoading = false;
+        this.tableLoading = false
         console.error(err)
       })
     },
     // 编辑初始数据
-    editDatas() {
-      this.tableLoading = true;
+    editDatas () {
+      this.tableLoading = true
+      console.log('是专业交的吗', this.isBusiness)
       let data = {
         ContentReviewId: this.evaluateId,
-        Category: this.category,
+        Category: this.isBusiness == 1 ? 2 : this.category,
         Type: 1
       }
       this.standardNum = 0
       api.contractEvaluationTree(data, this.$axios).then(res => {
-        this.tableLoading = false;
+        this.tableLoading = false
         console.log('编辑后的内容', this.category, res)
         let data = res.data.items
         let list = []
@@ -339,47 +345,47 @@ export default {
           console.log('处理完的数据(业绩评价)', list)
         }
       }).catch(err => {
-        this.tableLoading = false;
+        this.tableLoading = false
         console.error(err)
       })
     },
     // 弹窗
-    onDialogVisible(item, index) {
+    onDialogVisible (item, index) {
       console.log(item)
       this.entityListItemIndex = index
       this.textareaValue = item.Remark
       this.dialogBoolean = true
     },
-    //确认编辑内容
-    onTrueDialog() {
+    // 确认编辑内容
+    onTrueDialog () {
       this.entityListData.entityList[this.entityListItemIndex].Remark = this.textareaValue
       this.dialogBoolean = false
     },
     // 分数校验
-    onInputFen(index, fen) {
+    onInputFen (index, fen) {
       this.branchNum = fen
       // this.entityListData.entityList[index].Score = fen
     },
 
-    getDictOptions() {
+    getDictOptions () {
       api.getDictList(this.$axios).then(res => {
-        //this.dictOptions.customerList = res.data.items['customerList']
-        //this.dictOptions.projectList = res.data.items['projectList']
+        // this.dictOptions.customerList = res.data.items['customerList']
+        // this.dictOptions.projectList = res.data.items['projectList']
 
       }).catch(err => {
         console.error(err)
       })
     },
 
-    searchCommand(command) {
+    searchCommand (command) {
       if (command == 'search') {
         this.dialogVisible = true
       } else if (command == 'clear') {
         this.clearSearch()
       }
     },
-    //列表排序功能
-    orderby(column) {
+    // 列表排序功能
+    orderby (column) {
       if (column.order == 'ascending') {
         this.Column.Order = 'asc'
       } else if (column.order == 'descending') {
@@ -388,48 +394,47 @@ export default {
       this.Column.Prop = column.prop
       this.initDatas()
     },
-    clearSearch() {
-      Object.assign(this.searchForm, this.searchFormReset);
-      //this.searchForm = this.searchFormReset;
+    clearSearch () {
+      Object.assign(this.searchForm, this.searchFormReset)
+      // this.searchForm = this.searchFormReset;
       this.CreateOn = ''
       this.initDatas()
     },
-    handleSearch() {
-      this.currentPage = 1;
-      this.dialogVisible = false;
-      this.initDatas();
+    handleSearch () {
+      this.currentPage = 1
+      this.dialogVisible = false
+      this.initDatas()
     },
-    handleCurrentChange(value) {
+    handleCurrentChange (value) {
       this.currentPage = value
       this.initDatas()
     },
-    handleSizeChange(value) {
+    handleSizeChange (value) {
       this.size = value
       this.currentPage = 1
       this.initDatas()
     },
-    deleteEntity(row) {
-      row.deleteConfirmFlag = false;
+    deleteEntity (row) {
+      row.deleteConfirmFlag = false
       api.deleteEntity(row.Id, this.$axios).then(res => {
         if (res.data.code === 0) {
-          this.initDatas();
+          this.initDatas()
           this.$message({
             type: 'success',
             message: res.data.message
-          });
-
+          })
         } else {
           this.$message({
             type: 'warning',
             message: res.data.message
-          });
+          })
         }
       }).catch(err => {
         console.error(err)
-      });
+      })
     },
 
-    jstimehandle(val) {
+    jstimehandle (val) {
       if (val === '') {
         return '----'
       } else if (val === '0001-01-01T08:00:00+08:00') {
@@ -442,18 +447,18 @@ export default {
       }
     },
 
-    formatDateTime(date) {
-      var y = date.getFullYear();
-      var m = date.getMonth() + 1;
-      m = m < 10 ? ('0' + m) : m;
-      var d = date.getDate();
-      d = d < 10 ? ('0' + d) : d;
-      var h = date.getHours();
-      var minute = date.getMinutes();
-      minute = minute < 10 ? ('0' + minute) : minute;
-      return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
+    formatDateTime (date) {
+      var y = date.getFullYear()
+      var m = date.getMonth() + 1
+      m = m < 10 ? ('0' + m) : m
+      var d = date.getDate()
+      d = d < 10 ? ('0' + d) : d
+      var h = date.getHours()
+      var minute = date.getMinutes()
+      minute = minute < 10 ? ('0' + minute) : minute
+      return y + '-' + m + '-' + d + ' ' + h + ':' + minute
     },
-    orgunitChange(val) {
+    orgunitChange (val) {
       let deptid = val
       let auditstepcode = 'SUB_OFFICE_JF'
       api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
@@ -462,7 +467,7 @@ export default {
         console.error(err)
       })
     },
-    getDictOptions() {
+    getDictOptions () {
       let params = {
         status: this.formData.Status,
         majorAduit: this.formData.ThirdAudit
@@ -481,10 +486,9 @@ export default {
       }).catch(err => {
         console.error(err)
       })
-    },
+    }
   }
 }
-
 </script>
 
 <style lang="scss">

+ 3 - 2
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/index.vue

@@ -71,7 +71,7 @@
             <el-button v-if="editeBoolean && scope.row.Status <= 0" type="text" title="编辑" size="small" icon="el-icon-edit"
                        @click="onNavigateEvaluate(scope.row)">编辑
             </el-button>
-            <el-button v-else type="text" title="编辑" size="small" icon="el-icon-edit"
+            <el-button v-else type="text" title="查看" size="small" icon="el-icon-edit"
                        @click="onNavigateEvaluate(scope.row)">查看
             </el-button>
             <el-popover placement="top" title="提示" :ref="'popover-' + `${scope.$index}`"
@@ -651,7 +651,8 @@ export default {
         path: '/oilcontract/contract-basis/' + item.Id + '/evaluate',
         query: {
           ContractId: item.ContractId,
-          type: 2
+          type: 2,
+          isBusiness: item.IsBusiness
         }
       })
     },

+ 105 - 26
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluate.vue

@@ -16,18 +16,24 @@
                      @click="exportExcel">导出</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='7'&&auditBtn"
                      @click="commonAuditClick(7)">企管法规处审批</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='4'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='4'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(4)">专业处室审核</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='3'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='3'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(3)">专业处室分办</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='2'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='2'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(2)">复审</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='1'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='1'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(1)">初审</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px"
-                     v-if="Number(formData.Status)<=0&&formData.Id!=0&&checkBUtton"
+                     v-if="Number(formData.Status)<=0&&formData.Id!=0&&checkBUtton && formData.IsBusiness != 1"
                      @click="commonAuditClick(0)">提交审核</el-button>
 
+          <!--业务处室分办发起-->
+          <el-button type="primary" size="mini" style="margin-left: 8px"
+                     v-if="Number(formData.Status) <=0 && formData.Id != 0 && checkBtnForBus"
+                     @click="commonAuditClick(301)">处室提交审核</el-button>  <!-- 业务处室分办为3 -->
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status == '4' && auditBtn && formData.IsBusiness == 1"
+                     @click="commonAuditClick(401)">专业处室审核</el-button>
           <!--    <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(7)">企管法规处</el-button>
               <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(4)">专业处室审核</el-button>
               <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(3)">专业科室接收</el-button>
@@ -36,8 +42,11 @@
 
           <el-button type="primary" size="mini"
                      v-if="(Number(formData.Status) <= 0 && saveButton) || (formData.Status == '4' && auditBtn)  || (formData.Status == '7' && auditBtn)"
-                     @click="onSeaveBigAdd">保存</el-button>
-          <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回</el-button>
+                     @click="onSeaveBigAdd(1)">保存</el-button>
+          <el-button type="primary" size="mini"
+                     v-if="(Number(formData.Status) <=0 && saveButtonForBusiness) || (formData.Status == '7' && saveButtonForBusiness)"
+                     @click="onSaveEvaByBusiness(1)">保存</el-button> <!-- 处室保存 -->
+          <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回-{{formData.IsBusiness}}</el-button>
         </span>
       </div>
       <el-tabs v-model="activeName" style="margin-top: -10px">
@@ -116,6 +125,7 @@
         <el-tab-pane label="业绩评价" name="2">
           <evaluation-list ref="evaluation_list_one" :evaluateId="formData.Id" category="0" v-if="contractData.ContractClass"
                            :ContractClass="contractData.ContractClass"
+                           :isBusiness="isBusiness"
                            :disabledForm="auditBtnBoolean"></evaluation-list>
         </el-tab-pane>
         <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">
@@ -124,13 +134,13 @@
         </el-tab-pane>
         <!-- v-if="formData.Status=='4'||Number(formData.Status)>4" -->
         <el-tab-pane label="专业处室业绩评价" name="3"
-                     v-if="departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4">
+                     v-if="departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4 && formData.IsBusiness == 0">
           <evaluation-list ref="evaluation_list_two" :evaluateId="formData.Id" category="1" v-if="contractData.ContractClass"
                            :ContractClass="contractData.ContractClass"
                            :disabledForm="auditBtnBooleanZhuan"></evaluation-list>
         </el-tab-pane>
         <el-tab-pane
-          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02'"
+          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02' && formData.IsBusiness == 0"
           label="专业处室基本条件评价" name="5">
           <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"
                      :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>
@@ -187,8 +197,9 @@ export default {
 
   data () {
     return {
+      isBusiness: 0,
       IsFinal: 0,
-
+      checkBtnForBus: false, // 业务处室分办提交审核权限
       routeData: {}, // 上一页面传过来的值
       routeDataType: '', // 上一页面传过来的type
 
@@ -230,14 +241,14 @@ export default {
 
       departmentBoolean: false,
       checkBUtton: false,
-      saveButton: false
-
+      saveButton: false,
+      saveButtonForBusiness: false
     }
   },
   created () {
     // this.routeData = this.$route.query.item
     this.routeDataType = this.$route.query.type
-
+    this.isBusiness = this.$route.query.isBusiness == 1 ? 1 : 0
     // console.log('跳转数据', this.routeData)
     this.serviceId = this.$route.params.opera
     // this.getDictOptions();
@@ -322,6 +333,30 @@ export default {
       }).catch(err => {
         console.error(err)
       })
+      let dataBusSave = {
+        percode: 'oil_contract.Review.Business.Save'
+      }
+      permissionApi.permissionIsauth(dataBusSave, this.$axios).then(res => {
+        if (res.data.code == 0) {
+          if (res.data.message == '有权限') {
+            this.saveButtonForBusiness = true
+          }
+        }
+      }).catch(err => {
+        console.error(err)
+      })
+      let dataBusReview = {
+        percode: 'oil_contract.Review.Business.Check'
+      }
+      permissionApi.permissionIsauth(dataBusReview, this.$axios).then(res => {
+        if (res.data.code == 0) {
+          if (res.data.message == '有权限') {
+            this.checkBtnForBus = true
+          }
+        }
+      }).catch(err => {
+        console.error(err)
+      })
     },
     // 刷新数据接口
     refreshPage () {
@@ -383,9 +418,23 @@ export default {
           this.onSeaveBigAdd()
           this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
           break
+        // 专业科室提交评价审核
+        case 301:
+          this.onSaveEvaByBusiness()
+          this.$refs.submitpopup.auditOrgChangeForBusiness()
+          this.$refs.submitpopup.dialogBusinessOfficeSeparateSubmitVisible = true
+          break
+        case 401:
+          this.onSaveEvaByBusiness()
+          this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
+          break
         // 企管法规处
         case 7:
-          this.onSeaveBigAdd()
+          if (this.formData.IsBusiness == 1) {
+            this.onSaveEvaByBusiness()
+          } else {
+            this.onSeaveBigAdd()
+          }
           this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
           break
       }
@@ -395,8 +444,35 @@ export default {
     onSubmitBigAdd () {
       this.$refs.submitpopup.dialogVisibleCom = true
     },
+    // 业务处室保存评价
+    onSaveEvaByBusiness (val) {
+      if (this.formData.Status <= 0) { // 业务处室保存评价
+        this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
+        if (this.contractData.ContractClass == '02') {
+          this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
+        }
+        var list = this.evaluation_list
+        for (var i = 0; i < list.length; i++) {
+          if (Number(list[i].Score) > Number(list[i].NormalScore)) {
+            this.$message.error('业绩评价填写的分数不能大于标准分值')
+            return
+          }
+        }
+        this.$refs.evaluation_list_one.$refs.formEvaluation.validate((valid) => {
+          if (valid) {
+            if (this.formData.Id == 0 || this.formData.Id == undefined || this.formData.Id == null) {
+              this.addEvaluate(1)
+            } else {
+              this.updateEvaluate(val, 1)
+            }
+          } else {
+            this.$message.error('业绩评价填写的分数有误')
+          }
+        })
+      }
+    },
     // 保存评价
-    onSeaveBigAdd () {
+    onSeaveBigAdd (val) {
       if (this.formData.Status <= 0) { //  普通二级用户评价evaluation_listType_one
         this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
         if (this.contractData.ContractClass == '02') {
@@ -414,9 +490,9 @@ export default {
         this.$refs.evaluation_list_one.$refs.formEvaluation.validate((valid) => {
           if (valid) {
             if (this.formData.Id == 0 || this.formData.Id == undefined || this.formData.Id == null) {
-              this.addEvaluate()
+              this.addEvaluate(0)
             } else {
-              this.updateEvaluate()
+              this.updateEvaluate(val, 0)
             }
           } else {
             this.$message.error('业绩评价填写的分数有误')
@@ -533,11 +609,12 @@ export default {
       })
     },
     // 新增评价
-    addEvaluate () {
+    addEvaluate (isBusiness) {
       var formData = {
         ContractId: this.contractData.Id,
         Items: this.evaluation_list,
-        IsFinal: Number(this.IsFinal) // 是否履行,最终
+        IsFinal: Number(this.IsFinal), // 是否履行,最终
+        IsBusiness: isBusiness == 1 ? 1 : 0
       }
       api.addContractEvaluate(formData, this.$axios).then(res => {
         console.log('新增', res)
@@ -554,19 +631,21 @@ export default {
       })
     },
     // 编辑评价
-    updateEvaluate () {
+    updateEvaluate (val, isBusiness) {
       var formData = {
         ContractId: this.contractData.Id,
-        Items: this.evaluation_list
+        Items: this.evaluation_list,
+        IsBusiness: isBusiness == 1 ? 1 : 0
       }
       api.updateContractEvaluate(this.formData.Id, formData, this.$axios).then(res => {
-        console.log('编辑', res)
         if (res.data.code == 0) {
           // this.formData.Id = res.data.item
-          this.$message({
-            type: 'success',
-            message: res.data.message
-          })
+          if (val) {
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+          }
           this.refreshPage()
         }
       }).catch(err => {

+ 7 - 3
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluationlist.vue

@@ -131,8 +131,12 @@
       disabledForm: {
         type: null,
         default: false
+      },
+      // 二级单位提交还是业务处室提交
+      isBusiness: {
+        type: null,
+        default: 0
       }
-
     },
     computed: {
       scoreFun: function () {
@@ -262,7 +266,7 @@
       initDatas () {
         // 普通的传1,条件评价穿2
         var data = {
-          Category: 1
+          Category: this.isBusiness == 1 ? 2 : 1 // 0二级单位发起的评价,1专业处室的评价,2条件评价,3专业处室发起的评价, 4专业处室发起的条件评价
         }
         this.standardNum = 0
         api.evaluationItemsOnelist(data, this.ContractClass, this.$axios).then(res => {
@@ -296,7 +300,7 @@
       editDatas () {
         var data = {
           ContentReviewId: this.evaluateId,
-          Category: this.category,
+          Category: this.isBusiness == 1 ? 2 : this.category, // 0二级单位发起的评价,1专业处室的评价,2条件评价,3专业处室发起的评价, 4专业处室发起的条件评价
           Type: 1
         }
         this.standardNum = 0

+ 2 - 1
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/index.vue

@@ -639,7 +639,8 @@ export default {
         path: '/oilcontract/contract-goods/' + item.Id + '/evaluate',
         query: {
           ContractId: item.ContractId,
-          type: 2
+          type: 2,
+          isBusiness: item.IsBusiness
         }
       })
     },

+ 12 - 4
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/index.vue

@@ -20,8 +20,8 @@
           <!-- <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">分发给二级单位评价</el-button> -->
         </span>
         <el-form ref="form" :inline="true" style="float: right; margin-top: -10px">
-          <el-form-item label="企业名称">
-            <el-input size="mini" clearable v-model="searchForm.SupplierName" style="width: 150px;" placeholder="请输入企业名称"></el-input>
+          <el-form-item label="">
+            <el-input size="mini" clearable v-model="searchForm.SupplierName" style="width: 120px;" placeholder="企业名称"></el-input>
           </el-form-item>
           <el-form-item label="状态" style="width: 150px">
             <el-select size="mini" v-model="searchForm.Status" placeholder="请选择" style="width: 100px" clearable>
@@ -38,9 +38,17 @@
               <el-option label="阶段性结算" value="2" key="03"></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="项目类别" style="width: 180px">
+            <el-select size="mini" v-model="searchForm.ContractClass" placeholder="请选择" style="width: 110px" clearable>
+              <el-option label="全部" value="" key="01"></el-option>
+              <el-option label="供应商" value="01" key="02"></el-option>
+              <el-option label="承包商" value="02" key="03"></el-option>
+              <el-option label="服务商" value="02" key="04"></el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item label="上报时间">
-            <el-date-picker size="mini" style="width: 220px" v-model="CreateOn" type="daterange" range-separator="至"
-                            start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
+            <el-date-picker size="mini" style="width: 180px" v-model="CreateOn" type="daterange" range-separator="至"
+                            start-placeholder="开始" end-placeholder="结束"></el-date-picker>
           </el-form-item>
 
           <el-form-item>

+ 98 - 22
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/evaluate.vue

@@ -16,17 +16,23 @@
                      @click="exportExcel">导出</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='7'&&auditBtn"
                      @click="commonAuditClick(7)">企管法规处审批</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='4'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='4'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(4)">专业处室审核</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='3'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='3'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(3)">专业处室分办</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='2'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='2'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(2)">复审</el-button>
-          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='1'&&auditBtn"
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status=='1'&&auditBtn && formData.IsBusiness != 1"
                      @click="commonAuditClick(1)">初审</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px"
-                     v-if="Number(formData.Status)<=0&&formData.Id!=0&&checkBUtton"
+                     v-if="Number(formData.Status)<=0&&formData.Id!=0&&checkBUtton && formData.IsBusiness != 1"
                      @click="commonAuditClick(0)">提交审核</el-button>
+          <!--业务处室分办发起-->
+          <el-button type="primary" size="mini" style="margin-left: 8px"
+                     v-if="Number(formData.Status) <=0 && formData.Id != 0 && checkBtnForBus"
+                     @click="commonAuditClick(301)">处室提交审核</el-button>  <!-- 业务处室分办为3 -->
+          <el-button type="primary" size="mini" style="margin-left: 8px" v-if="formData.Status == '4' && auditBtn && formData.IsBusiness == 1"
+                     @click="commonAuditClick(401)">专业处室审核</el-button>
 
           <!--    <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(7)">企管法规处</el-button>
               <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(4)">专业处室审核</el-button>
@@ -35,8 +41,11 @@
               <el-button type="primary" size="mini" style="margin-left: 8px" @click="commonAuditClick(1)">提交审核</el-button> -->
 
           <el-button type="primary" size="mini"
-                     v-if="(Number(formData.Status) <=0 && saveButton) || (formData.Status == '4' && auditBtn) || (formData.Status == '7' && auditBtn)"
+                     v-if="((Number(formData.Status) <=0 && saveButton) || (formData.Status == '4' && auditBtn) || (formData.Status == '7' && auditBtn)) && formData.IsBusiness != 1"
                      @click="onSeaveBigAdd(1)">保存</el-button>
+          <el-button type="primary" size="mini"
+                     v-if="(Number(formData.Status) <=0 && saveButtonForBusiness) || (formData.Status == '7' && saveButtonForBusiness)"
+                     @click="onSaveEvaByBusiness(1)">保存</el-button> <!-- 处室保存 -->
           <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回</el-button>
         </span>
       </div>
@@ -116,6 +125,7 @@
         <el-tab-pane label="业绩评价" name="2">
           <evaluation-list ref="evaluation_list_one" :evaluateId="formData.Id" category="0" v-if="contractData.ContractClass"
                            :ContractClass="contractData.ContractClass"
+                           :isBusiness="isBusiness"
                            :disabledForm="auditBtnBoolean"></evaluation-list>
         </el-tab-pane>
         <el-tab-pane label="基本条件评价" name="4" v-if="contractData.ContractClass=='02'">
@@ -124,13 +134,13 @@
         </el-tab-pane>
         <!-- v-if="formData.Status=='4'||Number(formData.Status)>4" -->
         <el-tab-pane label="专业处室业绩评价" name="3"
-                     v-if="departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4">
+                     v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4) && formData.IsBusiness != 1">
           <evaluation-list ref="evaluation_list_two" :evaluateId="formData.Id" category="1" v-if="contractData.ContractClass"
                            :ContractClass="contractData.ContractClass"
                            :disabledForm="auditBtnBooleanZhuan"></evaluation-list>
         </el-tab-pane>
         <el-tab-pane
-          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02'"
+          v-if="(departmentBoolean||Number(formData.Status)>4||Number(formData.Status)<=-4)&&contractData.ContractClass=='02' && formData.IsBusiness != 1"
           label="专业处室基本条件评价" name="5">
           <base-list ref="evaluation_listType_two" :evaluateId="formData.Id" category="1"
                      :ContractClass="contractData.ContractClass" :disabledForm="auditBtnBooleanZhuan"></base-list>
@@ -188,8 +198,9 @@ export default {
 
   data () {
     return {
+      isBusiness: 0,
       IsFinal: 0,
-
+      checkBtnForBus: false, // 业务处室分办提交审核权限
       routeData: {}, // 上一页面传过来的值
       routeDataType: '', // 上一页面传过来的type
 
@@ -231,16 +242,16 @@ export default {
 
       departmentBoolean: false,
       checkBUtton: false,
-      saveButton: false
-
+      saveButton: false,
+      saveButtonForBusiness: false
     }
   },
   created () {
     // this.routeData = this.$route.query.item
     this.routeDataType = this.$route.query.type
-
+    this.isBusiness = this.$route.query.isBusiness == 1 ? 1 : 0
     console.log('跳转数据', this.routeData)
-    this.serviceId = this.$route.params.opera
+    this.serviceId = this.$route.params.opera // 评价的ID
     // this.getDictOptions();
 
     this.IsFinal = this.$route.query.IsFinal
@@ -325,6 +336,30 @@ export default {
       }).catch(err => {
         console.error(err)
       })
+      let dataBusSave = {
+        percode: 'oil_contract.Review.Business.Save'
+      }
+      permissionApi.permissionIsauth(dataBusSave, this.$axios).then(res => {
+        if (res.data.code == 0) {
+          if (res.data.message == '有权限') {
+            this.saveButtonForBusiness = true
+          }
+        }
+      }).catch(err => {
+        console.error(err)
+      })
+      let dataBusReview = {
+        percode: 'oil_contract.Review.Business.Check'
+      }
+      permissionApi.permissionIsauth(dataBusReview, this.$axios).then(res => {
+        if (res.data.code == 0) {
+          if (res.data.message == '有权限') {
+            this.checkBtnForBus = true
+          }
+        }
+      }).catch(err => {
+        console.error(err)
+      })
     },
     // 刷新数据接口
     refreshPage () {
@@ -386,9 +421,23 @@ export default {
           this.onSeaveBigAdd()
           this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
           break
+        // 专业科室提交评价审核
+        case 301:
+          this.onSaveEvaByBusiness()
+          this.$refs.submitpopup.auditOrgChangeForBusiness()
+          this.$refs.submitpopup.dialogBusinessOfficeSeparateSubmitVisible = true
+          break
+        case 401:
+          this.onSaveEvaByBusiness()
+          this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
+          break
         // 企管法规处
         case 7:
-          this.onSeaveBigAdd()
+          if (this.formData.IsBusiness == 1) {
+            this.onSaveEvaByBusiness()
+          } else {
+            this.onSeaveBigAdd()
+          }
           this.$refs.submitpopup.dialogCommonAuditMakeSureVisible = true
           break
       }
@@ -398,6 +447,33 @@ export default {
     onSubmitBigAdd () {
       this.$refs.submitpopup.dialogVisibleCom = true
     },
+    // 业务处室保存评价
+    onSaveEvaByBusiness (val) {
+      if (this.formData.Status <= 0) { // 业务处室保存评价
+        this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
+        if (this.contractData.ContractClass == '02') {
+          this.evaluation_list = this.evaluation_list.concat(this.$refs.evaluation_listType_one.entityListData.entityList)
+        }
+        var list = this.evaluation_list
+        for (var i = 0; i < list.length; i++) {
+          if (Number(list[i].Score) > Number(list[i].NormalScore)) {
+            this.$message.error('业绩评价填写的分数不能大于标准分值')
+            return
+          }
+        }
+        this.$refs.evaluation_list_one.$refs.formEvaluation.validate((valid) => {
+          if (valid) {
+            if (this.formData.Id == 0 || this.formData.Id == undefined || this.formData.Id == null) {
+              this.addEvaluate(1)
+            } else {
+              this.updateEvaluate(val, 1)
+            }
+          } else {
+            this.$message.error('业绩评价填写的分数有误')
+          }
+        })
+      }
+    },
     // 保存评价
     onSeaveBigAdd (val) {
       if (this.formData.Status <= 0) { // 普通二级用户评价evaluation_listType_one
@@ -417,9 +493,9 @@ export default {
         this.$refs.evaluation_list_one.$refs.formEvaluation.validate((valid) => {
           if (valid) {
             if (this.formData.Id == 0 || this.formData.Id == undefined || this.formData.Id == null) {
-              this.addEvaluate()
+              this.addEvaluate(0)
             } else {
-              this.updateEvaluate(val)
+              this.updateEvaluate(val, 0)
             }
           } else {
             this.$message.error('业绩评价填写的分数有误')
@@ -538,14 +614,14 @@ export default {
       })
     },
     // 新增评价
-    addEvaluate () {
+    addEvaluate (isBusiness) {
       var formData = {
         ContractId: this.contractData.Id,
         Items: this.evaluation_list,
-        IsFinal: Number(this.IsFinal) // 是否履行,最终
+        IsFinal: Number(this.IsFinal), // 是否履行,最终
+        IsBusiness: isBusiness == 1 ? 1 : 0
       }
       api.addContractEvaluate(formData, this.$axios).then(res => {
-        console.log('新增', res)
         if (res.data.code == 0) {
           this.formData.Id = res.data.item
           this.$message({
@@ -559,13 +635,13 @@ export default {
       })
     },
     // 编辑评价
-    updateEvaluate (val) {
+    updateEvaluate (val, isBusiness) {
       var formData = {
         ContractId: this.contractData.Id,
-        Items: this.evaluation_list
+        Items: this.evaluation_list,
+        IsBusiness: isBusiness == 1 ? 1 : 0
       }
       api.updateContractEvaluate(this.formData.Id, formData, this.$axios).then(res => {
-        console.log('编辑', res)
         if (res.data.code == 0) {
           // this.formData.Id = res.data.item
           if (val) {

+ 112 - 112
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/evaluationlist.vue

@@ -99,7 +99,7 @@
   </div>
 </template>
 <script>
-  import { mapGetters } from 'vuex';
+  import { mapGetters } from 'vuex'
   import api from '@/api/oilcontract/contract'
   // import api from '@/api/oilcontract/contractEvaluationItems';
 
@@ -114,50 +114,54 @@
       // 评价id
       evaluateId: {
         type: null,
-        default:'',
+        default: ''
       },
       // 类型 0 二级部门创建 1 专业处创建
       category: {
         type: null,
-        default:'',
+        default: ''
       },
-      //项目类型
+      // 项目类型
       ContractClass: {
         type: null,
-        default:'',
+        default: ''
       },
-      //是否禁用
+      // 是否禁用
       disabledForm: {
         type: null,
-        default:false,
+        default: false
       },
-
+      // 二级单位提交还是业务处室提交
+      isBusiness: {
+        type: null,
+        default: 0
+      }
     },
-    computed:{
-      scoreFun:function(){
-        return function(type,k){
-          var num = 0;
+    computed: {
+      scoreFun: function () {
+        return function (type, k) {
+          var num = 0
           var list = this.entityListData.entityList
-          for(var index = 0 ; index < list.length ; index++){
+          for (var index = 0; index < list.length; index++) {
             var code = Number(list[index].LevelCode)
-            if(type == list[index].typeStatus&&code==2){
+            if (type == list[index].typeStatus && code == 2) {
               num = num + Number(list[index].Score)
             }
           }
-          if(this.entityListData.entityList[k].Score != String(num)){
+          if (this.entityListData.entityList[k].Score != String(num)) {
             // this.getNum = this.getNum + Number(num)
             this.entityListData.entityList[k].Score = String(num)
           }
           return num
         }
       },
-      getNumFun:function(){
-        return function(){
-          var num = 0;
+      getNumFun: function () {
+        return function () {
+          var num = 0
           var list = this.entityListData.entityList
-          for(var index = 0 ; index < list.length ; index++){
+          for (var index = 0; index < list.length; index++) {
             var code = Number(list[index].LevelCode)
-            if(list[index].LevelCode == 1){
+            if (list[index].LevelCode == 1) {
               num = num + Number(list[index].Score)
             }
           }
@@ -165,12 +169,12 @@
         }
       }
     },
-    data() {
+    data () {
       var validatePass = (rule, value, callback) => {
         var num = Number(value)
-        if (num == ''&&num != 0) {
+        if (num == '' && num != 0) {
           this.fractionBoolean = false
-          callback(new Error('请输入分值'));
+          callback(new Error('请输入分值'))
           return
         }
         // if (num > Number(this.branchNum)) {
@@ -178,44 +182,44 @@
         //   callback(new Error('不能大于规定的分值'));
         //   return
         // }
-        if ( num < 0) {
+        if (num < 0) {
           this.fractionBoolean = false
-          callback(new Error('不能为负数'));
+          callback(new Error('不能为负数'))
           return
         }
         this.fractionBoolean = true
-        callback();
-      };
+        callback()
+      }
       return {
-        fractionBoolean:true,
+        fractionBoolean: true,
         dialogVisibleCom: false,
         loading: false,
         UnitOrgOptions: [],
-        textareaValue:'',//不合格原因
-        dialogBoolean:false,
-        rules:{
+        textareaValue: '', // 不合格原因
+        dialogBoolean: false,
+        rules: {
           relation: [
             { validator: validatePass, trigger: 'blur' }
-          ],
+          ]
         },
         dialogVisible: false,
-        //列表数据
-        entityListData:{
-          entityList:[],
+        // 列表数据
+        entityListData: {
+          entityList: []
         },
 
-        //分页参数
+        // 分页参数
         size: 10,
         currentPage: 1,
         currentItemCount: 0,
-        //列表排序
+        // 列表排序
         Column: {
           Order: '',
           Prop: ''
         },
-        //查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
+        // 查询时间new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()
         CreateOn: [],
-        //查询项
+        // 查询项
         searchFormReset: {},
         searchForm: {
           Id: '',
@@ -240,46 +244,44 @@
           AuditRemark: '',
           TypeCode: '03'
         },
-        entityListItemIndex:'',
-        standardNum:0,//标准分数
-        getNum:0,//实得总分
+        entityListItemIndex: '',
+        standardNum: 0, // 标准分数
+        getNum: 0// 实得总分
 
       }
     },
-    created() {
-      //数据列表
+    created () {
+      // 数据列表
       // 判断是编辑状态还是新增状态
-      if(this.evaluateId==0){
-        this.initDatas();
-      }else{
-        this.editDatas();
+      if (this.evaluateId == 0) {
+        this.initDatas()
+      } else {
+        this.editDatas()
       }
 
-
-      //this.getDictOptions()
-
+      // this.getDictOptions()
     },
     methods: {
-      //初始数据
-      initDatas() {
+      // 初始数据
+      initDatas () {
         // 普通的传1,条件评价穿2
         var data = {
-          Category:1,
+          Category: this.isBusiness == 1 ? 2 : 1 // 0二级单位发起的评价,1专业处室的评价,2条件评价 3专业处室发起的评价, 4专业处室发起的条件评价
         }
         this.standardNum = 0
-        api.evaluationItemsOnelist(data,this.ContractClass,this.$axios).then(res => {
-          console.log('上级节点内容',res)
+        api.evaluationItemsOnelist(data, this.ContractClass, this.$axios).then(res => {
+          console.log('上级节点内容', res)
           var data = res.data.items
           var list = []
-          for(var index = 0 ; index < data.length ; index++){
+          for (var index = 0; index < data.length; index++) {
             data[index].typeStatus = index
             data[index].Score = '0'
             data[index].Category = 1
             list.push(data[index])
 
             this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
-            if(data[index].Son!=null&&data[index].Son!=undefined){
-              for(var k = 0 ; k < data[index].Son.length ; k++){
+            if (data[index].Son != null && data[index].Son != undefined) {
+              for (var k = 0; k < data[index].Son.length; k++) {
                 data[index].Son[k].Category = 1
                 data[index].Son[k].typeStatus = index
                 data[index].Son[k].Score = data[index].Son[k].NormalScore
@@ -289,81 +291,81 @@
             }
           }
           this.entityListData.entityList = list
-          console.log('处理完的数据',list)
+          console.log('处理完的数据', list)
         }).catch(err => {
           console.error(err)
         })
       },
-      //编辑初始数据
-      editDatas() {
+      // 编辑初始数据
+      editDatas () {
         var data = {
-          ContentReviewId:this.evaluateId,
-          Category:this.category,
-          Type:1,
+          ContentReviewId: this.evaluateId,
+          Category: this.isBusiness == 1 ? 2 : this.category, // 0二级单位发起的评价,1专业处室的评价,2条件评价 3专业处室发起的评价, 4专业处室发起的条件评价
+          Type: 1
         }
         this.standardNum = 0
-        api.contractEvaluationTree(data,this.$axios).then(res => {
-          console.log('编辑后的内容',res)
+        api.contractEvaluationTree(data, this.$axios).then(res => {
+          console.log('编辑后的内容list', res)
           var data = res.data.items
           var list = []
-          for(var index = 0 ; index < data.length ; index++){
+          for (var index = 0; index < data.length; index++) {
             data[index].typeStatus = index
-            data[index].Score = data[index].Score==undefined||data[index].Score==''?'0':data[index].Score
+            data[index].Score = data[index].Score == undefined || data[index].Score == '' ? '0' : data[index].Score
             data[index].Category = 1
             list.push(data[index])
             this.standardNum = this.standardNum + parseInt(data[index].NormalScore)
-            if(data[index].Son!=null&&data[index].Son!=undefined){
-              for(var k = 0 ; k < data[index].Son.length ; k++){
+            if (data[index].Son != null && data[index].Son != undefined) {
+              for (var k = 0; k < data[index].Son.length; k++) {
                 data[index].Son[k].Category = 1
                 data[index].Son[k].typeStatus = index
-                data[index].Son[k].Score = data[index].Son[k].Score==undefined||data[index].Son[k].Score==''?'0':data[index].Son[k].Score
+                data[index].Son[k].Score = data[index].Son[k].Score == undefined || data[index].Son[k].Score == '' ? '0' : data[index].Son[k].Score
                 list.push(data[index].Son[k])
               }
             }
           }
           this.entityListData.entityList = list
-          console.log('处理完的数据',list)
+          console.log('处理完的数据', list)
         }).catch(err => {
           console.error(err)
         })
       },
       // 弹窗
-      onDialogVisible(item,index){
+      onDialogVisible (item, index) {
         console.log(item)
         this.entityListItemIndex = index
         this.textareaValue = item.Remark
         this.dialogBoolean = true
       },
-      //确认编辑内容
-      onTrueDialog(){
+      // 确认编辑内容
+      onTrueDialog () {
         this.entityListData.entityList[this.entityListItemIndex].Remark = this.textareaValue
         this.dialogBoolean = false
       },
       // 分数校验
-      onInputFen(index,fen){
+      onInputFen (index, fen) {
         this.branchNum = fen
         // this.entityListData.entityList[index].Score = fen
       },
 
-      getDictOptions() {
+      getDictOptions () {
         api.getDictList(this.$axios).then(res => {
-          //this.dictOptions.customerList = res.data.items['customerList']
-          //this.dictOptions.projectList = res.data.items['projectList']
+          // this.dictOptions.customerList = res.data.items['customerList']
+          // this.dictOptions.projectList = res.data.items['projectList']
 
         }).catch(err => {
           console.error(err)
         })
       },
 
-      searchCommand(command) {
+      searchCommand (command) {
         if (command == 'search') {
           this.dialogVisible = true
         } else if (command == 'clear') {
           this.clearSearch()
         }
       },
-      //列表排序功能
-      orderby(column) {
+      // 列表排序功能
+      orderby (column) {
         if (column.order == 'ascending') {
           this.Column.Order = 'asc'
         } else if (column.order == 'descending') {
@@ -372,48 +374,47 @@
         this.Column.Prop = column.prop
         this.initDatas()
       },
-      clearSearch() {
-        Object.assign(this.searchForm, this.searchFormReset);
-        //this.searchForm = this.searchFormReset;
+      clearSearch () {
+        Object.assign(this.searchForm, this.searchFormReset)
+        // this.searchForm = this.searchFormReset;
         this.CreateOn = ''
         this.initDatas()
       },
-      handleSearch() {
-        this.currentPage = 1;
-        this.dialogVisible = false;
-        this.initDatas();
+      handleSearch () {
+        this.currentPage = 1
+        this.dialogVisible = false
+        this.initDatas()
       },
-      handleCurrentChange(value) {
+      handleCurrentChange (value) {
         this.currentPage = value
         this.initDatas()
       },
-      handleSizeChange(value) {
+      handleSizeChange (value) {
         this.size = value
         this.currentPage = 1
         this.initDatas()
       },
-      deleteEntity(row) {
-        row.deleteConfirmFlag = false;
+      deleteEntity (row) {
+        row.deleteConfirmFlag = false
         api.deleteEntity(row.Id, this.$axios).then(res => {
           if (res.data.code === 0) {
-            this.initDatas();
+            this.initDatas()
             this.$message({
               type: 'success',
               message: res.data.message
-            });
-
+            })
           } else {
             this.$message({
               type: 'warning',
               message: res.data.message
-            });
+            })
           }
         }).catch(err => {
           console.error(err)
-        });
+        })
       },
 
-      jstimehandle(val) {
+      jstimehandle (val) {
         if (val === '') {
           return '----'
         } else if (val === '0001-01-01T08:00:00+08:00') {
@@ -426,16 +427,16 @@
         }
       },
 
-      formatDateTime(date) {
-        var y = date.getFullYear();
-        var m = date.getMonth() + 1;
-        m = m < 10 ? ('0' + m) : m;
-        var d = date.getDate();
-        d = d < 10 ? ('0' + d) : d;
-        var h = date.getHours();
-        var minute = date.getMinutes();
-        minute = minute < 10 ? ('0' + minute) : minute;
-        return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
+      formatDateTime (date) {
+        var y = date.getFullYear()
+        var m = date.getMonth() + 1
+        m = m < 10 ? ('0' + m) : m
+        var d = date.getDate()
+        d = d < 10 ? ('0' + d) : d
+        var h = date.getHours()
+        var minute = date.getMinutes()
+        minute = minute < 10 ? ('0' + minute) : minute
+        return y + '-' + m + '-' + d + ' ' + h + ':' + minute
       },
       orgunitChange (val) {
         let deptid = val
@@ -465,10 +466,9 @@
         }).catch(err => {
           console.error(err)
         })
-      },
+      }
     }
   }
-
 </script>
 
 <style lang="scss">

+ 3 - 2
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/index.vue

@@ -70,7 +70,7 @@
             <el-button v-if="editeBoolean && scope.row.Status <= 0" type="text" title="编辑" size="small" icon="el-icon-edit"
                        @click="onNavigateEvaluate(scope.row)">编辑
             </el-button>
-            <el-button v-else type="text" title="编辑" size="small" icon="el-icon-edit"
+            <el-button v-else type="text" title="查看" size="small" icon="el-icon-edit"
                        @click="onNavigateEvaluate(scope.row)">查看
             </el-button>
 
@@ -645,7 +645,8 @@ export default {
         path: '/oilcontract/contract-service/' + item.Id + '/evaluate',
         query: {
           ContractId: item.ContractId,
-          type: 2
+          type: 2,
+          isBusiness: item.IsBusiness
         }
       })
     },