Bladeren bron

年审修改

huahaiyan 6 jaren geleden
bovenliggende
commit
b1e7f1b8db

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

@@ -0,0 +1,823 @@
+<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 == '2'">提交审核</el-button>
+          <router-link :to="'/oilsupplier/annualaudit'">
+            <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">
+        <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 <= 1">保存基本信息
+                </el-button>
+              </span>
+            </div>
+            <basis-info ref="BasisInfo" :formData.sync="formData" :dictData.sync="dictData" :authUser="authUser"
+              :disabled="savebtn" :canUpdateSupplier="canUpdateSupplier" @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 <= 1">
+                  保存人员结构情况</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 <= 1">添加</el-button>
+            </div>
+            <equipment-list ref="equipmentList" :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 <= 1">添加</el-button>
+            </div>
+            <performance-list ref="performanceList" :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 <= 1">添加</el-button>
+            </div>
+            <patent-list ref="patentList" :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 <= 1">添加</el-button>
+            </div>
+            <winning-list ref="winningList" :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="add_flat" 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="add_flat" 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-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>
+    <el-dialog title="审批历史" :visible.sync="audithistoryshow" width="1200px">
+      <wf-back-history ref="WfBackHistory" :entryinfo="backhistroy"></wf-back-history>
+    </el-dialog>
+  </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/wfhistory.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 WfBackHistory from '@/components/workflow/wfbackhistory.vue'
+  import SubfileList from '@/components/oilsupplier/subfilelist'
+
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    components: {
+      SupplierFileTable,
+      WfHistory,
+      SupplierCertEdit,
+      SubfileList, // 选择企业资质
+      EquipmentList, //企业主要装备情况
+      PerformanceList, //近三年主要工程业绩列表
+      PatentList, //拥有专利、专有技术及工法列表
+      WinningList, //近三年获得省部级及以上主要技术、管理成果、获奖项目列表
+      BusinessList, //选择准入范围
+      AuditbusList, // 待审核业务
+      BasisInfo,
+      WfBackHistory,
+      ChooseAuditor
+    },
+    name: 'oiltechnologyserviceEdit',
+
+    data() {
+      return {
+        savebtn: true,
+        visbtn: '1',
+        audithistoryshow: false,
+        chooseAuditorVisible: false,
+        activeName: '0',
+        orgtreelist: [],
+        orgtreeprops: {
+          value: 'id',
+          label: 'Fullname',
+          children: 'children'
+        },
+        backhistroy: {
+          certId: '',
+          classId: '01',
+          workflowId: ''
+        },
+        Step: '',
+        subfileList: [], // 资质
+        auditbusList: [], // 待审核业务
+        organizeOption: [], // 审批部门
+        auditerOption: [],
+        addshow: false,
+        canUpdateSupplier: true,
+        dictData: null,
+        add_flat: false,
+        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,
+        },
+
+        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.WorkflowId = this.$route.query.WorkflowId + ''
+      this.getDictOptions()
+      this.getorgtreelist()
+      this.formData.Id = this.serviceId
+      this.initDatas()
+      this.backhistroy.certId = this.annualId
+      this.backhistroy.workflowId = this.WorkflowId
+      if (this.Status <=1 ) {
+        this.savebtn = false
+        this.canUpdateSupplier = true
+      }
+    },
+    methods: {
+      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
+      },
+      chooseAuditorShow() {
+        this.$refs['chooseAuditor'].getorgtreelist(this.formData.SupplierTypeCode)
+        this.chooseAuditorVisible = true
+      },
+      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)
+            this.entrydetail.business = this.certId
+            this.entrydetail.instance = this.WorkflowId
+            this.backhistroy.classId = this.formData.SupplierTypeCode
+            if (this.certId && this.WorkflowId) {
+              this.$refs['WfHistory'].getHistoryTask() /*刷新工作流*/
+            }
+
+          }).catch(err => {
+            console.error(err)
+          });
+        }
+      },
+
+      auditOrgChang(val) {
+        let deptid = val[val.length - 1]
+        this.auditerOption = []
+        this.auditer = ''
+        let auditstepcode = 'FIRST_TRIAL'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.auditerOption = res.data.item
+        }).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
+        }
+      },
+
+      updateEntity() {
+        console.log("formdata",this.formData)
+        api.updateEntity(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) {
+            this.entityForm.SupplierId = parseInt(this.certId)
+            this.entityForm.SupplierTypeName = this.formData.SupplierTypeCode
+            annualapi.commitauditEntity(this.entityForm, this.auditer, this.$axios).then(res => {
+              if (res.data.code === 0) {
+                //保存成功后,初始化数据,变成修改
+                this.entityForm.Id = res.data.item;
+                //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>

+ 843 - 0
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/_opera/goodsoperation.vue

@@ -0,0 +1,843 @@
+<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 == '2'">
+            提交审核</el-button>
+          <router-link :to="'/oilsupplier/annualaudit'">
+            <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">
+        <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 <= 1">保存基本信息
+                </el-button>
+              </span>
+            </div>
+            <goods-info ref="GoodsInfo" :formData.sync="formData" :dictData.sync="dictData" :authUser="authUser"
+              :disabled="savebtn" :canUpdateSupplier="canUpdateSupplier" @selectcompany="changeFormData"
+              @inputcompany="inputCompany"></goods-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 <= 1">
+                  保存人员结构情况</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 <= 1">添加
+              </el-button>
+            </div>
+            <equipment-list ref="equipmentList" :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 <= 1">
+                添加</el-button>
+            </div>
+            <performance-list ref="performanceList" :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 <= 1">添加
+              </el-button>
+            </div>
+            <patent-list ref="patentList" :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 <= 1">添加
+              </el-button>
+            </div>
+            <winning-list ref="winningList" :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="add_flat" height="360px"
+            style="margin-top: 20px"></business-list>
+        </el-tab-pane>
+
+        <el-tab-pane label="企业资质">
+          <auditbus-list ref="auditbusList" :data="auditbusList" :SupplierCertId="certId" :SupplierId="serviceId+''"
+            :SupplierTypeCode="classId" :Visiblebtn="'true'" height="360px" style="margin-top: 20px">
+          </auditbus-list>
+        </el-tab-pane> -->
+       <el-tab-pane label="准入范围" :disabled="!certId">
+          <business-list ref="businessList" :data.sync="businessList" :canadd="add_flat" 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="add_flat" 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-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>
+    <el-dialog title="审批历史" :visible.sync="audithistoryshow" width="1200px">
+      <wf-back-history ref="WfBackHistory" :entryinfo="backhistroy"></wf-back-history>
+    </el-dialog>
+  </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/wfhistory.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 GoodsList from "@/components/oilsupplier/goodslist";
+  import GoodsInfo from "@/components/oilsupplier/goodsinfo";
+  import AuditbusList from '@/components/oilsupplier/auditbuslist'
+  import ChooseAuditor from '@/components/oilsupplier/chooseauditor'
+  import WfBackHistory from '@/components/workflow/wfbackhistory.vue'
+  import SubfileList from '@/components/oilsupplier/subfilelist'
+
+
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    components: {
+      GoodsList,
+      SupplierFileTable,
+      WfHistory,
+      SupplierCertEdit,
+      SubfileList, // 选择企业资质
+      EquipmentList, //企业主要装备情况
+      PerformanceList, //近三年主要工程业绩列表
+      PatentList, //拥有专利、专有技术及工法列表
+      WinningList, //近三年获得省部级及以上主要技术、管理成果、获奖项目列表
+      BusinessList, //选择准入范围
+      AuditbusList, // 待审核业务
+      GoodsInfo,
+      WfBackHistory,
+      ChooseAuditor
+    },
+    name: 'oiltechnologyserviceEdit',
+
+    data() {
+      return {
+        savebtn: true,
+        visbtn: '1',
+        audithistoryshow: false,
+        chooseAuditorVisible: false,
+        activeName: '0',
+        orgtreelist: [],
+        orgtreeprops: {
+          value: 'id',
+          label: 'Fullname',
+          children: 'children'
+        },
+        backhistroy: {
+          certId: '',
+          classId: '01',
+          workflowId: ''
+        },
+        Step: '',
+        goodsList: [], // 准入业务
+        subfileList: [], // 资质
+        auditbusList: [], // 待审核业务
+        organizeOption: [], // 审批部门
+        auditerOption: [],
+        addshow: false,
+        canUpdateSupplier: true,
+        dictData: null,
+        add_flat: false,
+        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,
+        },
+
+        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.WorkflowId = this.$route.query.WorkflowId + ''
+      this.getDictOptions()
+      this.getorgtreelist()
+      this.formData.Id = this.serviceId
+      this.initDatas()
+      this.backhistroy.certId = this.annualId
+      this.backhistroy.workflowId = this.WorkflowId
+      if (this.Status <= 1) {
+        this.savebtn = false
+        this.canUpdateSupplier = true
+      }
+    },
+    methods: {
+      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["GoodsInfo"].CityAry = []
+        this.$refs["GoodsInfo"].CityAry.push(this.formData.Province)
+        this.$refs["GoodsInfo"].CityAry.push(this.formData.City)
+        this.$refs["GoodsInfo"].CityAry.push(this.formData.Street)
+        this.$refs["GoodsInfo"].LinkCityAry = []
+        this.$refs["GoodsInfo"].LinkCityAry.push(this.formData.LinkProvince)
+        this.$refs["GoodsInfo"].LinkCityAry.push(this.formData.LinkCity)
+        this.$refs["GoodsInfo"].LinkCityAry.push(this.formData.LinkStreet)
+        this.$refs["GoodsInfo"].UnitRelationAry = []
+        if (this.formData.SpecTypeCode.length > 0) {
+          this.$refs["GoodsInfo"].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
+      },
+      chooseAuditorShow() {
+        this.$refs['chooseAuditor'].getorgtreelist(this.formData.SupplierTypeCode)
+        this.chooseAuditorVisible = true
+      },
+      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
+            console.log("----",this.formData)
+            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["GoodsInfo"].CityAry = []
+            this.$refs["GoodsInfo"].CityAry.push(this.formData.Province)
+            this.$refs["GoodsInfo"].CityAry.push(this.formData.City)
+            this.$refs["GoodsInfo"].CityAry.push(this.formData.Street)
+            this.$refs["GoodsInfo"].LinkCityAry = []
+            this.$refs["GoodsInfo"].LinkCityAry.push(this.formData.LinkProvince)
+            this.$refs["GoodsInfo"].LinkCityAry.push(this.formData.LinkCity)
+            this.$refs["GoodsInfo"].LinkCityAry.push(this.formData.LinkStreet)
+            this.$refs["GoodsInfo"].UnitRelationAry = []
+            if (this.formData.SpecTypeCode.length > 0) {
+              this.$refs["GoodsInfo"].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)
+            console.log("-businessList---",this.businessList)
+            this.entrydetail.business = this.certId
+            this.entrydetail.instance = this.WorkflowId
+            this.backhistroy.classId = this.formData.SupplierTypeCode
+            if (this.certId && this.WorkflowId) {
+              this.$refs['WfHistory'].getHistoryTask() /*刷新工作流*/
+            }
+
+          }).catch(err => {
+            console.error(err)
+          });
+        }
+      },
+
+      auditOrgChang(val) {
+        let deptid = val[val.length - 1]
+        this.auditerOption = []
+        this.auditer = ''
+        let auditstepcode = 'FIRST_TRIAL'
+        api.getAuditerByDept(deptid, auditstepcode, this.$axios).then(res => {
+          this.auditerOption = res.data.item
+        }).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['GoodsInfo'].$refs['EntityForm'].validate((valid) => {
+          valid1 = valid
+        })
+
+        this.$refs["GoodsInfo"].$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() {
+        console.log("formdata", this.formData)
+        api.updateEntity(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) {
+            this.entityForm.SupplierId = parseInt(this.certId)
+            this.entityForm.SupplierTypeName = this.formData.SupplierTypeCode
+            annualapi.commitauditEntity(this.entityForm, this.auditer, this.$axios).then(res => {
+              if (res.data.code === 0) {
+                //保存成功后,初始化数据,变成修改
+                this.entityForm.Id = res.data.item;
+                //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>

+ 95 - 30
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/_opera/operation.vue

@@ -42,12 +42,13 @@
           <el-card class="box-card">
             <div slot="header" class="clearfix">
               <span>供方基本信息表</span>
-              <!-- <span style="float: right;">
-                <el-button type="primary" size="mini" @click="saveEntity">保存基本信息</el-button>
-              </span> -->
+              <span style="float: right;">
+                <el-button type="primary" size="mini" @click="saveEntity" v-if="Status <= 1">保存基本信息
+                </el-button>
+              </span>
             </div>
             <tech-info ref="TechInfo" :formData.sync="formData" :dictData.sync="dictData" :authUser="authUser"
-              :disabled="true" :canUpdateSupplier="canUpdateSupplier" @selectcompany="changeFormData"
+              :disabled="savebtn" :canUpdateSupplier="canUpdateSupplier" @selectcompany="changeFormData"
               @inputcompany="inputCompany">
             </tech-info>
           </el-card>
@@ -57,12 +58,13 @@
           <el-card class="box-card">
             <div slot="header" class="clearfix">
               <span>企业人员结构情况</span>
-              <!-- <span style="float: right;">
-                <el-button type="primary" size="mini" @click="updateNumberEntity">保存人员结构情况</el-button>
-              </span> -->
+              <span style="float: right;">
+              <el-button type="primary" size="mini" @click="updateNumberEntity()" v-if="Status <= 1">
+                  保存人员结构情况</el-button>
+              </span>
             </div>
 
-            <el-form label-width="220px" ref="EntityFormNumber" :model="formDataCert" :disabled="true">
+            <el-form label-width="220px" ref="EntityFormNumber" :model="formDataCert" :disabled="savebtn">
               <el-row>
                 <el-col :span="8">
                   <el-form-item label="企业员工总数">
@@ -140,7 +142,7 @@
           <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">添加</el-button> -->
+              <el-button style="float: right; padding: 3px 0" type="text" @click="equipmentdialog" v-if="Status <= 1">添加</el-button>
             </div>
             <equipment-list ref="equipmentList" :data="equipmentList" :SupplierCertId="certId"
               :SupplierTypeCode="classId" height="360px" style="margin-top: 20px"></equipment-list>
@@ -149,7 +151,7 @@
           <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">添加</el-button> -->
+              <el-button style="float: right; padding: 3px 0" type="text" @click="performancedialog" v-if="Status <= 1">添加</el-button>
             </div>
             <performance-list ref="performanceList" :data="performanceList" :SupplierCertId="certId" :disabled="true"
               :SupplierTypeCode="classId" height="360px" style="margin-top: 20px"></performance-list>
@@ -158,7 +160,7 @@
           <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">添加</el-button> -->
+              <el-button style="float: right; padding: 3px 0" type="text" @click="patentdialog" v-if="Status <= 1">添加</el-button>
             </div>
             <patent-list ref="patentList" :data="patentList" :SupplierCertId="certId" :SupplierTypeCode="classId"
               height="360px" style="margin-top: 20px">
@@ -168,7 +170,7 @@
           <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">添加</el-button> -->
+              <el-button style="float: right; padding: 3px 0" type="text" @click="winningdialog" v-if="Status <= 1">添加</el-button>
             </div>
             <winning-list ref="winningList" :data="winningList" :SupplierCertId="certId" :SupplierTypeCode="classId"
               height="360px" style="margin-top: 20px">
@@ -287,6 +289,7 @@
 
     data() {
       return {
+        savebtn: true,
         visbtn: '1',
         audithistoryshow: false,
         chooseAuditorVisible: false,
@@ -455,14 +458,10 @@
       this.initDatas()
       this.backhistroy.certId = this.annualId
       this.backhistroy.workflowId = this.WorkflowId
-      console.log("---this.backhistroy---", this.backhistroy)
-      // console.log(this.serviceId);
-      // if(this.serviceId != 'add' && this.serviceId>0) {
-      //   this.formData.Id = this.serviceId;
-      //   this.initDatas();
-      // } else {
-      //   this.formData.Id = 0;
-      // }
+      if (this.Status <=1 ) {
+        this.savebtn = false
+        this.canUpdateSupplier = true
+      }
     },
     methods: {
       inputCompany(val) {
@@ -490,7 +489,6 @@
       //   }
       // },
       SetFormData(fdata) {
-        this.isCanUpdateSupplier(fdata.Id)
         this.formData.Id = fdata.Id
         this.formData.SupplierName = fdata.SupplierName
         this.formData.OilCertificateNo = fdata.OilCertificateNo
@@ -550,14 +548,6 @@
           this.$refs["TechInfo"].UnitRelationAry = this.formData.SpecTypeCode.split(',')
         }
       },
-
-      isCanUpdateSupplier(supplierId) {
-        api.isCanUpdateSupplier(supplierId, this.$axios).then(res => {
-          this.canUpdateSupplier = (res.data.code === 0)
-        }).catch(err => {
-          console.error(err)
-        })
-      },
       getbuslist() {
         this.$refs['subfileList'].getvalue(this.formData.Id, this.formData.SupplierTypeCode, this.certId)
       },
@@ -583,7 +573,6 @@
         this.$refs["winningList"].showDialog()
       },
       initDatas() {
-        this.isCanUpdateSupplier(this.formData.Id)
         if (this.formData.Id) {
           api.getEntityAndCert(this.certId, this.$axios).then(res => {
             this.formData = res.data
@@ -669,6 +658,82 @@
         })
       },
 
+      // 保存信息
+      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() {
+        console.log("formdata",this.formData)
+        api.updateEntity(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) {

+ 1 - 1
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/index.vue

@@ -40,7 +40,7 @@
         <el-table-column label="操作" min-width="180" align="center" fixed="right">
           <template slot-scope="scope">
             <router-link
-              :to="'/oilsupplier/annualaudit/' + scope.row.SupplierId + '/operation?certid=' + scope.row.CerId +'&WorkflowId='+scope.row.WorkflowId+'&Status='+scope.row.Status+'&Step='+scope.row.Step+'&annualId='+scope.row.Id">
+              :to="'/oilsupplier/annualaudit/' + scope.row.SupplierId + '/' + (scope.row.SupplierTypeName === '01' ? 'goodsoperation' : (scope.row.SupplierTypeName === '02' ? 'bassicoperation' : 'operation'))+'?certid=' + scope.row.CerId +'&WorkflowId='+scope.row.WorkflowId+'&Status='+scope.row.Status+'&Step='+scope.row.Step+'&annualId='+scope.row.Id">
               <el-button type="primary" plain title="查看详情" size="mini">打开</el-button>
             </router-link>
             <el-dropdown @command="MoreCmdClick">