wente
2023-12-18 07e58d77abaf0e82ca7673e0e84c43fc5ea664a3
合同评审及登录页
2个文件已修改
390 ■■■■■ 已修改文件
web/src/views/modules/contractReview/ContractReview-AddOrUpdate.vue 366 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/pages/login.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/contractReview/ContractReview-AddOrUpdate.vue
@@ -1,23 +1,25 @@
<template>
  <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker" @confirm="formSubmit">
    <el-form ref="dataForm" style="padding-top: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm"
             label-width="120px" class="warehouseFormAuto">
             label-width="120px" class="contractFormAuto">
      <div>
        <el-form-item label-width="60px" label="编号:" style="width:100%;margin-bottom: -5px">
          <span>{{dataForm.contractReview.code || '编号自动生成'}}</span>
          <span>{{ dataForm.contractReview.code || '编号自动生成' }}</span>
        </el-form-item>
      </div>
      <div style="border: 1px solid rgba(0,0,0,.2);width: 99%">
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="warehouseContentWidth">
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="contractContentWidth">
          <el-form-item class="marginTopAndMarginBottom" label="客户名称" style="width: 49%">
            <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="请输入客户名称"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom" label="联系电话" style="width: 49%">
            <el-input v-model="dataForm.testAgencyInfo.labContactNum" placeholder="请输入联系电话"></el-input>
          </el-form-item>
          <zt-dict v-model="dataForm.contractReview.reviewType" :radio="true" dict="review_type"></zt-dict>
          <el-form-item label-width="60px" label="原委托单编号:" style="width:100%;margin-bottom: -5px">
            <span>{{dataForm.contractReview.orderCode}}</span>
          <el-form-item class="marginTopAndMarginBottom reviewLeft" style="width: 49%">
            <zt-dict v-model="dataForm.contractReview.reviewType" :radio="true" dict="review_type"></zt-dict>
          </el-form-item>
          <el-form-item label-width="160px" class="lastChild" label="原委托单编号:" style="width: 49%">
            <span>{{ dataForm.contractReview.orderCode }}</span>
          </el-form-item>
        </div>
        <div class="el-flexManageDialog el-border-bottom">
@@ -34,12 +36,12 @@
                    <span v-html="indexFormat(scope.$index)"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="item" width="200" label="配置项名称">
                <el-table-column prop="item" min-width="400" label="配置项名称">
                  <template v-slot="{ row }">
                    <el-input v-model="row.item" placeholder="评审项"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="result" label="密级" width="100" align="center">
                <el-table-column prop="result" label="密级" width="180" align="center">
                  <template v-slot="{ row }">
                    <zt-dict v-model="row.result" placeholder="评审结果" dict="tristate1"></zt-dict>
                  </template>
