Browse Source

前端仓库更新mxx

gjy 4 years ago
parent
commit
65ec34661c

+ 0 - 0
src/views/warehouse/warehouseManagementDelivery.vue


+ 1220 - 0
src/views/warehouse/warehouseManagementEdit.vue

@@ -0,0 +1,1220 @@
+<!--仓库修改-->
+<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"
+    >
+     
+      <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="buyer" class="readonly">
+          <ws-input
+            v-model="deptBudgetList.buyer"
+            placeholder="请输入负责人姓名"
+            maxlength="100"
+            size="small"
+          />
+        </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"
+          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="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="请输入仓位最大容量"
+            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="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="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="请输入仓位最大容量"
+            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="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="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="请输入仓位最大容量"
+            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-info-table>
+        <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-item label="仓库定位:" span="1" prop="seller" class="readonly">
+        
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="请输入地名,北京"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+      
+        
+    </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: 'warehouseManagementList' })
+    },
+    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;
+}
+.ws-info-table[data-v-850a44a6] .el-form-item{
+  width: 30%;
+}
+.readonly[data-v-096f9e7e]:after{
+  display: none;
+}
+.el-textarea__inner{
+  display: none;
+}
+.el-form[data-v-096f9e7e]{
+  margin-top: 50px;
+}
+.readonly{
+  width: 16%;
+}
+.readonly[data-v-19848e9a]:after{
+  display: none;
+}
+.ws-info-table[data-v-850a44a6]{
+  margin-top: 50px;
+}
+</style>

+ 8 - 8
src/views/warehouse/warehouseManagementList.vue

