2
3
王宇昕 5 سال پیش
والد
کامیت
88f02807b0

+ 4 - 2
src/dashoo.cn/frontend_web/nuxt.config.js

@@ -115,6 +115,7 @@ module.exports = {
   plugins: [
     '@/plugins/i18n',
     '@/plugins/element-ui',
+    '@/plugins/mycomponents',
     // '@/plugins/axios-defaults',
     {
       src: '@/plugins/clipboard',
@@ -164,9 +165,10 @@ module.exports = {
 
 
   axios: {
-    baseURL: '//localhost:10091/api/' // 本机开发使用
+    baseURL: '//192.168.1.44:10091/api/' // 本机开发使用
+    // baseURL: '//localhost:10091/api/' // 本机开发使用
     // baseURL: '//192.168.1.41:10091/api/' // 本机开发使用
-    //baseURL: '//192.168.124.13:10091/api/' // 本机开发使用
+    // baseURL: '//192.168.124.13:10091/api/' // 本机开发使用
 
     /* --------Nuxt Start发版用 START-------------- */
     // baseURL: '/api/'

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

@@ -1,4 +1,49 @@
 export default {
+
+  // 最初始的上级节点
+  evaluationItemsOnelist(myAxios) {
+    return myAxios({
+      url: '/evaluation-items/onelist',
+      method: 'GET',
+    });
+  },
+
+
+
+  //评价新增
+  addContractEvaluate(formData, myAxios) {
+    return myAxios({
+      url: '/contract-review/add',
+      method: 'post',
+      data: formData
+    });
+  },
+  //评价编辑
+  updateContractEvaluate(entityId,formData, myAxios) {
+    return myAxios({
+      url: '/contract-review/update'+entityId,
+      method: 'post',
+      data: formData
+    });
+  },
+
+
+  //评价列表
+  getReviewList(CreateOn, params, myAxios) {
+    return myAxios({
+      url: '/contract-review/list?CreateOn='+ CreateOn,
+      method: 'GET',
+      params: params
+    });
+  },
+  addEntity(formData, myAxios) {
+    return myAxios({
+      url: '/contract/add',
+      method: 'post',
+      data: formData
+    })
+  },
+
   getList(CreateOn, params, myAxios) {
     return myAxios({
       url: '/contract/list?CreateOn='+ CreateOn,
@@ -18,13 +63,7 @@ export default {
       method: 'GET',
     })
   },
-  addEntity(formData, myAxios) {
-    return myAxios({
-      url: '/contract/add',
-      method: 'post',
-      data: formData
-    })
-  },
+
   updateEntity(entityId, formData, myAxios) {
     return myAxios({
       url: '/contract/update/'+entityId,

+ 3 - 0
src/dashoo.cn/frontend_web/src/assets/styles/common.css

@@ -0,0 +1,3 @@
+.web_fromclass /deep/ .el-input{
+  max-height: 40px;
+}

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

@@ -0,0 +1,247 @@
+
+
+<template>
+  <div>
+    <el-dialog title="提交"
+               :visible.sync="dialogVisibleCom"
+               width="520px">
+      <el-form ref="searchForm"
+               label-width="100px">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="分办单位">
+              <el-select filterable
+                         v-model="UnitOrg"
+                         maxlength="255"
+                         clearable
+                         placeholder="请选择分办单位"
+                         style="width: 100%"
+                         @change="orgunitChange">
+                <el-option v-for="item in UnitOrgOptions"
+                           :key="item.Id"
+                           :label="item.Fullname"
+                           :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注">
+              <el-input v-model="auditform.AuditRemark"
+                        type="textarea"
+                        placeholder="请输入备注内容">
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer"
+            class="dialog-footer">
+        <el-button size="mini"
+                   @click="dialogVisibleCom = false">取 消</el-button>
+        <el-button size="mini"
+                   type="primary"
+                   @click="companySubmitToSecUnitSeparateMakeSure" :loading="loading">确定</el-button>
+      </span>
+    </el-dialog>
+
+
+
+
+  </div>
+</template>
+
+<script>
+  import {mapGetters} from 'vuex'
+  import api from '@/api/oilsupplier/supplier'
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'submitPopup',
+    components: {
+
+    },
+
+    data() {
+      return {
+        dialogVisibleCom:false,
+        loading: false,
+        UnitOrgOptions: [],
+        UnitOrg: '',
+
+        auditform: {
+          FirstAuditName: '',
+          SecondAudit: '',
+          ThirdAudit: '',
+          CertId: '',
+          AuditRemark: ''
+        },
+        formData: {
+          Id: '',
+          SupplierName: '',
+          OilCertificateNo: '',
+          Grade: '',
+          MgrUnit: '',
+          OperType: '',
+          Country: '',
+          MaunAgent: '',
+          ConstructTeam: '',
+          CommercialNo: '',
+          OrganCode: '',
+          CountryTaxNo: '',
+          ProcessKey: '',
+          LocalTaxNo: '',
+          Address: '',
+          Province: '',
+          City: '',
+          Street: '',
+          HouseNo: '',
+          ZipCode: '',
+          QualitySystemCert: '',
+          ProductQualityCert: '',
+          MaunLicense: '',
+          QualifCert: '',
+          QualifCertLevel: '',
+          SafetyLicense: '',
+          TechServiceLic: '',
+          TJInNotify: '',
+          SpecIndustryCert: '',
+          LegalPerson: '',
+          CategoryCode: '',
+          CategoryName: '',
+          RegCapital: '',
+          Currency: '',
+          ContactName: '',
+          CompanyType: '',
+          SetupTime: '',
+          DepositBank: '',
+          BankAccount: '',
+          EMail: '',
+          BankCreditRating: '',
+          Mobile: '',
+          Telphone: '',
+          Fax: '',
+          CompanyTel: '',
+          QQ: '',
+          CompanyUrl: '',
+          SpecSupplier: '',
+          SpecTypeCode: '',
+          SpecTypeName: '',
+          WorkerTotal: 0,
+          ContractNum: 0,
+          UniversityNum: 0,
+          TechnicalNum: 0,
+          AboveProfNum: 0,
+          MiddleProfNum: 0,
+          NationalRegNum: 0,
+          NationalCertTotal: 0,
+          DesignerTotal: 0,
+          SkillerTotal: 0,
+          ThirdAudit: 0,
+          Remark: '',
+          IsDelete: '',
+          CreateOn: '',
+          CreateUserId: '',
+          CreateBy: '',
+          ModifiedOn: '',
+          ModifiedUserId: '',
+          ModifiedBy: '',
+          CertId: 0,
+          SupplierTypeCode: '02',
+          SupplierTypeName: '基建类',
+          Step: 0,
+          BusinessKey: '',
+          AuditIndex: 0
+        },
+
+      }
+    },
+    created() {
+      this.getDictOptions()
+    },
+    methods: {
+      getDictOptions () {
+        let params = {
+          status: this.formData.Status,
+          majorAduit: this.formData.ThirdAudit
+        }
+        api.getDictListByStatus(params, this.$axios).then(res => {
+          this.dictData = res.data.items
+          this.orgtreelist = window.toolfun_gettreejson(res.data.items['ProOrgList'], 'id', 'pId', 'id,name')
+          var selectID = res.data.items['Register'].CheckUnitId
+          var item = res.data.items['UnitOrgList'].find(n => n.Id == selectID)
+          var list = res.data.items['UnitOrgList'].filter(n => n.Id != selectID)
+          if (item != null && item != undefined) {
+            list.unshift(item)
+          }
+          this.UnitOrgOptions = list
+          // this.UnitOrgOptions = res.data.items['UnitOrgList']
+          // this.UnitOrg = res.data.items['Register'].CheckUnitId
+          this.allorgunitOptions = res.data.items['Allunitorglist']
+          this.orgunitChange(this.UnitOrg)
+          // this.auditerOptions = res.data.items['Auditer']
+          // this.organizeOption = res.data.items['Organizes']
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      orgunitChange (val) {
+        console.log('近来个啥', val)
+        if (!val) {
+          return false
+        }
+        let deptid = val
+        let auditstepcode = 'SUB_OFFICE_JS'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.orgauditOptions = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      companySubmitToSecUnitSeparateMakeSure () {
+        if (this.orgauditOptions == null || this.orgauditOptions.length === 0) {
+          this.$message({
+            type: 'warning',
+            message: '该单位没有分办人员!'
+          })
+          return
+        }
+        this.applyLoading = true
+        this.auditform.UnitId = this.UnitOrg
+        this.auditform.CertId = this.certId
+        this.loading = true
+        console.log('企业用户提交参数', this.auditform)
+        apiCert.companyAuditEntity(this.certId, this.auditform, this.$axios)
+          .then(res => {
+            if (res.data.code === 0) {
+              // 保存成功后,初始化数据,变成修改
+              this.initDatas()
+              this.isAccess()
+              this.dialogVisibleCom = false
+              this.$message({
+                type: 'success',
+                message: res.data.message
+              })
+            } else {
+              this.$message({
+                type: 'warning',
+                message: res.data.message
+              })
+            }
+            this.loading = false
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
+    }
+  }
+
+</script>
+
+<style scoped="scoped">
+
+</style>

+ 1 - 1
src/dashoo.cn/frontend_web/src/components/sidebar.vue

@@ -194,7 +194,7 @@ export default class Sidebar extends Vue {
       // this.$store.dispatch('menu/addAll', this.translateMenus(menus))
       this.$store.dispatch('menu/addAll', menus)
     }
-    console.log('菜单栏',menus)
+    // console.log('菜单栏',menus)
   }
 
   // 菜单多语言支持

+ 6 - 5
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-basis/index.vue

@@ -12,9 +12,9 @@
           <i class="icon icon-table2"></i> 合同表
         </span>
         <span style="float: right;">
-          <router-link :to="'/oilcontract/contract-basis/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>
+          </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">
@@ -35,7 +35,7 @@
         </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 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>
@@ -306,7 +306,7 @@
       return {
         dialogVisible: false,
         //列表数据
-        entityList: [1],
+        entityList: [],
         //分页参数
         size: 10,
         currentPage: 1,
@@ -564,6 +564,7 @@
           _size: this.size,
           Order: this.Column.Order,
           Prop: this.Column.Prop,
+          ContractClass:'01',
         }
         let myCreateOn = []
         // 解析时间
@@ -577,7 +578,7 @@
         //查询条件
         Object.assign(params, this.searchForm)
         //访问接口
-        api.getList(myCreateOn.join(','), params, this.$axios).then(res => {
+        api.getReviewList(myCreateOn.join(','), params, this.$axios).then(res => {
           this.entityList = res.data.items
           this.currentItemCount = res.data.currentItemCount
         }).catch(err => {

+ 2 - 2
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-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>
+          <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="上报时间">

+ 97 - 5
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/evaluate.vue

@@ -14,7 +14,8 @@
           <i class="icon icon-table2"></i> 编辑 - 承包商合同
         </span>
         <span style="float: right;">
-          <el-button type="primary" size="mini" style="margin-left: 8px" >提交</el-button>
+          <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>
@@ -103,10 +104,15 @@
                 </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></evaluation-list>
+        <el-tab-pane label="业绩评价" name="2" :disabled="performance.disabled" >
+          <evaluation-list ref="evaluation_list_one" type="01"></evaluation-list>
         </el-tab-pane>
         <el-tab-pane label="专业处室业绩评价" name="3" :disabled="departmentPerformance.disabled">
           <evaluation-list></evaluation-list>
@@ -127,8 +133,7 @@
       </el-tabs>
     </el-card>
 
-
-
+    <submitPopup ref="submitpopup"></submitPopup>
 
   </div>
 </template>
@@ -154,6 +159,10 @@
 
     data() {
       return {
+        routeData:'',//上一页面传过来的值
+
+        dialogVisibleCom:false,
+
         disabled:true,//禁用
         // 业绩评价
         performance: {
@@ -223,6 +232,9 @@
       }
     },
     created() {
+      this.routeData = this.$route.query
+      
+
       this.serviceId = this.$route.params.opera;
       this.getDictOptions();
       console.log(this.serviceId);
@@ -234,6 +246,86 @@
       }
     },
     methods: {
+      //提交评价
+      onSubmitBigAdd(){
+        this.$refs.submitpopup.dialogVisibleCom = true
+      },
+      //保存评价
+      onSeaveBigAdd(){
+
+        if(this.formData.Id == 0){
+          this.addEvaluate()
+        }else{
+          this.updateEvaluate()
+        }
+      },
+      //新增评价
+      addEvaluate(){
+        var formData = {
+          ContractId:2,
+          Items:[
+            {
+                'ParentId' : '0',
+                'SequenceNo':'1111',
+                'Content':'111',
+                'NormalScore':'10',
+                'Score':'7',
+                'LevelCode':'1',
+                'Remark':'备注'
+            }
+          ],
+        }
+        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:[
+            {
+                'ParentId' : '0',
+                'SequenceNo':'1111',
+                'Content':'111',
+                'NormalScore':'10',
+                'Score':'7',
+                'LevelCode':'1',
+                'Remark':'备注b编辑'
+            }
+          ],
+        }
+        api.updateContractEvaluate(this.formData.Id,formData, this.$axios).then(res => {
+          console.log('编辑',res)
+        }).catch(err => {
+          console.error(err)
+        });
+      },
+      //点击下一步
+      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'
+      },
+
+
       initDatas() {
         if(this.formData.Id) {
           api.getEntity(this.formData.Id, this.$axios).then(res => {

+ 71 - 494
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/evaluationlist.vue

@@ -11,7 +11,7 @@
           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-if="scope.row.LevelCode==1" style="font-weight: bold">{{scope.row.SequenceNo}}</span>
             <span v-else>{{scope.row.SequenceNo}}</span>
           </template>
         </el-table-column>
@@ -20,8 +20,8 @@
           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>
+            <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
@@ -30,7 +30,7 @@
           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-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>
@@ -42,18 +42,11 @@
           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.type=='SUM'" style="font-weight: bold">{{scope.row.Score}}</span>
-              <el-input v-else size="mini" type="number" placeholder="实得分数" v-model="scope.row.Score" @input="onInputFen(scope.row.NormalScore)"></el-input>
+              <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-form-item>
-            <!-- <el-form-item label="" :prop="'entityList' + scope.$index + 'Score'" :rules="rules.relation">
-              <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>
-            </el-form-item> -->
-
-
           </template>
         </el-table-column>
-
         <el-table-column
           property="Reason"
           label="不合格原因"
@@ -61,9 +54,14 @@
           width="120"
           align="center">
           <template slot-scope="scope">
-            <el-button type="primary" icon="el-icon-edit" size="mini" @click="onDialogVisible">编辑</el-button>
-            <!-- <el-input v-else size="mini" type="number" placeholder="不合格原因" v-model="scope.row.Score" @input="onInputFen(scope.row.NormalScore)"></el-input> -->
-            <!-- <span style="font-weight: bold"><el-tag size="mini">不合格原因</el-tag></span> -->
+             <el-popover
+                placement="top-start"
+                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>
+             </el-popover>
           </template>
         </el-table-column>
       </el-table>
@@ -80,57 +78,21 @@
       >
       <el-input   type="textarea" placeholder="请输入" v-model="textareaValue" ></el-input>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogBoolean = false">取 消</el-button>
-        <el-button type="primary" @click="dialogBoolean = false">确 定</el-button>
+        <el-button @click="dialogBoolean = false" size="small">取 消</el-button>
+        <el-button type="primary" @click="dialogBoolean = false" size="small">确 定</el-button>
       </span>
     </el-dialog>
-    
-    <el-dialog title="提交"
-               :visible.sync="dialogVisibleCom"
-               width="520px">
-      <el-form ref="searchForm"
-               label-width="100px">
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="分办单位">
-              <el-select filterable
-                         v-model="UnitOrg"
-                         maxlength="255"
-                         clearable
-                         placeholder="请选择分办单位"
-                         style="width: 100%"
-                         @change="orgunitChange">
-                <el-option v-for="item in UnitOrgOptions"
-                           :key="item.Id"
-                           :label="item.Fullname"
-                           :value="item.Id">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="备注">
-              <el-input v-model="auditform.AuditRemark"
-                        type="textarea"
-                        placeholder="请输入备注内容">
-              </el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button size="mini"  @click="dialogVisibleCom = false">取 消</el-button>
-        <el-button size="mini" type="primary" @click="SubpEntity" :loading="loading">确定</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: {
@@ -139,7 +101,26 @@
       })
     },
     name: 'oilcontractevaluationitems',
-
+    props: {
+      type: {
+        type: null,//属性类型
+        default: 1,
+      },
+    },
+    computed:{
+      scoreFun:function(){
+        return function(type){
+          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
+            }
+          }
+          return num
+        }
+      },
+    },
     data() {
       var validatePass = (rule, value, callback) => {
         console.log(rule, value,this.branchNum)
@@ -162,7 +143,6 @@
         dialogVisibleCom: false,
         loading: false,
         UnitOrgOptions: [],
-        
         textareaValue:'',//不合格原因
         dialogBoolean:false,
         rules:{
@@ -170,7 +150,6 @@
             { validator: validatePass, trigger: 'blur' }
           ],
         },
-
         dialogVisible: false,
         //列表数据
         entityListData:{
@@ -217,448 +196,46 @@
     },
     created() {
       //查询条件初始值备份
-      Object.assign(this.searchFormReset, this.searchForm);
-      //查询列表
-      //this.initDatas();
+      // Object.assign(this.searchFormReset, this.searchForm);
+      //数据列表
+      this.initDatas();
       //this.getDictOptions()
 
-      this.entityListData.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: {
-      
-      SubpEntity () {
-        if (this.orgauditOptions == null || this.orgauditOptions.length === 0) {
-          this.$message({
-            type: 'warning',
-            message: '该单位没有分办人员!'
-          })
-          return
-        }
-        // if (this.auditer === "") {
-        //   this.$message({
-        //     type: "warning",
-        //     message: "请选择分办人!"
-        //   })
-        //   return
-        // }
-        this.applyLoading = true
-        this.auditform.UnitId = this.UnitOrg
-        this.auditform.CertId = this.certId
-        this.loading = true
-        apiCert.firstAuditEntity(this.certId, this.auditform, this.$axios)
-          .then(res => {
-            if (res.data.code === 0) {
-              // 保存成功后,初始化数据,变成修改
-              this.initDatas()
-              this.dialogVisibleCom = false
-              this.$message({
-                type: 'success',
-                message: res.data.message
-              })
-            } else {
-              this.$message({
-                type: 'warning',
-                message: res.data.message
-              })
-            }
-            this.loading = false
-            this.applyLoading = false
-          })
-          .catch(err => {
-            console.error(err)
-          })
-      },
-      
       // 弹窗
-      onDialogVisible(){
+      onDialogVisible(item){
+        console.log(item)
+        this.textareaValue = item.content
         this.dialogBoolean = true
-        console.log(this.dialogBoolean)
+
       },
       // 分数校验
-      onInputFen(fen){
+      onInputFen(index,fen){
         this.branchNum = fen
-        console.log(111,this.branchNum)
+        // this.entityListData.entityList[index].Score = fen
       },
+      //初始数据
       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.entityListData.entityList = res.data.items
-          this.currentItemCount = res.data.currentItemCount
+        api.evaluationItemsOnelist(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)
         })

+ 27 - 19
src/dashoo.cn/frontend_web/src/pages/oilcontract/contract-import/_opera/operation.vue

@@ -22,22 +22,23 @@
           </router-link>
         </span>
       </div>
-      <el-form label-width="110px" ref="EntityForm" :rules="rules" :model="formData" class="fromClass">
+      <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 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> -->
+            <el-form-item label="合同分类">
+              <el-select  v-model="formData.ContractType" 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>
               </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 :label="item.Key" :value="item.Id" v-for="(item,index) of dictionary.ContractClass" :key="index"></el-option>
+            <el-form-item label="企业名称">
+              <el-select :disabled="ContractTypeDisabled" 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> -->
               </el-select>
             </el-form-item>
           </el-col>
@@ -216,6 +217,7 @@
     </el-card>
 
 
+
   </div>
 </template>
 
@@ -228,6 +230,7 @@
 
   import evaluationList from './evaluationlist'
   import util from '@/utils/util'
+  import apiType from '@/api/oilsupplier/suppliercert'
 
 
   export default {
@@ -290,6 +293,7 @@
 
         },
 
+        ContractTypeDisabled:true,
         activeName: '1',
         serviceId: '',
         formData: {
@@ -356,21 +360,25 @@
         this.formData.Id = this.serviceId;
         this.initDatas();
       } else {
-        let params = {
-          // status: '',
-          // majorAduit: ''
-        }
-        oilsupplierApi.getSupList('01', this.$axios).then(res => {
+        this.formData.Id = 0;
+      }
+    },
+    methods: {
+      //选择合同分类
+      onSelectType(e){
+        console.log(e)
+        oilsupplierApi.getSupList(e, this.$axios).then(res => {
           console.log('数据',res)
+          this.formData.SupplierId = ''
+          this.ContractTypeDisabled = false
           this.SupplierSelectList = res.data.items
         }).catch(err => {
           console.error(err)
         })
 
-        this.formData.Id = 0;
-      }
-    },
-    methods: {
+
+      },
+      //编辑的初始数据
       initDatas() {
         if(this.formData.Id) {
           api.getEntity(this.formData.Id, this.$axios).then(res => {

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

@@ -59,7 +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="'/oilcontract/contract-import/' + 'add' + '/evaluate'">
+            <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>
           </template>

+ 2 - 2
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-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>
+          <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="上报时间">

+ 20 - 3
src/dashoo.cn/frontend_web/src/pages/oilcontract/evaluation-items/_opera/operation.vue

@@ -22,9 +22,7 @@
           <el-col :span="8">
             <el-form-item label="上级节点" prop="ParentId">
               <el-select v-model="formData.ParentId" placeholder="请选择" :disabled="superiorDisabled" >
-                <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 :label="item.content" :value="item.Id" v-for="(item,index) of oneList" :key="item.Id" ></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -130,6 +128,7 @@
             ],
         },
 
+        oneList:[],//上级节点列表
         classificationValue:'',//分类
         levelValue:'',//等级
         superiorValue:'',//上级节点
@@ -164,6 +163,7 @@
     created() {
       this.serviceId = this.$route.params.opera;
       this.getDictOptions();
+      this.evaluationItemsOnelist()
       console.log(this.serviceId);
       if(this.serviceId != 'add' && this.serviceId>0) {
         this.formData.Id = this.serviceId;
@@ -173,6 +173,15 @@
       }
     },
     methods: {
+      // 获取一级节点
+      evaluationItemsOnelist() {
+        api.evaluationItemsOnelist(this.$axios).then(res => {
+          console.log('一级节点',res)
+          this.oneList = res.data.items
+        }).catch(err => {
+          console.error(err)
+        })
+      },
       onLevelChange(index){
         console.log(index)
         if(index==1){
@@ -203,6 +212,14 @@
         }).catch(err => {
           console.error(err)
         })
+
+        api.evaluationItemsOnelist(this.$axios).then(res => {
+          console.log('一级节点',res)
+          this.oneList = res.data.items
+        }).catch(err => {
+          console.error(err)
+        })
+
       },
 
       //保存信息

+ 9 - 6
src/dashoo.cn/frontend_web/src/pages/oilcontract/evaluation-items/index.vue

@@ -38,7 +38,7 @@
               <el-button type="text" size="small" icon="el-icon-edit">编辑</el-button>
             </router-link>
 
-           <el-popover placement="top" title="提示" ref="popover" >
+           <el-popover placement="top" title="提示"  :ref="'popover-' + `${scope.$index}`">
               <el-alert
                 title=""
                 description="确认要删除吗?"
@@ -47,7 +47,8 @@
               </el-alert>
               <br/>
               <div style="text-align: right; margin: 0">
-                <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
+                <el-button type="primary" size="mini" @click="deleteEntity(scope.row,scope.$index)">删除</el-button>
+                <el-button type="primary" size="mini" @click="scope._self.$refs['popover-' + `${scope.$index}`].doClose()">删除22</el-button>
               </div>
               <el-button slot="reference" type="text" style="margin-left:6px" size="small" icon="el-icon-delete" >删除</el-button>
             </el-popover>
@@ -90,9 +91,7 @@
           <el-col :span="12">
             <el-form-item label="上级节点" prop="ParentId">
               <el-select v-model="searchForm.ParentId" placeholder="请选择" :disabled="superiorDisabled" >
-                <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 :label="item.content" :value="item.Id" v-for="(item,index) of oneList" :key="item.Id" ></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -172,6 +171,7 @@
 
     data() {
       return {
+        oneList:[],//上级节点
         popover_index:null,
         superiorDisabled:false,
         dialogVisible: false,
@@ -346,6 +346,7 @@
       evaluationItemsOnelist() {
         api.evaluationItemsOnelist(this.$axios).then(res => {
           console.log('一级节点',res)
+          this.oneList = res.data.items
         }).catch(err => {
           console.error(err)
         })
@@ -387,8 +388,10 @@
         this.currentPage = 1
         this.initDatas()
       },
-      deleteEntity(row) {
+      deleteEntity(row,index) {
         // console.log(22,this.$refs.popover)
+        this.$refs['popover-' + `${index}`].doClose()
+
         console.log(111,this.$refs.popover)
         var elementId = this.$refs.popover.$refs.popper.id
         // console.log(666,document.getElementById(elementId).style.display)

+ 4 - 0
src/dashoo.cn/frontend_web/src/plugins/mycomponents.js

@@ -0,0 +1,4 @@
+import Vue from 'vue'
+// import submitPopup from '@/components/oilcontract/submitPopup.vue'
+import submitPopup from '../components/oilcontract/submitPopup.vue'
+Vue.component('submitPopup',submitPopup)