2
3
王宇昕 6 лет назад
Родитель
Сommit
f0964f51af
20 измененных файлов с 3703 добавлено и 1120 удалено
  1. 7 1
      src/dashoo.cn/frontend_web/nuxt.config.js
  2. 11 3
      src/dashoo.cn/frontend_web/src/api/oilcontract/contract.js
  3. 4 1
      src/dashoo.cn/frontend_web/src/assets/styles/common.css
  4. 0 1
      src/dashoo.cn/frontend_web/src/components/oilcontract/submitPopup.vue
  5. 20 3
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year-check/index.vue
  6. 383 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluate.vue
  7. 270 441
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluationlist.vue
  8. 18 4
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/index.vue
  9. 384 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluate.vue
  10. 271 232
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluationlist.vue
  11. 31 24
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/index.vue
  12. 698 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/index_old.vue
  13. 28 91
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/evaluate.vue
  14. 25 14
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/evaluationlist.vue
  15. 140 34
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/operation.vue
  16. 29 57
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/index.vue
  17. 384 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/evaluate.vue
  18. 271 190
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/evaluationlist.vue
  19. 31 24
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/index.vue
  20. 698 0
      src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/index_old.vue

+ 7 - 1
src/dashoo.cn/frontend_web/nuxt.config.js

@@ -32,7 +32,12 @@ module.exports = {
       rel: 'icon',
       type: 'image/x-icon',
       href: '/favicon.ico'
-    }],
+    },
+    // {
+    //   rel: 'stylesheet',
+    //   href: '/src/assets/styles/common.css',
+    // }
+    ],
     script: [{
         src: '/js/utils.js'
       },
@@ -103,6 +108,7 @@ module.exports = {
   css: [
     // 'normalize.css/normalize.css',
     'element-ui/lib/theme-chalk/index.css',
+    '~assets/styles/common.css',
     {
       src: '~assets/styles/main.scss',
       lang: 'scss'

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

@@ -1,12 +1,20 @@
 export default {
 
   // 最初始的上级节点
-  evaluationItemsOnelist(myAxios) {
+  evaluationItemsOnelist(entityId, myAxios) {
     return myAxios({
-      url: '/evaluation-items/onelist',
+      url: '/evaluation-items/onelist/'+entityId,
       method: 'GET',
     });
   },
+  // 编辑后的评价内容
+  contractEvaluationTree(formData,myAxios) {
+    return myAxios({
+      url: '/contract-evaluation/tree',
+      method: 'post',
+      data: formData
+    });
+  },
 
 
 
@@ -21,7 +29,7 @@ export default {
   //评价编辑
   updateContractEvaluate(entityId,formData, myAxios) {
     return myAxios({
-      url: '/contract-review/update'+entityId,
+      url: '/contract-review/update/'+entityId,
       method: 'post',
       data: formData
     });

+ 4 - 1
src/dashoo.cn/frontend_web/src/assets/styles/common.css

@@ -1,3 +1,6 @@
-.web_fromclass /deep/ .el-input{
+.web_fromclass /deep/ .el-form-item__content{
   max-height: 40px;
 }
+.border{
+  border: 1px solid black;
+}

+ 0 - 1
src/dashoo.cn/frontend_web/src/components/oilcontract/submitPopup.vue

@@ -189,7 +189,6 @@
         })
       },
       orgunitChange (val) {
-        console.log('近来个啥', val)
         if (!val) {
           return false
         }

+ 20 - 3
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis-year-check/index.vue

@@ -15,7 +15,8 @@
           <!-- <router-link :to="'/oilcontract/contract-basis-year-single/add/operation'">
             <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">添加</el-button>
           </router-link> -->
-          <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">一键处理</el-button>
+          <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;" @click="onChangeSelect">一键处理</el-button>
+          <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;" v-if="selectBoolean" @click="onChangeSelectSubmit">处理</el-button>
         </span>
         <el-form ref="form" :inline="true" style="float: right; margin-top: -10px">
           <el-form-item label="上报时间">
@@ -35,7 +36,14 @@
         </el-form>
       </div>
       <el-table size="mini" :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
-        <el-table-column label="操作" min-width="205" align="center" fixed>
+        <el-table-column
+          align="center"
+          fixed
+          type="selection"
+          v-if="selectBoolean"
+          width="70">
+        </el-table-column>
+        <el-table-column label="操作" min-width="160" align="center" fixed>
           <template slot-scope="scope">
             <!-- scope.row.Id -->
             <router-link :to="'/oilcontract/contract-basis-year/' + 'add' + '/operation'">
@@ -55,7 +63,7 @@
               </div>
               <el-button slot="reference" type="text"  style="margin-left:3px" icon="el-icon-delete" size="small">删除</el-button>
             </el-popover>
-            
+
           </template>
         </el-table-column>
 
@@ -312,6 +320,7 @@
 
     data() {
       return {
+        selectBoolean:false,//表格选项框
         dialogVisible: false,
         //列表数据
         entityList: [1],
@@ -565,6 +574,14 @@
       //this.getDictOptions()
     },
     methods: {
+      // 打开一键处理
+      onChangeSelect(){
+        this.selectBoolean = !this.selectBoolean
+      },
+      // 一键处理
+      onChangeSelectSubmit(){
+        
+      },
       initDatas() {
         //分页及列表条件
         let params = {

+ 383 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluate.vue

@@ -0,0 +1,383 @@
+
+
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilcontract/contract-basis' }">承包商合同表</el-breadcrumb-item>
+      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+    </el-breadcrumb>
+
+    <el-card class="box-card" style="mini-height: calc(100vh - 113px);">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 编辑 - 承包商合同
+        </span>
+        <span style="float: right;">
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="onSubmitBigAdd">提交审核</el-button>
+          <el-button type="primary" size="mini" v-if="activeName!=1" style="margin-left: 8px" @click="onSeaveBigAdd">保存</el-button>
+          <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回</el-button>
+        </span>
+      </div>
+      <el-tabs v-model="activeName" style="margin-top: -10px">
+        <el-tab-pane label="合同内容" name="1">
+          <el-card class="box-card">
+            <div slot="header">
+              <span>合同信息</span>
+              <!-- <span style="float: right;">
+                <el-button type="primary" size="mini" @click="saveEntity">保存</el-button>
+              </span> -->
+            </div>
+            <el-form label-width="110px" ref="EntityForm" :model="formData">
+              <el-row>
+                <el-col :span="8">
+                  <el-form-item label="承包商名称">
+                    <el-select ref="SupplierSelect" v-model="formData.SupplierId" placeholder="请选择" style="width: 100%" @change="supplierChangeHandler">
+                      <el-option key="1" label="天津油气公司" value="1"></el-option>
+                      <el-option key="2" label="北京管道公司" value="2"></el-option>
+                      <el-option key="3" label="上海监控公司" value="3"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+
+               <!-- <el-col :span="8">
+                  <el-form-item label="合同分类">
+                    <el-select  v-model="formData.ContractType" placeholder="请选择" style="width: 100%">
+                      <el-option key="1" label="服务商" value="1"></el-option>
+                      <el-option key="2" label="承包商" value="2"></el-option>
+                      <el-option key="3" label="供应商" value="3"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>-->
+
+                <el-col :span="8">
+                  <el-form-item label="评价单位名称">
+                    <el-input :disabled="disabled" v-model="formData.ProjectPlace" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="评价年度">
+                    <el-input :disabled="disabled" v-model="formData.ProjectPlace" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="承建项目名称">
+                    <el-input :disabled="disabled" v-model="formData.ProjectName" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="合同编号">
+                    <el-input :disabled="disabled" v-model="formData.ContractNo" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+
+                <el-col :span="8">
+                  <el-form-item  label="项目类别">
+                    <el-select :disabled="disabled" v-model="formData.ProjectType" placeholder="请选择" style="width: 100%">
+                      <el-option key="1" label="咨询" value="1"></el-option>
+                      <el-option key="2" label="勘探" value="2"></el-option>
+                      <el-option key="3" label="设计" value="3"></el-option>
+                      <el-option key="4" label="施工" value="4"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+
+               <!-- <el-col :span="8">
+                  <el-form-item label="合同模式">
+                    <el-input v-model="formData.ContractMode" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>-->
+
+                <el-col :span="8">
+                  <el-form-item  label="是否分包">
+                    <el-select :disabled="disabled" placeholder="请选择" v-model="formData.SubPackage" style="width: 100%">
+                      <el-option key="1" label="是" value="1"></el-option>
+                      <el-option key="2" label="否" value="2"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+
+            <div style="display: flex;justify-content: flex-end;">
+              <el-button type="primary" size="mini"   @click="onSubmit_contract">下一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+            </div>
+
+          </el-card>
+        </el-tab-pane>
+        <el-tab-pane label="业绩评价" name="2" :disabled="performance.disabled" >
+          <evaluation-list ref="evaluation_list_one"  :type="routeData.type" :evaluateId="routeData.item.Id" :category="routeData.item.Id" ></evaluation-list>
+        </el-tab-pane>
+
+
+
+        <el-tab-pane label="专业处室业绩评价" name="3" :disabled="departmentPerformance.disabled">
+          <evaluation-list></evaluation-list>
+        </el-tab-pane>
+        <el-tab-pane label="审批流程" name="4" :disabled="approvalProcess.disabled">
+          <el-card class="box-card mycard">
+            <div slot="header"
+                 class="clearfix">
+              <span>审批流程</span>
+            </div>
+            <wf-history ref="WfHistory" :entryinfo="entrydetail"></wf-history>
+          </el-card>
+        </el-tab-pane>
+
+        <!-- <el-tab-pane label="审核流程" name="4">
+          <evaluation-list></evaluation-list>
+        </el-tab-pane> -->
+      </el-tabs>
+    </el-card>
+
+    <submitPopup ref="submitpopup"></submitPopup>
+
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/oilcontract/contract'
+  import evaluationList from './evaluationlist'
+  import WfHistory from '@/components/workflow/wfhistory.vue'
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilcontractEdit',
+    components: {
+      evaluationList,
+      WfHistory,
+    },
+
+    data() {
+      return {
+        routeData:'',//上一页面传过来的值
+
+        dialogVisibleCom:false,
+
+        disabled:true,//禁用
+        // 业绩评价
+        performance: {
+          disabled:false,//禁用
+        },
+        // 专业处室业绩评价
+        departmentPerformance:{
+          disabled:false,//禁用
+        },
+        // 审批流程
+        approvalProcess:{
+          disabled:false,//禁用
+        },
+
+        entrydetail: {
+          process: '',
+          business: '',
+          instance: ''
+        },
+        activeName: '1',
+        serviceId: '',
+        formData: {
+          Id: '',
+        },
+        //下拉选择项
+        //wellNoOptions: [],
+        //supervisersOptions: [],
+        evaluation_list:[],
+        evaluation_list_department:[],
+
+      }
+    },
+    created() {
+      this.routeData = this.$route.query
+      console.log('跳转数据',this.routeData)
+      this.serviceId = this.$route.params.opera;
+      this.getDictOptions();
+      // console.log(this.serviceId);
+      // if(this.serviceId != 'add' && this.serviceId>0) {
+      //   this.formData.Id = this.serviceId;
+      //   this.initDatas();
+      // } else {
+      //   this.formData.Id = 0;
+      // }
+    },
+    methods: {
+      //提交评价
+      onSubmitBigAdd(){
+        this.$refs.submitpopup.dialogVisibleCom = true
+      },
+      //保存评价
+      onSeaveBigAdd(){
+        this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
+        // 获取第一列评价格式
+        var fractionBoolean_1 = this.$refs.evaluation_list_one.fractionBoolean
+
+        if(fractionBoolean_1){
+          if(this.formData.Id == 0){
+            this.addEvaluate()
+          }else{
+            this.updateEvaluate()
+          }
+        }else{
+          this.$message.error('填写的分数有误');
+        }
+
+      },
+      //新增评价
+      addEvaluate(){
+        var formData = {
+          ContractId:this.routeData.Id,
+          Items:this.evaluation_list,
+        }
+        api.addContractEvaluate(formData, this.$axios).then(res => {
+          console.log('新增',res)
+          this.formData.Id = res.data.item
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+      //编辑评价
+      updateEvaluate(){
+        var formData = {
+          ContractId:this.routeData.Id,
+          Items:this.evaluation_list,
+        }
+        api.updateContractEvaluate(this.formData.Id,formData, this.$axios).then(res => {
+          console.log('编辑',res)
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+      //点击下一步
+      onSubmit_contract(){
+        this.activeName = '2'
+      },
+
+
+      initDatas() {
+        if(this.formData.Id) {
+          api.getEntity(this.formData.Id, this.$axios).then(res => {
+            this.formData = res.data;
+          }).catch(err => {
+            console.error(err)
+          });
+        }
+      },
+
+      getDictOptions() {
+        api.getDictList(this.$axios).then(res => {
+          //this.wellNoOptions = res.data.items['WellNo']
+          //this.supervisersOptions = res.data.items['Supervisers']
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      //保存信息
+      saveEntity() {
+        this.$refs['EntityForm'].validate((valid) => {
+          if (valid) {
+            //this.formData.WellNo = this.$refs.selectWellNo.selectedLabel + '';
+
+            if (!this.formData.Id) {
+              this.addEntity();
+            } else {
+              this.updateEntity();
+            }
+
+          } else {
+            return false
+          }
+        })
+      },
+
+      addEntity() {
+        api.addEntity(this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            //保存成功后,初始化数据,变成修改
+            this.formData.Id = res.data.item;
+            this.initDatas();
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            });
+
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            });
+          }
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+
+      updateEntity() {
+        api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            //保存成功后,初始化数据,变成修改
+            this.initDatas();
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            });
+
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            });
+          }
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+
+      supplierChangeHandler() {
+        this.formData.SupplierName = this.$refs['SupplierSelect'].selectedLabel
+      },
+
+      jstimehandle(val) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          return val.substring(0, 10)
+        }
+      },
+
+      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;
+      },
+      onBack(){
+        this.$router.go(-1)
+      }
+    }
+  }
+
+</script>
+
+<style lang="scss">
+
+</style>

+ 270 - 441
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/_opera/evaluationlist.vue

@@ -1,65 +1,102 @@
 <template>
   <div>
-    <el-table highlight-current-row :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
-      <el-table-column
-        property="SequenceNo"
-        label="序号"
-        header-align="center"
-        width="80">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.SequenceNo}}</span>
-          <span v-else>{{scope.row.SequenceNo}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Content"
-        header-align="center"
-        label="评价内容">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.Content}}</span>
-          <span v-else>{{scope.row.Content}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="NormalScore"
-        label="标准分值"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.NormalScore}}</span>
-          <span v-else-if="scope.row.NormalScore==0" style="font-weight: bold"></span>
-          <span v-else>{{scope.row.NormalScore}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Score"
-        label="实得分数"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.Score}}</span>
-          <el-input v-else size="mini" placeholder="实得分数" v-model="scope.row.Score"></el-input>
-        </template>
-      </el-table-column>
+    <el-form ref="form" :model="entityListData" label-width="0px" :rules="rules">
 
-      <el-table-column
-        property="Reason"
-        label="不合格原因"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span style="font-weight: bold"><el-tag size="mini">不合格原因</el-tag></span>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+      <el-table highlight-current-row :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+        <el-table-column
+          property="SequenceNo"
+          label="序号"
+          header-align="center"
+          width="80">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.SequenceNo}}</span>
+            <span v-else>{{scope.row.SequenceNo}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Content"
+          header-align="center"
+          label="评价内容">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.content}}</span>
+            <span v-else>{{scope.row.content}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="NormalScore"
+          label="标准分值"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.NormalScore}}</span>
+            <span v-else-if="scope.row.NormalScore==0" style="font-weight: bold"></span>
+            <span v-else>{{scope.row.NormalScore}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Score"
+          label="实得分数"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <el-form-item  style="margin-bottom: 0px;" :prop="'entityList.' + scope.$index + '.Score'" :rules="rules.relation">
+              <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scoreFun(scope.row.typeStatus)}}</span>
+              <el-input v-else size="mini" type="number" placeholder="实得分数" v-model="scope.row.Score" @input="onInputFen(scope.$index,scope.row.NormalScore)"></el-input>
+            </el-form-item>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Reason"
+          label="不合格原因"
+          header-align="center"
+          width="120"
+          align="center">
+          <template slot-scope="scope">
+             <el-popover
+                placement="top-start"
+                title="原因"
+                width="200"
+                trigger="hover"
+                :content="scope.row.Remark==''||scope.row.Remark==null?'空':scope.row.Remark">
+                <el-button slot="reference" v-if="scope.row.LevelCode!=1" type="primary" icon="el-icon-edit" size="mini" @click="onDialogVisible(scope.row,scope.$index)">编辑</el-button>
+             </el-popover>
+          </template>
+        </el-table-column>
+      </el-table>
+
+    </el-form>
+
+    <div style="display: flex;justify-content: flex-end; margin: 20px 0;">
+      <el-button type="primary" size="mini"   @click="activeName = '1'">上一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+      <el-button type="primary" size="mini"   @click="activeName = '3'">下一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+    </div>
+
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
                    :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
