Explorar o código

点价确认单页面

zxz %!s(int64=3) %!d(string=hai) anos
pai
achega
65513b3f5f

+ 3 - 0
src/lang/zh.js

@@ -488,6 +488,9 @@
     salesContractAdd: '销售合同添加',
     purchaseContractAdd: '采购合同添加',
     purchaseContractEdit: '采购合同编辑',
+    priceConfirmationSheet: '点价确认单',
+    priceConfirmationSheetAdd:'创建点价确认单',
+    priceConfirmationSheetEdit:'编辑点价确认单',   
     //仓库管理
     warehouseManagementList: '仓库管理',
     warehouseManagementAdd: '仓库管理添加',

+ 48 - 2
src/views/contractManagement/component/routers/route.js

@@ -129,8 +129,54 @@ const contractManagementRouter = {
         // module: 'procurement.sparepart.applDetail'
       },
       hidden: true
-    }
-    
+    },
+    //点价确认单
+    {
+      path: 'priceConfirmationSheet',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/priceConfirmationSheet'),
+      name: 'priceConfirmationSheet',
+      meta: {
+        title: 'priceConfirmationSheet',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      }
+    },
+    //创建点价确认单
+    {
+      path: 'priceConfirmationSheetAdd',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/priceConfirmationSheetAdd'),
+      name: 'priceConfirmationSheetAdd',
+      meta: {
+        title: 'priceConfirmationSheetAdd',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
+    //编辑点价确认单
+    {
+      path: 'priceConfirmationSheetEdit',
+      component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/contractManagement/priceConfirmationSheetEdit'),
+      name: 'priceConfirmationSheetEdit',
+      meta: {
+        title: 'priceConfirmationSheetEdit',
+        shortcutEntrance: 'contractManagement',
+        module: 'contractManagement.salesContract',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+      },
+      hidden: true
+    },
   ],
 
 };

+ 616 - 0
src/views/contractManagement/priceConfirmationSheet.vue