@@ -229,11 +229,11 @@ export default {
   methods: {
     //出库
     delivery(){
-
+          this.$router.push({ path: 'warehouseManagementDelivery' })
     },
     //入库
     warehousing(){
-
+         this.$router.push({ path: 'warehouseManagementPut' })
     },
     //待入库
     staywarehousing(){
@@ -259,12 +259,12 @@ export default {
       this.$router.push({ path: 'warehouseManagementEdit' })
     },
     handleDelete() {},
-    handlePut(){
-      this.$router.push({ path: 'warehouseManagementPut' })
-    },
-   handleDelivery(){
-      this.$router.push({ path: 'warehouseManagementDelivery' })
-   },
+  //   handlePut(){
+  //     this.$router.push({ path: 'warehouseManagementPut' })
+  //   },
+  //  handleDelivery(){
+  //     this.$router.push({ path: 'warehouseManagementDelivery' })
+  //  },
 
     handleEdit() {},
     handleDelete() {

+ 370 - 0
src/views/warehouse/warehouseManagementPut.vue

@@ -0,0 +1,370 @@
+// 入库登记
+<template>
+  <div class="container">
+    <el-row>
+      <el-col :span="20">
+        <h2 class="bg-left title">盘损当期仓损</h2>
+      </el-col>
+      <el-col :span="4" class="bg-right">
+        <el-button
+          class="bg-bottom"
+          type="primary"
+          size="small"
+          @click="returnWarehouse()"
+          >返回</el-button
+        >
+      </el-col>
+    </el-row>
+    <div class="center">
+      <h2>鲅鱼圈一号库  102仓位</h2>
+      <ws-form ref="deptBudgetList" :model="deptBudgetList">
+        <!-- 货名 -->
+        <ws-form-item label="货名" span="1"  class="readonly">
+          <ws-select
+           
+            placeholder=""
+            class="typeselect"
+            @change="selectpackingMethod"
+          >
+            <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="shippingType">
+          <ws-input
+            v-model="deptBudgetList.shippingType"
+            placeholder="当期累计入库量(吨)"
+            maxlength="20"
+            size="small"
+          />
+        </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"
+            placeholder="应余库存(吨)"
+            maxlength="120"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--实际库存(吨)-->
+        <ws-form-item
+          label="实际库存(吨)"
+          span="1"
+          prop="seller"
+          class="readonly"
+        >
+          <ws-input
+            v-model="deptBudgetList.seller"
+            placeholder="实际库存(吨)"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--损耗量(吨)-->
+        <ws-form-item label="损耗量(吨)" span="1" prop="sourceGoods">
+          <ws-input
+            v-model="deptBudgetList.sourceGoods"
+            placeholder="损耗量(吨)"
+            maxlength="20"
+            size="small"
+          />
+        </ws-form-item>
+
+        <!--库损比例-->
+        <ws-form-item label="库损比例" span="1" prop="contractNo">
+          <ws-input
+            v-model.number="deptBudgetList.buyerPhone"
+            placeholder="库损比例"
+            maxlength="100"
+            size="small"
+          />
+        </ws-form-item>
+        <p>注:提交成功后,当期实际库存将作为下一期的初始库存。</p>
+      </ws-form>
+
+      <div style="text-align: right; padding: 10px">
+        <el-button
+          class="bg-bottom-up"
+          type="primary"
+          size="small"
+          @click="submit()"
+          >提交</el-button
+        >
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getList,
+  export1,
+  editstatus,
+  billoperatehis,
+} from '@/model/contarct/index'
+import { downloadFile } from '@/utils/batchDown'
+import Pagination from '@/components/Pagination'
+import WsUpload from '@/components/WsUpload'
+import { dayjs, fmoney, EventBus } from 'base-core-lib'
+export default {
+  name: 'viewSpareMoney',
+  components: {
+    WsUpload,
+    Pagination,
+  },
+  watch: {
+    vesselId(val) {
+      this.getList()
+    },
+    isShow(val) {
+      this.showType = val
+    },
+  },
+  data() {
+    return {
+      //弹出框
+      dialogViewSpareMoney: false,
+      dialogApproveFormVisible: false,
+      // 船舶类型
+      monetaryKey: null,
+      // 表格显示数据
+      tableDate: [],
+      // 是否显示
+      showType: true,
+      // 年
+      year: '',
+      deptBudgetTotal: 0,
+      currentPage: 1,
+      pageSize: 10,
+      searchType: 1,
+      searchKeyWord: '',
+      contractType: 2,
+      startDate: null,
+      endDate: null,
+      // 提交类型
+      submitType: true,
+      selectpackingMethod: {},
+      size: 10,
+      compId: sessionStorage.getItem('ws-pf_compId'),
+      deptCircularPage: {},
+      packtypeList: {},
+      date: {
+        year: dayjs().format('YYYY'),
+        month: dayjs().format('MM'),
+      },
+      contractList: [],
+      deptBudgetList: {},
+      historyList: [],
+
+      pickerBeginDateBefore: {
+        disabledDate: (time) => {
+          return time.getTime() > Date.now()
+        },
+      },
+      accessoryTFs: false,
+    }
+  },
+  activated() {
+    //cg.viewBudget
+    //cg.viewSpareMoney
+    // this.getVesselData();
+    this.getList()
+    this.showType = this.isShow
+  },
+  methods: {
+    //返回按钮
+    returnWarehouse() {
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    //提交按钮
+    submit(){
+      this.$router.push({ path: 'warehouseManagementList' })
+    },
+    dateFormat(fmt, date) {
+      let ret
+      const opt = {
+        'Y+': date.getFullYear().toString(), // 年
+        'm+': (date.getMonth() + 1).toString(), // 月
+        'd+': date.getDate().toString(), // 日
+        'H+': date.getHours().toString(), // 时
+        // "M+": date.getMinutes().toString(),         // 分
+        // "S+": date.getSeconds().toString()          // 秒
+        // 有其他格式化字符需求可以继续添加,必须转化成字符串
+      }
+      for (let k in opt) {
+        ret = new RegExp('(' + k + ')').exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(
+            ret[1],
+            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
+          )
+        }
+      }
+      return fmt
+    },
+    handleClose() {
+      this.accessoryTFs = false
+    },
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+      this.pageSize = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      console.log(`当前页: ${val}`)
+      this.getList()
+    },
+    getList() {
+      getList({
+        compId: sessionStorage.getItem('ws-pf_compId'),
+        contractType: this.contractType,
+        currentPage: this.currentPage,
+        pageSize: this.pageSize,
+        searchType: this.searchType,
+        searchKeyWord: this.searchKeyWord,
+        startDate: this.startDate,
+        endDate: this.endDate,
+        contrPage: this.contrPage,
+      })
+        .toPromise()
+        .then((response) => {
+          for (var i = 0; i < response.records.length; i++) {
+            if (response.records[i].addressUrl != null) {
+              response.records[i].addressUrlArray = response.records[
+                i
+              ].addressUrl.split(',')
+            } else {
+              response.records[i].addressUrlArray = []
+            }
+          }
+          this.deptCircularPage.currentPage = response.current
+          this.deptCircularPage.pageSize = response.size
+          this.deptBudgetTotal = response.total
+          this.contractList = response
+        })
+    },
+    selecttaskType(e) {
+      for (var i = 0; i < this.taskTypeList.length; i++) {
+        if (this.taskTypeList[i].value == e) {
+          this.searchType = this.taskTypeList[i].type
+        }
+      }
+    },
+    fujian(row) {
+      if (
+        row.receiveAttachmentPath === null ||
+        row.receiveAttachmentPath === ''
+      ) {
+        EventBus.$emit(
+          'warning',
+          this.$t('system.noticeCircular.NoInformation')
+        )
+      } else {
+        this.accessoryTFs = true
+      }
+      this.appendixIdss = row.receiveAttachmentPath
+    },
+    handleExamine(row) {
+      this.$router.push({
+        name: 'salesContractExamine',
+        query: { id: row.id },
+      })
+    },
+
+    // 关闭 dialog时 处理文件url 初始化upload组件
+    handleCloe() {
+      this.dialogViewSpareMoney = false
+    },
+    history(row) {
+      console.log(row)
+      billoperatehis({ id: row.id })
+        .toPromise()
+        .then((response) => {
+          this.historyList = response
+        })
+    },
+    find() {
+      this.startDate = this.dateFormat('YYYY-mm-dd', this.value2[0])
+      this.endDate = this.dateFormat('YYYY-mm-dd', this.value2[1])
+      this.currentPage = 1
+      this.getList()
+    },
+    async exportlist() {
+      const { data } = await export1(
+        {
+          compId: sessionStorage.getItem('ws-pf_compId'),
+          contractType: this.contractType,
+          currentPage: this.currentPage,
+          pageSize: this.pageSize,
+          searchType: this.searchType,
+          searchKeyWord: this.searchKeyWord,
+          startDate: this.startDate,
+          endDate: this.endDate,
+        },
+        {},
+        { responseType: 'blob' }
+      ).toPromise()
+      downloadFile({
+        res: data,
+        fileName: `${
+          this.date.year + (this.date.month ? `-${this.date.month}` : '')
+        }_采购合同`,
+        type: 'xls',
+      })
+    },
+    // deletecontract(){},
+    //删除
+    approve() {},
+    listQuery() {},
+    total() {},
+    clearfiltQuery() {},
+    selectCrtDuty() {},
+  },
+}
+</script>
+<style lang="scss" scoped>
+.center {
+  position: relative;
+  margin-top: 100px;
+  top: 100px;
+  width: 40%;
+  height: 700px;
+  margin: 0 auto; 
+}
+/deep/.el-form-item__label {
+    width: 160px;
+}
+/deep/.el-input--small{
+  width: 70%;
+}
+.container .bg-bottom {
+  position: absolute;
+  float: right;
+  top: 15px;
+  right: 20px;
+}
+</style>