-    </el-pagination>
+    </el-pagination> -->
+
+    <el-dialog
+      title="不合格原因"
+      :visible.sync="dialogBoolean"
+      width="60%"
+      >
+      <el-input   type="textarea" placeholder="请输入" v-model="textareaValue" ></el-input>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogBoolean = false" size="small">取 消</el-button>
+        <el-button type="primary" @click="onTrueDialog" size="small">确 定</el-button>
+      </span>
+    </el-dialog>
+
+
+
+
+
   </div>
 </template>
 <script>
   import { mapGetters } from 'vuex';
-  import api from '@/api/oilcontract/contractEvaluationItems';
+  import api from '@/api/oilcontract/contract'
+  // import api from '@/api/oilcontract/contractEvaluationItems';
 
   export default {
     computed: {
@@ -68,12 +105,77 @@
       })
     },
     name: 'oilcontractevaluationitems',
-
+    props: {
+      // 从合同进来还是从编辑进来 1合同2编辑
+      type: {
+        type: null,
+        default: 1,
+      },
+      // 评价id
+      evaluateId: {
+        type: null,
+        default:'',
+      },
+      // 类型 0 二级部门创建 1 专业处创建
+      category: {
+        type: null,
+        default:'',
+      },
+    },
+    computed:{
+      scoreFun:function(){
+        return function(type){
+          var num = 0;
+          var list = this.entityListData.entityList
+          for(var index = 0 ; index < list.length ; index++){
+            var code = Number(list[index].LevelCode)
+            if(type == list[index].typeStatus&&code==2){
+              num = num + Number(list[index].Score)
+            }
+          }
+          return num
+        }
+      },
+    },
     data() {
+      var validatePass = (rule, value, callback) => {
+        var num = Number(value)
+        if (num === '') {
+          this.fractionBoolean = false
+          callback(new Error('请输入分值'));
+          return
+        }
+        if (num > this.branchNum) {
+          this.fractionBoolean = false
+          callback(new Error('不能大于规定的分值'));
+          return
+        }
+        if ( num < 0) {
+          this.fractionBoolean = false
+          callback(new Error('不能为负数'));
+          return
+        }
+        this.fractionBoolean = true
+        callback();
+      };
       return {
+        fractionBoolean:true,
+        dialogVisibleCom: false,
+        loading: false,
+        UnitOrgOptions: [],
+        textareaValue:'',//不合格原因
+        dialogBoolean:false,
+        rules:{
+          relation: [
+            { validator: validatePass, trigger: 'blur' }
+          ],
+        },
         dialogVisible: false,
         //列表数据
-        entityList: [],
+        entityListData:{
+          entityList:[],
+        },
+
         //分页参数
         size: 10,
         currentPage: 1,
@@ -101,403 +203,101 @@
           ModifiedUserId: '',
           ModifiedBy: '',
 
-        }
+        },
+        auditform: {
+          FirstAuditName: '',
+          SecondAudit: '',
+          ThirdAudit: '',
+          CertId: '',
+          AuditRemark: '',
+          TypeCode: '03'
+        },
+        entityListItemIndex:'',
+
       }
     },
     created() {
-      //查询条件初始值备份
-      Object.assign(this.searchFormReset, this.searchForm);
-      //查询列表
-      //this.initDatas();
+      //数据列表
+      // 判断是编辑状态还是新增状态
+      if(this.type==1){
+        this.initDatas();
+      }else{
+        this.editDatas();
+      }
+
+
       //this.getDictOptions()
 
-      this.entityList = [
-        {
-          SequenceNo: '1.',
-          type: 'SUM',
-          Content: '项目组织实施',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '1.1',
-          type: 'ITEM',
-          Content: '是否建立并实现了项目的总体目标',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '1.2',
-          type: 'ITEM',
-          Content: '项目组织机构是否健全,管理职责是否明确',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '1.3',
-          type: 'ITEM',
-          Content: '是否制定了科学、合理的项目实施方案并能有效实施',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '1.4',
-          type: 'ITEM',
-          Content: '是否建立完善的工程变更管理程序并有效实施',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '1.5',
-          type: 'ITEM',
-          Content: '项目资源配置是否符合合同约定并满足项目实施需要',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '2.',
-          type: 'SUM',
-          Content: '项目质量管理',
-          NormalScore: 20,
-          Score: 20
-        },
-        {
-          SequenceNo: '2.1',
-          type: 'ITEM',
-          Content: '是否针对项目实际建立了质量管理体系并有效运行,项目质量计划是否得到有效实施',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '2.2',
-          type: 'ITEM',
-          Content: '主要质量特性指标是否能够满足相关标准规范的要求,项目已完工部分是否存在质量缺陷或隐患',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '2.3',
-          type: 'ITEM',
-          Content: '是否确定质量控制点,制定并实施质量控制措施',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '2.4',
-          type: 'ITEM',
-          Content: '质量相关证明文件、记录、资料是否真实、完整',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '2.5',
-          type: 'ITEM',
-          Content: '是否存在违反有关法律法规及强制性标准等行为',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '2.6',
-          type: 'ITEM',
-          Content: '是否存在被质量监督机构处理或记录在案的不良行为',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '2.7',
-          type: 'ITEM',
-          Content: '是否发生一般质量事故或严重质量问题(扣除1-10分)',
-          NormalScore:  0,
-          Score: 0
-        },
-        {
-          SequenceNo: '3.',
-          type: 'SUM',
-          Content: '项目职业健康安全与环境管理',
-          NormalScore: 20,
-          Score: 20
-        },
-        {
-          SequenceNo: '3.1',
-          type: 'ITEM',
-          Content: '是否针对项目实际建立了职业健康安全与环境管理体系并有效运行,管理计划是否得到有效实施,职业健康安全与环境管理目标及指标是否完成',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '3.2',
-          type: 'ITEM',
-          Content: '职业健康安全与环境管理投入是否满足有关规定及项目实施需要',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '3.3',
-          type: 'ITEM',
-          Content: '施工现场是否做到各种标志齐全、防护设施完备、物料摆放规范、管理有序、文明施工',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '3.4',
-          type: 'ITEM',
-          Content: '是否及时进行安全风险识别,制定并实施风险削减措施',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '3.5',
-          type: 'ITEM',
-          Content: '是否结合项目实际制定了相应的应急预案并配备了相应的应急物资,组织进行应急培训和演练',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '3.6',
-          type: 'ITEM',
-          Content: '是否存在违反建设工程安全管理条例、安全操作规程及集团公司安全管理禁令等情况',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '3.7',
-          type: 'ITEM',
-          Content: '是否受到过安全、环保监督机构、相关部门的处理及相关方举报或投诉',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '3.8',
-          type: 'ITEM',
-          Content: '是否发生了一般生产安全事故或环境污染事件(酌情扣除1-10分)',
-          NormalScore:  0,
-          Score: 0
-        },
-        {
-          SequenceNo: '4.',
-          type: 'SUM',
-          Content: '项目成本管理',
-          NormalScore: 5,
-          Score: 5
-        },{
-          SequenceNo: '4.1',
-          type: 'ITEM',
-          Content: '工程报价是否合理',
-          NormalScore: 1,
-          Score: 1
-        },
-        {
-          SequenceNo: '4.2',
-          type: 'ITEM',
-          Content: '项目经营风险识别是否切合实际',
-          NormalScore: 1,
-          Score: 1
-        },
-        {
-          SequenceNo: '4.3',
-          type: 'ITEM',
-          Content: '是否制定了项目成本控制措施并有效落实',
-          NormalScore: 1,
-          Score: 1
-        },
-        {
-          SequenceNo: '4.4',
-          type: 'ITEM',
-          Content: '项目成本核销是否符合财务相关规定',
-          NormalScore: 1,
-          Score: 1
-        },
-        {
-          SequenceNo: '4.5',
-          type: 'ITEM',
-          Content: '项目成本控制目标是否实现',
-          NormalScore: 1,
-          Score: 1
-        },
-        {
-          SequenceNo: '5.',
-          type: 'SUM',
-          Content: '项目进度管理',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '5.5',
-          type: 'ITEM',
-          Content: '是否编制切合实际的项目进度计划及相应的控制措施',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '5.2',
-          type: 'ITEM',
-          Content: '是否能够认真实施项目进度计划,组织措施、技术措施、合同措施、经济措施和信息管理等控制措施是否有效实施,偏差得以及时纠正',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '5.3',
-          type: 'ITEM',
-          Content: '工期是否满足合同约定',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '6.',
-          type: 'SUM',
-          Content: '项目分包管理',
-          NormalScore: 15,
-          Score: 15
-        },
-        {
-          SequenceNo: '6.1',
-          type: 'ITEM',
-          Content: '是否建立了分包管理制度及程序',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '6.2',
-          type: 'ITEM',
-          Content: '分包行为是否符合有关法律法规及集团公司相关规定,分包方案事先经业主同意',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '6.3',
-          type: 'ITEM',
-          Content: '分包招标活动是否符合有关法律法规及相关程序',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '6.4',
-          type: 'ITEM',
-          Content: '所选用的分包商是否取得集团公司工程建设承包商准入资格证书或已经按照有关规定履行了审批备案手续',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '6.5',
-          type: 'ITEM',
-          Content: '是否存在拖欠分包商工程款项行为',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '6.6',
-          type: 'ITEM',
-          Content: '是否对分包商实施了有效的管理,完全履行了分包合同中规定的权利、义务和责任',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '6.7',
-          type: 'ITEM',
-          Content: '分包工程质量是否符合有关验收标准、规范要求',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '7.',
-          type: 'SUM',
-          Content: '信息资料管理',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '7.1',
-          type: 'ITEM',
-          Content: '是否建立了信息资料的管理程序及保密制度并能严格执行',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '7.2',
-          type: 'ITEM',
-          Content: '是否积极采用先进的信息管理技术或管理系统',
-          NormalScore: 1,
-          Score: 1
-        },
-        {
-          SequenceNo: '7.3',
-          type: 'ITEM',
-          Content: '是否及时建立、收集、整理并妥善保管项目实施过程中形成的各类记录、证明、资料等',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '7.4',
-          type: 'ITEM',
-          Content: '信息和资料内容是否真实、完整、准确、可追溯',
-          NormalScore: 2,
-          Score: 2
-        },
-        {
-          SequenceNo: '7.5',
-          type: 'ITEM',
-          Content: '能否及时提交符合规定要求的项目完/竣工资料',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '8.',
-          type: 'SUM',
-          Content: '诚信履约',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '8.1',
-          type: 'ITEM',
-          Content: '是否遵守了诚实信用原则,对合同约定的责任、权利和义务是否得到全面履行',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '8.2',
-          type: 'ITEM',
-          Content: '对合同执行中存在的问题、纠纷,能采用正确的方式妥善解决,是否发生过严重违约行为',
-          NormalScore: 3,
-          Score: 3
-        },
-        {
-          SequenceNo: '8.3',
-          type: 'ITEM',
-          Content: '是否全面实现了合同约定目标',
-          NormalScore: 4,
-          Score: 4
-        }
-      ]
     },
     methods: {
+      //初始数据
       initDatas() {
-        //分页及列表条件
-        let params = {
-          _currentPage: this.currentPage,
-          _size: this.size,
-          Order: this.Column.Order,
-          Prop: this.Column.Prop,
-        }
-        let myCreateOn = []
-        // 解析时间
-        if (this.CreateOn.length == 2) {
-          this.CreateOn[1].setHours(23)
-          this.CreateOn[1].setMinutes(59)
-          this.CreateOn[1].setSeconds(59)
-          myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
-          myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
+        api.evaluationItemsOnelist(this.type,this.$axios).then(res => {
+          console.log('上级节点内容',res)
+          var data = res.data.items
+          var list = []
+          for(var index = 0 ; index < data.length ; index++){
+            data[index].typeStatus = index
+            list.push(data[index])
+            if(data[index].Son!=null&&data[index].Son!=undefined){
+              for(var k = 0 ; k < data[index].Son.length ; k++){
+                data[index].Son[k].typeStatus = index
+                data[index].Son[k].Score = 0
+                list.push(data[index].Son[k])
+              }
+            }
+          }
+          this.entityListData.entityList = list
+          console.log('处理完的数据',list)
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      //初始数据
+      editDatas() {
+        var data = {
+          ContentReviewId:this.evaluateId,
+          Category:this.category,
         }
-        //查询条件
-        Object.assign(params, this.searchForm)
-        //访问接口
-        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
-          this.entityList = res.data.items
-          this.currentItemCount = res.data.currentItemCount
+        api.contractEvaluationTree(data,this.$axios).then(res => {
+          console.log('上级节点内容',res)
+          var data = res.data.items
+          var list = []
+          for(var index = 0 ; index < data.length ; index++){
+            data[index].typeStatus = index
+            list.push(data[index])
+            if(data[index].Son!=null&&data[index].Son!=undefined){
+              for(var k = 0 ; k < data[index].Son.length ; k++){
+                data[index].Son[k].typeStatus = index
+                data[index].Son[k].Score = 0
+                list.push(data[index].Son[k])
+              }
+            }
+          }
+          this.entityListData.entityList = list
+          console.log('处理完的数据',list)
         }).catch(err => {
           console.error(err)
         })
       },
+      // 弹窗
+      onDialogVisible(item,index){
+        console.log(item)
+        this.entityListItemIndex = index
+        this.textareaValue = item.Remark
+        this.dialogBoolean = true
+      },
+      //确认编辑内容
+      onTrueDialog(){
+        this.entityListData.entityList[this.entityListItemIndex].Remark = this.textareaValue
+        this.dialogBoolean = false
+      },
+      // 分数校验
+      onInputFen(index,fen){
+        this.branchNum = fen
+        // this.entityListData.entityList[index].Score = fen
+      },
+
 
       getDictOptions() {
         api.getDictList(this.$axios).then(res => {
@@ -590,7 +390,36 @@
         var minute = date.getMinutes();
         minute = minute < 10 ? ('0' + minute) : minute;
         return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
-      }
+      },
+      orgunitChange (val) {
+        let deptid = val
+        let auditstepcode = 'SUB_OFFICE_JF'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.orgauditOptions = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      getDictOptions () {
+        let params = {
+          status: this.formData.Status,
+          majorAduit: this.formData.ThirdAudit
+        }
+        api.getDictListByStatus(params, this.$axios).then(res => {
+          this.dictData = res.data.items
+          this.organizeOption = res.data.items['Organizes']
+          this.orgtreelist = window.toolfun_gettreejson(res.data.items['ProOrgList'], 'id', 'pId', 'id,name')
+          this.UnitOrgOptions = res.data.items['UnitOrgList']
+          this.UnitOrg = res.data.items['Register'].CheckUnitId
+          this.allorgunitOptions = res.data.items['Allunitorglist']
+          this.orgunitChange(this.UnitOrg)
+          /* this.UnitRelationOptions = res.data.items['UnitRelation']
+          this.getCityList(res.data.items['GaodeMapChinaAreas'])
+          this.CompanyTypeOptions = res.data.items['CompanyType'] */
+        }).catch(err => {
+          console.error(err)
+        })
+      },
     }
   }
 

+ 18 - 4
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/index.vue

@@ -37,9 +37,7 @@
       <el-table size="mini" :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" min-width="160" align="center" fixed>
           <template slot-scope="scope">
-            <router-link :to="'/oilcontract/contract-basis/' + 'add' + '/operation'">
-              <el-button type="text" title="编辑" size="small" icon="el-icon-edit">编辑</el-button>
-            </router-link>
+            <el-button type="text" title="编辑" size="small" icon="el-icon-edit" @click="onNavigateEvaluate(scope.row)">编辑</el-button>
 
             <el-popover placement="top" title="提示" >
               <el-alert
@@ -557,6 +555,17 @@
       //this.getDictOptions()
     },
     methods: {
+      //跳转评价
+      onNavigateEvaluate(item){
+        console.log('跳转',item)
+        this.$router.push({
+          path:'/oilcontract/contract-basis/' + item.Id + '/evaluate',
+          query:{
+            item:item,
+            type:2,
+          }
+        })
+      },
       initDatas() {
         //分页及列表条件
         let params = {
@@ -564,8 +573,12 @@
           _size: this.size,
           Order: this.Column.Order,
           Prop: this.Column.Prop,
-          ContractClass:'01',
+          ContractClass:'02',
         }
+        // <el-option label="物资类" value="01" key="01"></el-option>
+        // <el-option label="基建类" value="02" key="02"></el-option>
+        // <el-option label="技术服务" value="03" key="03"></el-option>
+        
         let myCreateOn = []
         // 解析时间
         if (this.CreateOn.length == 2) {
@@ -579,6 +592,7 @@
         Object.assign(params, this.searchForm)
         //访问接口
         api.getReviewList(myCreateOn.join(','), params, this.$axios).then(res => {
+          console.log('评价接口',res)
           this.entityList = res.data.items
           this.currentItemCount = res.data.currentItemCount
         }).catch(err => {

+ 384 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluate.vue

@@ -0,0 +1,384 @@
+
+
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilcontract/contract-basis' }">承包商合同表</el-breadcrumb-item>
+      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+    </el-breadcrumb>
+
+    <el-card class="box-card" style="mini-height: calc(100vh - 113px);">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 编辑 - 承包商合同
+        </span>
+        <span style="float: right;">
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="onSubmitBigAdd">提交审核</el-button>
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="onSeaveBigAdd">保存</el-button>
+          <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回</el-button>
+        </span>
+      </div>
+      <el-tabs v-model="activeName" style="margin-top: -10px">
+        <el-tab-pane label="合同内容" name="1">
+          <el-card class="box-card">
+            <div slot="header">
+              <span>合同信息</span>
+              <!-- <span style="float: right;">
+                <el-button type="primary" size="mini" @click="saveEntity">保存</el-button>
+              </span> -->
+            </div>
+            <el-form label-width="110px" ref="EntityForm" :model="formData">
+              <el-row>
+                <el-col :span="8">
+                  <el-form-item label="承包商名称">
+                    <el-select ref="SupplierSelect" v-model="formData.SupplierId" placeholder="请选择" style="width: 100%" @change="supplierChangeHandler">
+                      <el-option key="1" label="天津油气公司" value="1"></el-option>
+                      <el-option key="2" label="北京管道公司" value="2"></el-option>
+                      <el-option key="3" label="上海监控公司" value="3"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+
+               <!-- <el-col :span="8">
+                  <el-form-item label="合同分类">
+                    <el-select  v-model="formData.ContractType" placeholder="请选择" style="width: 100%">
+                      <el-option key="1" label="服务商" value="1"></el-option>
+                      <el-option key="2" label="承包商" value="2"></el-option>
+                      <el-option key="3" label="供应商" value="3"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>-->
+
+                <el-col :span="8">
+                  <el-form-item label="评价单位名称">
+                    <el-input :disabled="disabled" v-model="formData.ProjectPlace" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="评价年度">
+                    <el-input :disabled="disabled" v-model="formData.ProjectPlace" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="承建项目名称">
+                    <el-input :disabled="disabled" v-model="formData.ProjectName" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="合同编号">
+                    <el-input :disabled="disabled" v-model="formData.ContractNo" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+
+                <el-col :span="8">
+                  <el-form-item  label="项目类别">
+                    <el-select :disabled="disabled" v-model="formData.ProjectType" placeholder="请选择" style="width: 100%">
+                      <el-option key="1" label="咨询" value="1"></el-option>
+                      <el-option key="2" label="勘探" value="2"></el-option>
+                      <el-option key="3" label="设计" value="3"></el-option>
+                      <el-option key="4" label="施工" value="4"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+
+               <!-- <el-col :span="8">
+                  <el-form-item label="合同模式">
+                    <el-input v-model="formData.ContractMode" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>-->
+
+                <el-col :span="8">
+                  <el-form-item  label="是否分包">
+                    <el-select :disabled="disabled" placeholder="请选择" v-model="formData.SubPackage" style="width: 100%">
+                      <el-option key="1" label="是" value="1"></el-option>
+                      <el-option key="2" label="否" value="2"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+
+            <div style="display: flex;justify-content: flex-end;">
+              <el-button type="primary" size="mini"   @click="onSubmit_contract">下一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+            </div>
+
+          </el-card>
+        </el-tab-pane>
+        <el-tab-pane label="业绩评价" name="2" :disabled="performance.disabled" >
+          <evaluation-list ref="evaluation_list_one"  :type="routeData.type" :evaluateId="routeData.item.Id" :category="routeData.item.Id" ></evaluation-list>
+        </el-tab-pane>
+
+
+
+        <el-tab-pane label="专业处室业绩评价" name="3" :disabled="departmentPerformance.disabled">
+          <evaluation-list></evaluation-list>
+        </el-tab-pane>
+        <el-tab-pane label="审批流程" name="4" :disabled="approvalProcess.disabled">
+          <el-card class="box-card mycard">
+            <div slot="header"
+                 class="clearfix">
+              <span>审批流程</span>
+            </div>
+            <wf-history ref="WfHistory" :entryinfo="entrydetail"></wf-history>
+          </el-card>
+        </el-tab-pane>
+
+        <!-- <el-tab-pane label="审核流程" name="4">
+          <evaluation-list></evaluation-list>
+        </el-tab-pane> -->
+      </el-tabs>
+    </el-card>
+
+    <submitPopup ref="submitpopup"></submitPopup>
+
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/oilcontract/contract'
+  import evaluationList from './evaluationlist'
+  import WfHistory from '@/components/workflow/wfhistory.vue'
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilcontractEdit',
+    components: {
+      evaluationList,
+      WfHistory,
+    },
+
+    data() {
+      return {
+        routeData:'',//上一页面传过来的值
+
+        dialogVisibleCom:false,
+
+        disabled:true,//禁用
+        // 业绩评价
+        performance: {
+          disabled:false,//禁用
+        },
+        // 专业处室业绩评价
+        departmentPerformance:{
+          disabled:false,//禁用
+        },
+        // 审批流程
+        approvalProcess:{
+          disabled:false,//禁用
+        },
+
+        entrydetail: {
+          process: '',
+          business: '',
+          instance: ''
+        },
+        activeName: '1',
+        serviceId: '',
+        formData: {
+          Id: '',
+        },
+        //下拉选择项
+        //wellNoOptions: [],
+        //supervisersOptions: [],
+        evaluation_list:[],
+        evaluation_list_department:[],
+
+      }
+    },
+    created() {
+      this.routeData = this.$route.query
+
+
+      this.serviceId = this.$route.params.opera;
+      this.getDictOptions();
+      // console.log(this.serviceId);
+      // if(this.serviceId != 'add' && this.serviceId>0) {
+      //   this.formData.Id = this.serviceId;
+      //   this.initDatas();
+      // } else {
+      //   this.formData.Id = 0;
+      // }
+    },
+    methods: {
+      //提交评价
+      onSubmitBigAdd(){
+        this.$refs.submitpopup.dialogVisibleCom = true
+      },
+      //保存评价
+      onSeaveBigAdd(){
+        this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
+        // 获取第一列评价格式
+        var fractionBoolean_1 = this.$refs.evaluation_list_one.fractionBoolean
+
+        if(fractionBoolean_1){
+          if(this.formData.Id == 0){
+            this.addEvaluate()
+          }else{
+            this.updateEvaluate()
+          }
+        }else{
+          this.$message.error('填写的分数有误');
+        }
+
+      },
+      //新增评价
+      addEvaluate(){
+        var formData = {
+          ContractId:2,
+          Items:this.evaluation_list,
+        }
+        api.addContractEvaluate(formData, this.$axios).then(res => {
+          console.log('新增',res)
+          this.formData.Id = res.data.item
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+      //编辑评价
+      updateEvaluate(){
+        var formData = {
+          ContractId:2,
+          Items:this.evaluation_list,
+        }
+        api.updateContractEvaluate(this.formData.Id,formData, this.$axios).then(res => {
+          console.log('编辑',res)
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+      //点击下一步
+      onSubmit_contract(){
+        this.activeName = '2'
+      },
+
+
+      initDatas() {
+        if(this.formData.Id) {
+          api.getEntity(this.formData.Id, this.$axios).then(res => {
+            this.formData = res.data;
+          }).catch(err => {
+            console.error(err)
+          });
+        }
+      },
+
+      getDictOptions() {
+        api.getDictList(this.$axios).then(res => {
+          //this.wellNoOptions = res.data.items['WellNo']
+          //this.supervisersOptions = res.data.items['Supervisers']
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      //保存信息
+      saveEntity() {
+        this.$refs['EntityForm'].validate((valid) => {
+          if (valid) {
+            //this.formData.WellNo = this.$refs.selectWellNo.selectedLabel + '';
+
+            if (!this.formData.Id) {
+              this.addEntity();
+            } else {
+              this.updateEntity();
+            }
+
+          } else {
+            return false
+          }
+        })
+      },
+
+      addEntity() {
+        api.addEntity(this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            //保存成功后,初始化数据,变成修改
+            this.formData.Id = res.data.item;
+            this.initDatas();
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            });
+
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            });
+          }
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+
+      updateEntity() {
+        api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            //保存成功后,初始化数据,变成修改
+            this.initDatas();
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            });
+
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            });
+          }
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+
+      supplierChangeHandler() {
+        this.formData.SupplierName = this.$refs['SupplierSelect'].selectedLabel
+      },
+
+      jstimehandle(val) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          return val.substring(0, 10)
+        }
+      },
+
+      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;
+      },
+      onBack(){
+        this.$router.go(-1)
+      }
+    }
+  }
+
+</script>
+
+<style lang="scss">
+
+</style>

+ 271 - 232
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/_opera/evaluationlist.vue

@@ -1,64 +1,102 @@
 <template>
   <div>
-    <el-table highlight-current-row :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
-      <el-table-column
-        property="SequenceNo"
-        label="序号"
-        header-align="center"
-        width="80">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.SequenceNo}}</span>
-          <span v-else>{{scope.row.SequenceNo}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Content"
-        header-align="center"
-        label="评价内容">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.Content}}</span>
-          <span v-else>{{scope.row.Content}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="NormalScore"
-        label="标准分值"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.NormalScore}}</span>
-          <span v-else-if="scope.row.NormalScore==0" style="font-weight: bold"></span>
-          <span v-else>{{scope.row.NormalScore}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Score"
-        label="实得分数"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.Score}}</span>
-          <el-input v-else size="mini" placeholder="实得分数" v-model="scope.row.Score"></el-input>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Reason"
-        label="不合格原因"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span style="font-weight: bold"><el-tag size="mini">不合格原因</el-tag></span>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+    <el-form ref="form" :model="entityListData" label-width="0px" :rules="rules">
+
+      <el-table highlight-current-row :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+        <el-table-column
+          property="SequenceNo"
+          label="序号"
+          header-align="center"
+          width="80">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.SequenceNo}}</span>
+            <span v-else>{{scope.row.SequenceNo}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Content"
+          header-align="center"
+          label="评价内容">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.content}}</span>
+            <span v-else>{{scope.row.content}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="NormalScore"
+          label="标准分值"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.NormalScore}}</span>
+            <span v-else-if="scope.row.NormalScore==0" style="font-weight: bold"></span>
+            <span v-else>{{scope.row.NormalScore}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Score"
+          label="实得分数"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <el-form-item  style="margin-bottom: 0px;" :prop="'entityList.' + scope.$index + '.Score'" :rules="rules.relation">
+              <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scoreFun(scope.row.typeStatus)}}</span>
+              <el-input v-else size="mini" type="number" placeholder="实得分数" v-model="scope.row.Score" @input="onInputFen(scope.$index,scope.row.NormalScore)"></el-input>
+            </el-form-item>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Reason"
+          label="不合格原因"
+          header-align="center"
+          width="120"
+          align="center">
+          <template slot-scope="scope">
+             <el-popover
+                placement="top-start"
+                title="原因"
+                width="200"
+                trigger="hover"
+                :content="scope.row.Remark==''||scope.row.Remark==null?'空':scope.row.Remark">
+                <el-button slot="reference" v-if="scope.row.LevelCode!=1" type="primary" icon="el-icon-edit" size="mini" @click="onDialogVisible(scope.row,scope.$index)">编辑</el-button>
+             </el-popover>
+          </template>
+        </el-table-column>
+      </el-table>
+
+    </el-form>
+
+    <div style="display: flex;justify-content: flex-end;">
+      <el-button type="primary" size="mini"   @click="activeName = '1'">上一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+      <el-button type="primary" size="mini"   @click="activeName = '3'">下一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+    </div>
+
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
                    :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
