zouyu
2023-12-02 cdd1902016ebdeab0a0615693e36b66450202765
src/views/plan/productionschedul/index.vue
@@ -3,7 +3,7 @@
    <basic-container>
      <el-row>
        <el-col :span="12">
          <div style="height:80vh">
          <div style="height:80vh;padding: 0px 10px;">
            <avue-crud :data="tableData" ref="crud" :option="option" :span-method="spanMethod" 
            @refresh-change="getData"
            :page="page" 
@@ -20,7 +20,7 @@
            <el-card>
              <div slot="header" class="clearfix">
                <span>调度时间线</span>
                <el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
                <el-button v-if="scheduleList.length>0" @click="openEditDialog" style="float: right; padding: 3px 0" type="text">编辑</el-button>
              </div>
              <div style="height:70vh;overflow-y: scroll;">
                <el-timeline>
@@ -28,10 +28,15 @@
                      placement="top"
                      v-for="(item, index) in scheduleList"
                      :key="index"
                      :timestamp="item.planTime">
                        <el-card style="width:95%;margin: 0;padding: 0px 10px;">
                          <p style="font-weight: bold;">{{item.title}}</p>
                          <p>实际时间: {{ item.actualTime }}</p>
                      :timestamp="item.title">
                        <el-card shadow="hover" :body-style="{margin: '0',padding:'0px 20px 0px 20px'}" style="width:90%;">
                          <p>
                            <span style="font-weight: bold;">计划时间: </span>
                            {{item.planTime}}
                          </p>
                          <p>
                            <span style="font-weight: bold;">实际时间: </span>
                            {{ item.actualTime }}</p>
                        </el-card>
                    </el-timeline-item>
                </el-timeline>
@@ -41,6 +46,57 @@
        </el-col>
      </el-row>
    </basic-container>
    <el-dialog
    title="编辑时间线"
    :visible.sync="dialogVisible"
    top="5vh"
    width="50%"
    :before-close="handleClose">
      <div style="height:60vh;overflow-y: scroll;">
        <el-timeline>
          <el-timeline-item
            placement="top"
            v-for="(item, index) in scheduleEditList"
            :key="index"
            :timestamp="item.title">
              <el-card shadow="hover" style="width:90%" :body-style="{padding:'20px 20px 5px 20px'}">
                <el-row>
                  <el-col :span="3">
                    <p style="font-weight: bold;line-height: 50%;">计划时间: </p>
                  </el-col>
                  <el-col :span="21">
                    <el-date-picker
                      style="width:100%"
                      v-model="item.planTime"
                      value-format="yyyy-MM-dd HH:mm:ss"
                      type="datetime"
                      placeholder="选择日期时间">
                    </el-date-picker>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col :span="3">
                    <p style="font-weight: bold;line-height: 50%;">实际时间: </p>
                  </el-col>
                  <el-col :span="21">
                    <el-date-picker
                      style="width:100%"
                      v-model="item.actualTime"
                      value-format="yyyy-MM-dd HH:mm:ss"
                      type="datetime"
                      placeholder="选择日期时间">
                    </el-date-picker>
                  </el-col>
                </el-row>
              </el-card>
          </el-timeline-item>
        </el-timeline>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="confirmEditSchedul">确 定</el-button>
      </span>
  </el-dialog>
  </div>
</template>
@@ -48,6 +104,7 @@
import {
  fetchScheduleList,
  fetchScheduleById,
  fillTime
} from '@/api//plan/productionschedul'
import TableForm from './template-form'
import ttable from '@/views/common/ztt-table.vue'
@@ -55,7 +112,9 @@
export default {
    data() {
    return {
      dialogVisible: false,
      scheduleList: [],
      scheduleEditList: [],
      typeOptions: [],
      multipleSelection: [],
      loading: true,
@@ -221,6 +280,53 @@
  beforeDestroy() {
  },
  methods: {
    openEditDialog(){
      this.scheduleEditList = JSON.parse(JSON.stringify(this.scheduleList))
      this.dialogVisible = true
    },
    confirmEditSchedul(){
      let data = this.scheduleEditList
      let orderObj = this.multipleSelection[0]
      console.log("data---",data)
      console.log("orderObj-----",orderObj)
      let obj = {
        "documentActualTime": data[0].actualTime,
        "documentPlanTime": data[0].planTime,
        "bomActualTime": data[1].actualTime,
        "bomPlanTime": data[1].planTime,
        "contractActualTime": data[2].actualTime,
        "contractPlanTime": data[2].planTime,
        "arrivalActualTime": data[3].actualTime,
        "arrivalPlanTime": data[3].planTime,
        "checkActualTime": data[4].actualTime,
        "checkPlanTime": data[4].planTime,
        "productActualTime": data[5].actualTime,
        "productPlanTime": data[5].planTime,
        "id": orderObj.id,
        "contractNo": orderObj.contractNo,
        "customerName": orderObj.customerName,
        "deliveryDate": orderObj.deliveryDate,
        "orderTime": orderObj.orderTime,
        "productType": orderObj.productType,
        "projectName": orderObj.projectName
      }
      console.log("obj----->>>",obj);
      fillTime(obj).then(res=>{
        if(res.status===200){
          this.$message.success("更新成功")
        }else{
          this.$message.error("更新失败")
        }
        this.getScheduleById(orderObj.id)
        this.dialogVisible = false
      }).catch(error=>{
        console.log(error);
      })
    },
    handleClose(done){
      done()
    },
    initTimeLine(data){
      this.scheduleList = []
      if(data){
@@ -270,10 +376,14 @@
    },
    selectionRow(val){
      if (val.length > 1) {
         const preVal = val.shift();
         this.$refs.crud.toggleRowSelection(preVal, false);
       }
       this.getScheduleById(val[0].id)
        const preVal = val.shift();
        this.$refs.crud.toggleRowSelection(preVal, false);
      }
      else{
        this.scheduleList=[]
      }
      this.multipleSelection = val
      this.getScheduleById(val[0].id)
    },
    formatDate(row, cellValue){
      if (cellValue) {