@@ -48,66 +50,66 @@
            </div>
          </div>
        </div>
      </div>
      <div class="el-flexManageDialog el-border-bottom">
        <div class="DFormWidth DAlign DHold">
          评审记录
        <div class="el-flexManageDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            评审记录
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" label-width="20px" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.reviewRecord"></el-input>
            </el-form-item>
          </div>
        </div>
        <div style="width: calc(100% - 120px)" class="el-border-left">
          <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%">
            <el-input type="textarea" :rows="2" placeholder="请输入内容"
                      v-model="dataForm.contractReview.reviewRecord"></el-input>
          </el-form-item>
        <div class="el-flexManageDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            客户的特殊要求
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.specialRequire"></el-input>
            </el-form-item>
          </div>
        </div>
      </div>
      <div class="el-flexManageDialog el-border-bottom">
        <div class="DFormWidth DAlign DHold">
          客户的特殊要求
        <div class="el-flexManageDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            分包
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.subcontract"></el-input>
            </el-form-item>
          </div>
        </div>
        <div style="width: calc(100% - 120px)" class="el-border-left">
          <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
            <el-input type="textarea" :rows="2" placeholder="请输入内容"
                      v-model="dataForm.contractReview.specialRequire"></el-input>
          </el-form-item>
        <div class="el-flexManageDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            评审结论
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.reviewConclusion"></el-input>
            </el-form-item>
            <el-form-item label="技术负责人:" style="width: 48%">
              <span>{{ dataForm.contractReview.technicalDirector }}</span>
            </el-form-item>
            <el-form-item label="日期:" style="width: 48%">
            {{ dataForm.contractReview.reviewDate | filterTime('YYYY年MM月DD日') }}
            </el-form-item>
          </div>
        </div>
      </div>
      <div class="el-flexManageDialog">
        <div class="DFormWidth DAlign DHold">
          分包
        </div>
        <div style="width: calc(100% - 120px)" class="el-border-left">
          <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
            <el-input type="textarea" :rows="2" placeholder="请输入内容"
                      v-model="dataForm.contractReview.subcontract"></el-input>
          </el-form-item>
        </div>
      </div>
      <div class="el-flexManageDialog">
        <div class="DFormWidth DAlign DHold">
          评审结论
        </div>
        <div style="width: calc(100% - 120px)" class="el-border-left">
          <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
            <el-input type="textarea" :rows="2" placeholder="请输入内容"
                      v-model="dataForm.contractReview.reviewConclusion"></el-input>
          </el-form-item>
          <el-form-item label="技术负责人:" style="width: 48%">
            <span>{{dataForm.contractReview.technicalDirector}}</span>
          </el-form-item>
          <el-form-item label="日期:" style="width: 48%">
            <span>{{dataForm.contractReview.reviewDate}}</span>
          </el-form-item>
        </div>
      </div>
      <div class="el-flexManageDialog">
        <div class="DFormWidth DAlign DHold">
          评审组成员
        </div>
        <div style="width: calc(100% - 120px)" class="el-border-left">
          <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
            <el-input type="textarea" :rows="2" placeholder="请输入内容"
                      v-model="dataForm.contractReview.reviewPanelMember"></el-input>
          </el-form-item>
        <div class="el-flexManageDialog">
          <div class="DFormWidth DAlign DHold">
            评审组成员
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.reviewPanelMember"></el-input>
            </el-form-item>
          </div>
        </div>
      </div>
      <add-or-update-check ref="addOrUpdate" @recall="setCheckId"/>
@@ -120,85 +122,173 @@
</template>
<script>
  import qs from "qs";
  import Cookies from "js-cookie";
