2
3
lining 6 роки тому
батько
коміт
ce9ee2ebb2

+ 929 - 0
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/_opera/bassicoperation.vue

@@ -0,0 +1,929 @@
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilsupplier/annualaudit' }">年审基本信息表</el-breadcrumb-item>
+      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>年审基本信息表</span>
+        <span style="float: right;">
+          <!-- <el-button type="primary" size="mini" style="margin-left: 8px" @click="auhistory">审批历史</el-button> -->
+          <!-- <el-button plain icon="el-icon-right" size="mini" style="margin-right: 5px" @click="nextTab">下一步</el-button> -->
+          <el-popover>
+            <el-steps :active="Step" direction="vertical" align-center finish-status="success">
+              <el-step title="填写信息"></el-step>
+              <el-step title="提交审批"></el-step>
+              <el-step title="审批完成"></el-step>
+              <el-step title="供方交费"></el-step>
+              <el-step title="完成"></el-step>
+            </el-steps>
+            <!-- <el-button slot="reference" plain size="mini" style="margin-left: 8px">查看进度</el-button> -->
+          </el-popover>
+          <el-button type="primary" style="margin-left: 8px;" size="mini" @click="addshow =true" v-if="Status <= 0">提交审核</el-button>
+          <router-link :to="'/oilsupplier/annualaudit/basicindex'">
+            <el-button type="primary" size="mini" style="margin-left: 8px;">返回</el-button>
+          </router-link>
+        </span>
+
+      </div>
+
+      <!-- <el-steps :active="Step" simple align-center finish-status="success">
+        <el-step title="填写信息"></el-step>
+        <el-step title="提交审批"></el-step>
+        <el-step title="审批完成"></el-step>
+        <el-step title="供方交费"></el-step>
+        <el-step title="完成"></el-step>
+      </el-steps> -->
+
+      <el-tabs tab-position="top" style="margin-top: 20px" v-model="activeName" size="mini">
+        <el-tab-pane label="企业信息">
+          <el-card class="box-card">
+            <div slot="header" class="clearfix">
+              <span>供方基本信息表</span>
+              <span style="float: right;">
+                <el-button type="primary" size="mini" @click="saveEntity" v-if="Status <= 0">保存基本信息
+                </el-button>
+              </span>
+            </div>
+            <basis-info ref="BasisInfo" :formData.sync="formData" :dictData.sync="dictData" :authUser="authUser"
+              :disabled="savebtn" :canUpdateSupplier="canUpdateSupplier" :appendStatus = "true" @selectcompany="changeFormData" @inputcompany="inputCompany">
+            </basis-info>
+          </el-card>
+        </el-tab-pane>
+
+        <el-tab-pane label="企业情况">
+          <el-card class="box-card">
+            <div slot="header" class="clearfix">
+              <span>企业人员结构情况</span>
+              <span style="float: right;">
+              <el-button type="primary" size="mini" @click="updateNumberEntity()" v-if="Status <= 0">
+                  保存人员结构情况</el-button>
+              </span>
+            </div>
+
+            <el-form label-width="220px" ref="EntityFormNumber" :model="formDataCert" :disabled="savebtn">
+              <el-row>
+                <el-col :span="8">
+                  <el-form-item label="企业员工总数">
+                    <el-input-number v-model="formDataCert.WorkerTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="合同化用工数量">
+                    <el-input-number v-model="formDataCert.ContractNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="大学及以上学历人员数量">
+                    <el-input-number v-model="formDataCert.UniversityNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="技术、管理人员数量">
+                    <el-input-number v-model="formDataCert.TechnicalNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="高级及以上职称人员数量">
+                    <el-input-number v-model="formDataCert.AboveProfNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="中级职称人员数量">
+                    <el-input-number v-model="formDataCert.MiddleProfNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="具有国家注册执业资格人员数量">
+                    <el-input-number v-model="formDataCert.NationalRegNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="具有国家注册执业资格证书总数">
+                    <el-input-number v-model="formDataCert.NationalCertTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="设计人员总数">
+                    <el-input-number v-model="formDataCert.DesignerTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="技术工人总数">
+                    <el-input-number v-model="formDataCert.SkillerTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>企业主要装备情况</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="equipmentdialog" v-if="Status <= 0">添加</el-button>
+            </div>
+            <equipment-list ref="equipmentList" :canadd="add_flat" :data="equipmentList" :SupplierCertId="certId"
+              :SupplierTypeCode="classId" height="360px" style="margin-top: 20px"></equipment-list>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>近三年主要工程业绩</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="performancedialog" v-if="Status <= 0">添加</el-button>
+            </div>
+            <performance-list ref="performanceList" :canadd="add_flat" :data="performanceList" :SupplierCertId="certId" :disabled="true"
+              :SupplierTypeCode="classId" height="360px" style="margin-top: 20px"></performance-list>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>专利及专有技术</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="patentdialog" v-if="Status <= 0">添加</el-button>
+            </div>
+            <patent-list ref="patentList" :data="patentList" :canadd="add_flat" :SupplierCertId="certId" :SupplierTypeCode="classId"
+              height="360px" style="margin-top: 20px">
+            </patent-list>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>近三年省部级及以上获奖项目</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="winningdialog" v-if="Status <= 0">添加</el-button>
+            </div>
+            <winning-list ref="winningList" :data="winningList" :canadd="add_flat" :SupplierCertId="certId" :SupplierTypeCode="classId"
+              height="360px" style="margin-top: 20px">
+            </winning-list>
+          </el-card>
+        </el-tab-pane>
+
+        <el-tab-pane label="准入范围" :disabled="!certId">
+          <business-list ref="businessList" :data.sync="businessList" :canadd="false" height="360px"
+            style="margin-top: 20px"></business-list>
+        </el-tab-pane>
+
+        <el-tab-pane label="企业资质" :disabled="!certId">
+          <subfile-list ref="subfileList" :data.sync="subfileList" :canadd="false" height="360px" style="margin-top: 20px"></subfile-list>
+        </el-tab-pane>
+
+        <el-tab-pane label="提交审批">
+          <el-card class="box-card" style="height: 800px">
+            <div slot="header" class="clearfix">
+              <span>审批流程</span>
+              <!-- <span style="float: right;">
+                <el-button type="primary" size="mini" :disabled="formDataCert.Status > 0" :loading="applyLoading"
+                  @click="AuditEntity">提交审批
+                </el-button>
+              </span> -->
+            </div>
+            <wf-history ref="WfHistory" :entryinfo="entrydetail"></wf-history>
+          </el-card>
+        </el-tab-pane>
+      </el-tabs>
+    </el-card>
+    <el-dialog title="提交申请" :visible.sync="addshow" width="520px">
+      <el-form label-width="90px" :model="entityForm" :rules="rules" ref="EntityFormref">
+        <el-row>
+          <el-col :span="24">
+            <!-- <el-form-item label="审批人" prop="auditer" required>
+              <el-select ref="selectAuditer" v-model="entityForm.auditer" placeholder="请选择" style="width: 100%"
+                filterable allow-create default-first-option>
+                <el-option v-for="item in auditerOption" :key="item.id" :label="item.realname" :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item> -->
+            <el-form-item label="初审人员">
+              <el-input ref="selectAuditer" readonly v-model="auditerName" placeholder="请选择初审人">
+                <el-button slot="append" icon="el-icon-search" @click="chooseAuditorShow"></el-button>
+              </el-input>
+            </el-form-item>
+            <el-form-item label="复审人员">
+              <el-select ref="selectAuditer" v-model="fushenauditer" placeholder="请选择复审人" style="width: 100%" filterable
+                allow-create default-first-option>
+                <el-option v-for="item in secauditerOptions" :key="item.Id" :label="item.Realname" :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="专业处室">
+              <el-cascader :options="orgtreelist" :props="orgtreeprops" :show-all-levels="false" filterable
+                style="width: 100%" v-model="majorDept" placeholder="请选择专业处室" @change="orgtreeChange">
+              </el-cascader>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="说明">
+              <el-input v-model="entityForm.Remark" type="textarea" placeholder="请输入说明内容">
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span style="float: right;margin-top:-10px;">
+        <el-button size="small" @click="addshow = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="addAnnualAudit()">确 定</el-button>
+      </span>
+      <br>
+    </el-dialog>
+    <choose-auditor ref="chooseAuditor" @close="setAuditer" @hideChooseAuditer="chooseAuditorVisible=false"
+      :visible="chooseAuditorVisible"></choose-auditor>
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/oilsupplier/supplier'
+  import annualapi from '@/api/oilsupplier/annualaudit'
+import apiCert from '@/api/oilsupplier/suppliercert'
+  import SupplierFileTable from '@/pages/oilsupplier/supplierfile/table.vue'
+  import WfHistory from '@/components/workflow/wfmultihistory.vue'
+  import SupplierCertEdit from '@/components/oilsupplier/suppliercertedit.vue'
+
+  import EquipmentList from '@/components/oilsupplier/equipmentlist'
+  import PerformanceList from '@/components/oilsupplier/performancelist'
+  import PatentList from '@/components/oilsupplier/patentlist'
+  import WinningList from '@/components/oilsupplier/winninglist'
+  import BusinessList from '@/components/oilsupplier/businesslist'
+  import BasisInfo from '@/components/oilsupplier/basisinfo'
+  import AuditbusList from '@/components/oilsupplier/auditbuslist'
+  import ChooseAuditor from '@/components/oilsupplier/chooseauditor'
+  import SubfileList from '@/components/oilsupplier/subfilelist'
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    components: {
+      SupplierFileTable,
+      SupplierCertEdit,
+      SubfileList, // 选择企业资质
+      EquipmentList, // 企业主要装备情况
+      PerformanceList, // 近三年主要工程业绩列表
+      PatentList, // 专利及专有技术列表
+      WinningList, // 近三年省部级及以上获奖项目列表
+      BusinessList, // 选择准入范围
+      AuditbusList, // 待审核业务
+      BasisInfo,
+      WfHistory,
+      ChooseAuditor
+    },
+    name: 'oiltechnologyserviceEdit',
+
+    data () {
+      return {
+        savebtn: true,
+        visbtn: '1',
+        fushenauditer: '', // 复审人员
+        majorDept: [100000000, 100000128, 100000151],
+        userOptions: [],
+        secauditerOptions: [],
+        audithistoryshow: false,
+        chooseAuditorVisible: false,
+        activeName: '0',
+        orgtreelist: [],
+        formannData: {},
+        orgtreeprops: {
+          value: 'id',
+          label: 'name',
+          children: 'children'
+        },
+        auditform: {
+          FirstAuditName: '',
+          SecondAudit: '',
+          ThirdAudit: '',
+          AnnualId: ''
+        },
+        Step: '',
+        subfileList: [], // 资质
+        auditbusList: [], // 待审核业务
+        organizeOption: [], // 审批部门
+        auditerOption: [],
+        addshow: false,
+        canUpdateSupplier: true,
+        dictData: null,
+        add_flat: true,
+        applyLoading: false,
+        equipmentList: [], // 企业主要装备情况
+        performanceList: [], // 近三年主要工程业绩
+        patentList: [], // 专利及专有技术
+        winningList: [], // 近三年省部级及以上获奖项目
+        businessList: [], // 准入业务
+        serviceId: '',
+        certId: '',
+        auditer: '',
+        auditerName: '',
+        classId: '',
+        WorkflowId: '',
+        entityForm: {
+          SupplierId: '',
+          SupplierTypeName: '',
+          Remark: ''
+        },
+        formData: {
+          Id: '',
+          SupplierName: '',
+          OilCertificateNo: '',
+          Grade: '',
+          MgrUnit: '',
+          OperType: '',
+          Country: '',
+          MaunAgent: '',
+          ConstructTeam: '',
+          CommercialNo: '',
+          OrganCode: '',
+          CountryTaxNo: '',
+          LocalTaxNo: '',
+          Address: '',
+          Province: '',
+          City: '',
+          Street: '',
+          HouseNo: '',
+          ZipCode: '',
+          LinkAddress: '',
+          LinkProvince: '',
+          LinkCity: '',
+          LinkStreet: '',
+          LinkHouseNo: '',
+          LinkZipCode: '',
+          QualitySystemCert: '',
+          ProductQualityCert: '',
+          MaunLicense: '',
+          QualifCert: '',
+          QualifCertLevel: '',
+          SafetyLicense: '',
+          TechServiceLic: '',
+          TJInNotify: '',
+          SpecIndustryCert: '',
+          LegalPerson: '',
+          CategoryCode: '',
+          CategoryName: '',
+          RegCapital: '',
+          Currency: '',
+          ContactName: '',
+          CompanyType: '',
+          SetupTime: null,
+          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,
+          // Remark: '',
+          // IsDelete: '',
+          // CreateOn: '',
+          // CreateUserId: '',
+          // CreateBy: '',
+          // ModifiedOn: '',
+          // ModifiedUserId: '',
+          // ModifiedBy: '',
+          CertId: 0,
+          SupplierTypeCode: '',
+          SupplierTypeName: '',
+          Step: 0,
+          HseTraining: '0',
+          AuditIndex: 0,
+          PACNumber: ''
+        },
+
+        formDataCert: {
+          WorkerTotal: 0,
+          ContractNum: 0,
+          UniversityNum: 0,
+          TechnicalNum: 0,
+          AboveProfNum: 0,
+          MiddleProfNum: 0,
+          NationalRegNum: 0,
+          NationalCertTotal: 0,
+          DesignerTotal: 0,
+          SkillerTotal: 0,
+          Status: 0,
+          WorkflowId: ''
+        },
+        entrydetail: {
+          process: 'oil_audit_apply',
+          business: '',
+          instance: '',
+          Status: ''
+        },
+        Status: '',
+        annualId: '',
+        rules: {
+          auditer: [{
+            required: true,
+            message: '请选择审批人',
+            trigger: 'blur'
+          }]
+        }
+      }
+    },
+    created () {
+      this.serviceId = this.$route.params.opera
+    if (this.$route.query.certid) {
+        this.certId = this.$route.query.certid + ''
+      }
+      this.Status = this.$route.query.Status + ''
+      this.Step = parseInt(this.$route.query.Step)
+      this.annualId = this.$route.query.annualId
+      this.getstatus(this.annualId)
+      this.WorkflowId = this.$route.query.WorkflowId + ''
+      this.getDictOptions()
+      this.formData.Id = this.serviceId
+      this.initDatas()
+      if (this.Status <= 1) {
+        this.savebtn = false
+        this.canUpdateSupplier = true
+      }
+      if (this.Status > 0) {
+        this.add_flat = false
+      }
+      this.orgtreeChange(this.majorDept)
+    },
+    methods: {
+      getstatus (annid) {
+        annualapi.getEntity(annid, this.$axios)
+          .then(res => {
+            this.formannData = res.data
+          console.log('--forann-', this.formannData)
+            this.Status = this.formannData.Status
+            this.entrydetail.business = this.formannData.Id
+            this.entrydetail.instance = this.formannData.WorkflowId
+            this.entrydetail.Status = this.formannData.Status
+          })
+          .catch(err => {
+            console.error(err)
+        })
+    },
+      inputCompany (val) {
+        if (!this.certId) {
+          api.getEntityByName(val, this.$axios).then(res => {
+            if (res.data && res.data.Id) {
+              this.SetFormData(res.data)
+            }
+          }).catch(err => {
+            console.error(err)
+          })
+        }
+      },
+      changeFormData (fdata) {
+        if (!this.certId) {
+          this.SetFormData(fdata)
+        }
+      },
+      // nextTab() {
+      //   let activeIdx = parseInt(this.activeName)
+      //   if (activeIdx < 4) {
+      //     this.activeName = (activeIdx + 1) + ''
+      //   } else {
+      //     this.activeName = '1'
+      //   }
+      // },
+      SetFormData (fdata) {
+        this.formData.Id = fdata.Id
+        this.formData.SupplierName = fdata.SupplierName
+        this.formData.OilCertificateNo = fdata.OilCertificateNo
+        this.formData.Grade = fdata.Grade
+        this.formData.MgrUnit = fdata.MgrUnit
+        this.formData.OperType = fdata.OperType
+        this.formData.Country = fdata.Country
+        this.formData.MaunAgent = fdata.MaunAgent
+        this.formData.ConstructTeam = fdata.ConstructTeam
+        this.formData.CommercialNo = fdata.CommercialNo
+        this.formData.OrganCode = fdata.OrganCode
+        this.formData.CountryTaxNo = fdata.CountryTaxNo
+        this.formData.LocalTaxNo = fdata.LocalTaxNo
+        this.formData.Address = fdata.Address
+        this.formData.Province = fdata.Province
+        this.formData.City = fdata.City
+        this.formData.Street = fdata.Street
+        this.formData.HouseNo = fdata.HouseNo
+        this.formData.ZipCode = fdata.ZipCode
+        this.formData.LinkAddress = fdata.LinkAddress
+        this.formData.LinkProvince = fdata.LinkProvince
+        this.formData.LinkCity = fdata.LinkCity
+        this.formData.LinkStreet = fdata.LinkStreet
+        this.formData.LinkHouseNo = fdata.LinkHouseNo
+        this.formData.LinkZipCode = fdata.LinkZipCode
+        this.formData.LegalPerson = fdata.LegalPerson
+        this.formData.CategoryCode = fdata.CategoryCode
+        this.formData.CategoryName = fdata.CategoryName
+        this.formData.RegCapital = fdata.RegCapital
+        this.formData.Currency = fdata.Currency
+        this.formData.ContactName = fdata.ContactName
+        this.formData.CompanyType = fdata.CompanyType
+        this.formData.SetupTime = fdata.SetupTime
+        this.formData.DepositBank = fdata.DepositBank
+        this.formData.BankAccount = fdata.BankAccount
+        this.formData.EMail = fdata.EMail
+        this.formData.BankCreditRating = fdata.BankCreditRating
+        this.formData.Mobile = fdata.Mobile
+        this.formData.Telphone = fdata.Telphone
+        this.formData.Fax = fdata.Fax
+        this.formData.CompanyTel = fdata.CompanyTel
+        this.formData.QQ = fdata.QQ
+        this.formData.CompanyUrl = fdata.CompanyUrl
+        this.formData.HseTraining = fdata.HseTraining
+        this.formData.SpecTypeCode = fdata.SpecTypeCode
+
+        this.$refs['BasisInfo'].CityAry = []
+        this.$refs['BasisInfo'].CityAry.push(this.formData.Province)
+        this.$refs['BasisInfo'].CityAry.push(this.formData.City)
+        this.$refs['BasisInfo'].CityAry.push(this.formData.Street)
+        this.$refs['BasisInfo'].LinkCityAry = []
+        this.$refs['BasisInfo'].LinkCityAry.push(this.formData.LinkProvince)
+        this.$refs['BasisInfo'].LinkCityAry.push(this.formData.LinkCity)
+        this.$refs['BasisInfo'].LinkCityAry.push(this.formData.LinkStreet)
+        this.$refs['BasisInfo'].UnitRelationAry = []
+        if (this.formData.SpecTypeCode.length > 0) {
+          this.$refs['BasisInfo'].UnitRelationAry = this.formData.SpecTypeCode.split(',')
+        }
+      },
+      getbuslist () {
+        this.$refs['subfileList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+      },
+      setAuditer (val, name) {
+        this.auditer = val
+        this.auditerName = name
+        this.chooseAuditorVisible = false
+      },
+      equipmentdialog () {
+        this.$refs['equipmentList'].showDialog()
+      },
+      performancedialog () {
+        this.$refs['performanceList'].showDialog()
+      },
+      patentdialog () {
+        this.$refs['patentList'].showDialog()
+      },
+      winningdialog () {
+        this.$refs['winningList'].showDialog()
+      },
+      initDatas () {
+        if (this.formData.Id) {
+          api.getEntityAndCert(this.certId, this.$axios).then(res => {
+            this.formData = res.data
+            this.formDataCert.WorkerTotal = this.formData.WorkerTotal
+            this.formDataCert.ContractNum = this.formData.ContractNum
+            this.formDataCert.UniversityNum = this.formData.UniversityNum
+            this.formDataCert.TechnicalNum = this.formData.TechnicalNum
+            this.formDataCert.AboveProfNum = this.formData.AboveProfNum
+            this.formDataCert.MiddleProfNum = this.formData.MiddleProfNum
+            this.formDataCert.NationalRegNum = this.formData.NationalRegNum
+            this.formDataCert.NationalCertTotal = this.formData.NationalCertTotal
+            this.formDataCert.DesignerTotal = this.formData.DesignerTotal
+            this.formDataCert.SkillerTotal = this.formData.SkillerTotal
+            this.formDataCert.Status = this.formData.Status
+            this.formDataCert.WorkflowId = this.formData.WorkflowId
+            this.$refs['BasisInfo'].CityAry = []
+            this.$refs['BasisInfo'].CityAry.push(this.formData.Province)
+            this.$refs['BasisInfo'].CityAry.push(this.formData.City)
+            this.$refs['BasisInfo'].CityAry.push(this.formData.Street)
+            this.$refs['BasisInfo'].LinkCityAry = []
+            this.$refs['BasisInfo'].LinkCityAry.push(this.formData.LinkProvince)
+            this.$refs['BasisInfo'].LinkCityAry.push(this.formData.LinkCity)
+            this.$refs['BasisInfo'].LinkCityAry.push(this.formData.LinkStreet)
+            this.$refs['BasisInfo'].UnitRelationAry = []
+            if (this.formData.SpecTypeCode.length > 0) {
+              this.$refs['BasisInfo'].UnitRelationAry = this.formData.SpecTypeCode.split(',')
+            }
+            this.$refs['equipmentList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['performanceList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['patentList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['winningList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['businessList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['subfileList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+          }).catch(err => {
+            console.error(err)
+          })
+      }
+      },
+
+      orgtreeChange (val) {
+        this.userOptions = []
+        let deptid = val[val.length - 1]
+        let auditstepcode = 'PROF_RECE'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.userOptions = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      auditOrgChang (val) {
+        let auditstepcode = 'SECOND_TRIAL';
+        api
+          .getAuditerByFirst(val, auditstepcode, this.$axios)
+          .then(res => {
+            this.secauditerOptions = res.data.item
+          })
+          .catch(err => {
+            console.error(err)
+        })
+    },
+
+      chooseAuditorShow () {
+        this.$refs['chooseAuditor'].getorgtreelist(this.formData.SupplierTypeCode)
+        this.chooseAuditorVisible = true
+      },
+      setAuditer (val, name) {
+        this.auditer = val
+        this.auditerName = name
+        this.chooseAuditorVisible = false
+        this.auditOrgChang(this.auditer)
+      },
+
+      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.UnitRelationOptions = res.data.items['UnitRelation']
+          this.getCityList(res.data.items['GaodeMapChinaAreas'])
+          this.CompanyTypeOptions = res.data.items['CompanyType'] */
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      getorgtreelist () {
+        let _this = this
+        let params = {
+          IsInnerOrganize: 1
+        }
+        _this.$axios.get('organizes/orgalllist', {
+          params
+        })
+          .then(res => {
+            _this.orgtreelist = window.toolfun_gettreejson(res.data.items, 'Id', 'Parentid', 'Id,Fullname')
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
+
+      // getDictOptions() {
+      //   api.getDictList(this.$axios).then(res => {
+      //     this.dictData = res.data.items
+      //     /*this.UnitRelationOptions = res.data.items['UnitRelation']
+      //     this.getCityList(res.data.items['GaodeMapChinaAreas'])
+      //     this.CompanyTypeOptions = res.data.items['CompanyType']*/
+      //   }).catch(err => {
+      //     console.error(err)
+      //   })
+      // },
+
+      // 保存信息
+      saveEntity () {
+        let valid1 = false
+        let valid2 = false
+
+        this.$refs['BasisInfo'].$refs['EntityForm'].validate((valid) => {
+          valid1 = valid
+        })
+
+        this.$refs['BasisInfo'].$refs['EntityFormCert'].validate(vvalid => {
+          valid2 = vvalid
+        })
+
+        if (valid1 && valid2) {
+          if (!this.formData.SetupTime) {
+            this.formData.SetupTime = null
+          } else {
+            this.formData.SetupTime = new Date(this.formData.SetupTime)
+          }
+          this.formData.RegCapital = parseFloat(this.formData.RegCapital)
+          this.formData.HseTraining = this.formData.HseTraining + ''
+          this.updateEntity()
+          return true
+        } else {
+          return false
+        }
+      },
+
+      CheckCompanyBase () {
+        if (!this.formData.Id) {
+          this.$message({
+            type: 'error',
+            message: '无法保存,请先填写企业基本信息'
+          })
+          return false
+        }
+        if (!this.certId) {
+          this.$message({
+            type: 'error',
+            message: '准入类别不清晰,无法保存!'
+          })
+          return false
+        }
+        return true
+      },
+
+      updateEntity () {
+        annualapi.supupdateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            // 更新子表
+            this.updateNumberEntity()
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      // 企业人员结构情况
+      updateNumberEntity () {
+        this.$refs['EntityFormNumber'].validate((valid) => {
+          if (valid) {
+            if (!this.CheckCompanyBase()) {
+              return false
+            }
+            this.formDataCert.InStyle = this.formData.InStyle
+            api.updateNumberEntity(this.formData.Id + '_' + this.certId, this.formDataCert, 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)
+            })
+          } else {
+            return false
+        }
+        })
+      },
+
+      addAnnualAudit () {
+        this.$refs['EntityFormref'].validate((valid) => {
+          if (valid) {
+            if (this.auditer === '') {
+              this.$message({
+                type: 'warning',
+                message: '请选择审批人!'
+              })
+              return
+            }
+            if (this.fushenauditer === '') {
+              this.$message({
+                type: 'warning',
+                message: '请选择复审人!'
+              })
+              return
+            }
+            if (this.majorDept.length === 0) {
+              this.$message({
+                type: 'warning',
+                message: '请选择专业处室!'
+              })
+              return
+            }
+            if (this.userOptions == null || this.userOptions.length === 0) {
+              this.$message({
+                type: 'warning',
+                message: '该专业科室未配置接收人!'
+              })
+              return
+            }
+            this.entityForm.SupplierId = parseInt(this.certId)
+            this.entityForm.SupplierTypeName = this.formData.SupplierTypeCode
+            this.auditform.FirstAuditName = this.auditer
+            this.auditform.SecondAudit = this.fushenauditer
+            this.auditform.ThirdAudit = this.majorDept[this.majorDept.length - 1]
+            this.auditform.AnnualId = this.annualId
+            annualapi.commitauditEntity(this.entityForm, this.auditform, this.$axios).then(res => {
+              if (res.data.code === 0) {
+                // 保存成功后,初始化数据,变成修改
+                this.entityForm.Id = res.data.item
+              this.getstatus(this.annualId)
+                // this.initDatas();
+                this.addshow = false
+                this.$message({
+                  type: 'success',
+                  message: res.data.message
+                })
+
+            } else {
+                this.$message({
+                  type: 'warning',
+                  message: res.data.message
+                })
+            }
+            }).catch(err => {
+              console.error(err)
+            })
+        }
+        })
+      },
+
+      // 审批历史
+      auhistory () {
+        this.audithistoryshow = true
+      },
+
+      AuditEntity () {
+        this.applyLoading = true
+        apiCert.auditEntity(this.certId, 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
+            })
+        }
+          this.applyLoading = false
+        }).catch(err => {
+          console.error(err)
+        })
+    },
+
+      nexStepCB () {
+        this.Step += 1
+      },
+      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>

+ 925 - 0
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/_opera/operation.vue

@@ -0,0 +1,925 @@
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilsupplier/annualaudit' }">年审基本信息表</el-breadcrumb-item>
+      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-card class="box-card">
+      <div slot="header" class="clearfix">
+        <span>年审基本信息表</span>
+        <span style="float: right;">
+          <!-- <el-button type="primary" size="mini" style="margin-left: 8px" @click="auhistory">审批历史</el-button> -->
+          <!-- <el-button plain icon="el-icon-right" size="mini" style="margin-right: 5px" @click="nextTab">下一步</el-button> -->
+          <el-popover>
+            <el-steps :active="Step" direction="vertical" align-center finish-status="success">
+              <el-step title="填写信息"></el-step>
+              <el-step title="提交审批"></el-step>
+              <el-step title="审批完成"></el-step>
+              <el-step title="供方交费"></el-step>
+              <el-step title="完成"></el-step>
+            </el-steps>
+            <!-- <el-button slot="reference" plain size="mini" style="margin-left: 8px">查看进度</el-button> -->
+          </el-popover>
+          <el-button type="primary" style="margin-left: 8px;" size="mini" @click="addshow =true" v-if="Status <= 0">
+            提交审核</el-button>
+          <router-link :to="'/oilsupplier/annualaudit/techindex'">
+            <el-button type="primary" size="mini" style="margin-left: 8px;">返回</el-button>
+          </router-link>
+        </span>
+
+      </div>
+
+      <!-- <el-steps :active="Step" simple align-center finish-status="success">
+        <el-step title="填写信息"></el-step>
+        <el-step title="提交审批"></el-step>
+        <el-step title="审批完成"></el-step>
+        <el-step title="供方交费"></el-step>
+        <el-step title="完成"></el-step>
+      </el-steps> -->
+
+      <el-tabs tab-position="top" style="margin-top: 20px" v-model="activeName" size="mini">
+        <el-tab-pane label="企业信息">
+          <el-card class="box-card">
+            <div slot="header" class="clearfix">
+              <span>供方基本信息表</span>
+              <span style="float: right;">
+                <el-button type="primary" size="mini" @click="saveEntity" v-if="Status <= 0">保存基本信息
+                </el-button>
+              </span>
+            </div>
+            <tech-info ref="TechInfo" :formData.sync="formData" :dictData.sync="dictData" :authUser="authUser"
+              :disabled="savebtn" :canUpdateSupplier="canUpdateSupplier" :appendStatus = "true" @selectcompany="changeFormData"
+              @inputcompany="inputCompany">
+            </tech-info>
+          </el-card>
+        </el-tab-pane>
+
+        <el-tab-pane label="企业情况">
+          <el-card class="box-card">
+            <div slot="header" class="clearfix">
+              <span>企业人员结构情况</span>
+              <span style="float: right;">
+                <el-button type="primary" size="mini" @click="updateNumberEntity()" v-if="Status <= 0">
+                  保存人员结构情况</el-button>
+              </span>
+            </div>
+
+            <el-form label-width="220px" ref="EntityFormNumber" :model="formDataCert" :disabled="savebtn">
+              <el-row>
+                <el-col :span="8">
+                  <el-form-item label="企业员工总数">
+                    <el-input-number v-model="formDataCert.WorkerTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="合同化用工数量">
+                    <el-input-number v-model="formDataCert.ContractNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="大学及以上学历人员数量">
+                    <el-input-number v-model="formDataCert.UniversityNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="技术、管理人员数量">
+                    <el-input-number v-model="formDataCert.TechnicalNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="高级及以上职称人员数量">
+                    <el-input-number v-model="formDataCert.AboveProfNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="中级职称人员数量">
+                    <el-input-number v-model="formDataCert.MiddleProfNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="具有国家注册执业资格人员数量">
+                    <el-input-number v-model="formDataCert.NationalRegNum" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="具有国家注册执业资格证书总数">
+                    <el-input-number v-model="formDataCert.NationalCertTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="设计人员总数">
+                    <el-input-number v-model="formDataCert.DesignerTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+
+                <el-col :span="8">
+                  <el-form-item label="技术工人总数">
+                    <el-input-number v-model="formDataCert.SkillerTotal" controls-position="right" :min="0"
+                      style="width: 100%"></el-input-number>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>企业主要设备</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="equipmentdialog" v-if="Status <= 0">添加
+              </el-button>
+            </div>
+            <equipment-list ref="equipmentList" :data="equipmentList" :SupplierCertId="certId"
+              :SupplierTypeCode="classId" :canadd="add_flat" height="360px" style="margin-top: 20px"></equipment-list>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>近三年主要业绩</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="performancedialog" v-if="Status <= 0">
+                添加</el-button>
+            </div>
+            <performance-list ref="performanceList" :data="performanceList" :SupplierCertId="certId" :disabled="true"
+              :SupplierTypeCode="classId" :canadd="add_flat" height="360px" style="margin-top: 20px"></performance-list>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>专利及专有技术</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="patentdialog" v-if="Status <= 0">添加
+              </el-button>
+            </div>
+            <patent-list ref="patentList" :canadd="add_flat" :data="patentList" :SupplierCertId="certId"
+              :SupplierTypeCode="classId" height="360px" style="margin-top: 20px">
+            </patent-list>
+          </el-card>
+
+          <el-card class="box-card" style="margin-top: 10px;">
+            <div slot="header" class="clearfix">
+              <span>近三年省部级及以上获奖项目</span>
+              <el-button style="float: right; padding: 3px 0" type="text" @click="winningdialog" v-if="Status <= 0">添加
+              </el-button>
+            </div>
+            <winning-list ref="winningList" :canadd="add_flat" :data="winningList" :SupplierCertId="certId"
+              :SupplierTypeCode="classId" height="360px" style="margin-top: 20px">
+            </winning-list>
+          </el-card>
+        </el-tab-pane>
+
+        <el-tab-pane label="准入范围" :disabled="!certId">
+          <business-list ref="businessList" :data.sync="businessList" :canadd="false" height="360px"
+            style="margin-top: 20px"></business-list>
+        </el-tab-pane>
+
+        <el-tab-pane label="企业资质" :disabled="!certId">
+          <subfile-list ref="subfileList" :data.sync="subfileList" :canadd="false" height="360px"
+            style="margin-top: 20px"></subfile-list>
+        </el-tab-pane>
+
+        <el-tab-pane label="提交审批">
+          <el-card class="box-card" style="height: 800px">
+            <div slot="header" class="clearfix">
+              <span>审批流程</span>
+              <!-- <span style="float: right;">
+                <el-button type="primary" size="mini" :disabled="formDataCert.Status > 0" :loading="applyLoading"
+                  @click="AuditEntity">提交审批
+                </el-button>
+              </span> -->
+            </div>
+            <wf-history ref="WfHistory" :entryinfo="entrydetail"></wf-history>
+          </el-card>
+        </el-tab-pane>
+      </el-tabs>
+    </el-card>
+    <el-dialog title="提交审批" :visible.sync="addshow" width="520px">
+      <el-form label-width="90px" :model="entityForm" :rules="rules" ref="EntityFormref">
+        <el-row>
+          <el-col :span="24">
+            <!-- <el-form-item label="审批人">
+              <el-input ref="selectAuditer" readonly v-model="auditerName" placeholder="请选择审批人">
+                <el-button slot="append" icon="el-icon-search" @click="chooseAuditorShow"></el-button>
+              </el-input>
+            </el-form-item> -->
+            <el-form-item label="初审人员">
+              <el-input ref="selectAuditer" readonly v-model="auditerName" placeholder="请选择初审人">
+                <el-button slot="append" icon="el-icon-search" @click="chooseAuditorShow"></el-button>
+              </el-input>
+            </el-form-item>
+            <el-form-item label="复审人员">
+              <el-select ref="selectAuditer" v-model="fushenauditer" placeholder="请选择复审人" style="width: 100%" filterable
+                allow-create default-first-option>
+                <el-option v-for="item in secauditerOptions" :key="item.Id" :label="item.Realname" :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="专业处室">
+              <el-cascader :options="orgtreelist" :props="orgtreeprops" :show-all-levels="false" filterable
+                style="width: 100%" v-model="majorDept" placeholder="请选择专业处室" @change="orgtreeChange">
+              </el-cascader>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="说明">
+              <el-input v-model="entityForm.Remark" type="textarea" placeholder="请输入说明内容">
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span style="float: right;margin-top:-10px;">
+        <el-button size="small" @click="addshow = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="addAnnualAudit()">确 定</el-button>
+      </span>
+      <br>
+    </el-dialog>
+    <choose-auditor ref="chooseAuditor" @close="setAuditer" @hideChooseAuditer="chooseAuditorVisible=false"
+      :visible="chooseAuditorVisible"></choose-auditor>
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import api from '@/api/oilsupplier/supplier'
+  import annualapi from '@/api/oilsupplier/annualaudit'
+import apiCert from '@/api/oilsupplier/suppliercert'
+  import SupplierFileTable from '@/pages/oilsupplier/supplierfile/table.vue'
+  import SupplierCertEdit from '@/components/oilsupplier/suppliercertedit.vue'
+  import WfHistory from '@/components/workflow/wfmultihistory.vue'
+
+  import EquipmentList from '@/components/oilsupplier/equipmentlist'
+  import PerformanceList from '@/components/oilsupplier/performancelist'
+  import PatentList from '@/components/oilsupplier/patentlist'
+  import WinningList from '@/components/oilsupplier/winninglist'
+  import BusinessList from '@/components/oilsupplier/businesslist'
+  import TechInfo from '@/components/oilsupplier/techinfo'
+  import AuditbusList from '@/components/oilsupplier/auditbuslist'
+  import ChooseAuditor from '@/components/oilsupplier/chooseauditor'
+  import SubfileList from '@/components/oilsupplier/subfilelist'
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    components: {
+      SupplierFileTable,
+      WfHistory,
+      SupplierCertEdit,
+      SubfileList, // 选择企业资质
+      EquipmentList, // 企业主要设备
+      PerformanceList, // 近三年主要业绩列表
+      PatentList, // 专利及专有技术列表
+      WinningList, // 近三年省部级及以上获奖项目列表
+      BusinessList, // 选择准入范围
+      AuditbusList, // 待审核业务
+      TechInfo,
+      ChooseAuditor
+    },
+    name: 'oiltechnologyserviceEdit',
+
+    data () {
+      return {
+        savebtn: true,
+        visbtn: '1',
+        fushenauditer: '', // 复审人员
+        userOptions: [],
+        majorDept: [],
+        secauditerOptions: [],
+        audithistoryshow: false,
+        chooseAuditorVisible: false,
+        activeName: '0',
+        orgtreelist: [],
+        auditform: {
+          FirstAuditName: '',
+          SecondAudit: '',
+          ThirdAudit: '',
+          AnnualId: ''
+        },
+        orgtreeprops: {
+          value: 'id',
+          label: 'name',
+          children: 'children'
+        },
+        Step: '',
+        subfileList: [], // 资质
+        auditbusList: [], // 待审核业务
+        organizeOption: [], // 审批部门
+        addshow: false,
+        canUpdateSupplier: true,
+        dictData: null,
+        add_flat: true,
+        applyLoading: false,
+        equipmentList: [], // 企业主要设备
+        performanceList: [], // 近三年主要业绩
+        patentList: [], // 专利及专有技术
+        winningList: [], // 近三年省部级及以上获奖项目
+        businessList: [], // 准入业务
+        serviceId: '',
+        certId: '',
+        auditer: '',
+        auditerName: '',
+        classId: '',
+        WorkflowId: '',
+        entityForm: {
+          SupplierId: '',
+          SupplierTypeName: '',
+          Remark: ''
+        },
+        formannData: {},
+        formData: {
+          Id: '',
+          SupplierName: '',
+          OilCertificateNo: '',
+          Grade: '',
+          MgrUnit: '',
+          OperType: '',
+          Country: '',
+          MaunAgent: '',
+          ConstructTeam: '',
+          CommercialNo: '',
+          OrganCode: '',
+          CountryTaxNo: '',
+          LocalTaxNo: '',
+          Address: '',
+          Province: '',
+          City: '',
+          Street: '',
+          HouseNo: '',
+          ZipCode: '',
+          LinkAddress: '',
+          LinkProvince: '',
+          LinkCity: '',
+          LinkStreet: '',
+          LinkHouseNo: '',
+          LinkZipCode: '',
+          QualitySystemCert: '',
+          ProductQualityCert: '',
+          MaunLicense: '',
+          QualifCert: '',
+          QualifCertLevel: '',
+          SafetyLicense: '',
+          TechServiceLic: '',
+          TJInNotify: '',
+          SpecIndustryCert: '',
+          LegalPerson: '',
+          CategoryCode: '',
+          CategoryName: '',
+          RegCapital: '',
+          Currency: '',
+          ContactName: '',
+          CompanyType: '',
+          SetupTime: null,
+          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,
+          // Remark: '',
+          // IsDelete: '',
+          // CreateOn: '',
+          // CreateUserId: '',
+          // CreateBy: '',
+          // ModifiedOn: '',
+          // ModifiedUserId: '',
+          // ModifiedBy: '',
+          CertId: 0,
+          SupplierTypeCode: '',
+          SupplierTypeName: '',
+          Step: 0,
+          HseTraining: '0',
+          AuditIndex: 0,
+          PACNumber: ''
+        },
+
+        formDataCert: {
+          WorkerTotal: 0,
+          ContractNum: 0,
+          UniversityNum: 0,
+          TechnicalNum: 0,
+          AboveProfNum: 0,
+          MiddleProfNum: 0,
+          NationalRegNum: 0,
+          NationalCertTotal: 0,
+          DesignerTotal: 0,
+          SkillerTotal: 0,
+          Status: 0,
+          WorkflowId: ''
+        },
+        entrydetail: {
+          process: 'oil_audit_apply',
+          business: '',
+          instance: '',
+          Status: ''
+        },
+        Status: '',
+        annualId: '',
+        rules: {
+          auditer: [{
+            required: true,
+            message: '请选择审批人',
+            trigger: 'blur'
+          }]
+        }
+      }
+    },
+    created () {
+      this.serviceId = this.$route.params.opera
+    if (this.$route.query.certid) {
+        this.certId = this.$route.query.certid + ''
+      }
+      this.annualId = this.$route.query.annualId
+      this.getstatus(this.annualId)
+      this.Status = this.$route.query.Status + ''
+      this.Step = parseInt(this.$route.query.Step)
+      this.WorkflowId = this.$route.query.WorkflowId + ''
+      this.getDictOptions()
+      this.formData.Id = this.serviceId
+      this.initDatas()
+      if (this.Status <= 0) {
+        this.savebtn = false
+        this.canUpdateSupplier = true
+      }
+      if (this.Status > 0) {
+        this.add_flat = false
+      }
+      this.orgtreeChange(this.majorDept)
+    },
+    methods: {
+      getstatus (annid) {
+        annualapi.getEntity(annid, this.$axios)
+          .then(res => {
+            this.formannData = res.data
+          this.Status = this.formannData.Status
+            this.entrydetail.business = this.formannData.Id
+            this.entrydetail.instance = this.formannData.WorkflowId
+            this.entrydetail.Status = this.formannData.Status
+          })
+          .catch(err => {
+            console.error(err)
+        })
+    },
+      inputCompany (val) {
+        if (!this.certId) {
+          api.getEntityByName(val, this.$axios).then(res => {
+            if (res.data && res.data.Id) {
+              this.SetFormData(res.data)
+            }
+          }).catch(err => {
+            console.error(err)
+          })
+        }
+      },
+      changeFormData (fdata) {
+        if (!this.certId) {
+          this.SetFormData(fdata)
+        }
+      },
+      // nextTab() {
+      //   let activeIdx = parseInt(this.activeName)
+      //   if (activeIdx < 4) {
+      //     this.activeName = (activeIdx + 1) + ''
+      //   } else {
+      //     this.activeName = '1'
+      //   }
+      // },
+      SetFormData (fdata) {
+        this.formData.Id = fdata.Id
+        this.formData.SupplierName = fdata.SupplierName
+        this.formData.OilCertificateNo = fdata.OilCertificateNo
+        this.formData.Grade = fdata.Grade
+        this.formData.MgrUnit = fdata.MgrUnit
+        this.formData.OperType = fdata.OperType
+        this.formData.Country = fdata.Country
+        this.formData.MaunAgent = fdata.MaunAgent
+        this.formData.ConstructTeam = fdata.ConstructTeam
+        this.formData.CommercialNo = fdata.CommercialNo
+        this.formData.OrganCode = fdata.OrganCode
+        this.formData.CountryTaxNo = fdata.CountryTaxNo
+        this.formData.LocalTaxNo = fdata.LocalTaxNo
+        this.formData.Address = fdata.Address
+        this.formData.Province = fdata.Province
+        this.formData.City = fdata.City
+        this.formData.Street = fdata.Street
+        this.formData.HouseNo = fdata.HouseNo
+        this.formData.ZipCode = fdata.ZipCode
+        this.formData.LinkAddress = fdata.LinkAddress
+        this.formData.LinkProvince = fdata.LinkProvince
+        this.formData.LinkCity = fdata.LinkCity
+        this.formData.LinkStreet = fdata.LinkStreet
+        this.formData.LinkHouseNo = fdata.LinkHouseNo
+        this.formData.LinkZipCode = fdata.LinkZipCode
+        this.formData.LegalPerson = fdata.LegalPerson
+        this.formData.CategoryCode = fdata.CategoryCode
+        this.formData.CategoryName = fdata.CategoryName
+        this.formData.RegCapital = fdata.RegCapital
+        this.formData.Currency = fdata.Currency
+        this.formData.ContactName = fdata.ContactName
+        this.formData.CompanyType = fdata.CompanyType
+        this.formData.SetupTime = fdata.SetupTime
+        this.formData.DepositBank = fdata.DepositBank
+        this.formData.BankAccount = fdata.BankAccount
+        this.formData.EMail = fdata.EMail
+        this.formData.BankCreditRating = fdata.BankCreditRating
+        this.formData.Mobile = fdata.Mobile
+        this.formData.Telphone = fdata.Telphone
+        this.formData.Fax = fdata.Fax
+        this.formData.CompanyTel = fdata.CompanyTel
+        this.formData.QQ = fdata.QQ
+        this.formData.CompanyUrl = fdata.CompanyUrl
+        this.formData.HseTraining = fdata.HseTraining
+        this.formData.SpecTypeCode = fdata.SpecTypeCode
+
+        this.$refs['TechInfo'].CityAry = []
+        this.$refs['TechInfo'].CityAry.push(this.formData.Province)
+        this.$refs['TechInfo'].CityAry.push(this.formData.City)
+        this.$refs['TechInfo'].CityAry.push(this.formData.Street)
+        this.$refs['TechInfo'].LinkCityAry = []
+        this.$refs['TechInfo'].LinkCityAry.push(this.formData.LinkProvince)
+        this.$refs['TechInfo'].LinkCityAry.push(this.formData.LinkCity)
+        this.$refs['TechInfo'].LinkCityAry.push(this.formData.LinkStreet)
+        this.$refs['TechInfo'].UnitRelationAry = []
+        if (this.formData.SpecTypeCode.length > 0) {
+          this.$refs['TechInfo'].UnitRelationAry = this.formData.SpecTypeCode.split(',')
+        }
+      },
+      getbuslist () {
+        this.$refs['subfileList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+      },
+      setAuditer (val, name) {
+        this.auditer = val
+        this.auditerName = name
+        this.chooseAuditorVisible = false
+      },
+      equipmentdialog () {
+        this.$refs['equipmentList'].showDialog()
+      },
+      performancedialog () {
+        this.$refs['performanceList'].showDialog()
+      },
+      patentdialog () {
+        this.$refs['patentList'].showDialog()
+      },
+      winningdialog () {
+        this.$refs['winningList'].showDialog()
+      },
+      initDatas () {
+        if (this.formData.Id) {
+          api.getEntityAndCert(this.certId, this.$axios).then(res => {
+            this.formData = res.data
+            this.formDataCert.WorkerTotal = this.formData.WorkerTotal
+            this.formDataCert.ContractNum = this.formData.ContractNum
+            this.formDataCert.UniversityNum = this.formData.UniversityNum
+            this.formDataCert.TechnicalNum = this.formData.TechnicalNum
+            this.formDataCert.AboveProfNum = this.formData.AboveProfNum
+            this.formDataCert.MiddleProfNum = this.formData.MiddleProfNum
+            this.formDataCert.NationalRegNum = this.formData.NationalRegNum
+            this.formDataCert.NationalCertTotal = this.formData.NationalCertTotal
+            this.formDataCert.DesignerTotal = this.formData.DesignerTotal
+            this.formDataCert.SkillerTotal = this.formData.SkillerTotal
+            this.formDataCert.Status = this.formData.Status
+            this.formDataCert.WorkflowId = this.formData.WorkflowId
+            this.$refs['TechInfo'].CityAry = []
+            this.$refs['TechInfo'].CityAry.push(this.formData.Province)
+            this.$refs['TechInfo'].CityAry.push(this.formData.City)
+            this.$refs['TechInfo'].CityAry.push(this.formData.Street)
+            this.$refs['TechInfo'].LinkCityAry = []
+            this.$refs['TechInfo'].LinkCityAry.push(this.formData.LinkProvince)
+            this.$refs['TechInfo'].LinkCityAry.push(this.formData.LinkCity)
+            this.$refs['TechInfo'].LinkCityAry.push(this.formData.LinkStreet)
+            this.$refs['TechInfo'].UnitRelationAry = []
+            if (this.formData.SpecTypeCode.length > 0) {
+              this.$refs['TechInfo'].UnitRelationAry = this.formData.SpecTypeCode.split(',')
+            }
+            this.$refs['equipmentList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['performanceList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['patentList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['winningList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['businessList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            this.$refs['subfileList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
+            if (this.certId && this.WorkflowId) {
+              this.$refs['WfHistory'].getHistoryTask() /* 刷新工作流*/
+            }
+          }).catch(err => {
+            console.error(err)
+          })
+      }
+      },
+
+      orgtreeChange (val) {
+        this.userOptions = []
+        let deptid = val[val.length - 1]
+        let auditstepcode = 'PROF_RECE'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.userOptions = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      auditOrgChang (val) {
+        let auditstepcode = 'SECOND_TRIAL';
+        api
+          .getAuditerByFirst(val, auditstepcode, this.$axios)
+          .then(res => {
+            this.secauditerOptions = res.data.item
+          })
+          .catch(err => {
+            console.error(err)
+        })
+    },
+
+      chooseAuditorShow () {
+        this.$refs['chooseAuditor'].getorgtreelist(this.formData.SupplierTypeCode)
+        this.chooseAuditorVisible = true
+      },
+      setAuditer (val, name) {
+        this.auditer = val
+        this.auditerName = name
+        this.chooseAuditorVisible = false
+        this.auditOrgChang(this.auditer)
+      },
+
+      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.UnitRelationOptions = res.data.items['UnitRelation']
+          this.getCityList(res.data.items['GaodeMapChinaAreas'])
+          this.CompanyTypeOptions = res.data.items['CompanyType'] */
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      getorgtreelist () {
+        let _this = this
+        let params = {
+          IsInnerOrganize: 1
+        }
+        _this.$axios.get('organizes/orgalllist', {
+          params
+        })
+          .then(res => {
+            _this.orgtreelist = window.toolfun_gettreejson(res.data.items, 'Id', 'Parentid', 'Id,Fullname')
+          })
+          .catch(err => {
+            console.error(err)
+          })
+      },
+
+      // 保存信息
+      saveEntity () {
+        let valid1 = false
+        let valid2 = false
+
+        this.$refs['TechInfo'].$refs['EntityForm'].validate((valid) => {
+          valid1 = valid
+        })
+
+        this.$refs['TechInfo'].$refs['EntityFormCert'].validate(vvalid => {
+          valid2 = vvalid
+        })
+
+        if (valid1 && valid2) {
+          if (!this.formData.SetupTime) {
+            this.formData.SetupTime = null
+          } else {
+            this.formData.SetupTime = new Date(this.formData.SetupTime)
+          }
+          this.formData.RegCapital = parseFloat(this.formData.RegCapital)
+          this.formData.HseTraining = this.formData.HseTraining + ''
+          this.updateEntity()
+          return true
+        } else {
+          return false
+        }
+      },
+
+      updateEntity () {
+        annualapi.supupdateEntity(this.formData.Id, this.formData, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            // 更新子表
+            this.updateNumberEntity()
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+
+      // 企业人员结构情况
+      updateNumberEntity () {
+        this.$refs['EntityFormNumber'].validate((valid) => {
+          if (valid) {
+            if (!this.CheckCompanyBase()) {
+              return false
+            }
+            this.formDataCert.InStyle = this.formData.InStyle
+            api.updateNumberEntity(this.formData.Id + '_' + this.certId, this.formDataCert, 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)
+            })
+          } else {
+            return false
+        }
+        })
+      },
+
+      CheckCompanyBase () {
+        if (!this.formData.Id) {
+          this.$message({
+            type: 'error',
+            message: '无法保存,请先填写企业基本信息'
+          })
+          return false
+        }
+        if (!this.certId) {
+          this.$message({
+            type: 'error',
+            message: '准入类别不清晰,无法保存!'
+          })
+          return false
+        }
+        return true
+      },
+
+      addAnnualAudit () {
+        this.$refs['EntityFormref'].validate((valid) => {
+          if (valid) {
+            if (this.auditer === '') {
+              this.$message({
+                type: 'warning',
+                message: '请选择审批人!'
+              })
+              return
+            }
+            if (this.fushenauditer === '') {
+              this.$message({
+                type: 'warning',
+                message: '请选择复审人!'
+              })
+              return
+            }
+            if (this.majorDept.length === 0) {
+              this.$message({
+                type: 'warning',
+                message: '请选择专业处室!'
+              })
+              return
+            }
+            if (this.userOptions == null || this.userOptions.length === 0) {
+              this.$message({
+                type: 'warning',
+                message: '该专业科室未配置接收人!'
+              })
+              return
+            }
+            this.entityForm.SupplierId = parseInt(this.certId)
+            this.entityForm.SupplierTypeName = this.formData.SupplierTypeCode
+            this.auditform.FirstAuditName = this.auditer
+            this.auditform.SecondAudit = this.fushenauditer
+            this.auditform.ThirdAudit = this.majorDept[this.majorDept.length - 1]
+            this.auditform.AnnualId = this.annualId
+            annualapi.commitauditEntity(this.entityForm, this.auditform, this.$axios).then(res => {
+              if (res.data.code === 0) {
+                // 保存成功后,初始化数据,变成修改
+                this.entityForm.Id = res.data.item
+              //this.initDatas();
+              this.addshow = false
+                this.getstatus(this.annualId)
+                this.$message({
+                  type: 'success',
+                  message: res.data.message
+                })
+
+            } else {
+                this.$message({
+                  type: 'warning',
+                  message: res.data.message
+                })
+            }
+            }).catch(err => {
+              console.error(err)
+            })
+        }
+        })
+      },
+
+      // 审批历史
+      auhistory () {
+        this.audithistoryshow = true
+      },
+
+      AuditEntity () {
+        this.applyLoading = true
+        apiCert.auditEntity(this.certId, 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
+            })
+        }
+          this.applyLoading = false
+        }).catch(err => {
+          console.error(err)
+        })
+    },
+
+      nexStepCB () {
+        this.Step += 1
+      },
+      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>