-    </el-pagination>
+    </el-pagination> -->
+
+    <el-dialog
+      title="不合格原因"
+      :visible.sync="dialogBoolean"
+      width="60%"
+      >
+      <el-input   type="textarea" placeholder="请输入" v-model="textareaValue" ></el-input>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogBoolean = false" size="small">取 消</el-button>
+        <el-button type="primary" @click="onTrueDialog" size="small">确 定</el-button>
+      </span>
+    </el-dialog>
+
+
+
+
+
   </div>
 </template>
 <script>
   import { mapGetters } from 'vuex';
-  import api from '@/api/oilcontract/contractEvaluationItems';
+  import api from '@/api/oilcontract/contract'
+  // import api from '@/api/oilcontract/contractEvaluationItems';
 
   export default {
     computed: {
@@ -67,12 +105,77 @@
       })
     },
     name: 'oilcontractevaluationitems',
-
+    props: {
+      // 从合同进来还是从编辑进来 1合同2编辑
+      type: {
+        type: null,
+        default: 1,
+      },
+      // 评价id
+      evaluateId: {
+        type: null,
+        default:'',
+      },
+      // 类型 0 二级部门创建 1 专业处创建
+      category: {
+        type: null,
+        default:'',
+      },
+    },
+    computed:{
+      scoreFun:function(){
+        return function(type){
+          var num = 0;
+          var list = this.entityListData.entityList
+          for(var index = 0 ; index < list.length ; index++){
+            var code = Number(list[index].LevelCode)
+            if(type == list[index].typeStatus&&code==2){
+              num = num + Number(list[index].Score)
+            }
+          }
+          return num
+        }
+      },
+    },
     data() {
+      var validatePass = (rule, value, callback) => {
+        var num = Number(value)
+        if (num === '') {
+          this.fractionBoolean = false
+          callback(new Error('请输入分值'));
+          return
+        }
+        if (num > this.branchNum) {
+          this.fractionBoolean = false
+          callback(new Error('不能大于规定的分值'));
+          return
+        }
+        if ( num < 0) {
+          this.fractionBoolean = false
+          callback(new Error('不能为负数'));
+          return
+        }
+        this.fractionBoolean = true
+        callback();
+      };
       return {
+        fractionBoolean:true,
+        dialogVisibleCom: false,
+        loading: false,
+        UnitOrgOptions: [],
+        textareaValue:'',//不合格原因
+        dialogBoolean:false,
+        rules:{
+          relation: [
+            { validator: validatePass, trigger: 'blur' }
+          ],
+        },
         dialogVisible: false,
         //列表数据
-        entityList: [],
+        entityListData:{
+          entityList:[],
+        },
+
         //分页参数
         size: 10,
         currentPage: 1,
@@ -100,194 +203,101 @@
           ModifiedUserId: '',
           ModifiedBy: '',
 
-        }
+        },
+        auditform: {
+          FirstAuditName: '',
+          SecondAudit: '',
+          ThirdAudit: '',
+          CertId: '',
+          AuditRemark: '',
+          TypeCode: '03'
+        },
+        entityListItemIndex:'',
+
       }
     },
     created() {
-      //查询条件初始值备份
-      Object.assign(this.searchFormReset, this.searchForm);
-      //查询列表
-      //this.initDatas();
+      //数据列表
+      // 判断是编辑状态还是新增状态
+      if(this.type==1){
+        this.initDatas();
+      }else{
+        this.editDatas();
+      }
+
+
       //this.getDictOptions()
 
-      this.entityList = [
-        {
-          SequenceNo: '1.',
-          type: 'SUM',
-          Content: '产品质量',
-          NormalScore: 30,
-          Score: 30
-        },
-        {
-          SequenceNo: '1.1',
-          type: 'ITEM',
-          Content: '验收质量',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '1.2',
-          type: 'ITEM',
-          Content: '使用过程故障率',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '1.3',
-          type: 'ITEM',
-          Content: 'HSE运行',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '2.',
-          type: 'SUM',
-          Content: '合同履约',
-          NormalScore: 20,
-          Score: 20
-        },
-        {
-          SequenceNo: '2.1',
-          type: 'ITEM',
-          Content: '到货及时率',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '2.2',
-          type: 'ITEM',
-          Content: '交货准确率',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '2.3',
-          type: 'ITEM',
-          Content: '验收资料是否齐全',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '3.',
-          type: 'SUM',
-          Content: '售后服务',
-          NormalScore: 15,
-          Score: 15
-        },
-        {
-          SequenceNo: '3.1',
-          type: 'ITEM',
-          Content: '售后服务能力',
-          NormalScore: 7,
-          Score: 7
-        },
-        {
-          SequenceNo: '3.2',
-          type: 'ITEM',
-          Content: '投诉响应',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '3.3',
-          type: 'ITEM',
-          Content: '处理情况',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '4.',
-          type: 'SUM',
-          Content: '诚信经营',
-          NormalScore: 15,
-          Score: 15
-        },
-        {
-          SequenceNo: '4.1',
-          type: 'ITEM',
-          Content: '是否对合同约定的责任、权利和义务是否得到全面履行',
-          NormalScore: 7,
-          Score: 7
-        },
-        {
-          SequenceNo: '4.2',
-          type: 'ITEM',
-          Content: '是否对合同执行中存在的问题、纠纷妥善解决',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '4.3',
-          type: 'ITEM',
-          Content: '是否实现了合同约定目标?是否发生过严重违约行为?',
-          NormalScore: 4,
-          Score: 4
-        },
-        {
-          SequenceNo: '5.',
-          type: 'SUM',
-          Content: '协同响应',
-          NormalScore: 20,
-          Score: 20
-        },
-        {
-          SequenceNo: '5.1',
-          type: 'ITEM',
-          Content: '招标响应',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '5.2',
-          type: 'ITEM',
-          Content: '合同签订响应',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '5.3',
-          type: 'ITEM',
-          Content: '现场考察响应',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '5.4',
-          type: 'ITEM',
-          Content: '退货响应',
-          NormalScore: 5,
-          Score: 5
-        },
-      ]
     },
     methods: {
+      //初始数据
       initDatas() {
-        //分页及列表条件
-        let params = {
-          _currentPage: this.currentPage,
-          _size: this.size,
-          Order: this.Column.Order,
-          Prop: this.Column.Prop,
-        }
-        let myCreateOn = []
-        // 解析时间
-        if (this.CreateOn.length == 2) {
-          this.CreateOn[1].setHours(23)
-          this.CreateOn[1].setMinutes(59)
-          this.CreateOn[1].setSeconds(59)
-          myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
-          myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
+        api.evaluationItemsOnelist(this.type,this.$axios).then(res => {
+          console.log('上级节点内容',res)
+          var data = res.data.items
+          var list = []
+          for(var index = 0 ; index < data.length ; index++){
+            data[index].typeStatus = index
+            list.push(data[index])
+            if(data[index].Son!=null&&data[index].Son!=undefined){
+              for(var k = 0 ; k < data[index].Son.length ; k++){
+                data[index].Son[k].typeStatus = index
+                data[index].Son[k].Score = 0
+                list.push(data[index].Son[k])
+              }
+            }
+          }
+          this.entityListData.entityList = list
+          console.log('处理完的数据',list)
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      //初始数据
+      editDatas() {
+        var data = {
+          ContentReviewId:this.evaluateId,
+          Category:this.category,
         }
-        //查询条件
-        Object.assign(params, this.searchForm)
-        //访问接口
-        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
-          this.entityList = res.data.items
-          this.currentItemCount = res.data.currentItemCount
+        api.contractEvaluationTree(data,this.$axios).then(res => {
+          console.log('上级节点内容',res)
+          var data = res.data.items
+          var list = []
+          for(var index = 0 ; index < data.length ; index++){
+            data[index].typeStatus = index
+            list.push(data[index])
+            if(data[index].Son!=null&&data[index].Son!=undefined){
+              for(var k = 0 ; k < data[index].Son.length ; k++){
+                data[index].Son[k].typeStatus = index
+                data[index].Son[k].Score = 0
+                list.push(data[index].Son[k])
+              }
+            }
+          }
+          this.entityListData.entityList = list
+          console.log('处理完的数据',list)
         }).catch(err => {
           console.error(err)
         })
       },
+      // 弹窗
+      onDialogVisible(item,index){
+        console.log(item)
+        this.entityListItemIndex = index
+        this.textareaValue = item.Remark
+        this.dialogBoolean = true
+      },
+      //确认编辑内容
+      onTrueDialog(){
+        this.entityListData.entityList[this.entityListItemIndex].Remark = this.textareaValue
+        this.dialogBoolean = false
+      },
+      // 分数校验
+      onInputFen(index,fen){
+        this.branchNum = fen
+        // this.entityListData.entityList[index].Score = fen
+      },
+
 
       getDictOptions() {
         api.getDictList(this.$axios).then(res => {
@@ -380,7 +390,36 @@
         var minute = date.getMinutes();
         minute = minute < 10 ? ('0' + minute) : minute;
         return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
-      }
+      },
+      orgunitChange (val) {
+        let deptid = val
+        let auditstepcode = 'SUB_OFFICE_JF'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.orgauditOptions = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      getDictOptions () {
+        let params = {
+          status: this.formData.Status,
+          majorAduit: this.formData.ThirdAudit
+        }
+        api.getDictListByStatus(params, this.$axios).then(res => {
+          this.dictData = res.data.items
+          this.organizeOption = res.data.items['Organizes']
+          this.orgtreelist = window.toolfun_gettreejson(res.data.items['ProOrgList'], 'id', 'pId', 'id,name')
+          this.UnitOrgOptions = res.data.items['UnitOrgList']
+          this.UnitOrg = res.data.items['Register'].CheckUnitId
+          this.allorgunitOptions = res.data.items['Allunitorglist']
+          this.orgunitChange(this.UnitOrg)
+          /* this.UnitRelationOptions = res.data.items['UnitRelation']
+          this.getCityList(res.data.items['GaodeMapChinaAreas'])
+          this.CompanyTypeOptions = res.data.items['CompanyType'] */
+        }).catch(err => {
+          console.error(err)
+        })
+      },
     }
   }
 

+ 31 - 24
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/index.vue

@@ -12,10 +12,10 @@
           <i class="icon icon-table2"></i> 合同表
         </span>
         <span style="float: right;">
-         <!-- <router-link :to="'/oilcontract/contract-goods/add/operation'">
+          <!-- <router-link :to="'/oilcontract/contract-basis/add/operation'">
             <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">添加</el-button>
-          </router-link>
-          <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">导入</el-button> -->
+          </router-link> -->
+          <!-- <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="上报时间">
@@ -35,13 +35,11 @@
         </el-form>
       </div>
       <el-table size="mini" :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
-        <el-table-column label="操作" min-width="100" align="center" fixed>
+        <el-table-column label="操作" min-width="160" align="center" fixed>
           <template slot-scope="scope">
-            <router-link :to="'/oilsupplier/oilcontract/' + scope.row.Id + '/operation'">
-              <el-button type="text" title="编辑" size="small" icon="el-icon-edit"></el-button>
-            </router-link>
+            <el-button type="text" title="编辑" size="small" icon="el-icon-edit" @click="onNavigateEvaluate(scope.row)">编辑</el-button>
 
-            <el-popover placement="top" title="提示" v-model="scope.row.deleteConfirmFlag">
+            <el-popover placement="top" title="提示" >
               <el-alert
                 title=""
                 description="确认要删除吗?"
@@ -52,9 +50,7 @@
               <div style="text-align: right; margin: 0">
                 <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
               </div>
-              <el-button slot="reference" type="text" title="删除" style="margin-left:3px" size="small" @click="scope.row.deleteConfirmFlag = true">
-                <i class="el-icon-delete"></i>
-              </el-button>
+              <el-button slot="reference" type="text" style="margin-left:3px" icon="el-icon-delete" size="small" >删除</el-button>
             </el-popover>
           </template>
         </el-table-column>
@@ -84,12 +80,6 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.Id" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
           <el-col :span="12">
             <el-form-item label="供应商ID">
               <el-input size="mini" v-model="searchForm.SupplierId" style="width:100%" placeholder="请输入"></el-input>
@@ -252,7 +242,7 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="12">
+          <!-- <el-col :span="12">
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.CreateOn" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
@@ -274,9 +264,9 @@
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.ModifiedOn" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
-          </el-col>
+          </el-col> -->
 
-          <el-col :span="12">
+          <!-- <el-col :span="12">
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.ModifiedUserId" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
@@ -286,7 +276,7 @@
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.ModifiedBy" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
-          </el-col>
+          </el-col> -->
 
         </el-row>
       </el-form>
@@ -324,8 +314,8 @@
           Order: '',
           Prop: ''
         },
-        //查询时间
-        CreateOn: [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: {
@@ -565,6 +555,17 @@
       //this.getDictOptions()
     },
     methods: {
+      //跳转评价
+      onNavigateEvaluate(item){
+        console.log('跳转',item)
+        this.$router.push({
+          path:'/oilcontract/contract-goods/' + item.Id + '/evaluate',
+          query:{
+            item:item,
+            type:2,
+          }
+        })
+      },
       initDatas() {
         //分页及列表条件
         let params = {
@@ -572,7 +573,12 @@
           _size: this.size,
           Order: this.Column.Order,
           Prop: this.Column.Prop,
+          ContractClass:'01',
         }
+        // <el-option label="物资类" value="01" key="01"></el-option>
+        // <el-option label="基建类" value="02" key="02"></el-option>
+        // <el-option label="技术服务" value="03" key="03"></el-option>
+
         let myCreateOn = []
         // 解析时间
         if (this.CreateOn.length == 2) {
@@ -585,7 +591,8 @@
         //查询条件
         Object.assign(params, this.searchForm)
         //访问接口
-        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
+        api.getReviewList(myCreateOn.join(','), params, this.$axios).then(res => {
+          console.log('评价接口',res)
           this.entityList = res.data.items
           this.currentItemCount = res.data.currentItemCount
         }).catch(err => {

+ 698 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-goods/index_old.vue

@@ -0,0 +1,698 @@
+
+
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilsupplier/oilcontract' }">合同表</el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-card class="box-card" style="height: calc(100vh - 115px);">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 合同表
+        </span>
+        <span style="float: right;">
+         <!-- <router-link :to="'/oilcontract/contract-goods/add/operation'">
+            <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">添加</el-button>
+          </router-link>
+          <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-date-picker size="mini" style="width: 220px" v-model="CreateOn" type="daterange" range-separator="至"
+                            start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
+          </el-form-item>
+
+          <el-form-item>
+            <el-dropdown split-button type="primary" size="mini" @click="handleSearch" @command="searchCommand">
+              查询
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="search">高级查询</el-dropdown-item>
+                <el-dropdown-item command="clear">查询重置</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table size="mini" :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+        <el-table-column label="操作" min-width="100" align="center" fixed>
+          <template slot-scope="scope">
+            <router-link :to="'/oilsupplier/oilcontract/' + scope.row.Id + '/operation'">
+              <el-button type="text" title="编辑" size="small" icon="el-icon-edit"></el-button>
+            </router-link>
+
+            <el-popover placement="top" title="提示" v-model="scope.row.deleteConfirmFlag">
+              <el-alert
+                title=""
+                description="确认要删除吗?"
+                type="warning"
+                :closable="false">
+              </el-alert>
+              <br/>
+              <div style="text-align: right; margin: 0">
+                <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
+              </div>
+              <el-button slot="reference" type="text" title="删除" style="margin-left:3px" size="small" @click="scope.row.deleteConfirmFlag = true">
+                <i class="el-icon-delete"></i>
+              </el-button>
+            </el-popover>
+          </template>
+        </el-table-column>
+
+        <el-table-column v-for="column in tableColumns" :key="column.Id"
+                         v-if="column.prop != 'CreateOn'" :prop="column.prop" sortable min-width="100" :label="column.label" align="center" show-overflow-tooltip></el-table-column>
+
+        <!--<el-table-column prop="CreateOn" sortable min-width="150" label="生成时间" align="center" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{ jstimehandle(scope.row.CreateOn+'') }}
+          </template>
+        </el-table-column>-->
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                     :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+      </el-pagination>
+    </el-card>
+
+    <el-dialog title="高级查询" :visible.sync="dialogVisible" width="720px">
+      <el-form ref="advancedsearchForm" label-width="110px">
+        <el-row>
+
+          <el-col :span="12">
+            <el-form-item label="生成时间">
+              <el-date-picker size="mini" v-model="CreateOn" type="daterange" style="width:100%" range-separator="至"
+                              start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.Id" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="供应商ID">
+              <el-input size="mini" v-model="searchForm.SupplierId" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="企业名称">
+              <el-input size="mini" v-model="searchForm.SupplierName" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="项目名称">
+              <el-input size="mini" v-model="searchForm.ProjectName" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同编号">
+              <el-input size="mini" v-model="searchForm.ContractNo" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="工程地点">
+              <el-input size="mini" v-model="searchForm.ProjectPlace" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="项目负责人">
+              <el-input size="mini" v-model="searchForm.ProjectOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="联系人电话">
+              <el-input size="mini" v-model="searchForm.Telephone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="项目类别">
+              <el-input size="mini" v-model="searchForm.ProjectType" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同模式">
+              <el-input size="mini" v-model="searchForm.ContractMode" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同总金额(万元)">
+              <el-input size="mini" v-model="searchForm.Amount" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同总工期(天)">
+              <el-input size="mini" v-model="searchForm.ContractPeriod" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="开工日期">
+              <el-input size="mini" v-model="searchForm.OpenDate" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="计划竣工时间">
+              <el-input size="mini" v-model="searchForm.PlanFinishDate" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="建设单位">
+              <el-input size="mini" v-model="searchForm.ConstructionUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="建设负责人">
+              <el-input size="mini" v-model="searchForm.ConstructionOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.ConstructionTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="施工单位">
+              <el-input size="mini" v-model="searchForm.BuildUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="施工负责人">
+              <el-input size="mini" v-model="searchForm.BuildOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.BuildTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="监理单位">
+              <el-input size="mini" v-model="searchForm.SuperviseUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="监理负责人">
+              <el-input size="mini" v-model="searchForm.SuperviseOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.SuperviseTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="质量监督单位">
+              <el-input size="mini" v-model="searchForm.QualityUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="质量监督负责人">
+              <el-input size="mini" v-model="searchForm.QualityOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.QualityTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="备注">
+              <el-input size="mini" v-model="searchForm.Remark" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="删除状态,0正常,1已删除">
+              <el-input size="mini" v-model="searchForm.IsDelete" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.CreateOn" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.CreateUserId" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.CreateBy" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.ModifiedOn" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.ModifiedUserId" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.ModifiedBy" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="mini" type="primary" @click="handleSearch">查 询</el-button>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+  import { mapGetters } from 'vuex';
+  import api from '@/api/oilcontract/contract';
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilcontract',
+
+    data() {
+      return {
+        dialogVisible: false,
+        //列表数据
+        entityList: [],
+        //分页参数
+        size: 10,
+        currentPage: 1,
+        currentItemCount: 0,
+        //列表排序
+        Column: {
+          Order: '',
+          Prop: ''
+        },
+        //查询时间
+        CreateOn: [new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()],
+        //查询项
+        searchFormReset: {},
+        searchForm: {
+          Id: '',
+          SupplierId: '',
+          SupplierName: '',
+          ProjectName: '',
+          ContractNo: '',
+          ProjectPlace: '',
+          ProjectOwner: '',
+          Telephone: '',
+          ProjectType: '',
+          ContractMode: '',
+          Amount: '',
+          ContractPeriod: '',
+          OpenDate: '',
+          PlanFinishDate: '',
+          ConstructionUnit: '',
+          ConstructionOwner: '',
+          ConstructionTelphone: '',
+          BuildUnit: '',
+          BuildOwner: '',
+          BuildTelphone: '',
+          SuperviseUnit: '',
+          SuperviseOwner: '',
+          SuperviseTelphone: '',
+          QualityUnit: '',
+          QualityOwner: '',
+          QualityTelphone: '',
+          Remark: '',
+          IsDelete: '',
+          CreateOn: '',
+          CreateUserId: '',
+          CreateBy: '',
+          ModifiedOn: '',
+          ModifiedUserId: '',
+          ModifiedBy: '',
+
+        },
+        tableColumns: [
+
+          {
+            prop: "Id",
+            label: '',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SupplierId",
+            label: '评价单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SupplierName",
+            label: '企业名称',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectName",
+            label: '项目名称',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ContractNo",
+            label: '合同编号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectPlace",
+            label: '工程地点',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectOwner",
+            label: '项目负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "Telephone",
+            label: '联系人电话',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectType",
+            label: '项目类别',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ContractMode",
+            label: '合同模式',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "Amount",
+            label: '合同总金额(万元)',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ContractPeriod",
+            label: '合同总工期(天)',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "OpenDate",
+            label: '开工日期',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "PlanFinishDate",
+            label: '计划竣工时间',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ConstructionUnit",
+            label: '建设单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ConstructionOwner",
+            label: '建设负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ConstructionTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "BuildUnit",
+            label: '施工单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "BuildOwner",
+            label: '施工负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "BuildTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SuperviseUnit",
+            label: '监理单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SuperviseOwner",
+            label: '监理负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SuperviseTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "QualityUnit",
+            label: '质量监督单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "QualityOwner",
+            label: '质量监督负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "QualityTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "Remark",
+            label: '备注',
+            width: 100,
+            sort: true
+          }]
+      }
+    },
+    created() {
+      //查询条件初始值备份
+      Object.assign(this.searchFormReset, this.searchForm);
+      //查询列表
+      this.initDatas();
+      //this.getDictOptions()
+    },
+    methods: {
+      initDatas() {
+        //分页及列表条件
+        let params = {
+          _currentPage: this.currentPage,
+          _size: this.size,
+          Order: this.Column.Order,
+          Prop: this.Column.Prop,
+        }
+        let myCreateOn = []
+        // 解析时间
+        if (this.CreateOn.length == 2) {
+          this.CreateOn[1].setHours(23)
+          this.CreateOn[1].setMinutes(59)
+          this.CreateOn[1].setSeconds(59)
+          myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
+          myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
+        }
+        //查询条件
+        Object.assign(params, this.searchForm)
+        //访问接口
+        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
+          this.entityList = res.data.items
+          this.currentItemCount = res.data.currentItemCount
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      getDictOptions() {
+        api.getDictList(this.$axios).then(res => {
+          //this.dictOptions.customerList = res.data.items['customerList']
+          //this.dictOptions.projectList = res.data.items['projectList']
+
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      searchCommand(command) {
+        if (command == 'search') {
+          this.dialogVisible = true
+        } else if (command == 'clear') {
+          this.clearSearch()
+        }
+      },
+      //列表排序功能
+      orderby(column) {
+        if (column.order == 'ascending') {
+          this.Column.Order = 'asc'
+        } else if (column.order == 'descending') {
+          this.Column.Order = 'desc'
+        }
+        this.Column.Prop = column.prop
+        this.initDatas()
+      },
+      clearSearch() {
+        Object.assign(this.searchForm, this.searchFormReset);
+        //this.searchForm = this.searchFormReset;
+        this.CreateOn = ''
+        this.initDatas()
+      },
+      handleSearch() {
+        this.currentPage = 1;
+        this.dialogVisible = false;
+        this.initDatas();
+      },
+      handleCurrentChange(value) {
+        this.currentPage = value
+        this.initDatas()
+      },
+      handleSizeChange(value) {
+        this.size = value
+        this.currentPage = 1
+        this.initDatas()
+      },
+      deleteEntity(row) {
+        row.deleteConfirmFlag = false;
+        api.deleteEntity(row.Id, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            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) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          return val.substring(0, 10)
+        }
+      },
+
+      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;
+      }
+    }
+  }
+
+</script>
+
+<style lang="scss">
+  .el-pagination {
+    margin: 1rem 0 2rem;
+    text-align: right;
+  }
+</style>

+ 28 - 91
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/evaluate.vue

@@ -16,9 +16,7 @@
         <span style="float: right;">
           <el-button type="primary" size="mini" style="margin-left: 8px" @click="onSubmitBigAdd">提交审核</el-button>
           <el-button type="primary" size="mini" style="margin-left: 8px" @click="onSeaveBigAdd">保存</el-button>
-          <router-link :to="'/oilcontract/contract-basis'">
-            <el-button type="primary" size="mini" style="margin-left: 8px">返回</el-button>
-          </router-link>
+          <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回</el-button>
         </span>
       </div>
       <el-tabs v-model="activeName" style="margin-top: -10px">
@@ -186,64 +184,28 @@
         serviceId: '',
         formData: {
           Id: '',
-          SupplierId: '1',
-          SupplierName: '',
-          ProjectName: '',
-          ContractNo: '',
-          ProjectPlace: '',
-          ProjectOwner: '',
-          Telephone: '',
-          ProjectType: '1',
-          ContractMode: '',
-          Amount: '',
-          ContractPeriod: '',
-          OpenDate: '',
-          PlanFinishDate: '',
-          ConstructionUnit: '',
-          ConstructionOwner: '',
-          ConstructionTelphone: '',
-          BuildUnit: '',
-          BuildOwner: '',
-          BuildTelphone: '',
-          SuperviseUnit: '',
-          SuperviseOwner: '',
-          SuperviseTelphone: '',
-          QualityUnit: '',
-          QualityOwner: '',
-          QualityTelphone: '',
-          Remark: '',
-          IsDelete: '',
-          CreateOn: '',
-          CreateUserId: '',
-          CreateBy: '',
-          ModifiedOn: '',
-          ModifiedUserId: '',
-          ModifiedBy: '',
-          //缺少
-          SubPackage: '',
-          ContractType: ''
-
         },
-
         //下拉选择项
         //wellNoOptions: [],
         //supervisersOptions: [],
+        evaluation_list:[],
+        evaluation_list_department:[],
 
       }
     },
     created() {
       this.routeData = this.$route.query
-      
+
 
       this.serviceId = this.$route.params.opera;
       this.getDictOptions();
-      console.log(this.serviceId);
-      if(this.serviceId != 'add' && this.serviceId>0) {
-        this.formData.Id = this.serviceId;
-        this.initDatas();
-      } else {
-        this.formData.Id = 0;
-      }
+      // console.log(this.serviceId);
+      // if(this.serviceId != 'add' && this.serviceId>0) {
+      //   this.formData.Id = this.serviceId;
+      //   this.initDatas();
+      // } else {
+      //   this.formData.Id = 0;
+      // }
     },
     methods: {
       //提交评价
@@ -252,28 +214,26 @@
       },
       //保存评价
       onSeaveBigAdd(){
-
-        if(this.formData.Id == 0){
-          this.addEvaluate()
+        this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
+        // 获取第一列评价格式
+        var fractionBoolean_1 = this.$refs.evaluation_list_one.fractionBoolean
+
+        if(fractionBoolean_1){
+          if(this.formData.Id == 0){
+            this.addEvaluate()
+          }else{
+            this.updateEvaluate()
+          }
         }else{
-          this.updateEvaluate()
+          this.$message.error('填写的分数有误');
         }
+
       },
       //新增评价
       addEvaluate(){
         var formData = {
           ContractId:2,
-          Items:[
-            {
-                'ParentId' : '0',
-                'SequenceNo':'1111',
-                'Content':'111',
-                'NormalScore':'10',
-                'Score':'7',
-                'LevelCode':'1',
-                'Remark':'备注'
-            }
-          ],
+          Items:this.evaluation_list,
         }
         api.addContractEvaluate(formData, this.$axios).then(res => {
           console.log('新增',res)
@@ -286,17 +246,7 @@
       updateEvaluate(){
         var formData = {
           ContractId:2,
-          Items:[
-            {
-                'ParentId' : '0',
-                'SequenceNo':'1111',
-                'Content':'111',
-                'NormalScore':'10',
-                'Score':'7',
-                'LevelCode':'1',
-                'Remark':'备注b编辑'
-            }
-          ],
+          Items:this.evaluation_list,
         }
         api.updateContractEvaluate(this.formData.Id,formData, this.$axios).then(res => {
           console.log('编辑',res)
@@ -306,22 +256,6 @@
       },
       //点击下一步
       onSubmit_contract(){
-        var formData = {
-          ContractId:1,
-          items:[
-            {
-              Content:'123',
-            },
-            {
-              Content:'456',
-            }
-          ],
-        }
-        api.addContractNext(formData, this.$axios).then(res => {
-          console.log('点击下一步',res)
-        }).catch(err => {
-          console.error(err)
-        });
         this.activeName = '2'
       },
 
@@ -433,6 +367,9 @@
         var minute = date.getMinutes();
         minute = minute < 10 ? ('0' + minute) : minute;
         return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
+      },
+      onBack(){
+        this.$router.go(-1)
       }
     }
   }

+ 25 - 14
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/evaluationlist.vue

@@ -2,8 +2,6 @@
   <div>
     <el-form ref="form" :model="entityListData" label-width="0px" :rules="rules">
 
-
-
       <el-table highlight-current-row :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column
           property="SequenceNo"
@@ -43,7 +41,7 @@
           <template slot-scope="scope">
             <el-form-item  style="margin-bottom: 0px;" :prop="'entityList.' + scope.$index + '.Score'" :rules="rules.relation">
               <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scoreFun(scope.row.typeStatus)}}</span>
-              <el-input v-else size="mini" type="number" placeholder="实得分数" v-model="scope.row.Score" @input="onInputFen(scope.$index,scope.row.Score)"></el-input>
+              <el-input v-else size="mini" type="number" placeholder="实得分数" v-model="scope.row.Score" @input="onInputFen(scope.$index,scope.row.NormalScore)"></el-input>
             </el-form-item>
           </template>
         </el-table-column>
@@ -59,17 +57,17 @@
                 title="原因"
                 width="200"
                 trigger="hover"
-                :content="scope.row.Content==''||scope.row.Content==null?'空':scope.row.Content">
-                <el-button slot="reference" v-if="scope.row.LevelCode!=1" type="primary" icon="el-icon-edit" size="mini" @click="onDialogVisible(scope.row)">编辑</el-button>
+                :content="scope.row.Remark==''||scope.row.Remark==null?'空':scope.row.Remark">
+                <el-button slot="reference" v-if="scope.row.LevelCode!=1" type="primary" icon="el-icon-edit" size="mini" @click="onDialogVisible(scope.row,scope.$index)">编辑</el-button>
              </el-popover>
           </template>
         </el-table-column>
       </el-table>
 
     </el-form>
-    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
                    :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
-    </el-pagination>
+    </el-pagination> -->
 
     <el-dialog
       title="不合格原因"
@@ -79,7 +77,7 @@
       <el-input   type="textarea" placeholder="请输入" v-model="textareaValue" ></el-input>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogBoolean = false" size="small">取 消</el-button>
-        <el-button type="primary" @click="dialogBoolean = false" size="small">确 定</el-button>
+        <el-button type="primary" @click="onTrueDialog" size="small">确 定</el-button>
       </span>
     </el-dialog>
 
@@ -113,8 +111,10 @@
           var num = 0;
           var list = this.entityListData.entityList
           for(var index = 0 ; index < list.length ; index++){
-            if(type == list.typeStatus&&list.LevelCode==2){
-              num = num + list.typeStatus
+            var code = Number(list[index].LevelCode)
+            console.log(code==2)
+            if(type == list[index].typeStatus&&code==2){
+              num = num + Number(list[index].Score)
             }
           }
           return num
@@ -123,23 +123,27 @@
     },
     data() {
       var validatePass = (rule, value, callback) => {
-        console.log(rule, value,this.branchNum)
         var num = Number(value)
         if (num === '') {
+          this.fractionBoolean = false
           callback(new Error('请输入分值'));
           return
         }
         if (num > this.branchNum) {
+          this.fractionBoolean = false
           callback(new Error('不能大于规定的分值'));
           return
         }
         if ( num < 0) {
+          this.fractionBoolean = false
           callback(new Error('不能为负数'));
           return
         }
+        this.fractionBoolean = true
         callback();
       };
       return {
+        fractionBoolean:true,
         dialogVisibleCom: false,
         loading: false,
         UnitOrgOptions: [],
@@ -192,6 +196,8 @@
           AuditRemark: '',
           TypeCode: '03'
         },
+        entityListItemIndex:'',
+
       }
     },
     created() {
@@ -204,11 +210,16 @@
     },
     methods: {
       // 弹窗
-      onDialogVisible(item){
+      onDialogVisible(item,index){
         console.log(item)
-        this.textareaValue = item.content
+        this.entityListItemIndex = index
+        this.textareaValue = item.Remark
         this.dialogBoolean = true
-
+      },
+      //确认编辑内容
+      onTrueDialog(){
+        this.entityListData.entityList[this.entityListItemIndex].Remark = this.textareaValue
+        this.dialogBoolean = false
       },
       // 分数校验
       onInputFen(index,fen){

+ 140 - 34
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/operation.vue

@@ -5,28 +5,29 @@
     <el-breadcrumb class="heading">
       <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
       <el-breadcrumb-item :to="{ path: '/oilsupplier/oilcontract' }">合同表</el-breadcrumb-item>
-      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+      <el-breadcrumb-item>{{formData.Id==0?'新增':'编辑'}}</el-breadcrumb-item>
     </el-breadcrumb>
 
     <el-card class="box-card" style="mini-height: calc(100vh - 113px);">
       <div slot="header">
         <span>
-          <i class="icon icon-table2"></i> 编辑
+          <i class="icon icon-table2"></i> {{formData.Id==0?'新增':'编辑'}}
         </span>
         <span style="float: right;">
+          <el-button type="primary" size="mini" v-if="formData.Id!=0" @click="issueVisible=true">下发</el-button>
           <el-button type="primary" size="mini" @click="saveEntity">完结</el-button>
-          <el-button type="primary" size="mini" @click="saveEntity">导出</el-button>
-          <el-button type="primary" size="mini" @click="saveEntity">保存</el-button>
+          <el-button type="primary" size="mini"  @click="saveEntity">导出</el-button>
+          <el-button type="primary" size="mini" :loading="addloading" @click="saveEntity">保存</el-button>
           <router-link :to="'/oilcontract/contract-import'">
-            <el-button type="primary" size="mini" style="margin-left: 8px">返回</el-button>
+            <el-button type="primary" size="mini" plain style="margin-left: 8px">返回</el-button>
           </router-link>
         </span>
       </div>
       <el-form label-width="110px" ref="EntityForm" :rules="rules" :model="formData" class="fromClass web_fromclass">
         <el-row>
           <el-col :span="8">
-            <el-form-item label="合同分类">
-              <el-select  v-model="formData.ContractType" placeholder="请选择" style="width: 100%" @change="onSelectType">
+            <el-form-item label="合同分类" prop="ContractClass">
+              <el-select  v-model="formData.ContractClass" placeholder="请选择" style="width: 100%" @change="onSelectType">
                 <el-option label="物资类" value="01" key="01"></el-option>
                 <el-option label="基建类" value="02" key="02"></el-option>
                 <el-option label="技术服务" value="03" key="03"></el-option>
@@ -34,8 +35,8 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="企业名称">
-              <el-select :disabled="ContractTypeDisabled" filterable ref="SupplierSelect" v-model="formData.SupplierId" placeholder="请选择" style="width: 100%" @change="supplierChangeHandler">
+            <el-form-item label="企业名称" prop="SupplierId">
+              <el-select :disabled="ContractClassDisabled" filterable ref="SupplierSelect" v-model="formData.SupplierId" placeholder="请选择" style="width: 100%" @change="supplierChangeHandler">
                 <el-option  :label="item.SupplierName" :value="item.Id" v-for="(item,index) of SupplierSelectList" :key="index"></el-option>
                 <!-- <el-option  label="北京管道公司" value="2" ></el-option> -->
                 <!-- <el-option  label="上海监控公司" value="3" ></el-option> -->
@@ -44,37 +45,37 @@
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="项目名称">
+            <el-form-item label="项目名称" prop="ProjectName">
               <el-input v-model="formData.ProjectName" placeholder="请输入"  style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="合同编号">
+            <el-form-item label="合同编号" prop="ContractNo">
               <el-input v-model="formData.ContractNo" placeholder="请输入"  style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="工程地点">
+            <el-form-item label="工程地点" prop="ProjectPlace">
               <el-input v-model="formData.ProjectPlace" placeholder="请输入"  style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="项目负责人">
+            <el-form-item label="项目负责人" prop="ProjectOwner">
               <el-input v-model="formData.ProjectOwner" placeholder="请输入"  style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="联系人电话">
+            <el-form-item label="联系人电话" prop="Telephone">
               <el-input v-model="formData.Telephone" placeholder="请输入"  style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="项目类别">
+            <el-form-item label="项目类别" prop="ProjectType">
               <el-select v-model="formData.ProjectType" placeholder="请选择" style="width: 100%">
                 <el-option :label="item.Key" :value="item.Id" v-for="(item,index) of dictionary.ProjectType" :key="index"></el-option>
               </el-select>
@@ -82,13 +83,13 @@
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="合同模式">
+            <el-form-item label="合同模式" prop="ContractMode">
               <el-input v-model="formData.ContractMode" placeholder="请输入"  style="width: 100%"></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="是否分包">
+            <el-form-item label="是否分包" prop="SubPackage">
               <el-select placeholder="请选择" v-model="formData.SubPackage" style="width: 100%">
                 <el-option key="1" label="是" value="1"></el-option>
                 <el-option key="2" label="否" value="2"></el-option>
@@ -120,7 +121,6 @@
                 type="date"
                 placeholder="选择日期">
               </el-date-picker>
-              <!-- <el-input v-model="formData.OpenDate" placeholder="请输入"  style="width: 100%"></el-input> -->
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -130,7 +130,6 @@
                 type="date"
                 placeholder="选择日期">
               </el-date-picker>
-              <!-- <el-input v-model="formData.PlanFinishDate" placeholder="请输入"  style="width: 100%"></el-input> -->
             </el-form-item>
           </el-col>
         </el-row>
@@ -217,6 +216,29 @@
     </el-card>
 
 
+    <el-dialog
+      title="下发工单"
+      :visible.sync="issueVisible"
+      width="50%"
+      >
+        <div style="width: 100%;display: flex;justify-content: center;">
+          <el-form :inline="true" ref="issueFrom" :model="issueFrom" class="demo-form-inline" :rules="issueRules">
+
+            <el-form-item label="选择部门"  prop="region" >
+              <!-- @change="orgChange" -->
+              <el-select filterable v-model="issueFrom.region" placeholder="请选择审核单位" ref="auditorgselect" style="width: 100%;" >
+                <el-option v-for="item in orgOptions" :key="item.Id" :label="item.Fullname" :value="item.Id" style="width: 100%"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-form>
+        </div>
+
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="issueVisible = false" size="small">取 消</el-button>
+          <el-button type="primary" @click="onIssueFromSubmit" size="small">确 定</el-button>
+        </span>
+    </el-dialog>
+
 
   </div>
 </template>
@@ -276,24 +298,70 @@
           }
       };
       return {
+        issueFrom:{
+          region:'',
+        },
+        orgOptions:[],
+        issueVisible:false,//下发弹窗
+        issueRules:{
+          region: [
+              { required: true, message: '请选择审核单位', trigger: 'change' }
+          ],
+        },
+        addloading:false,//添加londing
         rules:{
+          ContractClass:[
+            { required: true, message: '请选择合同分类', trigger: 'change' },
+          ],
+          SupplierId:[
+            { required: true, message: '请选择企业名称', trigger: 'change' },
+          ],
+          ProjectName:[
+            { required: true, message: '请输入项目名称', trigger: 'blur' },
+          ],
+          ContractNo:[
+            { required: true, message: '请输入合同编号', trigger: 'blur' },
+          ],
+          ProjectPlace:[
+            { required: true, message: '请输入工程地点', trigger: 'blur' },
+          ],
+          ProjectOwner:[
+            { required: true, message: '请输入项目负责人', trigger: 'blur' },
+          ],
+          Telephone:[
+            { required: true, message: '请输入联系人电话', trigger: 'blur' },
+          ],
+          ProjectType:[
+            { required: true, message: '请选择项目类别', trigger: 'change' },
+          ],
+          ContractMode:[
+            { required: true, message: '请输入合同模式', trigger: 'blur' },
+          ],
+          SubPackage:[
+            { required: true, message: '请选择是否分包', trigger: 'change' },
+          ],
+
           OpenDate: [
+            { required: true, message: '请选择时间', trigger: 'change' },
             { validator: OpenDateVar, trigger: 'change' }
           ],
           PlanFinishDate: [
+            { required: true, message: '请选择时间', trigger: 'change' },
             { validator: PlanFinishDateVar, trigger: 'change' }
           ],
           Amount:[
+            { required: true, message: '请输入', trigger: 'blur' },
             {pattern: /^\+?((0|([1-9]+\d*))|((0\.\d+)|([1-9]+\d*\.\d+)))$/,  message: '输入格式不正确', trigger: 'blur'},
           ],
           ContractPeriod:[
+            { required: true, message: '请输入', trigger: 'blur' },
             {pattern: /^\+?((0|([1-9]+\d*))|((0\.\d+)|([1-9]+\d*\.\d+)))$/,  message: '输入格式不正确', trigger: 'blur'},
             { validator: ContractPeriod, trigger: 'blur' }
           ],
 
         },
 
-        ContractTypeDisabled:true,
+        ContractClassDisabled:true,
         activeName: '1',
         serviceId: '',
         formData: {
@@ -324,16 +392,16 @@
           QualityOwner: '',
           QualityTelphone: '',
           Remark: '',
-          IsDelete: '',
-          CreateOn: '',
-          CreateUserId: '',
-          CreateBy: '',
-          ModifiedOn: '',
-          ModifiedUserId: '',
-          ModifiedBy: '',
+          // IsDelete: '',
+          // CreateOn: '',
+          // CreateUserId: '',
+          // CreateBy: '',
+          // ModifiedOn: '',
+          // ModifiedUserId: '',
+          // ModifiedBy: '',
           //缺少
           SubPackage: '',
-          ContractType: ''
+          ContractClass: ''
 
         },
         SupplierSelectList:[],//企业名称列表
@@ -346,7 +414,7 @@
       }
     },
     created() {
-      console.log('方法',util)
+      this.GetorgOptions()
       api.getDictList(this.$axios).then(res => {
         console.log('数据字典',res)
         this.dictionary = res.data.items
@@ -364,30 +432,48 @@
       }
     },
     methods: {
+      //合同下发确定
+      onIssueFromSubmit(){
+        this.$refs['issueFrom'].validate((valid) => {
+          if (valid) {
+            this.issueVisible = false
+
+
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+
+      },
+
       //选择合同分类
       onSelectType(e){
         console.log(e)
         oilsupplierApi.getSupList(e, this.$axios).then(res => {
           console.log('数据',res)
           this.formData.SupplierId = ''
-          this.ContractTypeDisabled = false
+          this.ContractClassDisabled = false
           this.SupplierSelectList = res.data.items
         }).catch(err => {
           console.error(err)
         })
 
-
       },
       //编辑的初始数据
       initDatas() {
         if(this.formData.Id) {
           api.getEntity(this.formData.Id, this.$axios).then(res => {
-            console.log('数据',res.data)
+            console.log('返给我的数据',res.data)
             this.formData = res.data;
+            this.onSelectType(this.formData.ContractClass)
           }).catch(err => {
             console.error(err)
           });
+
+
         }
+
       },
 
       getDictOptions() {
@@ -418,9 +504,15 @@
       },
 
       addEntity() {
+        this.addloading = true
         console.log('提交数据',this.formData)
+        // this.formData.ContractClass = '02'
+        // var data = {
+        //   ContractClass:'02'
+        // }
         api.addEntity(this.formData, this.$axios).then(res => {
           console.log('保存数据',res)
+          this.addloading = false
           if (res.data.code === 0) {
             //保存成功后,初始化数据,变成修改
             this.formData.Id = res.data.item;
@@ -437,11 +529,13 @@
             });
           }
         }).catch(err => {
+          this.addloading = false
           console.error(err)
         });
       },
 
       updateEntity() {
+        console.log('编辑前的数据',this.formData)
         api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
           if (res.data.code === 0) {
             //保存成功后,初始化数据,变成修改
@@ -461,9 +555,21 @@
           console.error(err)
         });
       },
+      //下发单位
+      GetorgOptions () {
+        let _this = this
+        this.$axios.get('/register/orgloginlist').then(res => {
+          _this.orgOptions = res.data.items
+        }).catch(err => {
+          console.log(err)
+        })
+      },
 
-      supplierChangeHandler() {
-        this.formData.SupplierName = this.$refs['SupplierSelect'].selectedLabel
+      supplierChangeHandler(e) {
+        var that = this;
+        setTimeout(function() {
+          that.formData.SupplierName = that.$refs['SupplierSelect'].selectedLabel
+        }, 100);
       },
 
       jstimehandle(val) {

+ 29 - 57
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/index.vue

@@ -59,9 +59,7 @@
               </div>
               <el-button slot="reference" type="text" style="margin-left:3px" icon="el-icon-delete" size="small" >删除</el-button>
             </el-popover>
-            <router-link :to="{path:'/oilcontract/contract-import/' + scope.row.Id + '/evaluate',query:{item:scope.row}}">
-              <el-button type="text"  size="small" style="margin-left:3px"  icon="el-icon-edit-outline">评价</el-button>
-            </router-link>
+            <el-button type="text"  size="small" style="margin-left:3px"  icon="el-icon-edit-outline" @click="onNavigateEvaluate(scope.row)">评价</el-button>
           </template>
         </el-table-column>
 
@@ -90,18 +88,6 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.Id" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="供应商ID">
-              <el-input size="mini" v-model="searchForm.SupplierId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
           <el-col :span="12">
             <el-form-item label="企业名称">
               <el-input size="mini" v-model="searchForm.SupplierName" style="width:100%" placeholder="请输入"></el-input>
@@ -252,48 +238,6 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="12">
-            <el-form-item label="删除状态,0正常,1已删除">
-              <el-input size="mini" v-model="searchForm.IsDelete" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateOn" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateUserId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.CreateBy" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedOn" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedUserId" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.ModifiedBy" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -572,6 +516,34 @@
       //this.getDictOptions()
     },
     methods: {
+      //跳转评价
+      onNavigateEvaluate(item){
+        // <el-option label="供应商" value="01" key="01"></el-option>
+        // <el-option label="承包商" value="02" key="02"></el-option>
+        // <el-option label="服务商" value="03" key="03"></el-option>
+
+        var index = String(item.ContractClass)
+        var name = ''
+        switch(index){
+          case "01":
+            name = 'contract-goods'
+          break;
+          case "02":
+            name = 'contract-basis'
+          break;
+          case "03":
+            name = 'contract-service'
+          break;
+        }
+        console.log('跳转',item)
+        this.$router.push({
+          path:'/oilcontract/contract-basis/' + item.Id + '/evaluate',
+          query:{
+            item:item,
+            type:1,
+          }
+        })
+      },
       initDatas() {
         //分页及列表条件
         let params = {

+ 384 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/_opera/evaluate.vue

@@ -0,0 +1,384 @@
+
+
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilcontract/contract-basis' }">承包商合同表</el-breadcrumb-item>
+      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+    </el-breadcrumb>
+
+    <el-card class="box-card" style="mini-height: calc(100vh - 113px);">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 编辑 - 承包商合同
+        </span>
+        <span style="float: right;">
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="onSubmitBigAdd">提交审核</el-button>
+          <el-button type="primary" size="mini" style="margin-left: 8px" @click="onSeaveBigAdd">保存</el-button>
+          <el-button @click="onBack" type="primary" size="mini" style="margin-left: 8px">返回</el-button>
+        </span>
+      </div>
+      <el-tabs v-model="activeName" style="margin-top: -10px">
+        <el-tab-pane label="合同内容" name="1">
+          <el-card class="box-card">
+            <div slot="header">
+              <span>合同信息</span>
+              <!-- <span style="float: right;">
+                <el-button type="primary" size="mini" @click="saveEntity">保存</el-button>
+              </span> -->
+            </div>
+            <el-form label-width="110px" ref="EntityForm" :model="formData">
+              <el-row>
+                <el-col :span="8">
+                  <el-form-item label="承包商名称">
+                    <el-select ref="SupplierSelect" v-model="formData.SupplierId" placeholder="请选择" style="width: 100%" @change="supplierChangeHandler">
+                      <el-option key="1" label="天津油气公司" value="1"></el-option>
+                      <el-option key="2" label="北京管道公司" value="2"></el-option>
+                      <el-option key="3" label="上海监控公司" value="3"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+
+               <!-- <el-col :span="8">
+                  <el-form-item label="合同分类">
+                    <el-select  v-model="formData.ContractType" placeholder="请选择" style="width: 100%">
+                      <el-option key="1" label="服务商" value="1"></el-option>
+                      <el-option key="2" label="承包商" value="2"></el-option>
+                      <el-option key="3" label="供应商" value="3"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>-->
+
+                <el-col :span="8">
+                  <el-form-item label="评价单位名称">
+                    <el-input :disabled="disabled" v-model="formData.ProjectPlace" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="评价年度">
+                    <el-input :disabled="disabled" v-model="formData.ProjectPlace" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="承建项目名称">
+                    <el-input :disabled="disabled" v-model="formData.ProjectName" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="合同编号">
+                    <el-input :disabled="disabled" v-model="formData.ContractNo" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>
+
+
+                <el-col :span="8">
+                  <el-form-item  label="项目类别">
+                    <el-select :disabled="disabled" v-model="formData.ProjectType" placeholder="请选择" style="width: 100%">
+                      <el-option key="1" label="咨询" value="1"></el-option>
+                      <el-option key="2" label="勘探" value="2"></el-option>
+                      <el-option key="3" label="设计" value="3"></el-option>
+                      <el-option key="4" label="施工" value="4"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+
+               <!-- <el-col :span="8">
+                  <el-form-item label="合同模式">
+                    <el-input v-model="formData.ContractMode" placeholder="请输入"  style="width: 100%"></el-input>
+                  </el-form-item>
+                </el-col>-->
+
+                <el-col :span="8">
+                  <el-form-item  label="是否分包">
+                    <el-select :disabled="disabled" placeholder="请选择" v-model="formData.SubPackage" style="width: 100%">
+                      <el-option key="1" label="是" value="1"></el-option>
+                      <el-option key="2" label="否" value="2"></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+
+            <div style="display: flex;justify-content: flex-end;">
+              <el-button type="primary" size="mini"   @click="onSubmit_contract">下一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+            </div>
+
+          </el-card>
+        </el-tab-pane>
+        <el-tab-pane label="业绩评价" name="2" :disabled="performance.disabled" >
+          <evaluation-list ref="evaluation_list_one"  :type="routeData.type" :evaluateId="routeData.item.Id" :category="routeData.item.Id" ></evaluation-list>
+        </el-tab-pane>
+
+
+
+        <el-tab-pane label="专业处室业绩评价" name="3" :disabled="departmentPerformance.disabled">
+          <evaluation-list></evaluation-list>
+        </el-tab-pane>
+        <el-tab-pane label="审批流程" name="4" :disabled="approvalProcess.disabled">
+          <el-card class="box-card mycard">
+            <div slot="header"
+                 class="clearfix">
+              <span>审批流程</span>
+            </div>
+            <wf-history ref="WfHistory" :entryinfo="entrydetail"></wf-history>
+          </el-card>
+        </el-tab-pane>
+
+        <!-- <el-tab-pane label="审核流程" name="4">
+          <evaluation-list></evaluation-list>
+        </el-tab-pane> -->
+      </el-tabs>
+    </el-card>
+
+    <submitPopup ref="submitpopup"></submitPopup>
+
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/oilcontract/contract'
+  import evaluationList from './evaluationlist'
+  import WfHistory from '@/components/workflow/wfhistory.vue'
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilcontractEdit',
+    components: {
+      evaluationList,
+      WfHistory,
+    },
+
+    data() {
+      return {
+        routeData:'',//上一页面传过来的值
+
+        dialogVisibleCom:false,
+
+        disabled:true,//禁用
+        // 业绩评价
+        performance: {
+          disabled:false,//禁用
+        },
+        // 专业处室业绩评价
+        departmentPerformance:{
+          disabled:false,//禁用
+        },
+        // 审批流程
+        approvalProcess:{
+          disabled:false,//禁用
+        },
+
+        entrydetail: {
+          process: '',
+          business: '',
+          instance: ''
+        },
+        activeName: '1',
+        serviceId: '',
+        formData: {
+          Id: '',
+        },
+        //下拉选择项
+        //wellNoOptions: [],
+        //supervisersOptions: [],
+        evaluation_list:[],
+        evaluation_list_department:[],
+
+      }
+    },
+    created() {
+      this.routeData = this.$route.query
+
+
+      this.serviceId = this.$route.params.opera;
+      this.getDictOptions();
+      // console.log(this.serviceId);
+      // if(this.serviceId != 'add' && this.serviceId>0) {
+      //   this.formData.Id = this.serviceId;
+      //   this.initDatas();
+      // } else {
+      //   this.formData.Id = 0;
+      // }
+    },
+    methods: {
+      //提交评价
+      onSubmitBigAdd(){
+        this.$refs.submitpopup.dialogVisibleCom = true
+      },
+      //保存评价
+      onSeaveBigAdd(){
+        this.evaluation_list = this.$refs.evaluation_list_one.entityListData.entityList
+        // 获取第一列评价格式
+        var fractionBoolean_1 = this.$refs.evaluation_list_one.fractionBoolean
+
+        if(fractionBoolean_1){
+          if(this.formData.Id == 0){
+            this.addEvaluate()
+          }else{
+            this.updateEvaluate()
+          }
+        }else{
+          this.$message.error('填写的分数有误');
+        }
+
+      },
+      //新增评价
+      addEvaluate(){
+        var formData = {
+          ContractId:2,
+          Items:this.evaluation_list,
+        }
+        api.addContractEvaluate(formData, this.$axios).then(res => {
+          console.log('新增',res)
+          this.formData.Id = res.data.item
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+      //编辑评价
+      updateEvaluate(){
+        var formData = {
+          ContractId:2,
+          Items:this.evaluation_list,
+        }
+        api.updateContractEvaluate(this.formData.Id,formData, this.$axios).then(res => {
+          console.log('编辑',res)
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+      //点击下一步
+      onSubmit_contract(){
+        this.activeName = '2'
+      },
+
+
+      initDatas() {
+        if(this.formData.Id) {
+          api.getEntity(this.formData.Id, this.$axios).then(res => {
+            this.formData = res.data;
+          }).catch(err => {
+            console.error(err)
+          });
+        }
+      },
+
+      getDictOptions() {
+        api.getDictList(this.$axios).then(res => {
+          //this.wellNoOptions = res.data.items['WellNo']
+          //this.supervisersOptions = res.data.items['Supervisers']
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      //保存信息
+      saveEntity() {
+        this.$refs['EntityForm'].validate((valid) => {
+          if (valid) {
+            //this.formData.WellNo = this.$refs.selectWellNo.selectedLabel + '';
+
+            if (!this.formData.Id) {
+              this.addEntity();
+            } else {
+              this.updateEntity();
+            }
+
+          } else {
+            return false
+          }
+        })
+      },
+
+      addEntity() {
+        api.addEntity(this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            //保存成功后,初始化数据,变成修改
+            this.formData.Id = res.data.item;
+            this.initDatas();
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            });
+
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            });
+          }
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+
+      updateEntity() {
+        api.updateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            //保存成功后,初始化数据,变成修改
+            this.initDatas();
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            });
+
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            });
+          }
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+
+      supplierChangeHandler() {
+        this.formData.SupplierName = this.$refs['SupplierSelect'].selectedLabel
+      },
+
+      jstimehandle(val) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          return val.substring(0, 10)
+        }
+      },
+
+      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;
+      },
+      onBack(){
+        this.$router.go(-1)
+      }
+    }
+  }
+
+</script>
+
+<style lang="scss">
+
+</style>

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

@@ -1,64 +1,102 @@
 <template>
   <div>
-    <el-table highlight-current-row :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
-      <el-table-column
-        property="SequenceNo"
-        label="序号"
-        header-align="center"
-        width="80">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.SequenceNo}}</span>
-          <span v-else>{{scope.row.SequenceNo}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Content"
-        header-align="center"
-        label="评价内容">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.Content}}</span>
-          <span v-else>{{scope.row.Content}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="NormalScore"
-        label="标准分值"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.NormalScore}}</span>
-          <span v-else-if="scope.row.NormalScore==0" style="font-weight: bold"></span>
-          <span v-else>{{scope.row.NormalScore}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Score"
-        label="实得分数"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span v-if="scope.row.type=='SUM'" style="font-weight: bold">{{scope.row.Score}}</span>
-          <el-input v-else size="mini" placeholder="实得分数" v-model="scope.row.Score"></el-input>
-        </template>
-      </el-table-column>
-      <el-table-column
-        property="Reason"
-        label="不合格原因"
-        header-align="center"
-        width="120">
-        <template slot-scope="scope">
-          <span style="font-weight: bold"><el-tag size="mini">不合格原因</el-tag></span>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+    <el-form ref="form" :model="entityListData" label-width="0px" :rules="rules">
+
+      <el-table highlight-current-row :data="entityListData.entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+        <el-table-column
+          property="SequenceNo"
+          label="序号"
+          header-align="center"
+          width="80">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.SequenceNo}}</span>
+            <span v-else>{{scope.row.SequenceNo}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Content"
+          header-align="center"
+          label="评价内容">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.content}}</span>
+            <span v-else>{{scope.row.content}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="NormalScore"
+          label="标准分值"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.NormalScore}}</span>
+            <span v-else-if="scope.row.NormalScore==0" style="font-weight: bold"></span>
+            <span v-else>{{scope.row.NormalScore}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Score"
+          label="实得分数"
+          header-align="center"
+          width="120">
+          <template slot-scope="scope">
+            <el-form-item  style="margin-bottom: 0px;" :prop="'entityList.' + scope.$index + '.Score'" :rules="rules.relation">
+              <span v-if="scope.row.LevelCode==1" style="font-weight: bold">{{scoreFun(scope.row.typeStatus)}}</span>
+              <el-input v-else size="mini" type="number" placeholder="实得分数" v-model="scope.row.Score" @input="onInputFen(scope.$index,scope.row.NormalScore)"></el-input>
+            </el-form-item>
+          </template>
+        </el-table-column>
+        <el-table-column
+          property="Reason"
+          label="不合格原因"
+          header-align="center"
+          width="120"
+          align="center">
+          <template slot-scope="scope">
+             <el-popover
+                placement="top-start"
+                title="原因"
+                width="200"
+                trigger="hover"
+                :content="scope.row.Remark==''||scope.row.Remark==null?'空':scope.row.Remark">
+                <el-button slot="reference" v-if="scope.row.LevelCode!=1" type="primary" icon="el-icon-edit" size="mini" @click="onDialogVisible(scope.row,scope.$index)">编辑</el-button>
+             </el-popover>
+          </template>
+        </el-table-column>
+      </el-table>
+
+    </el-form>
+
+    <div style="display: flex;justify-content: flex-end;">
+      <el-button type="primary" size="mini"   @click="activeName = '1'">上一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+      <el-button type="primary" size="mini"   @click="activeName = '3'">下一步<i class="el-icon-arrow-right el-icon--right"></i></el-button>
+    </div>
+
+    <!-- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
                    :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
-    </el-pagination>
+    </el-pagination> -->
+
+    <el-dialog
+      title="不合格原因"
+      :visible.sync="dialogBoolean"
+      width="60%"
+      >
+      <el-input   type="textarea" placeholder="请输入" v-model="textareaValue" ></el-input>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogBoolean = false" size="small">取 消</el-button>
+        <el-button type="primary" @click="onTrueDialog" size="small">确 定</el-button>
+      </span>
+    </el-dialog>
+
+
+
+
+
   </div>
 </template>
 <script>
   import { mapGetters } from 'vuex';
-  import api from '@/api/oilcontract/contractEvaluationItems';
+  import api from '@/api/oilcontract/contract'
+  // import api from '@/api/oilcontract/contractEvaluationItems';
 
   export default {
     computed: {
@@ -67,12 +105,77 @@
       })
     },
     name: 'oilcontractevaluationitems',
-
+    props: {
+      // 从合同进来还是从编辑进来 1合同2编辑
+      type: {
+        type: null,
+        default: 1,
+      },
+      // 评价id
+      evaluateId: {
+        type: null,
+        default:'',
+      },
+      // 类型 0 二级部门创建 1 专业处创建
+      category: {
+        type: null,
+        default:'',
+      },
+    },
+    computed:{
+      scoreFun:function(){
+        return function(type){
+          var num = 0;
+          var list = this.entityListData.entityList
+          for(var index = 0 ; index < list.length ; index++){
+            var code = Number(list[index].LevelCode)
+            if(type == list[index].typeStatus&&code==2){
+              num = num + Number(list[index].Score)
+            }
+          }
+          return num
+        }
+      },
+    },
     data() {
+      var validatePass = (rule, value, callback) => {
+        var num = Number(value)
+        if (num === '') {
+          this.fractionBoolean = false
+          callback(new Error('请输入分值'));
+          return
+        }
+        if (num > this.branchNum) {
+          this.fractionBoolean = false
+          callback(new Error('不能大于规定的分值'));
+          return
+        }
+        if ( num < 0) {
+          this.fractionBoolean = false
+          callback(new Error('不能为负数'));
+          return
+        }
+        this.fractionBoolean = true
+        callback();
+      };
       return {
+        fractionBoolean:true,
+        dialogVisibleCom: false,
+        loading: false,
+        UnitOrgOptions: [],
+        textareaValue:'',//不合格原因
+        dialogBoolean:false,
+        rules:{
+          relation: [
+            { validator: validatePass, trigger: 'blur' }
+          ],
+        },
         dialogVisible: false,
         //列表数据
-        entityList: [],
+        entityListData:{
+          entityList:[],
+        },
+
         //分页参数
         size: 10,
         currentPage: 1,
@@ -100,152 +203,101 @@
           ModifiedUserId: '',
           ModifiedBy: '',
 
-        }
+        },
+        auditform: {
+          FirstAuditName: '',
+          SecondAudit: '',
+          ThirdAudit: '',
+          CertId: '',
+          AuditRemark: '',
+          TypeCode: '03'
+        },
+        entityListItemIndex:'',
+
       }
     },
     created() {
-      //查询条件初始值备份
-      Object.assign(this.searchFormReset, this.searchForm);
-      //查询列表
-      //this.initDatas();
+      //数据列表
+      // 判断是编辑状态还是新增状态
+      if(this.type==1){
+        this.initDatas();
+      }else{
+        this.editDatas();
+      }
+
+
       //this.getDictOptions()
 
-      this.entityList = [
-        {
-          SequenceNo: '1.',
-          type: 'SUM',
-          Content: '项目管理',
-          NormalScore: 40,
-          Score: 40
-        },
-        {
-          SequenceNo: '1.1',
-          type: 'ITEM',
-          Content: '施工管理',
-          NormalScore: 15,
-          Score: 15
-        },
-        {
-          SequenceNo: '1.2',
-          type: 'ITEM',
-          Content: '质量管理',
-          NormalScore: 15,
-          Score: 15
-        },
-        {
-          SequenceNo: '1.3',
-          type: 'ITEM',
-          Content: '质量验收',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '2.',
-          type: 'SUM',
-          Content: 'HSE管理',
-          NormalScore: 30,
-          Score: 30
-        },
-        {
-          SequenceNo: '2.1',
-          type: 'ITEM',
-          Content: 'HSE检查及整改',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '2.2',
-          type: 'ITEM',
-          Content: '安全管理',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '2.3',
-          type: 'ITEM',
-          Content: '环境保护',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '2.4',
-          type: 'ITEM',
-          Content: 'HSE评价',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '3.',
-          type: 'SUM',
-          Content: '合同履行',
-          NormalScore: 15,
-          Score: 15
-        },
-        {
-          SequenceNo: '3.1',
-          type: 'ITEM',
-          Content: '合同签订及履行',
-          NormalScore: 10,
-          Score: 10
-        },
-        {
-          SequenceNo: '3.2',
-          type: 'ITEM',
-          Content: '分包转包',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '4.',
-          type: 'SUM',
-          Content: '企业诚信',
-          NormalScore: 15,
-          Score: 15
-        },
-        {
-          SequenceNo: '4.1',
-          type: 'ITEM',
-          Content: '质量业绩',
-          NormalScore: 5,
-          Score: 5
-        },
-        {
-          SequenceNo: '4.2',
-          type: 'ITEM',
-          Content: '规范经营',
-          NormalScore: 10,
-          Score: 10
-        }
-      ]
     },
     methods: {
+      //初始数据
       initDatas() {
-        //分页及列表条件
-        let params = {
-          _currentPage: this.currentPage,
-          _size: this.size,
-          Order: this.Column.Order,
-          Prop: this.Column.Prop,
-        }
-        let myCreateOn = []
-        // 解析时间
-        if (this.CreateOn.length == 2) {
-          this.CreateOn[1].setHours(23)
-          this.CreateOn[1].setMinutes(59)
-          this.CreateOn[1].setSeconds(59)
-          myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
-          myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
+        api.evaluationItemsOnelist(this.type,this.$axios).then(res => {
+          console.log('上级节点内容',res)
+          var data = res.data.items
+          var list = []
+          for(var index = 0 ; index < data.length ; index++){
+            data[index].typeStatus = index
+            list.push(data[index])
+            if(data[index].Son!=null&&data[index].Son!=undefined){
+              for(var k = 0 ; k < data[index].Son.length ; k++){
+                data[index].Son[k].typeStatus = index
+                data[index].Son[k].Score = 0
+                list.push(data[index].Son[k])
+              }
+            }
+          }
+          this.entityListData.entityList = list
+          console.log('处理完的数据',list)
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      //初始数据
+      editDatas() {
+        var data = {
+          ContentReviewId:this.evaluateId,
+          Category:this.category,
         }
-        //查询条件
-        Object.assign(params, this.searchForm)
-        //访问接口
-        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
-          this.entityList = res.data.items
-          this.currentItemCount = res.data.currentItemCount
+        api.contractEvaluationTree(data,this.$axios).then(res => {
+          console.log('上级节点内容',res)
+          var data = res.data.items
+          var list = []
+          for(var index = 0 ; index < data.length ; index++){
+            data[index].typeStatus = index
+            list.push(data[index])
+            if(data[index].Son!=null&&data[index].Son!=undefined){
+              for(var k = 0 ; k < data[index].Son.length ; k++){
+                data[index].Son[k].typeStatus = index
+                data[index].Son[k].Score = 0
+                list.push(data[index].Son[k])
+              }
+            }
+          }
+          this.entityListData.entityList = list
+          console.log('处理完的数据',list)
         }).catch(err => {
           console.error(err)
         })
       },
+      // 弹窗
+      onDialogVisible(item,index){
+        console.log(item)
+        this.entityListItemIndex = index
+        this.textareaValue = item.Remark
+        this.dialogBoolean = true
+      },
+      //确认编辑内容
+      onTrueDialog(){
+        this.entityListData.entityList[this.entityListItemIndex].Remark = this.textareaValue
+        this.dialogBoolean = false
+      },
+      // 分数校验
+      onInputFen(index,fen){
+        this.branchNum = fen
+        // this.entityListData.entityList[index].Score = fen
+      },
+
 
       getDictOptions() {
         api.getDictList(this.$axios).then(res => {
@@ -338,7 +390,36 @@
         var minute = date.getMinutes();
         minute = minute < 10 ? ('0' + minute) : minute;
         return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
-      }
+      },
+      orgunitChange (val) {
+        let deptid = val
+        let auditstepcode = 'SUB_OFFICE_JF'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.orgauditOptions = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      getDictOptions () {
+        let params = {
+          status: this.formData.Status,
+          majorAduit: this.formData.ThirdAudit
+        }
+        api.getDictListByStatus(params, this.$axios).then(res => {
+          this.dictData = res.data.items
+          this.organizeOption = res.data.items['Organizes']
+          this.orgtreelist = window.toolfun_gettreejson(res.data.items['ProOrgList'], 'id', 'pId', 'id,name')
+          this.UnitOrgOptions = res.data.items['UnitOrgList']
+          this.UnitOrg = res.data.items['Register'].CheckUnitId
+          this.allorgunitOptions = res.data.items['Allunitorglist']
+          this.orgunitChange(this.UnitOrg)
+          /* this.UnitRelationOptions = res.data.items['UnitRelation']
+          this.getCityList(res.data.items['GaodeMapChinaAreas'])
+          this.CompanyTypeOptions = res.data.items['CompanyType'] */
+        }).catch(err => {
+          console.error(err)
+        })
+      },
     }
   }
 

+ 31 - 24
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/index.vue

@@ -12,10 +12,10 @@
           <i class="icon icon-table2"></i> 合同表
         </span>
         <span style="float: right;">
-          <!-- <router-link :to="'/oilcontract/contract-service/add/operation'">
+          <!-- <router-link :to="'/oilcontract/contract-basis/add/operation'">
             <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">添加</el-button>
-          </router-link>
-          <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">导入</el-button> -->
+          </router-link> -->
+          <!-- <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="上报时间">
@@ -35,13 +35,11 @@
         </el-form>
       </div>
       <el-table size="mini" :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
-        <el-table-column label="操作" min-width="100" align="center" fixed>
+        <el-table-column label="操作" min-width="160" align="center" fixed>
           <template slot-scope="scope">
-            <router-link :to="'/oilsupplier/oilcontract/' + scope.row.Id + '/operation'">
-              <el-button type="text" title="编辑" size="small" icon="el-icon-edit"></el-button>
-            </router-link>
+            <el-button type="text" title="编辑" size="small" icon="el-icon-edit" @click="onNavigateEvaluate(scope.row)">编辑</el-button>
 
-            <el-popover placement="top" title="提示" v-model="scope.row.deleteConfirmFlag">
+            <el-popover placement="top" title="提示" >
               <el-alert
                 title=""
                 description="确认要删除吗?"
@@ -52,9 +50,7 @@
               <div style="text-align: right; margin: 0">
                 <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
               </div>
-              <el-button slot="reference" type="text" title="删除" style="margin-left:3px" size="small" @click="scope.row.deleteConfirmFlag = true">
-                <i class="el-icon-delete"></i>
-              </el-button>
+              <el-button slot="reference" type="text" style="margin-left:3px" icon="el-icon-delete" size="small" >删除</el-button>
             </el-popover>
           </template>
         </el-table-column>
@@ -84,12 +80,6 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="12">
-            <el-form-item label="">
-              <el-input size="mini" v-model="searchForm.Id" style="width:100%" placeholder="请输入"></el-input>
-            </el-form-item>
-          </el-col>
-
           <el-col :span="12">
             <el-form-item label="供应商ID">
               <el-input size="mini" v-model="searchForm.SupplierId" style="width:100%" placeholder="请输入"></el-input>
@@ -252,7 +242,7 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="12">
+          <!-- <el-col :span="12">
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.CreateOn" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
@@ -274,9 +264,9 @@
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.ModifiedOn" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
-          </el-col>
+          </el-col> -->
 
-          <el-col :span="12">
+          <!-- <el-col :span="12">
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.ModifiedUserId" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
@@ -286,7 +276,7 @@
             <el-form-item label="">
               <el-input size="mini" v-model="searchForm.ModifiedBy" style="width:100%" placeholder="请输入"></el-input>
             </el-form-item>
-          </el-col>
+          </el-col> -->
 
         </el-row>
       </el-form>
@@ -324,8 +314,8 @@
           Order: '',
           Prop: ''
         },
-        //查询时间
-        CreateOn: [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: {
@@ -565,6 +555,17 @@
       //this.getDictOptions()
     },
     methods: {
+      //跳转评价
+      onNavigateEvaluate(item){
+        console.log('跳转',item)
+        this.$router.push({
+          path:'/oilcontract/contract-service/' + item.Id + '/evaluate',
+          query:{
+            item:item,
+            type:2,
+          }
+        })
+      },
       initDatas() {
         //分页及列表条件
         let params = {
@@ -572,7 +573,12 @@
           _size: this.size,
           Order: this.Column.Order,
           Prop: this.Column.Prop,
+          ContractClass:'03',
         }
+        // <el-option label="物资类" value="01" key="01"></el-option>
+        // <el-option label="基建类" value="02" key="02"></el-option>
+        // <el-option label="技术服务" value="03" key="03"></el-option>
+        
         let myCreateOn = []
         // 解析时间
         if (this.CreateOn.length == 2) {
@@ -585,7 +591,8 @@
         //查询条件
         Object.assign(params, this.searchForm)
         //访问接口
-        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
+        api.getReviewList(myCreateOn.join(','), params, this.$axios).then(res => {
+          console.log('评价接口',res)
           this.entityList = res.data.items
           this.currentItemCount = res.data.currentItemCount
         }).catch(err => {

+ 698 - 0
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-service/index_old.vue

@@ -0,0 +1,698 @@
+
+
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilsupplier/oilcontract' }">合同表</el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-card class="box-card" style="height: calc(100vh - 115px);">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 合同表
+        </span>
+        <span style="float: right;">
+          <!-- <router-link :to="'/oilcontract/contract-service/add/operation'">
+            <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;">添加</el-button>
+          </router-link>
+          <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-date-picker size="mini" style="width: 220px" v-model="CreateOn" type="daterange" range-separator="至"
+                            start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
+          </el-form-item>
+
+          <el-form-item>
+            <el-dropdown split-button type="primary" size="mini" @click="handleSearch" @command="searchCommand">
+              查询
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="search">高级查询</el-dropdown-item>
+                <el-dropdown-item command="clear">查询重置</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </el-form-item>
+        </el-form>
+      </div>
+      <el-table size="mini" :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
+        <el-table-column label="操作" min-width="100" align="center" fixed>
+          <template slot-scope="scope">
+            <router-link :to="'/oilsupplier/oilcontract/' + scope.row.Id + '/operation'">
+              <el-button type="text" title="编辑" size="small" icon="el-icon-edit"></el-button>
+            </router-link>
+
+            <el-popover placement="top" title="提示" v-model="scope.row.deleteConfirmFlag">
+              <el-alert
+                title=""
+                description="确认要删除吗?"
+                type="warning"
+                :closable="false">
+              </el-alert>
+              <br/>
+              <div style="text-align: right; margin: 0">
+                <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
+              </div>
+              <el-button slot="reference" type="text" title="删除" style="margin-left:3px" size="small" @click="scope.row.deleteConfirmFlag = true">
+                <i class="el-icon-delete"></i>
+              </el-button>
+            </el-popover>
+          </template>
+        </el-table-column>
+
+        <el-table-column v-for="column in tableColumns" :key="column.Id"
+                         v-if="column.prop != 'CreateOn'" :prop="column.prop" sortable min-width="100" :label="column.label" align="center" show-overflow-tooltip></el-table-column>
+
+        <!--<el-table-column prop="CreateOn" sortable min-width="150" label="生成时间" align="center" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{ jstimehandle(scope.row.CreateOn+'') }}
+          </template>
+        </el-table-column>-->
+      </el-table>
+      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
+                     :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
+      </el-pagination>
+    </el-card>
+
+    <el-dialog title="高级查询" :visible.sync="dialogVisible" width="720px">
+      <el-form ref="advancedsearchForm" label-width="110px">
+        <el-row>
+
+          <el-col :span="12">
+            <el-form-item label="生成时间">
+              <el-date-picker size="mini" v-model="CreateOn" type="daterange" style="width:100%" range-separator="至"
+                              start-placeholder="生成日期" end-placeholder="结束日期"></el-date-picker>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.Id" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="供应商ID">
+              <el-input size="mini" v-model="searchForm.SupplierId" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="企业名称">
+              <el-input size="mini" v-model="searchForm.SupplierName" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="项目名称">
+              <el-input size="mini" v-model="searchForm.ProjectName" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同编号">
+              <el-input size="mini" v-model="searchForm.ContractNo" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="工程地点">
+              <el-input size="mini" v-model="searchForm.ProjectPlace" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="项目负责人">
+              <el-input size="mini" v-model="searchForm.ProjectOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="联系人电话">
+              <el-input size="mini" v-model="searchForm.Telephone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="项目类别">
+              <el-input size="mini" v-model="searchForm.ProjectType" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同模式">
+              <el-input size="mini" v-model="searchForm.ContractMode" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同总金额(万元)">
+              <el-input size="mini" v-model="searchForm.Amount" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="合同总工期(天)">
+              <el-input size="mini" v-model="searchForm.ContractPeriod" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="开工日期">
+              <el-input size="mini" v-model="searchForm.OpenDate" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="计划竣工时间">
+              <el-input size="mini" v-model="searchForm.PlanFinishDate" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="建设单位">
+              <el-input size="mini" v-model="searchForm.ConstructionUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="建设负责人">
+              <el-input size="mini" v-model="searchForm.ConstructionOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.ConstructionTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="施工单位">
+              <el-input size="mini" v-model="searchForm.BuildUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="施工负责人">
+              <el-input size="mini" v-model="searchForm.BuildOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.BuildTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="监理单位">
+              <el-input size="mini" v-model="searchForm.SuperviseUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="监理负责人">
+              <el-input size="mini" v-model="searchForm.SuperviseOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.SuperviseTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="质量监督单位">
+              <el-input size="mini" v-model="searchForm.QualityUnit" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="质量监督负责人">
+              <el-input size="mini" v-model="searchForm.QualityOwner" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input size="mini" v-model="searchForm.QualityTelphone" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="备注">
+              <el-input size="mini" v-model="searchForm.Remark" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="删除状态,0正常,1已删除">
+              <el-input size="mini" v-model="searchForm.IsDelete" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.CreateOn" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.CreateUserId" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.CreateBy" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.ModifiedOn" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.ModifiedUserId" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="">
+              <el-input size="mini" v-model="searchForm.ModifiedBy" style="width:100%" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="mini" type="primary" @click="handleSearch">查 询</el-button>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+  import { mapGetters } from 'vuex';
+  import api from '@/api/oilcontract/contract';
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilcontract',
+
+    data() {
+      return {
+        dialogVisible: false,
+        //列表数据
+        entityList: [],
+        //分页参数
+        size: 10,
+        currentPage: 1,
+        currentItemCount: 0,
+        //列表排序
+        Column: {
+          Order: '',
+          Prop: ''
+        },
+        //查询时间
+        CreateOn: [new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000), new Date()],
+        //查询项
+        searchFormReset: {},
+        searchForm: {
+          Id: '',
+          SupplierId: '',
+          SupplierName: '',
+          ProjectName: '',
+          ContractNo: '',
+          ProjectPlace: '',
+          ProjectOwner: '',
+          Telephone: '',
+          ProjectType: '',
+          ContractMode: '',
+          Amount: '',
+          ContractPeriod: '',
+          OpenDate: '',
+          PlanFinishDate: '',
+          ConstructionUnit: '',
+          ConstructionOwner: '',
+          ConstructionTelphone: '',
+          BuildUnit: '',
+          BuildOwner: '',
+          BuildTelphone: '',
+          SuperviseUnit: '',
+          SuperviseOwner: '',
+          SuperviseTelphone: '',
+          QualityUnit: '',
+          QualityOwner: '',
+          QualityTelphone: '',
+          Remark: '',
+          IsDelete: '',
+          CreateOn: '',
+          CreateUserId: '',
+          CreateBy: '',
+          ModifiedOn: '',
+          ModifiedUserId: '',
+          ModifiedBy: '',
+
+        },
+        tableColumns: [
+
+          {
+            prop: "Id",
+            label: '',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SupplierId",
+            label: '评价单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SupplierName",
+            label: '企业名称',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectName",
+            label: '项目名称',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ContractNo",
+            label: '合同编号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectPlace",
+            label: '工程地点',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectOwner",
+            label: '项目负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "Telephone",
+            label: '联系人电话',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ProjectType",
+            label: '项目类别',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ContractMode",
+            label: '合同模式',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "Amount",
+            label: '合同总金额(万元)',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ContractPeriod",
+            label: '合同总工期(天)',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "OpenDate",
+            label: '开工日期',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "PlanFinishDate",
+            label: '计划竣工时间',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ConstructionUnit",
+            label: '建设单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ConstructionOwner",
+            label: '建设负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "ConstructionTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "BuildUnit",
+            label: '施工单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "BuildOwner",
+            label: '施工负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "BuildTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SuperviseUnit",
+            label: '监理单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SuperviseOwner",
+            label: '监理负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "SuperviseTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "QualityUnit",
+            label: '质量监督单位',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "QualityOwner",
+            label: '质量监督负责人',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "QualityTelphone",
+            label: '手机号',
+            width: 100,
+            sort: true
+          },
+
+          {
+            prop: "Remark",
+            label: '备注',
+            width: 100,
+            sort: true
+          }]
+      }
+    },
+    created() {
+      //查询条件初始值备份
+      Object.assign(this.searchFormReset, this.searchForm);
+      //查询列表
+      this.initDatas();
+      //this.getDictOptions()
+    },
+    methods: {
+      initDatas() {
+        //分页及列表条件
+        let params = {
+          _currentPage: this.currentPage,
+          _size: this.size,
+          Order: this.Column.Order,
+          Prop: this.Column.Prop,
+        }
+        let myCreateOn = []
+        // 解析时间
+        if (this.CreateOn.length == 2) {
+          this.CreateOn[1].setHours(23)
+          this.CreateOn[1].setMinutes(59)
+          this.CreateOn[1].setSeconds(59)
+          myCreateOn.push(this.formatDateTime(this.CreateOn[0]))
+          myCreateOn.push(this.formatDateTime(this.CreateOn[1]))
+        }
+        //查询条件
+        Object.assign(params, this.searchForm)
+        //访问接口
+        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
+          this.entityList = res.data.items
+          this.currentItemCount = res.data.currentItemCount
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      getDictOptions() {
+        api.getDictList(this.$axios).then(res => {
+          //this.dictOptions.customerList = res.data.items['customerList']
+          //this.dictOptions.projectList = res.data.items['projectList']
+
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      searchCommand(command) {
+        if (command == 'search') {
+          this.dialogVisible = true
+        } else if (command == 'clear') {
+          this.clearSearch()
+        }
+      },
+      //列表排序功能
+      orderby(column) {
+        if (column.order == 'ascending') {
+          this.Column.Order = 'asc'
+        } else if (column.order == 'descending') {
+          this.Column.Order = 'desc'
+        }
+        this.Column.Prop = column.prop
+        this.initDatas()
+      },
+      clearSearch() {
+        Object.assign(this.searchForm, this.searchFormReset);
+        //this.searchForm = this.searchFormReset;
+        this.CreateOn = ''
+        this.initDatas()
+      },
+      handleSearch() {
+        this.currentPage = 1;
+        this.dialogVisible = false;
+        this.initDatas();
+      },
+      handleCurrentChange(value) {
+        this.currentPage = value
+        this.initDatas()
+      },
+      handleSizeChange(value) {
+        this.size = value
+        this.currentPage = 1
+        this.initDatas()
+      },
+      deleteEntity(row) {
+        row.deleteConfirmFlag = false;
+        api.deleteEntity(row.Id, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            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) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          return val.substring(0, 10)
+        }
+      },
+
+      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;
+      }
+    }
+  }
+
+</script>
+
+<style lang="scss">
+  .el-pagination {
+    margin: 1rem 0 2rem;
+    text-align: right;
+  }
+</style>