@@ -0,0 +1,616 @@
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">点价确认单</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertion-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <div class="wenzi">
+      <h3>所属合同</h3>
+      <p>
+        &nbsp;&nbsp;采购合同(
+        <template>{{ this.deptBudgetList.contractNo }}</template>
+        )
+      </p>
+      <div class="tianjiaanniu">
+        <ws-button
+          type="primary"
+          @click="sheetAdd()"
+          v-hasPermission="
+            `contractManagement.salesContract.salesContractInfo.add`
+          "
+          ><img
+            width="13"
+            height="13"
+            style="
+              vertical-align: text-top;
+              position: relative;
+              top: 2px;
+              left: -4px;
+            "
+            src="../../../public/img/header-add.png"
+            alt=""
+          />添加</ws-button
+        >
+      </div>
+    </div>
+    <div class="dianjiadanbianhao">
+      <h3>点价单编号</h3>
+      <p>
+        <template>CG20210329-02{{ this.deptBudgetList.priceListNo }}</template>
+      </p>
+      <div class="fujian">
+        <template slot-scope="scope" >
+          <img
+            width="18"
+            height="20"
+            style="vertical-align: text-top; position: relative; top: -1px"
+            src="../../../public/img/fujian.png"
+            @click="fujian(scope.row)"
+            alt=""
+          />
+          <span v-if="(scope.row.enclosureTypeFlag = '0')"
+            >&nbsp;&nbsp;&nbsp;未上传</span
+          >
+          <span v-if="(scope.row.enclosureTypeFlag = '1')"
+            >&nbsp;&nbsp;&nbsp;已上传</span
+          >
+        </template>
+      </div>
+      <div class="caozuoanniu">
+        <el-button class="find" type="primary" @click="sheetEdit()"
+          >编辑</el-button
+        >
+        <el-button class="find" type="primary" @click="sheetDelete()"
+          >删除</el-button
+        >
+      </div>
+    </div>
+    <div class="center">
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <!--基本信息-->
+        <ws-info-table>
+          <ws-form-item
+            label="品种合约及方向"
+            span="1"
+            prop="varietyContractDirection"
+          >
+            <div class="unchanged">
+              {{ deptBudgetList.varietyContractDirection }}
+            </div>
+          </ws-form-item>
+          <ws-form-item label="买方联络人" span="1" prop="buyer">
+            <div class="unchanged">
+              {{ deptBudgetList.buyer }}
+            </div>
+          </ws-form-item>
+          <ws-form-item label="成交数量" span="1" prop="transactionsNumberHand">
+            <div class="unchanged">
+              {{
+                deptBudgetList.transactionsNumberHand
+              }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;手
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{
+                deptBudgetList.transactionsNumber
+              }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;吨
+            </div>
+          </ws-form-item>
+          <ws-form-item label="买方联络人电话" span="1" prop="buyerPhone">
+            <div class="unchanged">
+              {{ deptBudgetList.buyerPhone }}
+            </div>
+          </ws-form-item>
+          <ws-form-item
+            label="成交价格(元/吨)"
+            span="1"
+            prop="transactionPrice"
+          >
+            <div class="unchanged">
+              {{ deptBudgetList.transactionPrice }}
+            </div>
+          </ws-form-item>
+          <ws-form-item label="卖方联络人" span="1" prop="seller">
+            <div class="unchanged">
+              {{ deptBudgetList.seller }}
+            </div>
+          </ws-form-item>
+          <ws-form-item label="成交日期" span="1" prop="transactionDate">
+            <div class="unchanged">
+              {{ deptBudgetList.transactionDate }}
+            </div>
+          </ws-form-item>
+          <ws-form-item label="卖方联络人电话" span="1" prop="sellerPhone">
+            <div class="unchanged">
+              {{ deptBudgetList.sellerPhone }}
+            </div>
+          </ws-form-item>
+          <ws-form-item label="备注" span="1" prop="remarks">
+            <div class="unchanged">
+              {{ deptBudgetList.remarks }}
+            </div>
+          </ws-form-item>
+        </ws-info-table>
+      </ws-form>
+    </div>
+  </div>
+</template>
+<script>
+import { xiala, addxiala, editxiala, delxiala } from '@/model/contarct/index'
+import WsUpload from '@/components/WsUpload'
+import { EventBus } from 'base-core-lib'
+import { regionData,  } from 'element-china-area-data'
+
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+  },
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      options_: regionData,
+      selectedOptions: [],
+      selectedOptions1: [],
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      trainingMethods: {},
+      packtypeList: [],
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      contractNo: '',
+      mainReportAdd: {},
+      appendixIdsAdd: '',
+      size: 10,
+      unitList: [],
+      goodnameList: [],
+      gradeList: [],
+      ChapterTwoList: [],
+      addressUrls: [],
+      addressUrl: '',
+      deptBudgetList: {},
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      ruleDeptBudget: {
+        contractNo: [
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
+          {
+            min: 6,
+            max: 20,
+            message: '长度在 6 到 20 个字符',
+            trigger: 'blur',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+      fileList: [],
+    }
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+    },
+    returnsales() {
+      this.$router.push({ path: 'salesContract' })
+    },
+    //创建点价确认单
+    sheetAdd() {
+      this.$router.push({ path: 'priceConfirmationSheetAdd' })
+    },
+    // 编辑点价确认单
+    sheetEdit() {
+        this.$router.push({ path: 'priceConfirmationSheetEdit' })
+    },
+    // 删除点价确认单
+    sheetDelete(item, index) {
+    //   this.$confirm(`确认单删除后不可恢复,是否确定删除?`, '提示', {
+    //     confirmButtonText: '确定',
+    //     cancelButtonText: '取消',
+    //     type: 'warning',
+    //   })
+    //     .then(() => {
+    //       delDriver({ id: row.id })
+    //         .toPromise()
+    //         .then((response) => {
+    //           this.$notify.success({
+    //             title: '成功',
+    //             message: '删除成功',
+    //           })
+    //           this.getUnitList()
+    //           this.pleaseChoose = ''
+    //         })
+    //         .catch((response) => {
+    //           console.log(response)
+    //           EventBus.$emit('error', response.message)
+    //         })
+    //     })
+    //     .catch(() => {
+    //       return false
+    //     })
+    
+    //   if (Object.is(item.constKey, 1)) {
+    //     return
+    //   }
+    //   if (!item.constValue) {
+    //     this.unitList.splice(index, 1)
+    //     return
+    //   }
+    //   delxiala({ id: this.unitList[index].id })
+        
+    },
+    fujian(row) {
+      if (row.addressUrl === null || row.addressUrl === '') {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.addressUrl.split(',')
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.readonly {
+  position: relative;
+}
+.readonly:after {
+  content: '*';
+  color: #ff2727;
+  position: absolute;
+  right: 8px;
+  z-index: 10;
+  top: 21%;
+  font-size: 20px;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 16px 0px;
+}
+.caozuoanniu {
+  margin-left: 83%;
+  margin-top: -49px;
+  margin-bottom: 20px;
+}
+.fujian {
+  margin-left: 20px;
+}
+.wenzi {
+  width: 68%;
+  margin: 0 auto;
+  margin-top: 15px;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+  margin-left: 16px;
+}
+.dianjiadanbianhao {
+  width: 70%;
+  margin: 0 auto;
+  margin-top: 45px;
+}
+.dianjiadanbianhao h3 {
+  display: inline-block;
+  left: 10px;
+  font-size: inherit;
+  margin-bottom: 24px;
+}
+.dianjiadanbianhao p {
+  display: inline-block;
+  margin-left: 20px;
+}
+.center {
+  width: 70%;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 70%;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 148px;
+}
+/deep/.el-date-editor {
+  font-size: 13px;
+}
+/deep/.el-textarea {
+  width: 101%;
+  margin: 0px;
+}
+/deep/el-date-editor--date {
+  width: 200px;
+}
+.unchanged {
+  position: absolute;
+  left: 37px;
+  width: 102px;
+  height: 14px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #afb5cb;
+  line-height: 14px;
+}
+.tianjiaanniu {
+  margin-left: 92%;
+  margin-top: -43px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.addressUrls {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+}
+.addressUrls-item {
+  position: relative;
+  display: flex;
+}
+.icon-guanbi {
+  position: absolute;
+  right: 8px;
+}
+.addressUrl {
+  margin: 0px 10px;
+  border-radius: 3px;
+}
+//上传文件成功标识
+/deep/.el-upload-list__item-status-label {
+  position: absolute;
+  right: 22px;
+  top: -1px;
+  line-height: inherit;
+  display: none;
+}
+</style>

+ 800 - 0
src/views/contractManagement/priceConfirmationSheetAdd.vue

@@ -0,0 +1,800 @@
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">创建点价确认单</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertion-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <div class="wenzi">
+      <h3>所属合同</h3>
+      <p>
+        &nbsp;&nbsp;采购合同(
+        <template>{{ this.deptBudgetList.contractNo }}</template>
+        )
+      </p>
+    </div>
+    <div class="center">
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <!--基本信息-->
+
+        <ws-info-table>
+          <!--点价单编号-->
+          <ws-form-item
+            label="点价单编号"
+            span="1"
+            prop="priceListNo"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.priceListNo"
+              placeholder="请输入点价单编号"
+              maxlength="20"
+              size="small"
+              :rules="ruleDeptBudget"
+            />
+          </ws-form-item>
+
+          <!--点价单附件-->
+          <ws-form-item label="点价单附件" span="1" prop="priceListNo">
+            <el-upload
+              class="upload-demo"
+              action="https://www.zthymaoyi.com/upload/admin"
+              :on-success="
+                (res, file) => {
+                  uploadSuccessHandle(res)
+                }
+              "
+              multiple
+              :limit="3"
+              :file-list="fileList"
+            >
+              <el-button size="small" type="primary">附件</el-button>
+            </el-upload>
+            <div class="shangchuan">
+              <template>
+                <span v-if="deptBudgetList.enclosureTypeFlag == '0'"
+                  >未上传</span
+                >
+                <span v-if="deptBudgetList.enclosureTypeFlag == '1'"
+                  >已上传</span
+                >
+              </template>
+            </div>
+          </ws-form-item>
+
+          <!--品种合约及方向-->
+          <ws-form-item
+            label="品种合约及方向"
+            span="1"
+            prop="varietyContractDirection"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.varietyContractDirection"
+              placeholder="请输入品种合约及方向"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--买方联络人-->
+          <ws-form-item label="买方联络人" span="1" prop="buyer">
+            <ws-input
+              v-model="deptBudgetList.buyer"
+              placeholder="请输入买方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--成交数量-->
+          <ws-form-item
+            label="成交数量"
+            span="1"
+            prop="transactionsNumberHand"
+            class="readonly"
+          >
+            <ws-input
+              @input="transactionsNumberHandChange"
+              v-model="deptBudgetList.transactionsNumberHand"
+              placeholder="请输入"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            <ws-input
+              readonly="readonly"
+              v-model="deptBudgetList.transactionsNumber"
+              placeholder="自动计算"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;吨
+          </ws-form-item>
+
+          <!--买方联络人电话-->
+          <ws-form-item label="买方联络人电话" span="1" prop="buyerPhone">
+            <ws-input
+              v-model="deptBudgetList.buyerPhone"
+              placeholder="请输入买方联络人电话"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交价格(元/吨)-->
+          <ws-form-item label="成交价格(元/吨)" span="1" prop="transactionPrice">
+            <ws-input
+              v-model="deptBudgetList.transactionPrice"
+              placeholder="请输入成交价格"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--卖方联络人-->
+          <ws-form-item label="卖方联络人" span="1" prop="seller">
+            <ws-input
+              v-model="deptBudgetList.seller"
+              placeholder="请输入卖方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交日期-->
+          <ws-form-item label="成交日期" span="1" prop="transactionDate">
+            <ws-date-picker
+              v-model="deptBudgetList.transactionDate"
+              type="date"
+              placeholder="请选择成交日期"
+              value-format="yyyy-MM-dd"
+            />
+          </ws-form-item>
+
+          <!--卖方联络人电话-->
+          <ws-form-item label="卖方联络人电话" span="1" prop="sellerPhone">
+            <ws-input
+              v-model="deptBudgetList.sellerPhone"
+              placeholder="请输入卖方联络人电话"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--备注-->
+          <ws-form-item label="备注" span="1" prop="remarks">
+            <ws-input
+              v-model="deptBudgetList.remarks"
+              placeholder="请输入备注,不超过200字"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </ws-form>
+    </div>
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="submit(deptBudgetList)"
+        >提交</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+//  import { getVesselOne } from '@/model/procurement/basic'
+//  import { dayjs } from 'base-core-lib'
+import {
+  addList,
+  xiala,
+  addxiala,
+  editxiala,
+  delxiala,
+} from '@/model/contarct/index'
+import WsUpload from '@/components/WsUpload'
+import { regionData, CodeToText } from 'element-china-area-data'
+
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+  },
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      options_: regionData,
+      selectedOptions: [],
+      selectedOptions1: [],
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      trainingMethods: {},
+      packtypeList: [],
+      mainReportAdd: {},
+      appendixIdsAdd: '',
+      size: 10,
+
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      enclosureTypeFlag: '0',
+      unitList: [],
+      goodnameList: [],
+      gradeList: [],
+      ChapterTwoList: [],
+      addressUrls: [],
+      deptBudgetList: {
+        deliverType: '1',
+        finalTradingVolume: 0,
+        contractGoodsInfo: {
+          goodsName: '',
+        },
+        contractProcessInfo: {},
+        addressUrl: '',
+      },
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      ruleDeptBudget: {
+        contractNo: [
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
+          {
+            min: 6,
+            max: 20,
+            message: '长度在 6 到 20 个字符',
+            trigger: 'blur',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+      fileList: [],
+    }
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+    },
+    returnsales() {
+      this.$router.push({ path: 'priceConfirmationSheet' })
+    },
+
+    // 上传附件
+    uploadSuccessHandle(e) {
+      this.addressUrls.push(e.url)
+      this.deptBudgetList.addressUrl = this.addressUrls.toString
+    },
+    onChange(files) {
+      this.fileNum = files
+      this.$refs.upload.handleSaveBill().then((res) => {
+        console.log(files)
+      })
+    },
+    //计算成交数量(吨)
+    transactionsNumberHandChange(e) {
+        this.deptBudgetList.transactionsNumber = e * 10      
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+
+    submit() {
+      if (!this.deptBudgetList.priceListNo) {
+        this.$message({
+          message: '点价单编号不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.priceListNo.length < 1 ||
+        this.deptBudgetList.priceListNo.length > 20
+      ) {
+        this.$message({
+          message: '点价单编号输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.varietyContractDirection) {
+        this.$message({
+          message: '品种合约及方向不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.varietyContractDirection.length < 1 ||
+        this.deptBudgetList.varietyContractDirection.length > 20
+      ) {
+        this.$message({
+          message: '品种合约及方向输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyer) {
+        this.$message({
+          message: '买方联络人不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyer.length < 2 ||
+        this.deptBudgetList.buyer.length > 20
+      ) {
+        this.$message({
+          message: '买方联络人姓名输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyerPhone) {
+        this.$message({
+          message: '买方联络人电话不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '买方联络人电话输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.buyerPhone)) {
+        this.$message({
+          message: '卖方联络人电话输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.seller) {
+        this.$message({
+          message: '卖方联络人不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.seller.length < 2 ||
+        this.deptBudgetList.seller.length > 20
+      ) {
+        this.$message({
+          message: '卖方联络人姓名输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (!this.deptBudgetList.sellerPhone) {
+        this.$message({
+          message: '卖方联络人电话不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.sellerPhone)) {
+        this.$message({
+          message: '卖方联络人电话输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.sellerPhone.length < 7 ||
+        this.deptBudgetList.sellerPhone.length > 20
+      ) {
+        this.$message({
+          message: '卖方联络人电话输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionsNumberHand) {
+        this.$message({
+          message: '成交数量不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (
+        isNaN(this.deptBudgetList.transactionsNumberHand) ||
+        (String(this.deptBudgetList.transactionsNumberHand).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.transactionsNumberHand).length -
+            (String(this.deptBudgetList.transactionsNumberHand).indexOf('.') +
+              1) >
+            2) ||
+        this.deptBudgetList.transactionsNumberHand < 1 ||
+        this.deptBudgetList.transactionsNumberHand > 10000
+      ) {
+        this.$message({
+          message: '输入成交数量有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.transactionPrice < 0 ||
+        this.deptBudgetList.transactionPrice > 100000000 ||
+        (String(this.deptBudgetList.transactionPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.transactionPrice).length -
+            (String(this.deptBudgetList.transactionPrice).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '成交价格输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.transactionPrice) {
+        if (isNaN(this.deptBudgetList.transactionPrice)) {
+          this.$message({
+            message: '成交价格输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      if (!this.deptBudgetList.transactionPrice) {
+        this.$message({
+          message: '成交价格不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionDate) {
+        this.$message({
+          message: '成交日期不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.readonly {
+  position: relative;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.shangchuan {
+  margin-left: 22px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 16px 0px;
+}
+.wenzi {
+  width: 70%;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 70%;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 70%;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 130px;
+}
+//*号
+.unchangeable {
+  position: absolute;
+  width: 9px;
+  height: 22px;
+  font-size: 16px;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #ff2727;
+  line-height: 22px;
+  display: inline-block;
+  right: 14px;
+}
+/deep/.el-input,
+/deep/.el-date-editor {
+  font-size: 13px;
+}
+/deep/.el-textarea {
+  width: 101%;
+  margin: 0px;
+}
+/deep/el-date-editor--date {
+  width: 200px;
+}
+.unchanged {
+  position: absolute;
+  left: 37px;
+  width: 102px;
+  height: 14px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #afb5cb;
+  line-height: 14px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.addressUrls {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+}
+.addressUrls-item {
+  position: relative;
+  display: flex;
+}
+.icon-guanbi {
+  position: absolute;
+  right: 8px;
+}
+.addressUrl {
+  margin: 0px 10px;
+  border-radius: 3px;
+}
+//上传文件成功标识
+/deep/.el-upload-list__item-status-label {
+  position: absolute;
+  right: 22px;
+  top: -1px;
+  line-height: inherit;
+  display: none;
+}
+</style>

+ 800 - 0
src/views/contractManagement/priceConfirmationSheetEdit.vue

@@ -0,0 +1,800 @@
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="12">
+        <h2 class="bg-left title">编辑点价确认单</h2>
+      </el-col>
+      <el-col :span="12" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnsales()"
+          ><img
+            width="6"
+            height="10"
+            style="vertion-align: bottom; margin-right: 3px"
+            src="../../../public/img/lujing.png"
+            alt=""
+          />返回</el-button
+        >
+      </el-col>
+    </el-row>
+
+    <div class="wenzi">
+      <h3>所属合同</h3>
+      <p>
+        &nbsp;&nbsp;采购合同(
+        <template>{{ this.deptBudgetList.contractNo }}</template>
+        )
+      </p>
+    </div>
+    <div class="center">
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <!--基本信息-->
+
+        <ws-info-table>
+          <!--点价单编号-->
+          <ws-form-item
+            label="点价单编号"
+            span="1"
+            prop="priceListNo"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.priceListNo"
+              placeholder="请输入点价单编号"
+              maxlength="20"
+              size="small"
+              :rules="ruleDeptBudget"
+            />
+          </ws-form-item>
+
+          <!--点价单附件-->
+          <ws-form-item label="点价单附件" span="1" prop="priceListNo">
+            <el-upload
+              class="upload-demo"
+              action="https://www.zthymaoyi.com/upload/admin"
+              :on-success="
+                (res, file) => {
+                  uploadSuccessHandle(res)
+                }
+              "
+              multiple
+              :limit="3"
+              :file-list="fileList"
+            >
+              <el-button size="small" type="primary">附件</el-button>
+            </el-upload>
+            <div class="shangchuan">
+              <template>
+                <span v-if="deptBudgetList.enclosureTypeFlag == '0'"
+                  >未上传</span
+                >
+                <span v-if="deptBudgetList.enclosureTypeFlag == '1'"
+                  >已上传</span
+                >
+              </template>
+            </div>
+          </ws-form-item>
+
+          <!--品种合约及方向-->
+          <ws-form-item
+            label="品种合约及方向"
+            span="1"
+            prop="varietyContractDirection"
+            class="readonly"
+          >
+            <ws-input
+              v-model="deptBudgetList.varietyContractDirection"
+              placeholder="请输入品种合约及方向"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--买方联络人-->
+          <ws-form-item label="买方联络人" span="1" prop="buyer">
+            <ws-input
+              v-model="deptBudgetList.buyer"
+              placeholder="请输入买方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+          <!--成交数量-->
+          <ws-form-item
+            label="成交数量"
+            span="1"
+            prop="transactionsNumberHand"
+            class="readonly"
+          >
+            <ws-input
+              @input="transactionsNumberHandChange"
+              v-model="deptBudgetList.transactionsNumberHand"
+              placeholder="请输入"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;手&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;即&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            <ws-input
+              readonly="readonly"
+              v-model="deptBudgetList.transactionsNumber"
+              placeholder="自动计算"
+              maxlength="100"
+              size="small"
+            />&nbsp;&nbsp;&nbsp;吨
+          </ws-form-item>
+
+          <!--买方联络人电话-->
+          <ws-form-item label="买方联络人电话" span="1" prop="buyerPhone">
+            <ws-input
+              v-model="deptBudgetList.buyerPhone"
+              placeholder="请输入买方联络人电话"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交价格(元/吨)-->
+          <ws-form-item label="成交价格(元/吨)" span="1" prop="transactionPrice">
+            <ws-input
+              v-model="deptBudgetList.transactionPrice"
+              placeholder="请输入成交价格"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--卖方联络人-->
+          <ws-form-item label="卖方联络人" span="1" prop="seller">
+            <ws-input
+              v-model="deptBudgetList.seller"
+              placeholder="请输入卖方联络人"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--成交日期-->
+          <ws-form-item label="成交日期" span="1" prop="transactionDate">
+            <ws-date-picker
+              v-model="deptBudgetList.transactionDate"
+              type="date"
+              placeholder="请选择成交日期"
+              value-format="yyyy-MM-dd"
+            />
+          </ws-form-item>
+
+          <!--卖方联络人电话-->
+          <ws-form-item label="卖方联络人电话" span="1" prop="sellerPhone">
+            <ws-input
+              v-model="deptBudgetList.sellerPhone"
+              placeholder="请输入卖方联络人电话"
+              maxlength="100"
+              size="small"
+            />
+          </ws-form-item>
+
+          <!--备注-->
+          <ws-form-item label="备注" span="1" prop="remarks">
+            <ws-input
+              v-model="deptBudgetList.remarks"
+              placeholder="请输入备注,不超过200字"
+              maxlength="120"
+              size="small"
+            />
+          </ws-form-item>
+        </ws-info-table>
+      </ws-form>
+    </div>
+    <div style="text-align: right; padding: 10px" class="center">
+      <el-button
+        class="bg-bottom"
+        type="primary"
+        size="small"
+        @click="submit(deptBudgetList)"
+        >提交</el-button
+      >
+    </div>
+  </div>
+</template>
+<script>
+//  import { getVesselOne } from '@/model/procurement/basic'
+//  import { dayjs } from 'base-core-lib'
+import {
+  addList,
+  xiala,
+  addxiala,
+  editxiala,
+  delxiala,
+} from '@/model/contarct/index'
+import WsUpload from '@/components/WsUpload'
+import { regionData, CodeToText } from 'element-china-area-data'
+
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+  },
+  watch: {
+    vesselId(val) {
+      this.getVesselData()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      options_: regionData,
+      selectedOptions: [],
+      selectedOptions1: [],
+      // 提交类型
+      submitType: true,
+      tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
+      trainingMethods: {},
+      packtypeList: [],
+      mainReportAdd: {},
+      appendixIdsAdd: '',
+      size: 10,
+
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      enclosureTypeFlag: '0',
+      unitList: [],
+      goodnameList: [],
+      gradeList: [],
+      ChapterTwoList: [],
+      addressUrls: [],
+      deptBudgetList: {
+        deliverType: '1',
+        finalTradingVolume: 0,
+        contractGoodsInfo: {
+          goodsName: '',
+        },
+        contractProcessInfo: {},
+        addressUrl: '',
+      },
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      ruleDeptBudget: {
+        contractNo: [
+          { required: true, message: '请输入活动名称', trigger: 'blur' },
+          {
+            min: 6,
+            max: 20,
+            message: '长度在 6 到 20 个字符',
+            trigger: 'blur',
+          },
+        ],
+      },
+      selectIntendedShip: {},
+      interviewTypeList: {},
+      fileList: [],
+    }
+  },
+  methods: {
+    close(index) {
+      this.addressUrls.splice(index, 1)
+    },
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleClose() {
+      this.dialogViewSpareMoney = false
+    },
+    handleChange(value) {
+      this.selectedOptions = value
+    },
+    handleChange1(value) {
+      this.selectedOptions1 = value
+    },
+    returnsales() {
+      this.$router.push({ path: 'priceConfirmationSheet' })
+    },
+
+    // 上传附件
+    uploadSuccessHandle(e) {
+      this.addressUrls.push(e.url)
+      this.deptBudgetList.addressUrl = this.addressUrls.toString
+    },
+    onChange(files) {
+      this.fileNum = files
+      this.$refs.upload.handleSaveBill().then((res) => {
+        console.log(files)
+      })
+    },
+    //计算成交数量(吨)
+    transactionsNumberHandChange(e) {
+      this.deptBudgetList.transactionsNumber = e * 10 
+    },
+    getUnitList() {
+      xiala({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        constCode: 'TYPEYAN',
+      })
+        .toPromise()
+        .then((response) => {
+          this.unitList = response
+          let currItem
+          this.unitList.forEach((item, index, arr) => {
+            item.flag = 'delete'
+            if (this.vModel == item.constKey) {
+              currItem = item
+            }
+          })
+          //
+          if (currItem) {
+            this.selectContract(currItem.constValue)
+          }
+        })
+    },
+
+    submit() {
+      if (!this.deptBudgetList.priceListNo) {
+        this.$message({
+          message: '点价单编号不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.priceListNo.length < 1 ||
+        this.deptBudgetList.priceListNo.length > 20
+      ) {
+        this.$message({
+          message: '点价单编号输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.varietyContractDirection) {
+        this.$message({
+          message: '品种合约及方向不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.varietyContractDirection.length < 1 ||
+        this.deptBudgetList.varietyContractDirection.length > 20
+      ) {
+        this.$message({
+          message: '品种合约及方向输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyer) {
+        this.$message({
+          message: '买方联络人不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyer.length < 2 ||
+        this.deptBudgetList.buyer.length > 20
+      ) {
+        this.$message({
+          message: '买方联络人姓名输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.buyerPhone) {
+        this.$message({
+          message: '买方联络人电话不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.buyerPhone.length < 7 ||
+        this.deptBudgetList.buyerPhone.length > 20
+      ) {
+        this.$message({
+          message: '买方联络人电话输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.buyerPhone)) {
+        this.$message({
+          message: '卖方联络人电话输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.seller) {
+        this.$message({
+          message: '卖方联络人不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.seller.length < 2 ||
+        this.deptBudgetList.seller.length > 20
+      ) {
+        this.$message({
+          message: '卖方联络人姓名输入错误!',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (!this.deptBudgetList.sellerPhone) {
+        this.$message({
+          message: '卖方联络人电话不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (isNaN(this.deptBudgetList.sellerPhone)) {
+        this.$message({
+          message: '卖方联络人电话输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.sellerPhone.length < 7 ||
+        this.deptBudgetList.sellerPhone.length > 20
+      ) {
+        this.$message({
+          message: '卖方联络人电话输入有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionsNumberHand) {
+        this.$message({
+          message: '成交数量不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+
+      if (
+        isNaN(this.deptBudgetList.transactionsNumberHand) ||
+        (String(this.deptBudgetList.transactionsNumberHand).indexOf('.') !=
+          -1 &&
+          String(this.deptBudgetList.transactionsNumberHand).length -
+            (String(this.deptBudgetList.transactionsNumberHand).indexOf('.') +
+              1) >
+            2) ||
+        this.deptBudgetList.transactionsNumberHand < 1 ||
+        this.deptBudgetList.transactionsNumberHand > 10000
+      ) {
+        this.$message({
+          message: '输入成交数量有误!',
+          type: 'warning',
+        })
+        return
+      }
+      if (
+        this.deptBudgetList.transactionPrice < 0 ||
+        this.deptBudgetList.transactionPrice > 100000000 ||
+        (String(this.deptBudgetList.transactionPrice).indexOf('.') != -1 &&
+          String(this.deptBudgetList.transactionPrice).length -
+            (String(this.deptBudgetList.transactionPrice).indexOf('.') + 1) >
+            2)
+      ) {
+        this.$message({
+          message: '成交价格输入错误',
+          type: 'warning',
+        })
+        return
+      }
+      if (this.deptBudgetList.transactionPrice) {
+        if (isNaN(this.deptBudgetList.transactionPrice)) {
+          this.$message({
+            message: '成交价格输入错误!',
+            type: 'warning',
+          })
+          return
+        }
+      }
+      if (!this.deptBudgetList.transactionPrice) {
+        this.$message({
+          message: '成交价格不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+      if (!this.deptBudgetList.transactionDate) {
+        this.$message({
+          message: '成交日期不能为空!',
+          type: 'warning',
+        })
+        return
+      }
+    },
+    resetForm(deptBudgetList) {
+      this.$refs[deptBudgetList].resetFields()
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+}
+/deep/.ws-info-table .el-form-item {
+  border-right: 1px solid #cdd2dc;
+  border-bottom: 1px solid #cdd2dc;
+}
+.title {
+  position: relative;
+}
+.title::before {
+  content: '';
+  display: inline-block;
+  width: 5px;
+  height: 30px;
+  background: #5473e8;
+  position: absolute;
+  left: 0;
+}
+.el-button--primary {
+  background-color: #5878e8;
+  border-color: #5878e8;
+}
+.el-col {
+  background: #f6f7fc;
+}
+.readonly {
+  position: relative;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__content {
+  padding: 0 25px;
+  border-left: 1px solid #cdd2dc;
+  background: #fafbfc;
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 140px;
+  text-align: center;
+  background: #f0f2f6;
+  // border: 1px solid #cdd2dc;
+}
+.button-container {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #fff;
+  width: 100%;
+  height: 50px;
+  padding: 0 10px;
+  & > div {
+    margin-left: 10px;
+    display: flex;
+    flex-wrap: nowrap;
+    flex-direction: row;
+    & > span {
+      line-height: 50px;
+    }
+  }
+
+  /deep/.auditFlow-box {
+    position: unset;
+    margin-left: 10px;
+    &/deep/.auditFlow-icon {
+      width: auto;
+      padding-right: 30px;
+    }
+    &/deep/.auditFlow-main {
+      position: absolute;
+    }
+  }
+}
+.box-app {
+  display: inline-block;
+  float: left;
+  margin-left: 30px;
+  line-height: 50px;
+}
+/deep/.el-dialog {
+  .el-form-item {
+    margin-bottom: 0 !important;
+    .el-input--medium {
+      textarea {
+        min-height: 100px !important;
+      }
+    }
+  }
+}
+.collapse-bottom {
+  margin-bottom: 20px;
+}
+.shangchuan {
+  margin-left: 22px;
+}
+.input-main .textarea .el-textarea__inner {
+  width: 100%;
+  z-index: 1;
+}
+.bg-left {
+  padding-left: 30px;
+}
+.bg-right {
+  padding-right: 10px;
+  text-align: right;
+}
+.bg-bottom {
+  margin: 16px 0px;
+}
+.wenzi {
+  width: 70%;
+  margin: 0 auto;
+}
+.wenzi h3 {
+  display: inline-block;
+  left: 10px;
+}
+.wenzi p {
+  display: inline-block;
+}
+.center {
+  width: 70%;
+  margin: 0 auto;
+}
+.el-form-item {
+  width: 50%;
+}
+.el-form-item__label {
+  text-align: center;
+}
+.ce {
+  width: 70%;
+  margin: 0 auto;
+}
+/*.crt-main .textarea /deep/ .el-form-item__label {*/
+/*  height: 82px;*/
+/*}*/
+// 控制select为只读的时候显示样式
+
+.hide-sel {
+  .el-input__inner {
+    border: 0px;
+  }
+  .el-icon-arrow-up {
+    display: none;
+  }
+  .el-textarea__inner {
+    background-color: #fff !important;
+    border: 0;
+  }
+  .el-date-editor {
+    i {
+      display: none;
+    }
+  }
+  .is-disabled {
+    .el-input__inner:hover {
+      background-color: #fff !important;
+      border: 0;
+    }
+    color: #606266;
+    .el-input__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+    .el-textarea__inner {
+      background-color: #fff !important;
+      border: 0;
+      color: #606266;
+    }
+  }
+}
+/deep/.ws-info-table .el-form-item .el-form-item__label {
+  width: 130px;
+}
+//*号
+.unchangeable {
+  position: absolute;
+  width: 9px;
+  height: 22px;
+  font-size: 16px;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #ff2727;
+  line-height: 22px;
+  display: inline-block;
+  right: 14px;
+}
+/deep/.el-input,
+/deep/.el-date-editor {
+  font-size: 13px;
+}
+/deep/.el-textarea {
+  width: 101%;
+  margin: 0px;
+}
+/deep/el-date-editor--date {
+  width: 200px;
+}
+.unchanged {
+  position: absolute;
+  left: 37px;
+  width: 102px;
+  height: 14px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #afb5cb;
+  line-height: 14px;
+}
+/deep/.el-input--small .el-input__inner {
+  height: 32px;
+  line-height: 32px;
+}
+// 控制select为只读的时候显示样式
+/deep/.ws-class-table-col {
+  height: auto;
+  padding: 0px 2px;
+  /deep/.el-input__inner {
+    padding: 0px 2px;
+  }
+}
+/deep/.is-disabled {
+  .el-input__prefix,
+  .el-input__suffix {
+    display: none;
+  }
+  .el-input__inner {
+    background-color: #fff;
+    border-color: #fff !important;
+    color: #000 !important;
+    font-size: 14px;
+    cursor: text;
+    padding: 0 !important;
+  }
+}
+.winseaview-view {
+  padding: 0 0 20px;
+}
+.container {
+  overflow: scroll;
+  height: 93vh;
+}
+.addressUrls {
+  width: 100%;
+  display: flex;
+  margin-top: 10px;
+}
+.addressUrls-item {
+  position: relative;
+  display: flex;
+}
+.icon-guanbi {
+  position: absolute;
+  right: 8px;
+}
+.addressUrl {
+  margin: 0px 10px;
+  border-radius: 3px;
+}
+//上传文件成功标识
+/deep/.el-upload-list__item-status-label {
+  position: absolute;
+  right: 22px;
+  top: -1px;
+  line-height: inherit;
+  display: none;
+}
+</style>