|
@@ -0,0 +1,1496 @@
|
|
|
|
+// 仓库添加
|
|
|
|
+<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="vertical-align: bottom; margin-right: 3px"
|
|
|
|
+ src="../../../public/img/lujing.png"
|
|
|
|
+ alt=""
|
|
|
|
+ />返回</el-button
|
|
|
|
+ >
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+
|
|
|
|
+ <ws-form
|
|
|
|
+ ref="deptBudgetList"
|
|
|
|
+ :rules="mainReportAdd"
|
|
|
|
+ :model="deptBudgetList"
|
|
|
|
+ >
|
|
|
|
+ <!-- <div class="remark">
|
|
|
|
+ <h3>基本信息</h3>
|
|
|
|
+ <p style="color: #8890b1">
|
|
|
|
+ 注:基本信息和货物信息均为必填项,“*” 标记的条目提交后不可修改。
|
|
|
|
+ </p>
|
|
|
|
+ </div> -->
|
|
|
|
+
|
|
|
|
+ <ws-info-table>
|
|
|
|
+ <!--仓库名称-->
|
|
|
|
+ <ws-form-item
|
|
|
|
+ label="仓库名称"
|
|
|
|
+ span="1"
|
|
|
|
+ prop="contractNo"
|
|
|
|
+ class="readonly"
|
|
|
|
+ >
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractNo"
|
|
|
|
+ placeholder="请输入仓库名"
|
|
|
|
+ maxlength="20"
|
|
|
|
+ size="small"
|
|
|
|
+ :rules="ruleDeptBudget"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--负责人电话-->
|
|
|
|
+ <ws-form-item label="负责人电话" span="1" prop="shippingType">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.shippingType"
|
|
|
|
+ placeholder="请输入负责人手机号码"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--仓库所在地-->
|
|
|
|
+ <ws-form-item label="仓库所在地" span="1" prop="acceptanceMethod">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="deptBudgetList.acceptanceMethod"
|
|
|
|
+ placeholder="请选择仓库所在地"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ filterable
|
|
|
|
+ @change="selectunitList"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="(item, index) in unitList"
|
|
|
|
+ :key="item.constValue"
|
|
|
|
+ :label="item.constValue"
|
|
|
|
+ :value="item.constValue"
|
|
|
|
+ >
|
|
|
|
+ <span class="unit-left" style="float: left">
|
|
|
|
+ <span v-if="item.flag == 'delete'"> {{ item.constValue }}</span>
|
|
|
|
+ <!-- 新增文本框 -->
|
|
|
|
+ <div
|
|
|
|
+ style="width: 160px"
|
|
|
|
+ v-if="item.flag !== 'delete'"
|
|
|
|
+ @click.stop
|
|
|
|
+ >
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="item.constValue"
|
|
|
|
+ clearable
|
|
|
|
+ maxlength="10"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ ></ws-input>
|
|
|
|
+ </div>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">
|
|
|
|
+ <!-- 对号 -->
|
|
|
|
+ <i
|
|
|
|
+ class="el-icon-check"
|
|
|
|
+ style="line-height: 29px; margin-left: 10px"
|
|
|
|
+ v-if="item.flag !== 'delete'"
|
|
|
|
+ @click.stop="saveClick(item, index)"
|
|
|
|
+ ></i>
|
|
|
|
+ <!-- 编辑 -->
|
|
|
|
+ <i
|
|
|
|
+ class="el-icon-edit"
|
|
|
|
+ style="line-height: 29px; margin-left: 10px"
|
|
|
|
+ v-if="item.flag == 'delete'"
|
|
|
|
+ @click.stop="editClick(item, index)"
|
|
|
|
+ ></i>
|
|
|
|
+ <!-- 删除 -->
|
|
|
|
+ <i
|
|
|
|
+ class="el-icon-delete"
|
|
|
|
+ style="line-height: 29px"
|
|
|
|
+ @click.stop="deleteClick(item, index)"
|
|
|
|
+ ></i>
|
|
|
|
+ </span>
|
|
|
|
+ </el-option>
|
|
|
|
+ <!-- 新增按钮 -->
|
|
|
|
+ <el-option value="" label="">
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ text-align: right;
|
|
|
|
+ border-top: 1px solid #dcdfe6;
|
|
|
|
+ padding: 5px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <ws-button type="primary" @click.stop="addClick">{{
|
|
|
|
+ $t('button.add')
|
|
|
|
+ }}</ws-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--详细地址-->
|
|
|
|
+ <ws-form-item label="详细地址" span="1" prop="buyer" class="readonly">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.buyer"
|
|
|
|
+ placeholder="请输入详细地址"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--总吨量(吨)-->
|
|
|
|
+ <ws-form-item label="总吨量(吨)" span="1" prop="settlementMethod">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.settlementMethod"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--卖方-->
|
|
|
|
+ <ws-form-item label="货仓编号" span="1" prop="contractNo">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model.number="deptBudgetList.buyerPhone"
|
|
|
|
+
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--货源地-->
|
|
|
|
+ <ws-form-item label="货源地" span="1" prop="sourceGoods">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.sourceGoods"
|
|
|
|
+ placeholder="请输入货源地"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--买方电话-->
|
|
|
|
+ <ws-form-item label="买方电话" span="1" prop="contractNo">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model.number="deptBudgetList.buyerPhone"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--交货地-->
|
|
|
|
+ <ws-form-item label="交货地" span="1" prop="placeDelivery">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.placeDelivery"
|
|
|
|
+ placeholder="请输入交货地"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </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="packingMethod">
|
|
|
|
+ <ws-select
|
|
|
|
+ v-model="deptBudgetList.packingMethod"
|
|
|
|
+ placeholder=""
|
|
|
|
+ class="typeselect"
|
|
|
|
+ :value="value1"
|
|
|
|
+ @change="selectpackingMethod"
|
|
|
|
+ >
|
|
|
|
+ <ws-option
|
|
|
|
+ v-for="item in packtypeList"
|
|
|
|
+ :key="item.constKey"
|
|
|
|
+ :label="item.constValue"
|
|
|
|
+ :value="item.constValue"
|
|
|
|
+ />
|
|
|
|
+ </ws-select>
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--重量(吨)-->
|
|
|
|
+ <ws-form-item label="重量(吨)" span="1" prop="weight">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.weight"
|
|
|
|
+ placeholder="请输入重量(吨)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--验收方式-->
|
|
|
|
+ <ws-form-item label="验收方式" span="1" prop="acceptanceMethod">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="deptBudgetList.acceptanceMethod"
|
|
|
|
+ placeholder="请选择验收方式"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ filterable
|
|
|
|
+ @change="selectunitList"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="(item, index) in unitList"
|
|
|
|
+ :key="item.constValue"
|
|
|
|
+ :label="item.constValue"
|
|
|
|
+ :value="item.constValue"
|
|
|
|
+ >
|
|
|
|
+ <span class="unit-left" style="float: left">
|
|
|
|
+ <span v-if="item.flag == 'delete'"> {{ item.constValue }}</span>
|
|
|
|
+ <!-- 新增文本框 -->
|
|
|
|
+ <div
|
|
|
|
+ style="width: 160px"
|
|
|
|
+ v-if="item.flag !== 'delete'"
|
|
|
|
+ @click.stop
|
|
|
|
+ >
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="item.constValue"
|
|
|
|
+ clearable
|
|
|
|
+ maxlength="10"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ ></ws-input>
|
|
|
|
+ </div>
|
|
|
|
+ </span>
|
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">
|
|
|
|
+ <!-- 对号 -->
|
|
|
|
+ <i
|
|
|
|
+ class="el-icon-check"
|
|
|
|
+ style="line-height: 29px; margin-left: 10px"
|
|
|
|
+ v-if="item.flag !== 'delete'"
|
|
|
|
+ @click.stop="saveClick(item, index)"
|
|
|
|
+ ></i>
|
|
|
|
+ <!-- 编辑 -->
|
|
|
|
+ <i
|
|
|
|
+ class="el-icon-edit"
|
|
|
|
+ style="line-height: 29px; margin-left: 10px"
|
|
|
|
+ v-if="item.flag == 'delete'"
|
|
|
|
+ @click.stop="editClick(item, index)"
|
|
|
|
+ ></i>
|
|
|
|
+ <!-- 删除 -->
|
|
|
|
+ <i
|
|
|
|
+ class="el-icon-delete"
|
|
|
|
+ style="line-height: 29px"
|
|
|
|
+ @click.stop="deleteClick(item, index)"
|
|
|
|
+ ></i>
|
|
|
|
+ </span>
|
|
|
|
+ </el-option>
|
|
|
|
+ <!-- 新增按钮 -->
|
|
|
|
+ <el-option value="" label="">
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ text-align: right;
|
|
|
|
+ border-top: 1px solid #dcdfe6;
|
|
|
|
+ padding: 5px;
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <ws-button type="primary" @click.stop="addClick">{{
|
|
|
|
+ $t('button.add')
|
|
|
|
+ }}</ws-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--溢短装(%)-->
|
|
|
|
+ <ws-form-item label="溢短装(%)" span="1" prop="overShort">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.overShort"
|
|
|
|
+ placeholder="请输入溢短装比例(%)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+ <!--交货日期(起)-->
|
|
|
|
+ <ws-form-item label="交货日期(起)" span="1" prop="deliveryDateStart">
|
|
|
|
+ <ws-date-picker
|
|
|
|
+ :picker-options="pickerBeginDateBefore"
|
|
|
|
+ v-model="deptBudgetList.deliveryDateStart"
|
|
|
|
+ type="date"
|
|
|
|
+ default-value="1980-01-01"
|
|
|
|
+ placeholder="请选择交货日期(起)"
|
|
|
|
+ format="yyyy-MM-dd"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--合同单价(元/吨)-->
|
|
|
|
+ <ws-form-item
|
|
|
|
+ class="readonly"
|
|
|
|
+ label="合同单价(元/吨)"
|
|
|
|
+ span="1"
|
|
|
|
+ prop="unitContractPrice"
|
|
|
|
+ >
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.unitContractPrice"
|
|
|
|
+ placeholder="请输入合同单价"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--交货日期(止)-->
|
|
|
|
+ <ws-form-item label="交货日期(止)" span="1" prop="deliveryDateEnd">
|
|
|
|
+ <ws-date-picker
|
|
|
|
+ :picker-options="pickerBeginDateBefore"
|
|
|
|
+ v-model="deptBudgetList.deliveryDateEnd"
|
|
|
|
+ type="date"
|
|
|
|
+ default-value="1980-01-01"
|
|
|
|
+ placeholder="请选择交货日期(起)"
|
|
|
|
+ format="yyyy-MM-dd"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--合同总价-->
|
|
|
|
+ <ws-form-item label="合同总价" span="1" prop="totalContractPrice">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.totalContractPrice"
|
|
|
|
+ placeholder="请输入合同总价"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--签订日期-->
|
|
|
|
+ <ws-form-item label="签订日期" span="1" prop="signingDate">
|
|
|
|
+ <ws-date-picker
|
|
|
|
+ :picker-options="pickerBeginDateBefore"
|
|
|
|
+ v-model="deptBudgetList.signingDate"
|
|
|
|
+ type="date"
|
|
|
|
+ default-value="1980-01-01"
|
|
|
|
+ placeholder="请选择合同签订日期"
|
|
|
|
+ format="yyyy-MM-dd"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+ </ws-info-table>
|
|
|
|
+ </ws-form>
|
|
|
|
+ <div class="wenzi">
|
|
|
|
+ <h3>货物信息</h3>
|
|
|
|
+ </div>
|
|
|
|
+ <ws-form
|
|
|
|
+ ref="deptBudgetList"
|
|
|
|
+ :rules="ruleDeptBudget"
|
|
|
|
+ :model="deptBudgetList"
|
|
|
|
+ >
|
|
|
|
+ <!--货物信息-->
|
|
|
|
+
|
|
|
|
+ <ws-info-table>
|
|
|
|
+ <!--货名-->
|
|
|
|
+ <ws-form-item label="货名" span="1" prop="goodsName" class="readonly">
|
|
|
|
+ <ws-select
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.goodsName"
|
|
|
|
+ placeholder=""
|
|
|
|
+ class="typeselect"
|
|
|
|
+ @change="selectgoodsName"
|
|
|
|
+ >
|
|
|
|
+ <ws-option
|
|
|
|
+ v-for="item in goodnameList"
|
|
|
|
+ :key="item.constKey"
|
|
|
|
+ :label="item.constValue"
|
|
|
|
+ :value="item.constValue"
|
|
|
|
+ />
|
|
|
|
+ </ws-select>
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--水分(%)<=-->
|
|
|
|
+ <ws-form-item label="水分(%)" span="1" prop="waterContent">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.waterContent"
|
|
|
|
+ placeholder="请输入水分占比"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--品级-->
|
|
|
|
+ <ws-form-item label="品级" span="1" prop="grade">
|
|
|
|
+ <ws-select
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.grade"
|
|
|
|
+ placeholder=""
|
|
|
|
+ class="typeselect"
|
|
|
|
+ @change="selectgrade"
|
|
|
|
+ >
|
|
|
|
+ <ws-option
|
|
|
|
+ v-for="item in gradeList"
|
|
|
|
+ :key="item.constKey"
|
|
|
|
+ :label="item.constValue"
|
|
|
|
+ :value="item.constValue"
|
|
|
|
+ />
|
|
|
|
+ </ws-select>
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--杂质(%)<=-->
|
|
|
|
+ <ws-form-item label="杂质(%)" span="1" prop="impurity">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.impurity"
|
|
|
|
+ placeholder="请输入杂质占比(%)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--容量(克/升)>=-->
|
|
|
|
+ <ws-form-item label="容量(克/升)" span="1" prop="bulkDensity">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.bulkDensity"
|
|
|
|
+ placeholder="请输入容重"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--霉变粒(%)<=-->
|
|
|
|
+ <ws-form-item label="霉变粒(%)" span="1" prop="mildewGrain">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.mildewGrain"
|
|
|
|
+ placeholder="请输入霉变粒占比(%)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--热损伤(%)<=-->
|
|
|
|
+ <ws-form-item label="热损伤(%)" span="1" prop="jiaorenli">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.jiaorenli"
|
|
|
|
+ placeholder="请输入输入热损伤占比(%)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+ <!--不完整粒(%)<=-->
|
|
|
|
+ <ws-form-item label="不完整粒(%)" span="1" prop="imperfectGrain">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractGoodsInfo.imperfectGrain"
|
|
|
|
+ placeholder="请输入不完整粒占比(%)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+ </ws-info-table>
|
|
|
|
+ </ws-form>
|
|
|
|
+
|
|
|
|
+ <div class="wenzi">
|
|
|
|
+ <h3>流程信息</h3>
|
|
|
|
+ </div>
|
|
|
|
+ <ws-form
|
|
|
|
+ ref="deptBudgetList"
|
|
|
|
+ :rules="ruleDeptBudget"
|
|
|
|
+ :model="deptBudgetList"
|
|
|
|
+ >
|
|
|
|
+ <!--流程信息-->
|
|
|
|
+
|
|
|
|
+ <ws-info-table>
|
|
|
|
+ <!--合同收入(元)-->
|
|
|
|
+ <ws-form-item label="合同收入(元)" span="1" prop="goodsNameKey">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractProcessInfo.goodsNameKey"
|
|
|
|
+ placeholder="请输入合同收入(元)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--已开发票(元)-->
|
|
|
|
+ <ws-form-item label="已开发票(元)" span="1" prop="goodsName">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractProcessInfo.goodsName"
|
|
|
|
+ placeholder="请输入已开发票(元)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--费用支出(元)-->
|
|
|
|
+ <ws-form-item label="费用支出(元)" span="1" prop="waterContent">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractProcessInfo.waterContent"
|
|
|
|
+ placeholder="请输入费用支出(元)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+
|
|
|
|
+ <!--未开发票(元)-->
|
|
|
|
+ <ws-form-item label="未开发票(元)" span="1" prop="impurity">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractProcessInfo.impurity"
|
|
|
|
+ placeholder="请输入未开发票(元)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+ <!--已完成发货量(吨)-->
|
|
|
|
+ <ws-form-item label="已完成发货量(吨)" span="1" prop="imperfectGrain">
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.contractProcessInfo.imperfectGrain"
|
|
|
|
+ placeholder="请输入已完成发货量(吨)"
|
|
|
|
+ maxlength="100"
|
|
|
|
+ size="small"
|
|
|
|
+ />
|
|
|
|
+ </ws-form-item>
|
|
|
|
+ <!--双章原件回收情况-->
|
|
|
|
+ <ws-form-item label="双章原件回收情况" span="1" prop="grade">
|
|
|
|
+ <ws-select
|
|
|
|
+ v-model="deptBudgetList.contractProcessInfo.grade"
|
|
|
|
+ placeholder=""
|
|
|
|
+ class="typeselect"
|
|
|
|
+ @change="selectChapterTwo"
|
|
|
|
+ >
|
|
|
|
+ <ws-option
|
|
|
|
+ v-for="item in ChapterTwoList"
|
|
|
|
+ :key="item.constKey"
|
|
|
|
+ :label="item.constValue"
|
|
|
|
+ :value="item.constValue"
|
|
|
|
+ />
|
|
|
|
+ </ws-select>
|
|
|
|
+ </ws-form-item>
|
|
|
|
+ </ws-info-table>
|
|
|
|
+ </ws-form>
|
|
|
|
+
|
|
|
|
+ <div class="wenzi">
|
|
|
|
+ <h3>备注信息</h3>
|
|
|
|
+ </div>
|
|
|
|
+ <ws-form
|
|
|
|
+ ref="deptBudgetList"
|
|
|
|
+ :rules="ruleDeptBudget"
|
|
|
|
+ :model="deptBudgetList"
|
|
|
|
+ >
|
|
|
|
+ <!--备注信息-->
|
|
|
|
+ <ws-input
|
|
|
|
+ v-model="deptBudgetList.remarks"
|
|
|
|
+ type="textarea"
|
|
|
|
+ row="3"
|
|
|
|
+ placeholder="请输入备注信息,不超过200字"
|
|
|
|
+ maxlength="200"
|
|
|
|
+ />
|
|
|
|
+ <ws-upload
|
|
|
|
+ ref="upload"
|
|
|
|
+ table-name="maintain_work_order"
|
|
|
|
+ oss-key="mainPlan"
|
|
|
|
+ :comp-id="compId"
|
|
|
|
+ :appendix-ids="appendixIdsAdd"
|
|
|
|
+ :vesselId="deptBudgetList.addressUrl"
|
|
|
|
+ :size-limit="size"
|
|
|
|
+ @uploadSuccess="uploadSuccess"
|
|
|
|
+ @onChange="onChange"
|
|
|
|
+ accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
|
|
|
|
+ />
|
|
|
|
+ </ws-form>
|
|
|
|
+ <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 {
|
|
|
|
+ packList,
|
|
|
|
+ addList,
|
|
|
|
+ xiala,
|
|
|
|
+ addxiala,
|
|
|
|
+ editxiala,
|
|
|
|
+ delxiala,
|
|
|
|
+} from '@/model/contarct/index'
|
|
|
|
+import WsUpload from '@/components/WsUpload'
|
|
|
|
+
|
|
|
|
+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: '',
|
|
|
|
+ // 提交类型
|
|
|
|
+ submitType: true,
|
|
|
|
+ tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
|
|
|
|
+
|
|
|
|
+ packtypeList: [],
|
|
|
|
+ compId: sessionStorage.getItem('ws-pf_compId'),
|
|
|
|
+ mainReportAdd: {},
|
|
|
|
+ appendixIdsAdd: '',
|
|
|
|
+ size: 10,
|
|
|
|
+ // uploadSuccess: {},
|
|
|
|
+ // onChange:{},
|
|
|
|
+ unitList: [],
|
|
|
|
+ goodnameList: [],
|
|
|
|
+ value1: '袋装',
|
|
|
|
+ value2: '未回收',
|
|
|
|
+ gradeList: [],
|
|
|
|
+ ChapterTwoList: [],
|
|
|
|
+
|
|
|
|
+ deptBudgetList: {
|
|
|
|
+ contractGoodsInfo: {
|
|
|
|
+ goodsName: '',
|
|
|
|
+ },
|
|
|
|
+ contractProcessInfo: {},
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ pickerBeginDateBefore: {
|
|
|
|
+ disabledDate: (time) => {
|
|
|
|
+ return time.getTime() > Date.now()
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ // selectpackingMethod: {},
|
|
|
|
+ // selectgrade: {},
|
|
|
|
+ // selectunitList: {},
|
|
|
|
+ // selectDuty: {},
|
|
|
|
+ // isEdited: false,
|
|
|
|
+ // registered: {},
|
|
|
|
+ // selectCrtDuty: {},
|
|
|
|
+ // dutyList: {},
|
|
|
|
+ // sexList: {},
|
|
|
|
+ ruleDeptBudget: {
|
|
|
|
+ contractNo: [
|
|
|
|
+ { required: true, message: '请输入活动名称', trigger: 'blur' },
|
|
|
|
+ {
|
|
|
|
+ min: 6,
|
|
|
|
+ max: 20,
|
|
|
|
+ message: '长度在 6 到 20 个字符',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ selectIntendedShip: {},
|
|
|
|
+ interviewTypeList: {},
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ activated() {
|
|
|
|
+ //cg.viewBudget
|
|
|
|
+ //cg.viewSpareMoney
|
|
|
|
+ // this.getVesselData();
|
|
|
|
+ this.deptBudgetList.packingMethod = '袋装'
|
|
|
|
+ this.deptBudgetList.packingMethodKey = 2
|
|
|
|
+ this.deptBudgetList.contractGoodsInfo.goodsName = '玉米'
|
|
|
|
+ this.deptBudgetList.contractGoodsInfo.goodsNameKey = 1
|
|
|
|
+ this.deptBudgetList.contractProcessInfo.grade = '未回收'
|
|
|
|
+ this.deptBudgetList.contractProcessInfo.gradeKey = 1
|
|
|
|
+ this.loaddata()
|
|
|
|
+ this.showType = this.isShow
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ // 关闭 dialog时 处理文件url 初始化upload组件
|
|
|
|
+ handleClose() {
|
|
|
|
+ this.dialogViewSpareMoney = false
|
|
|
|
+ },
|
|
|
|
+ returnsales() {
|
|
|
|
+ this.$router.push({ path: 'purchaseContract' })
|
|
|
|
+ },
|
|
|
|
+ loaddata() {
|
|
|
|
+ // 包装方式
|
|
|
|
+ packList({ constId: 'CON1' })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.packtypeList = response
|
|
|
|
+ })
|
|
|
|
+ // 验收方式
|
|
|
|
+ this.getUnitList()
|
|
|
|
+ // 货名
|
|
|
|
+ packList({ constId: 'CON2' })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.goodnameList = response
|
|
|
|
+ })
|
|
|
|
+ // 品级
|
|
|
|
+ packList({ constId: 'CON3' })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.gradeList = response
|
|
|
|
+ })
|
|
|
|
+ // 双章
|
|
|
|
+ packList({ constId: 'CON4' })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.ChapterTwoList = response
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 上传附件
|
|
|
|
+ uploadSuccess(data, files, url) {
|
|
|
|
+ console.log(data, files, url)
|
|
|
|
+
|
|
|
|
+ // this.deptBudgetList.
|
|
|
|
+ // this.formData.append('files', files)
|
|
|
|
+ // this.feedbackObj.uploadNameAttachment = data.appendixName
|
|
|
|
+ // this.feedbackObj.pathUploadAttachment = data.appendixPath
|
|
|
|
+ // // this.newAppendixs = files
|
|
|
|
+ // this.onChangeFlag = true
|
|
|
|
+ },
|
|
|
|
+ onChange(files) {
|
|
|
|
+ this.fileNum = files
|
|
|
|
+ this.$refs.upload.handleSaveBill().then((res) => {
|
|
|
|
+ console.log(files)
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ 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.contractNo) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入合同编号',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ console.log(this.deptBudgetList.contractNo.length)
|
|
|
|
+ if (
|
|
|
|
+ this.deptBudgetList.contractNo.length < 6 ||
|
|
|
|
+ this.deptBudgetList.contractNo.length > 20
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '合同编号长度不符合要求,请输入6到20个字符之内!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.shippingType) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入运输方式!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ this.deptBudgetList.shippingType.length < 1 ||
|
|
|
|
+ this.deptBudgetList.shippingType.length > 20
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '运输方式长度不符合要求,请输入1到20个字符之内!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.buyer) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入买方名称!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ this.deptBudgetList.buyer.length < 4 ||
|
|
|
|
+ this.deptBudgetList.buyer.length > 30
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '买方名称长度不符合要求,请输入4到30个字符之内!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.seller) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入卖方名称!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ this.deptBudgetList.seller.length < 4 ||
|
|
|
|
+ this.deptBudgetList.seller.length > 30
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '卖方名称长度不符合要求,请输入4到30个字符之内!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.buyerPhone) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入买方电话!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (isNaN(this.deptBudgetList.buyerPhone)) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '输入买方电话有误!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ this.deptBudgetList.buyerPhone.length < 7 ||
|
|
|
|
+ this.deptBudgetList.buyerPhone.length > 20
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '买方电话长度不符合要求,请输入7到20个字符之内!',
|
|
|
|
+ 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.buyerPhone.length < 7 ||
|
|
|
|
+ this.deptBudgetList.buyerPhone.length > 20
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '卖方电话长度不符合要求,请输入7到20个字符之内!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.settlementMethod) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入结算方式!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!this.deptBudgetList.sourceGoods) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入货源地!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.placeDelivery) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入交货地!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.weight) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请输入重量!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (
|
|
|
|
+ isNaN(this.deptBudgetList.weight) ||
|
|
|
|
+ /\.\d{3}$/.test(this.deptBudgetList.weight) == false ||
|
|
|
|
+ this.deptBudgetList.weight < 0 ||
|
|
|
|
+ this.deptBudgetList.weight > 200000
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '输入重量有误!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.overShort &&
|
|
|
|
+ isNaN(this.deptBudgetList.overShort)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '溢短装输入有误!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.unitContractPrice &&
|
|
|
|
+ isNaN(this.deptBudgetList.unitContractPrice)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '合同单价输入有误!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.totalContractPrice &&
|
|
|
|
+ isNaN(this.deptBudgetList.totalContractPrice)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '合同总价输入有误!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.deliveryDateStart) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请选择交货日期(起)',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.deliveryDateEnd) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请选择交货日期(止)',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //时间
|
|
|
|
+ if (
|
|
|
|
+ new Date(this.deptBudgetList.deliveryDateStart).getTime() >
|
|
|
|
+ new Date(this.deptBudgetList.deliveryDateEnd).getTime()
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '交货日期(止)选择错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.signingDate) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请选择签订日期',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.contractGoodsInfo.goodsName) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请选择货名',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.contractGoodsInfo.waterContent) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请选择水分',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!this.deptBudgetList.contractGoodsInfo.grade) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '请选择品级',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.contractGoodsInfo.impurity ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.impurity)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '杂质输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.contractGoodsInfo.bulkDensity ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.bulkDensity)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '容重输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.contractGoodsInfo.mildewGrain ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.mildewGrain)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '霉变粒输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.contractGoodsInfo.jiaorenli ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.jiaorenli)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '热损伤输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ !this.deptBudgetList.contractGoodsInfo.imperfectGrain ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractGoodsInfo.imperfectGrain)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '不完整粒输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ (!this.deptBudgetList.contractProcessInfo.goodsNameKey > 1000000000) |
|
|
|
|
+ (this.deptBudgetList.contractProcessInfo.goodsNameKey < 0) ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.goodsNameKey) ==
|
|
|
|
+ false
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '合同收入金额输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ (!this.deptBudgetList.contractProcessInfo.waterContent > 10000000) |
|
|
|
|
+ (this.deptBudgetList.contractProcessInfo.waterContent < 0) ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.waterContent) ==
|
|
|
|
+ false
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '费用金额输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ (!this.deptBudgetList.contractProcessInfo.mildewGrain > 1000000000) |
|
|
|
|
+ (this.deptBudgetList.contractProcessInfo.mildewGrain < 0) ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.mildewGrain) ==
|
|
|
|
+ false
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '未回款金额输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ (!this.deptBudgetList.contractProcessInfo.goodsName > 1000000000) |
|
|
|
|
+ (this.deptBudgetList.contractProcessInfo.goodsName < 0) ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.goodsName) ==
|
|
|
|
+ false
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '已开发票金额输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ (!this.deptBudgetList.contractProcessInfo.impurity > 1000000000) |
|
|
|
|
+ (this.deptBudgetList.contractProcessInfo.impurity < 0) ||
|
|
|
|
+ /\.\d{2}$/.test(this.deptBudgetList.contractProcessInfo.impurity) ==
|
|
|
|
+ false
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '未开发票金额输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ (!this.deptBudgetList.contractProcessInfo.imperfectGrain > 200000) |
|
|
|
|
+ (this.deptBudgetList.contractProcessInfo.imperfectGrain < 0) ||
|
|
|
|
+ /\.\d{3}$/.test(
|
|
|
|
+ this.deptBudgetList.contractProcessInfo.imperfectGrain
|
|
|
|
+ ) == false
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '已完成发运量输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.$refs.deptBudgetList.validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ this.deptBudgetList.compId = this.compId
|
|
|
|
+ this.deptBudgetList.contractType = 2
|
|
|
|
+ addList(this.deptBudgetList)
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.$message.success('添加成功')
|
|
|
|
+ this.$router.push({ path: 'salesContract' })
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ resetForm(deptBudgetList) {
|
|
|
|
+ this.$refs[deptBudgetList].resetFields()
|
|
|
|
+ },
|
|
|
|
+ saveClick(item, index) {
|
|
|
|
+ console.log(item)
|
|
|
|
+
|
|
|
|
+ if (Object.is(item.id, 1)) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (Object.is(this.unitList[index].flag, 'delete')) {
|
|
|
|
+ this.$set(this.unitList, index, { flag: 'check' })
|
|
|
|
+ } else {
|
|
|
|
+ this.$set(this.unitList, index, { flag: 'delete' })
|
|
|
|
+ }
|
|
|
|
+ if (!item.constValue) {
|
|
|
|
+ this.unitList.splice(index, 1)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (item.flag == 'add') {
|
|
|
|
+ item.constKey = Math.random() * 20
|
|
|
|
+ this.trainingMethods.compId = sessionStorage.getItem('ws-pf_compId')
|
|
|
|
+ this.trainingMethods.constKey = item.constKey
|
|
|
|
+ this.trainingMethods.constCode = 'TYPEYAN'
|
|
|
|
+ this.trainingMethods.constValue = item.constValue
|
|
|
|
+ this.trainingMethods.id = item.id
|
|
|
|
+ addxiala(this.trainingMethods)
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.getUnitList()
|
|
|
|
+ })
|
|
|
|
+ } else if (item.flag == 'check') {
|
|
|
|
+ this.trainingMethods.compId = sessionStorage.getItem('ws-pf_compId')
|
|
|
|
+ this.trainingMethods.constKey = item.constKey
|
|
|
|
+ this.trainingMethods.constCode = 'TYPEYAN'
|
|
|
|
+ this.trainingMethods.constValue = item.constValue
|
|
|
|
+ this.trainingMethods.id = item.id
|
|
|
|
+ editxiala(this.trainingMethods)
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.getUnitList()
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // selectContract(val) {
|
|
|
|
+ // let key = this.unitList.find((item) => item.constValue === val).constKey
|
|
|
|
+ // this.pleaseChoose = val
|
|
|
|
+ // },
|
|
|
|
+
|
|
|
|
+ handleExamine() {},
|
|
|
|
+ approve() {},
|
|
|
|
+ // returnsales() {
|
|
|
|
+ // this.$router.push({ path: 'purchaseContract' })
|
|
|
|
+ // },
|
|
|
|
+ selectChapterTwo(e) {
|
|
|
|
+ for (var i = 0; i < this.ChapterTwoList.length; i++) {
|
|
|
|
+ if (this.ChapterTwoList[i].constValue == e) {
|
|
|
|
+ this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ selectunitList(e) {
|
|
|
|
+ for (var i = 0; i < this.unitList.length; i++) {
|
|
|
|
+ if (this.unitList[i].constValue == e) {
|
|
|
|
+ this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ selectgrade(e) {
|
|
|
|
+ for (var i = 0; i < this.gradeList.length; i++) {
|
|
|
|
+ if (this.gradeList[i].constValue == e) {
|
|
|
|
+ this.deptBudgetList.gradeKey = this.gradeList[i].constKey
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ selectgoodsName(e) {
|
|
|
|
+ for (var i = 0; i < this.goodnameList.length; i++) {
|
|
|
|
+ if (this.goodnameList[i].constValue == e) {
|
|
|
|
+ this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ selectpackingMethod(e) {
|
|
|
|
+ for (var i = 0; i < this.packtypeList.length; i++) {
|
|
|
|
+ if (this.packtypeList[i].constValue == e) {
|
|
|
|
+ this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 编辑
|
|
|
|
+ editClick(item, index) {
|
|
|
|
+ const map = JSON.parse(JSON.stringify(item))
|
|
|
|
+ if (Object.is(item.id, 1)) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (Object.is(this.unitList[index].flag, 'delete')) {
|
|
|
|
+ map.flag = 'check'
|
|
|
|
+ this.$set(this.unitList, index, map)
|
|
|
|
+ } else {
|
|
|
|
+ map.flag = 'delete'
|
|
|
|
+ this.$set(this.unitList, index, map)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 删除
|
|
|
|
+ deleteClick(item, index) {
|
|
|
|
+ if (Object.is(item.constKey, 1)) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (!item.constValue) {
|
|
|
|
+ this.unitList.splice(index, 1)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ delxiala({ id: this.unitList[index].id })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.getUnitList()
|
|
|
|
+ this.pleaseChoose = ''
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+}
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+.el-form {
|
|
|
|
+ padding: 0 15%;
|
|
|
|
+}
|
|
|
|
+/deep/.ws-info-table .el-form-item {
|
|
|
|
+ border-right: 1px solid #cdd2dc;
|
|
|
|
+ border-bottom: 1px solid #cdd2dc;
|
|
|
|
+}
|
|
|
|
+.readonly {
|
|
|
|
+ position: relative;
|
|
|
|
+}
|
|
|
|
+.readonly:after {
|
|
|
|
+ content: '*';
|
|
|
|
+ color: #ff2727;
|
|
|
|
+ position: absolute;
|
|
|
|
+ right: 8px;
|
|
|
|
+ z-index: 10;
|
|
|
|
+ top: 21%;
|
|
|
|
+ font-size: 20px;
|
|
|
|
+}
|
|
|
|
+.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;
|
|
|
|
+}
|
|
|
|
+/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: 15px 0px;
|
|
|
|
+}
|
|
|
|
+.wenzi {
|
|
|
|
+ width: 900px;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+}
|
|
|
|
+.wenzi h3 {
|
|
|
|
+ display: inline-block;
|
|
|
|
+ left: 10px;
|
|
|
|
+}
|
|
|
|
+.wenzi p {
|
|
|
|
+ display: inline-block;
|
|
|
|
+}
|
|
|
|
+.center {
|
|
|
|
+ width: 900px;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+}
|
|
|
|
+.el-form-item {
|
|
|
|
+ width: 50%;
|
|
|
|
+}
|
|
|
|
+.el-form-item__label {
|
|
|
|
+ text-align: center;
|
|
|
|
+}
|
|
|
|
+.ce {
|
|
|
|
+ width: 900px;
|
|
|
|
+ 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;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 控制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;
|
|
|
|
+}
|
|
|
|
+/deep/.ws-info-table[data-v-850a44a6] .el-form-item .el-form-item__label {
|
|
|
|
+ width: 130px;
|
|
|
|
+}
|
|
|
|
+</style>
|