Parcourir la source

订单管理回复交期调整

qymljy il y a 3 semaines
Parent
commit
3f826ef63e

+ 118 - 3
src/HDrpManagement/orderManage/details/index.vue

@@ -180,7 +180,9 @@ export default {
       typeNew:'',
       fullscreenLoading:false,
       siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
-      tabNow:'tab0'
+      tabNow:'tab0',
+      jsYcDay:'',
+      jsDay:''
     }
   },
   provide () {
@@ -579,8 +581,12 @@ export default {
               },
             })
             this.tool.showMessage(res,async ()=>{
-              this.visible = false
-              this.queryMainData()
+              if (type == '审核' && (this.siteid == 'HY' || this.siteid == 'YOSTEST1')){
+                this.querySetDay()
+              }else {
+                this.visible = false
+                this.queryMainData()
+              }
             })
           }else {
             this.typeNew = type
@@ -730,6 +736,115 @@ export default {
         this.tool.showMessage(res,()=>{})
       }
       this.queryMainData()
+    },
+    /*审核回复交期*/
+    setDeliveryDay(days){
+      console.log(days,'获取填写的工作日')
+      let nowDate = new Date()
+      let year = nowDate.getFullYear()
+      let month = (nowDate.getMonth() + 1) > 10 ? nowDate.getMonth() + 1 : '0' + (nowDate.getMonth() + 1)
+      let date = nowDate.getDate() > 10 ? nowDate.getDate() : '0' +  nowDate.getDate()
+      let dateNew = year + '-' + month + '-' + date
+      const originalDate = new Date(dateNew);
+      const newDate = this.addDaysToDate(originalDate, Number(days));
+      this.holiday(dateNew,newDate.toISOString().split('T')[0])
+    },
+    addDaysToDate(date, days) {
+      const result = new Date(date); // 创建原始日期的副本
+      result.setDate(result.getDate() + days); // 添加 N 天
+      return result; // 返回新的日期对象
+    },
+    /*获取节假日数据*/
+    async holiday(now,date,days){
+      let dateNow = new Date(now)
+      let dateNow1 = new Date(date)
+      let monthB = (dateNow.getMonth() + 1) > 10 ? dateNow.getMonth() + 1 : '0' + (dateNow.getMonth() + 1)
+      let dateB = dateNow.getDate() > 10 ? dateNow.getDate() : '0' +  dateNow.getDate()
+      let monthE = (dateNow1.getMonth() + 1) > 10 ? dateNow1.getMonth() + 1 : '0' + (dateNow1.getMonth() + 1)
+      let dateE = dateNow1.getDate() > 10 ? dateNow1.getDate() : '0' +  dateNow1.getDate()
+      const res = await this.$api.requested({
+        id:20221215165504,
+        content:{
+          isExport: 0,
+          isnext: "0",
+          pageNumber: 1,
+          pageSize: 100,
+          where:{
+            begindate: monthB + '-' + dateB,
+            condition: "",
+            enddate: monthE + '-' + dateE
+          }
+        }
+      })
+      this.jsDay = res.total
+      if (this.jsDay >0){
+        const dateAdd = this.addDaysToDate(date, this.jsDay)
+        this.holidayE(now,dateAdd.toISOString().split('T')[0],Number(this.jsDay))
+      }else {
+        this.daysChange(date,days)
+      }
+    },
+    async holidayE(now,date,days){
+      let dateNow = new Date(now)
+      let dateNow1 = new Date(date)
+      let monthB = (dateNow.getMonth() + 1) > 10 ? dateNow.getMonth() + 1 : '0' + (dateNow.getMonth() + 1)
+      let dateB = dateNow.getDate() > 10 ? dateNow.getDate() : '0' +  dateNow.getDate()
+      let monthE = (dateNow1.getMonth() + 1) > 10 ? dateNow1.getMonth() + 1 : '0' + (dateNow1.getMonth() + 1)
+      let dateE = dateNow1.getDate() > 10 ? dateNow1.getDate() : '0' +  dateNow1.getDate()
+      const res = await this.$api.requested({
+        id:20221215165504,
+        content:{
+          isExport: 0,
+          isnext: "0",
+          pageNumber: 1,
+          pageSize: 100,
+          where:{
+            begindate: monthB + '-' + dateB,
+            condition: "",
+            enddate: monthE + '-' + dateE
+          }
+        }
+      })
+      this.jsYcDay = res.total - this.jsDay
+      if (this.jsYcDay >0){
+        const dateAdd = this.addDaysToDate(date, this.jsYcDay)
+        this.daysChange(dateAdd.toISOString().split('T')[0],days)
+      }else {
+        this.daysChange(date,days)
+      }
+    },
+    async daysChange(date,days){
+      const res = await this.$api.requested({
+        "id": 20230104143102,
+        "content": {
+          "sa_orderid": this.$route.query.id,
+          "deliverydate": date,
+          "deliverydays":days
+        },
+      })
+      this.queryMainData(this.$route.query.id)
+    },
+    async querySetDay(){
+      let result = ''
+      const param = {
+        "id": 20221109093902,
+        "content": {
+          "sa_orderid": this.$route.query.id, //订单ID
+          "pageNumber": 1,
+          "pageSize": 10000,
+          "where": {
+            "condition": ""
+          }
+        },
+      }
+      const res = await this.$api.requested(param)
+      if (res.code == 0){
+        this.tool.showMessage(res,()=>{})
+      }else {
+        result = res.data[0].deliverydays
+      }
+      console.log(result,'result')
+      this.setDeliveryDay(result)
     }
   },
   mounted () {

+ 668 - 0
src/HDrpManagement/orderManage/details/tabs/confirmList.vue

@@ -0,0 +1,668 @@
+<template>
+  <div>
+    <Table
+        height="calc(100vh - 500px)"
+        ref="multipleTable"
+        :layout="tablecols"
+        :data="tableData"
+        :custom="true" :checkbox="false" fixedName="rowno itemname itemno erpitemno model" redirect="left" :headerOptions="['needdate','deliverydate','deliverydays']">
+      <template v-slot:header="scope">
+        <div v-if="scope.column.columnname == 'needdate'">
+          <el-date-picker
+              style="width:150px"
+              v-if="data.status === '新建'"
+              v-model="value1"
+              value-format="yyyy-MM-dd"
+              slot="reference"
+              align="right"
+              type="date"
+              size="mini"
+              :placeholder="$t(`一键填写需求日期`)"
+              :picker-options="pickerOptions1"
+              @change="dateChangeNeed">
+          </el-date-picker>
+          <span v-else>{{$t(`需求日期`)}}</span>
+        </div>
+        <div v-if="scope.column.columnname == 'deliverydays'">
+          <el-input v-model="value3" type="number" size="mini" :placeholder="$t(`一键填写回复交期天数`)" @change="setDeliveryDay(value3)"></el-input>
+        </div>
+        <div v-if="scope.column.columnname == 'deliverydate'">
+          <div v-if="data.status === '审核' || data.status === '关闭' || siteid == 'HY' || siteid == 'YOSTEST1'">
+            <span>{{$t(`回复交期`)}}</span>
+          </div>
+          <div v-else>
+            <div v-if="siteid === 'NB'">
+              <el-date-picker
+                  style="width:180px"
+                  v-model="value2"
+                  value-format="yyyy-MM-dd"
+                  slot="reference"
+                  align="right"
+                  type="date"
+                  size="mini"
+                  :placeholder="$t(`一键回复交期`)"
+                  :picker-options="pickerOptions"
+                  @change="dateChange">
+              </el-date-picker>
+            </div>
+            <div v-else>
+              <el-date-picker
+                  style="width:180px"
+                  v-if="type === 'confirmdate'"
+                  v-model="value2"
+                  value-format="yyyy-MM-dd"
+                  slot="reference"
+                  align="right"
+                  type="date"
+                  size="mini"
+                  :placeholder="$t(`一键回复交期`)"
+                  :picker-options="pickerOptions"
+                  @change="dateChange">
+              </el-date-picker>
+              <span v-else>{{$t(`回复交期`)}}</span>
+            </div>
+          </div>
+
+        </div>
+      </template>
+      <template v-slot:customcol="scope">
+        <div v-if="scope.column.columnname === 'qty'">
+          <el-input-number :controls="true" controls-position='right'  v-if="data.status === '新建' && data.type !=='特殊订单'" size="mini" v-model="scope.column.data.qty" :min="scope.column.data.orderminqty" :step="scope.column.data.orderaddqty" :label="$t(`输入数量`)" @change="rowChange(scope.column.data,scope.$index)"></el-input-number>
+          <el-input-number  controls-position='right'  v-else-if="data.status === '新建' && data.type ==='特殊订单'" size="mini" :min="1" v-model="scope.column.data.qty" :label="$t(`输入数量`)" @change="rowChange(scope.column.data,scope.$index)"></el-input-number>
+          <span v-else>{{scope.column.data.qty}}</span>
+        </div>
+        <div v-else-if="scope.column.columnname === 'needdate'">
+          <el-date-picker
+              v-if="scope.column.data.delivery > 0 && data.status === '新建'"
+              v-model="scope.column.data.needdate"
+              type="date"
+              :placeholder="$t('选择日期')"
+              value-format="yyyy-MM-dd"
+              size="mini"
+              style="width:150px"
+              :picker-options="pickerOptions1"
+              @change="rowChange(scope.column.data)"
+              @focus="setPickerOptions1(scope.column.data)">
+          </el-date-picker>
+          <div v-else>
+            <p v-if="scope.column.data.delivery === 0 ">{{$t(`不管控交期`)}}</p>
+            <p v-else>{{scope.column.data.needdate}}</p>
+          </div>
+        </div>
+        <div v-else-if="scope.column.columnname === 'deliverydays'">
+          {{scope.column.data.deliverydays}}
+        </div>
+        <div v-else-if="scope.column.columnname === 'deliverydate'">
+          <div v-if="siteid == 'HY' || siteid == 'YOSTEST1'">
+            <p>{{scope.column.data.deliverydate}}</p>
+          </div>
+          <div v-else>
+            <div v-if="data.status === '审核' || data.status === '关闭'">
+              <div v-if="siteid === 'NB'">
+                <p >{{scope.column.data.deliverydate}}</p>
+              </div>
+              <div v-else>
+                <p v-if="scope.column.data.delivery == 0 ">{{$t(`不管控交期`)}}</p>
+                <p v-else>{{scope.column.data.deliverydate}}</p>
+              </div>
+            </div>
+            <div v-else>
+              <div v-if="siteid === 'NB'">
+                <el-date-picker
+                    v-if="scope.column.data.delivery > 0 && type === 'confirmdate'"
+                    v-model="scope.column.data.deliverydate"
+                    type="date"
+                    :placeholder="$t('选择日期')"
+                    value-format="yyyy-MM-dd"
+                    size="mini"
+                    style="width:150px"
+                    :picker-options="pickerOptions"
+                    @change="onDateChange(scope.column.data)"
+                    @focus="setPickerOptions(scope.column.data)">
+                </el-date-picker>
+                <div v-else>
+                  <el-date-picker
+                      v-if="scope.column.data.delivery == 0"
+                      v-model="scope.column.data.deliverydate"
+                      type="date"
+                      :placeholder="$t('选择日期')"
+                      value-format="yyyy-MM-dd"
+                      size="mini"
+                      style="width:150px"
+                      :picker-options="pickerOptions"
+                      @change="onDateChange(scope.column.data)"
+                      @focus="setPickerOptions(scope.column.data)">
+                  </el-date-picker>
+                  <p v-else>{{scope.column.data.deliverydate}}</p>
+                </div>
+              </div>
+              <div v-else>
+                <el-date-picker
+                    v-if="scope.column.data.delivery > 0 && type === 'confirmdate'"
+                    v-model="scope.column.data.deliverydate"
+                    type="date"
+                    :placeholder="$t('选择日期')"
+                    value-format="yyyy-MM-dd"
+                    size="mini"
+                    style="width:150px"
+                    :picker-options="pickerOptions"
+                    @change="onDateChange(scope.column.data)"
+                    @focus="setPickerOptions(scope.column.data)">
+                </el-date-picker>
+                <div v-else>
+                  <p v-if="scope.column.data.delivery == 0 ">{{$t(`不管控交期`)}}</p>
+                  <p v-else>{{scope.column.data.deliverydate}}</p>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div v-else-if="scope.column.columnname === 'unit'">
+          <el-tag size="mini" type="info" effect="plain">{{scope.column.data.unit}}</el-tag>
+        </div>
+        <div v-else-if="scope.column.columnname === 'marketprice'">
+          <p>¥&nbsp;{{tool.formatAmount(scope.column.data.marketprice,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'defaultprice'">
+          <el-input v-if="data.status === '新建' && data.type === '特殊订单'" v-model="scope.column.data.defaultprice"  :placeholder="$t(`输入订单备注`)" size="mini" @change="rowChange(scope.column.data,scope.$index)"></el-input>
+          <p v-else>¥&nbsp;{{tool.formatAmount(scope.column.data.defaultprice,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'defaultamount'">
+          <p>¥&nbsp;{{tool.formatAmount(scope.column.data.defaultprice * scope.column.data.qty,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'price'">
+          <p>¥&nbsp;{{tool.formatAmount(scope.column.data.price,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'invoiceamount'">
+          <p>¥&nbsp;{{tool.formatAmount(scope.column.data.invoiceamount,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'writeoffamount'">
+          <p>¥&nbsp;{{tool.formatAmount(scope.column.data.writeoffamount,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'aftersalesmagamount'">
+          <p>¥&nbsp;{{tool.formatAmount(scope.column.data.aftersalesmagamount,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'amount'">
+          <p style="color:red;font-weight:500">¥&nbsp;{{tool.formatAmount(scope.column.data.amount,2)}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'afterrebateprice'">
+          <p>¥&nbsp;{{scope.column.data.afterrebateprice?tool.formatAmount(scope.column.data.afterrebateprice,2):'0.00'}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'afterrebateamount'">
+          <p>¥&nbsp;{{scope.column.data.afterrebateamount?tool.formatAmount(scope.column.data.afterrebateamount,2):'0.00'}}</p>
+        </div>
+        <div v-else-if="scope.column.columnname === 'stockname'">
+          <el-select v-model="scope.column.data.stockno" size="mini" @visible-change="queryStock(scope.column.data)" :placeholder="$t('请选择')">
+            <el-option
+                v-for="item in stockOptions"
+                :key="item.WAREHOUSE"
+                :label="item.WAREHOUSE"
+                :value="item.WAREHOUSE"
+                @click.native="stockChange(item,scope.column.data,scope.$index)">
+              <span>{{ item.WAREHOUSE }}</span>
+              <div style="float: right; color: #8492a6; font-size: 13px">{{$t(`数量`)}}:{{item.QTY}}{{$t(`仓位`)}}:{{ item.LOCATION }}/{{$t(`批号`)}}:{{ item.LOT }}</div>
+            </el-option>
+          </el-select>
+        </div>
+        <div v-else-if="scope.column.columnname === 'position'">
+          <el-input size="mini" readonly :value="$t(scope.column.data.position)" @input="rowChange(scope.column.data,scope.$index)" :placeholder="$t(`输入仓位`)"></el-input>
+        </div>
+        <div v-else-if="scope.column.columnname === 'batchno'">
+          <el-input size="mini" readonly :value="scope.column.data.batchno" @input="rowChange(scope.column.data,scope.$index)" :placeholder="$t(`输入批号`)"></el-input>
+        </div>
+        <div v-else-if="scope.column.columnname === 'remarks'">
+          <el-input v-model="scope.column.data.remarks" :placeholder="$t(`输入订单备注`)" size="mini" @change="rowChange(scope.column.data,scope.$index)"></el-input>
+        </div>
+        <div v-else-if="scope.column.columnname === 'nominalpressure'">
+          {{tool.nominalPressureSet(scope.column.data.nominalpressure)}}
+        </div>
+        <div v-else-if="scope.column.columnname === 'bookedqty'">
+          {{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:scope.column.data[scope.column.columnname] == 0?'0':'--'}}
+        </div>
+        <div v-else-if="scope.column.columnname === 'logisticsqty'">
+          {{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:scope.column.data[scope.column.columnname] == 0?'0':'--'}}
+        </div>
+        <div v-else-if="scope.column.columnname === 'undeliqty'">
+          {{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:scope.column.data[scope.column.columnname] == 0?'0':'--'}}
+        </div>
+        <div v-else-if="scope.column.columnname === 'aftersalesmagqty'">
+          {{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:scope.column.data[scope.column.columnname] == 0?'0':'--'}}
+        </div>
+        <div v-else-if="scope.column.columnname === 'unlogisticsqty'">
+          {{scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname]:scope.column.data[scope.column.columnname] == 0?'0':'--'}}
+        </div>
+        <div v-else>{{scope.column.columnname === 'operation' || scope.column.data[scope.column.columnname]?scope.column.data[scope.column.columnname] : '--'}}</div>
+      </template>
+      <template v-slot:opreation="scope">
+<!--        <el-button v-if="data.status == '新建'" type="text" size="mini" @click="deleteOrderProduct(scope.data)">{{$t('删 除')}}</el-button>-->
+      </template>
+    </Table>
+    <div style="margin-top:16px;text-align:right">
+      <el-pagination
+          background
+          small
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-size="param.content.pageSize"
+          layout="total, prev, pager, next, jumper"
+          :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+import Table from './table'
+export default {
+  name: "confirmList",
+  props:['data','type'],
+  components:{
+    Table
+  },
+  data () {
+    return {
+      tableData:[],
+      tablecols:[],
+      param:{
+        "id": 20221109093902,
+        "content": {
+          "sa_orderid": this.$route.query.id, //订单ID
+          "pageNumber": 1,
+          "pageSize": 10000,
+          "where": {
+            "condition": ""
+          }
+        },
+      },
+      pickerOptions1: {
+        disabledDate(time) {
+          return time.getTime() < new Date().getTime();
+        },
+      },
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() < (new Date().getTime() - 24 * 60 * 60 * 1000);
+        },
+      },
+      total:0,
+      currentPage:0,
+      time: null,
+      value1:'',
+      value2:'',
+      value3:'',
+      stockOptions:[],
+      totalPage:0,
+      progress:0,
+      progressVisible:false,
+      siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
+      jsDay:'',
+      jsYcDay:''
+    }
+  },
+  methods:{
+    async listData () {
+      this.value3 = ''
+      this.jsYcDay = ''
+      this.jsDay = ''
+      this.param.content.sa_orderid = this.$route.query.id
+      const res = await this.$api.requested(this.param)
+      this.tableData = res.data.map(e=>{
+        e.newvalue = this.siteid === 'HY'?'':0
+        return e
+      })
+      // this.tableData = res.data.map(item=>{
+      //   item.deliveryday = this.tool.confirmSet(item.deliverydate)
+      //   return item
+      // })
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+    stockChange (item,row,index) {
+      row.stockno = item.WAREHOUSE
+      row.position = item.LOCATION
+      row.batchno = item.LOT
+      this.$set(this.tableData,index,row)
+      this.updateOrder({
+        "sa_orderid": this.data.sa_orderid, //订单ID
+        "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+        "sa_contractid": this.data.contacts.contactsid, //合同ID
+        "type": this.data.type, //订单类型
+        "items": this.tableData
+      })
+    },
+    rowChange (val,index) {
+      if (this.data.type != '特殊订单') {
+        if (val.qty > val.orderminqty){
+          if ((val.qty-val.orderminqty)/val.orderaddqty > 0){
+            let k = ((val.qty-val.orderminqty)/val.orderaddqty).toFixed(0)
+            val.qty = k * val.orderaddqty + val.orderminqty
+          }
+        }
+      }
+      let that = this
+      if(this.time !== null){
+        clearTimeout(this.time);
+      }
+      this.newData = val
+      this.time = setTimeout(() => {
+        val.amount = val.qty * val.price
+        this.$set(this.tableData,index,val)
+        that.updateOrder({
+          "sa_orderid": this.data.sa_orderid, //订单ID
+          "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+          "sa_contractid": this.data.contacts.contactsid, //合同ID
+          "type": this.data.type, //订单类型
+          "items": this.tableData
+        })
+      },1000)
+    },
+    onDateChange (val){
+      let that = this
+      that.updateOrder({
+        "sa_orderid": this.data.sa_orderid, //订单ID
+        "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+        "sa_contractid": this.data.contacts.contactsid, //合同ID
+        "type": this.data.type, //订单类型
+        "items": this.tableData
+      })
+    },
+    async updateOrder (val,fn) {
+      console.log(this.typeNew,'shuchu1111***')
+      const res  = await this.$api.requested({
+        "id": 20221109093602,
+        "content": val
+      })
+      this.time = null
+      if (res.code == 1) {
+        this.$emit('onSuccess')
+        // this.listData()
+      } else {
+        this.$message({
+          message:res.data + ':' + res.msg,
+          type:'error'
+        })
+      }
+
+    },
+    async dateChangeNeed(val){
+      const res = await this.$api.requested({
+        "id": 20230104143802,
+        "content": {
+          "sa_orderid": this.data.sa_orderid,
+          "needdate": this.value1
+        },
+      })
+      this.listData(this.param.content.pageNumber = 1)
+    },
+    setPickerOptions (val) {
+      this.pickerOptions = {
+        disabledDate(time) {
+          return time.getTime() < new Date().getTime();
+        },
+      }
+    },
+    async setPickerOptions1 (val) {
+      let newData = new Date()
+      newData = newData.setDate(newData.getDate() + (val.delivery) + this.flag )
+      let year = new Date(newData).getFullYear()
+      let month = new Date(newData).getMonth() + 1
+      let day = new Date(newData).getDate()
+      let param = {
+        "id":20231008134404,
+        "content":{
+          "isExport":0,
+          "isnext":'0',
+          "pageNumber":1,
+          "pageSize":100,
+          "where":{
+            "begindate":year + '-' + month + '-' + day,
+            "enddate":year + '-' + month + '-' + day
+          }
+        },
+      }
+      const res = await this.$api.requested(param)
+      if (res.data.length === 0){
+        this.flag = 0
+        newData = new Date(newData)
+        newData = newData.setDate(newData.getDate() - 1)
+        this.pickerOptions1 = {
+          disabledDate(time) {
+            return time.getTime() < newData;
+          },
+        }
+      }else {
+        this.flag = this.flag + 1
+        this.setPickerOptions1(val)
+      }
+
+    },
+    async dateChange (row) {
+      this.tableData = this.tableData.filter(e=>{
+        if (e.delivery > 0) {
+          e.deliverydate = this.value2
+        }
+        return e
+      })
+      const res = await this.$api.requested({
+        "id": 20230104143102,
+        "content": {
+          "sa_orderid": this.$route.query.id,
+          "deliverydate": this.value2
+        },
+      })
+      this.listData(this.param.content.pageNumber = 1)
+    },
+    selectionChange (selection) {
+      this.$emit('select',selection)
+    },
+    // 订单添加商品
+    async onConfirm (data,isupload) {
+      if (isupload) {
+        const res = await this.$api.requested({
+          "id": 20221109093602,
+          "content": {
+            "sa_orderid": this.$route.query.id, //订单ID
+            "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+            "type": this.data.type, //订单类型
+            "items": data.map(e=>{
+              return {
+                sa_orderitemsid:0,
+                itemid:e.itemid,
+                qty:e.orderminqty,
+                needdate:e.deliverydate
+              }
+            })
+          },
+        })
+      }
+      this.listData(this.param.content.pageNumber = 1)
+      this.$emit('onSuccess')
+    },
+    async queryStock (val) {
+      const res = await this.$api.requested({
+        "id": 20230228193201,
+        "content": {
+          "itemid": val.itemid,
+          "qty": val.qty
+        }
+
+      })
+      this.stockOptions = res.data
+    },
+    async queryBasicInfo () {
+      const res = await this.$api.requested({
+        "id":20220920084001,
+        "content":{
+          sys_enterpriseid:this.data.sys_enterpriseid
+        },
+      })
+      this.freefreightamount = res.data.freefreightamount?res.data.freefreightamount:0
+    },
+    /*批量添加商品*/
+    async addProducts(data){
+      let items = data.map(item => {
+        return {
+          sa_orderitemsid:0,
+          itemid:item.itemid,
+          qty:item.orderminqty,
+          needdate:item.deliverydate
+        }
+      })
+      const res = await this.$api.requested({
+        "id": 20221109093602,
+        "content": {
+          "sa_orderid": this.$route.query.id, //订单ID
+          "sys_enterpriseid": this.data.sys_enterpriseid, //企业ID
+          "type": this.data.type, //订单类型
+          "items": items
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.listData(this.param.content.pageNumber = 1)
+        this.$refs.addProduct.listData()
+        this.$emit('onSuccess')
+      })
+    },
+    /*获取节假日数据*/
+    async holiday(now,date,days){
+      let dateNow = new Date(now)
+      let dateNow1 = new Date(date)
+      let monthB = (dateNow.getMonth() + 1) > 10 ? dateNow.getMonth() + 1 : '0' + (dateNow.getMonth() + 1)
+      let dateB = dateNow.getDate() > 10 ? dateNow.getDate() : '0' +  dateNow.getDate()
+      let monthE = (dateNow1.getMonth() + 1) > 10 ? dateNow1.getMonth() + 1 : '0' + (dateNow1.getMonth() + 1)
+      let dateE = dateNow1.getDate() > 10 ? dateNow1.getDate() : '0' +  dateNow1.getDate()
+      const res = await this.$api.requested({
+        id:20221215165504,
+        content:{
+          isExport: 0,
+          isnext: "0",
+          pageNumber: 1,
+          pageSize: 100,
+          where:{
+            begindate: monthB + '-' + dateB,
+            condition: "",
+            enddate: monthE + '-' + dateE
+          }
+        }
+      })
+      this.jsDay = res.total
+      if (this.jsDay >0){
+        const dateAdd = this.addDaysToDate(date, this.jsDay)
+        this.holidayE(now,dateAdd.toISOString().split('T')[0],Number(this.jsDay))
+      }else {
+        this.daysChange(date,days)
+      }
+    },
+    async holidayE(now,date,days){
+      let dateNow = new Date(now)
+      let dateNow1 = new Date(date)
+      let monthB = (dateNow.getMonth() + 1) > 10 ? dateNow.getMonth() + 1 : '0' + (dateNow.getMonth() + 1)
+      let dateB = dateNow.getDate() > 10 ? dateNow.getDate() : '0' +  dateNow.getDate()
+      let monthE = (dateNow1.getMonth() + 1) > 10 ? dateNow1.getMonth() + 1 : '0' + (dateNow1.getMonth() + 1)
+      let dateE = dateNow1.getDate() > 10 ? dateNow1.getDate() : '0' +  dateNow1.getDate()
+      const res = await this.$api.requested({
+        id:20221215165504,
+        content:{
+          isExport: 0,
+          isnext: "0",
+          pageNumber: 1,
+          pageSize: 100,
+          where:{
+            begindate: monthB + '-' + dateB,
+            condition: "",
+            enddate: monthE + '-' + dateE
+          }
+        }
+      })
+      this.jsYcDay = res.total - this.jsDay
+      if (this.jsYcDay >0){
+        const dateAdd = this.addDaysToDate(date, this.jsYcDay)
+        this.daysChange(dateAdd.toISOString().split('T')[0],this.value3)
+      }else {
+        this.daysChange(date,this.value3)
+      }
+    },
+    async daysChange(date,days){
+      this.tableData = this.tableData.filter(e=>{
+        e.deliverydays = this.value3
+        return e
+      })
+      const res = await this.$api.requested({
+        "id": 20230104143102,
+        "content": {
+          "sa_orderid": this.$route.query.id,
+          "deliverydate": date,
+          "deliverydays":this.value3
+        },
+      })
+      this.listData(this.param.content.pageNumber = 1)
+    },
+    setDeliveryDay(val){
+      let nowDate = new Date()
+      let year = nowDate.getFullYear()
+      let month = (nowDate.getMonth() + 1) > 10 ? nowDate.getMonth() + 1 : '0' + (nowDate.getMonth() + 1)
+      let date = nowDate.getDate() > 10 ? nowDate.getDate() : '0' +  nowDate.getDate()
+      let dateNew = year + '-' + month + '-' + date
+      const originalDate = new Date(dateNew);
+      const newDate = this.addDaysToDate(originalDate, Number(val));
+      this.holiday(dateNew,newDate.toISOString().split('T')[0])
+    },
+    addDaysToDate(date, days) {
+      const result = new Date(date); // 创建原始日期的副本
+      result.setDate(result.getDate() + days); // 添加 N 天
+      return result; // 返回新的日期对象
+    }
+  },
+  mounted () {
+    this.flag = 0
+    this.siteid = JSON.parse(sessionStorage.getItem('active_account')).siteid
+    this.listData(this.param.content.pageNumber = 1)
+    // this.queryStock()
+    // this.columnTitle  = []
+    setTimeout(() => {
+      /* 处理宁波站点 */
+      let siteid = JSON.parse(sessionStorage.getItem('active_account')).siteid
+      if ((siteid === 'NB' || siteid === 'HY') && this.data.type === '特殊订单' && this.data.typemx === '样品') {
+        this.tablecols = this.tool.tabelCol(this.$route.name).productTable.tablecols
+      } else {
+        this.tablecols = this.tool.tabelCol(this.$route.name).productTable.tablecols.filter(item => {
+          if (item.columnname != 'stockname' && item.columnname != 'position' && item.columnname != 'batchno') return item
+        })
+
+      }
+
+      // this.$refs.multipleTable.$refs.table.$children.forEach(obj => {
+      //   let columnChild = {'columnname':obj.prop,'filter':0,'rowindex':'','sequence':'','title':obj.label,'width':obj.width}
+      //   // 存到columnTitle数组中
+      //   this.columnTitle.push(columnChild)
+      // })
+    },1000)
+  },
+  created() {
+    // this.tablecolsAdd = this.tool.tabelCol(this.$route.name).productTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+body .el-table th.gutter{
+  display: table-cell!important;
+}
+/deep/ .el-input.is-disabled .el-input__inner{
+  color: #666666;
+}
+/deep/.el-textarea.is-disabled .el-textarea__inner {
+  color: #666666;
+}
+</style>

+ 2 - 2
src/HDrpManagement/orderManage/modules/confirmDate.vue

@@ -9,7 +9,7 @@
     :show-close="false"
     :withHeader="false">
     <div class="drawer__panel">
-      <product-list ref="prolist" :data="data" :type="'confirmdate'"></product-list>
+      <productList ref="prolist" :data="data" :type="'confirmdate'"></productList>
     </div>
     <div class="fixed__btn__panel">
       <el-button size="small" @click="drawer = false" class="normal-btn-width">{{$t('取 消')}}</el-button>
@@ -21,7 +21,7 @@
 
 <script>
 import previewImage from '@/components/previewImage/index.vue'
-import productList from '../details/tabs/productlist.vue'
+import productList from '../details/tabs/confirmList.vue'
 export default {
   props:['data'],
   components:{

+ 8 - 0
src/utils/tool.js

@@ -355,6 +355,14 @@ export default {
     return newQty
   },
 
+  /*回复交期*/
+  confirmSet(date){
+    console.log(date,'输出日期')
+    let days
+    days = 7
+    return days
+  }
+
 
 
 }