import qs from "qs";
import Cookies from "js-cookie";
  export default {
    data() {
      return {
        dataForm: {
          id: '',
          contractReview: {
            code: '',
            orderCode: '',
            reviewType: '',
            reviewRecord: '',
            specialRequire: '',
            subcontract: '',
            reviewConclusion: '',
            technicalDirector: '',
            reviewDate: '',
            reviewPanelMember: '',
          },
          testAgencyInfo:{
            agencyName:'',
            labContactNum:''
          },
          reviewItemList:[]
        }
export default {
  data() {
    return {
      dataForm: {
        id: '',
        contractReview: {
          code: '',
          orderCode: '',
          reviewType: '',
          reviewRecord: '',
          specialRequire: '',
          subcontract: '',
          reviewConclusion: '',
          technicalDirector: '',
          reviewDate: '',
          reviewPanelMember: '',
        },
        testAgencyInfo: {
          agencyName: '',
          labContactNum: ''
        },
        reviewItemList: []
      }
    }
  },
  methods: {
    indexFormat(index) {
      return index += 1
    },
    methods: {
      indexFormat(index) {
        return index += 1
      },
      init(id, row) {
        if (id) {
          this.dataForm.id = id
        } else {
          this.dataForm.id = row.id
        }
        if (row.projectId) {
          this.dataForm.projectId = row.projectId
        }
        this.getInfo()
        console.log(this.dataForm.id, this.dataForm.projectId, 'params params')
      },
      // 获取信息
      async getInfo() {
        let params = {
          reviewId: this.dataForm.id,
          projectId: this.dataForm.projectId
        }
        let res = await this.$http.get(`/contractReview/ContractReview/getDto`, {params: params})
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
        console.log(this.dataForm, "getInfo this.dataForm")
      },
    init(id, row) {
      if (id) {
        this.dataForm.id = id
      } else {
        this.dataForm.id = row.id
      }
      if (row.projectId) {
        this.dataForm.projectId = row.projectId
      }
      this.getInfo()
      console.log(this.dataForm.id, this.dataForm.projectId, 'params params')
    },
    // 获取信息
    async getInfo() {
      let params = {
        reviewId: this.dataForm.id,
        projectId: this.dataForm.projectId
      }
      let res = await this.$http.get(`/contractReview/ContractReview/getDto`, {params: params})
      this.dataForm = {
        ...this.dataForm,
        ...res.data
      }
      console.log(this.dataForm, "getInfo this.dataForm")
    },
      setCheckId(checkId, row) {
        console.log(checkId, row, "setCheckId(checkId, row)")
        this.$set(row, 'checkId', checkId)
      },
      /*async print(){
        var params = qs.stringify({
          token: Cookies.get('token'),
          id:this.dataForm.id
        })
        let apiURL = `/contractReview/ContractReview/exportWarehouseOrder`
        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
      },*/
      // 表单提交
      async formSubmit(submitType) {
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/contractReview/ContractReview/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
        }
    setCheckId(checkId, row) {
      console.log(checkId, row, "setCheckId(checkId, row)")
      this.$set(row, 'checkId', checkId)
    },
    /*async print(){
      var params = qs.stringify({
        token: Cookies.get('token'),
        id:this.dataForm.id
      })
      let apiURL = `/contractReview/ContractReview/exportWarehouseOrder`
      window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
    },*/
    // 表单提交
    async formSubmit(submitType) {
      let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/contractReview/ContractReview/', this.dataForm)
      if (res.success) {
        await this.$tip.success()
        this.$refs.dialog.close()
        this.$emit('refreshDataList')
      }
    }
  }
}
</script>
<style>
.ManageFormAuto {
  width: 70%;
  margin: 0 auto;
}
.confirmDAuto {
  border: 1px solid;
}
.el-flexManageDialog {
  display: flex;
  align-items: center;
}
.DFormWidth {
  width: 120px;
}
.DAlign {
  text-align: center;
}
.DManageForm {
  /*border-left: 1px solid;*/
  width: 100%;
}
.DManageForm > .el-form-item > .el-form-item__content {
  width: calc(100% - 120px);
}
.el-form-item.el-CMTextarea > .el-form-item__content {
  width: 100%;
}
.el-form .el-form-item.el-wt-form-item-margin {
  margin-left: 120px;
}
.el-form-border {
  border-top: 1px solid;
  border-bottom: 1px solid;
}
.el-margin-top-bot {
  margin-top: 5px;
  margin-bottom: 5px;
}
.zt .el-table.el-software th {
  background: transparent;
}
.zt .el-table.el-software th > .cell {
  font-weight: 500;
}
.DHold {
  font-weight: 600;
}
.zt .el-table.el-software {
  font-size: 14px;
}
.contractContentWidth > .el-form-item > .el-form-item__content {
  width: calc(100% - 120px);
}
.contractContentWidth > .el-form-item.reviewLeft > .el-form-item__content {
  margin-left: 17%;
}
.contractContentWidth > .el-form-item.lastChild > .el-form-item__content {
  width: calc(100% - 160px);
}
.contractFormAuto .marginTopAndMarginBottom {
  margin-top: 10px !important;
  margin-bottom: 0 !important;
}
.contractFormAuto .marginTopAndMarginBottom2 {
  margin-top: -10px !important;
  margin-bottom: 0 !important;
}
</style>
web/src/views/pages/login.vue
@@ -1,6 +1,5 @@
<template>
  <div class="aui-wrapper aui-page__login aui-page__login__border">
    <h2 class="login__h2">{{ $t('brand.lg') }}</h2>
    <div class="aui-content__wrapper">
      <div class="clear"></div>
      <main class="aui-content">
@@ -9,6 +8,7 @@
<!--          <div class="login-header">-->
<!--            &lt;!&ndash;<h3 class="login-title">{{ $t('login.title') }}</h3>&ndash;&gt;-->
<!--          </div>-->
          <h2 class="login__h2">{{ $t('brand.lg') }}</h2>
          <div class="login-body">
<!--            <h3 class="login-title">{{ $t('login.title') }}</h3>-->
            <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="formSubmit()" status-icon>
@@ -250,29 +250,21 @@
<style>
  .login__h2 {
    margin: 0;
    width: 600px;
    position: absolute;
    left:50%;
    top:3%;
    transform: translateX(-50%);
    color: rgba(123, 224, 244, 1);
    font-size: 40px;
    left: -11%;
    top: -10%;
    letter-spacing: 35px;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 400;
    letter-spacing: 8px;
  }
  .clear {
    clear: both;
  }
  .login__h2::before,
  .login__h2::after {
    display: inline;
    margin: 5px;
    content: '/////';
    font-size: 25px;
    font-weight: bold;
    font-style: oblique;
  }
  .login-left-bg {
    position: absolute;