zouyu
2024-03-06 6ac64fea29fa0df01f9d0e70372e086de9725aa1
src/views/plan/customerorder/index.vue
@@ -8,6 +8,7 @@
        :prelang="prelang"
        :options="options"
        :ajaxFun="ajaxFun"
        :toolbarMaxLength="4"
        :paramArr="type"
        ref="customerOrderTable"
      >
@@ -24,8 +25,9 @@
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="(item,index) in documentTagArr"
                :disabled="item.disabled">
                v-for="(item, index) in documentTagArr"
                :disabled="item.disabled"
              >
                {{ item.label }}
              </el-dropdown-item>
            </el-dropdown-menu>
@@ -43,17 +45,18 @@
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="(item,index) in commitStateTagArr"
                v-for="(item, index) in commitStateTagArr"
                :disabled="item.disabled"
                >{{ item.label }}</el-dropdown-item
              >
            </el-dropdown-menu>
          </el-dropdown>
          <el-button
            style="margin-left:10px;"
            style="margin-left: 10px"
            type="primary"
            @click="()=>exportDialogVisible=true"
            >导出台账</el-button>
            @click="() => (exportDialogVisible = true)"
            >导出台账</el-button
          >
        </template>
      </ttable>
      <!-- 弹窗, 日期选择 -->
@@ -119,7 +122,7 @@
          <div>
            <div>
              <el-upload
                style="margin-left:8px;display: inline;"
                style="margin-left: 8px; display: inline"
                class="upload-demo"
                drag
                :headers="headers"
@@ -140,7 +143,7 @@
                <div class="el-upload__tip" slot="tip">
                  只能上传xlsx/xls文件,且不超过10M<el-button
                    type="text"
                    style="font-size:12px;"
                    style="font-size: 12px"
                    @click="downDataTemplate"
                    >下载模板</el-button
                  >
@@ -153,25 +156,36 @@
        <span slot="footer" class="dialog-footer"> </span>
      </el-dialog>
      <!-- 导出 -->
      <el-dialog title="导出台账" :visible.sync="exportDialogVisible" width="20%">
        <div style="display: flex;justify-content: center">
          <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="exportForm" class="l-mes">
      <el-dialog
        title="导出台账"
        :visible.sync="exportDialogVisible"
        width="20%"
      >
        <div style="display: flex; justify-content: center">
          <el-form
            :model="dataForm"
            :inline="true"
            :rules="dataRule"
            ref="exportForm"
            class="l-mes"
          >
            <el-form-item label="日期" prop="exportTime">
              <el-date-picker
                v-model="dataForm.exportTime"
                type="datetime"
                style="width:100%"
                style="width: 100%"
                placeholder="选择日期时间"
                value-format="yyyy-MM-dd HH:mm:ss">
                value-format="yyyy-MM-dd HH:mm:ss"
              >
              </el-date-picker>
            </el-form-item>
          </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="exportDialogVisible=false">取 消</el-button>
        <el-button type="primary" @click="exportStandBook">确 定</el-button>
      </span>
    </el-dialog>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="exportDialogVisible = false">取 消</el-button>
          <el-button type="primary" @click="exportStandBook">确 定</el-button>
        </span>
      </el-dialog>
      <!-- 箱码信息导出 -->
      <el-dialog
        title="箱码信息导出"
@@ -184,7 +198,7 @@
          ref="packageExportForm"
          label-width="70px"
          class="l-mes"
          style="padding:0 20px"
          style="padding: 0 20px"
        >
          <el-form-item label="订单号">
            <el-input v-model="packageExport.form.customerOrderNo" disabled />
@@ -224,14 +238,21 @@
    </basic-container>
    <el-dialog title="选择同步日期" :visible.sync="syncDateVisible" width="20%">
      <div style="display: flex;justify-content: center">
        <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="dataForm" class="l-mes">
      <div style="display: flex; justify-content: center">
        <el-form
          :model="dataForm"
          :inline="true"
          :rules="dataRule"
          ref="dataForm"
          class="l-mes"
        >
          <el-form-item label="日期">
            <el-date-picker
              v-model="dataForm.selectTime"
              type="datetime"
              placeholder="选择日期时间"
              value-format="yyyy-MM-dd HH:mm:ss">
              value-format="yyyy-MM-dd HH:mm:ss"
            >
            </el-date-picker>
          </el-form-item>
        </el-form>
@@ -241,10 +262,100 @@
        <el-button type="primary" @click="startSync">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog
      title="已关联销售订单"
      :visible.sync="showInterrelatedOrderDialog"
      width="60%"
    >
      <el-table border height="100" :data="interrelatedOrderData">
        <el-table-column
          type="index"
          align="center"
          label="序号"
        ></el-table-column>
        <el-table-column
          prop="contractNo"
          show-overflow-tooltip
          align="center"
          label="合同编号"
        ></el-table-column>
        <el-table-column
          prop="entityName"
          show-overflow-tooltip
          align="center"
          label="工程名称"
        ></el-table-column>
        <el-table-column
          prop="sourceId"
          show-overflow-tooltip
          align="center"
          label="添加来源"
        >
          <template scope="scope">
            <el-tag v-if="scope.row.sourceId == 0" type="success">同步</el-tag>
            <el-tag v-if="scope.row.sourceId == 1" type="info">手动</el-tag>
          </template>
        </el-table-column>
        <el-table-column
          prop="placeOrderDate"
          show-overflow-tooltip
          align="center"
          label="下单日期"
        ></el-table-column>
        <el-table-column
          prop="customerName"
          show-overflow-tooltip
          align="center"
          label="客户名称"
        ></el-table-column>
        <el-table-column
          prop="coState"
          min-width="100"
          show-overflow-tooltip
          align="center"
          label="销售订单状态"
        ></el-table-column>
        <el-table-column
          prop="partNo"
          show-overflow-tooltip
          align="center"
          label="产品编号"
        ></el-table-column>
        <el-table-column
          prop="productName"
          show-overflow-tooltip
          align="center"
          label="产品名称"
        ></el-table-column>
        <el-table-column
          prop="productType"
          show-overflow-tooltip
          align="center"
          label="隶属品牌"
        ></el-table-column>
        <el-table-column
          prop="otcUnit"
          show-overflow-tooltip
          align="center"
          label="单位"
        ></el-table-column>
        <el-table-column
          prop="buyQtyDue"
          show-overflow-tooltip
          align="center"
          label="数量"
        ></el-table-column>
      </el-table>
    </el-dialog>
  </div>
</template>
<script>
import {
  interrelatedOrder,
  getInterrelatedOrder,
  checkHanderOrder,
} from '@/api/plan/customerOrderInterrelated'
import ConfirmPullCustomerorder from './confirm-pull-customerorder'
import TableForm from './customerorder-form'
import TableFormDEesc from './customerorder-form-desc'
@@ -273,6 +384,7 @@
  exportCustomerOrderSplit,
  syncOrder,
  dropByContractNo,
  downloadProduct,
  downloadWordFile
} from '../../../api/plan/customerorder'
import DocumentTable from '@/views/common/document.vue'
@@ -285,13 +397,18 @@
export default {
  data() {
    return {
      interrelatedOrderId: null,
      interrelatedOrderData: [],
      showInterrelatedOrderDialog: false,
      uniqueStateArr: [],
      dataForm: {
        selectTime: null,
        exportTime: null
        exportTime: null,
      },
      dataRule: {
        exportTime:[{required:true,message:'导出日期不能为空',trigger:'change'}]
        exportTime: [
          { required: true, message: '导出日期不能为空', trigger: 'change' },
        ],
      },
      pickerOptions: {
        onPick: ({ maxDate, minDate }) => {
@@ -309,7 +426,7 @@
            )
          }
          return false
        }
        },
      },
      exportDialogVisible: false,
      syncDateVisible: false,
@@ -322,58 +439,58 @@
          label: '标记零件待选',
          command: '01partUnCheck',
          disabled: false,
          permitArr: []
          permitArr: [],
        },
        {
          label: '标记工艺文件待选',
          command: '02technologyUnCheck',
          disabled: false,
          permitArr: []
          permitArr: [],
        },
        {
          label: '标记待计划',
          command: '03plan',
          disabled: false,
          permitArr: []
          permitArr: [],
        },
        {
          label: '标记已下发',
          command: '04planed',
          disabled: false,
          permitArr: []
          permitArr: [],
        },
        {
          label: '标记已作废',
          command: '05cancel',
          disabled: false,
          permitArr: []
        }
          permitArr: [],
        },
      ],
      documentTagArr: [
        {
          label: '关联工艺文件',
          command: 'RELEVANCE',
          disabled: false
          disabled: false,
        },
        {
          label: '移除工艺文件',
          command: 'NORELEVANCE',
          disabled: false
        }
          disabled: false,
        },
      ],
      commitStateTagArr: [
        {
          label: '标记通过',
          command: 'PROCESSED',
          disabled: false,
          permitArr: ['01draft']
          permitArr: ['01draft'],
        },
        {
          label: '标记取消',
          command: 'CANCELED',
          disabled: false,
          permitArr: ['01draft']
        }
          permitArr: ['01draft'],
        },
      ],
      ajaxFun: fetchListCustomerOrder,
      events: '',
@@ -385,7 +502,7 @@
      uploadInfo: {
        // 是否展示上传EXCEL以及对应的url
        isShow: false,
        url: ''
        url: '',
      },
      prelang: 'operation',
      options: {
@@ -400,8 +517,8 @@
        isRefresh: true, // 是否显示刷新按钮
        isShowHide: true, // 是否显示显影按钮H
        isSearch: true, // 高级查询按钮
        defaultOrderBy: { column: 'createTime', direction: 'desc' },
        cancelRunCreated: true
        defaultOrderBy: { column: 'placeOrderDate', direction: 'desc' },
        cancelRunCreated: true,
      },
      table: {
        total: 0,
@@ -419,7 +536,7 @@
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            render: { fun: this.addOrUpdateHandle }
            render: { fun: this.addOrUpdateHandle },
          },
          {
            minWidth: '120',
@@ -427,7 +544,7 @@
            label: '工程名称',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '120',
@@ -436,7 +553,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '100',
@@ -449,7 +566,7 @@
            formatter: this.getSourceId,
            optList: () => {
              return this.sourceIdList
            }
            },
          },
          {
            minWidth: '200',
@@ -460,7 +577,7 @@
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
            formatter: this.formatDutyDate,
          },
          {
            minWidth: '120',
@@ -470,7 +587,7 @@
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            formatter: this.formatDutyDate
            formatter: this.formatDutyDate,
          },
          {
            minWidth: '120',
@@ -479,7 +596,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '120',
@@ -492,12 +609,12 @@
            formatter: this.getCustomerCoState,
            optList: () => {
              return this.coStateList
            }
            },
          },
          {
            minWidth: '120',
            prop: 'isAudit',
            label: '审核状态',
            label: 'PLM审核状态',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -505,17 +622,34 @@
            formatter: this.getIsAudit,
            optList: () => {
              return this.isAuditList
            }
            },
          },
          // {
          //   minWidth: '80',
          //   prop: 'sourceId',
          //   label: '订单来源',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '120',
            prop: 'isPass',
            label: '审核通过状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'select',
            formatter: this.checkIsPass,
            optList: () => {
              return this.isPassList
            },
          },
          {
            minWidth: '120',
            prop: 'isOa',
            label: '是否提交oa',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'select',
            formatter: this.checkIsOa,
            optList: () => {
              return this.isOaList
            },
          },
          {
            minWidth: '120',
            width: '100px',
@@ -524,7 +658,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '120',
@@ -534,7 +668,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '120',
@@ -543,7 +677,7 @@
            label: '隶属品牌',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '120',
@@ -552,7 +686,7 @@
            label: '单位',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '120',
@@ -562,7 +696,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '120',
@@ -571,7 +705,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '140',
@@ -584,7 +718,7 @@
            formatter: this.getManufactureAttr,
            optList: () => {
              return this.manufactureAttrList
            }
            },
          },
          {
            minWidth: '140',
@@ -593,7 +727,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '140',
@@ -602,7 +736,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '140',
@@ -611,7 +745,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '140',
@@ -620,7 +754,7 @@
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
            searchInfoType: 'text',
          },
          {
            minWidth: '140',
@@ -631,7 +765,7 @@
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
            formatter: this.formatDutyDate,
          },
        ],
        toolbar: [],
@@ -655,6 +789,25 @@
          //   fun: this.packageExportHandle
          // },
          {
            text: '审核',
            type: 'text',
            size: 'small',
            fun: this.checkHandOrder,
            showFun: (row) => {
              return row.sourceId === '1'
            },
            show: {
              val: [false],
              key: 'isPass',
            },
          },
          {
            text: '已关联订单',
            type: 'text',
            size: 'small',
            fun: this.showInterrelatedOrder,
          },
          {
            text: '删除',
            type: 'text',
            size: 'small',
@@ -663,82 +816,89 @@
              val: [
                '01partUnCheck',
                '02technologyUnCheck',
                '03plan'
                '03plan',
                // '04planed'
              ],
              key: 'coState'
            }
          }
              key: 'coState',
            },
          },
        ],
        operatorConfig: {
          fixed: 'right',
          label: '操作',
          width: 100,
          minWidth: 100
        }
          width: 200,
          minWidth: 200,
        },
      },
      addOrUpdateVisible: false,
      coStateList: [
        {
          value: '01partUnCheck',
          label: '零件待选'
          label: '零件待选',
        },
        {
          value: '02technologyUnCheck',
          label: '工艺文件待选'
          label: '工艺文件待选',
        },
        {
          value: '03plan',
          label: '待计划'
          label: '待计划',
        },
        {
          value: '04planed',
          label: '已下发'
          label: '已下发',
        },
        {
          value: '05cancel',
          label: '已作废'
          label: '已作废',
        },
        {
          value: '06unedit',
          label: '订单编辑'
        }
          label: '订单编辑',
        },
      ],
      manufactureAttrList: [{
        label: '普通',
        value: 'N'
      },{
        label: '样品',
        value: 'S'
      },{
        label: '研发',
        value: 'D'
      }],
      manufactureAttrList: [
        {
          label: '普通',
          value: 'N',
        },
        {
          label: '样品',
          value: 'S',
        },
        {
          label: '研发',
          value: 'D',
        },
      ],
      isAuditList: [
        {
          value: '01draft',
          label: '草稿'
          label: '草稿',
        },
        {
          value: '02pending',
          label: '审核中'
          label: '审核中',
        },
        {
          value: '03accepted',
          label: '通过'
          label: '通过',
        },
        {
          value: '04reject',
          label: '退回'
        }
          label: '退回',
        },
      ],
      sourceIdList: [{
        label: '同步',
        value: "0"
      },{
        label: '手动',
        value: "1"
      }],
      sourceIdList: [
        {
          label: '同步',
          value: '0',
        },
        {
          label: '手动',
          value: '1',
        },
      ],
      stockVisible: false,
      partName: null,
      showPullCustomerOrderVisible: false,
@@ -750,20 +910,20 @@
          id: '',
          customerOrderNo: '',
          splitQuantity: '',
          title: ''
          title: '',
        },
        rules: {
          splitQuantity: [
            { required: true, message: '数量不能为空', trigger: 'blur' },
            { validator: validateSixDecimal, trigger: 'blur' }
            { validator: validateSixDecimal, trigger: 'blur' },
          ],
          title: [{ required: true, message: '抬头不能为空', trigger: 'blur' }]
          title: [{ required: true, message: '抬头不能为空', trigger: 'blur' }],
        },
        titleList: [],
        buttonDisable: false
        buttonDisable: false,
      },
      headers: {
        Authorization: 'Bearer ' + getStore({ name: 'access_token' })
        Authorization: 'Bearer ' + getStore({ name: 'access_token' }),
      },
      fileList: [],
      outBatchUploadUrl: '/mes/operationTaskProduce/upload',
@@ -772,15 +932,23 @@
      otcPartSyncOptionList: [
        {
          value: true,
          label: '已同步'
          label: '已同步',
        },
        {
          value: false,
          label: '未同步'
        }
          label: '未同步',
        },
      ],
      showSalesPartBatch: false,
      addOrUpdateEescVisible: false
      addOrUpdateEescVisible: false,
      isPassList: [
        { label: '未通过', value: false },
        { label: '通过', value: true },
      ],
      isOaList: [
        { label: '未提交', value: false },
        { label: '已提交', value: true },
      ],
    }
  },
  components: {
@@ -794,10 +962,10 @@
    SampleTableForm,
    SalesPartBatchDialog,
    TableFormDEesc,
    CustomerorderReturnDialog
    CustomerorderReturnDialog,
  },
  computed: {
    ...mapGetters(['permissions'])
    ...mapGetters(['permissions']),
  },
  watch: {
    exportDialogVisible(newVal) {
@@ -811,8 +979,21 @@
          this.getData()
        }
      },
      immediate: true
    }
      immediate: true,
    },
    interrelatedOrderId(newVal) {
      if (newVal) {
        getInterrelatedOrder(newVal)
          .then((res) => {
            if (res.status === 200) {
              this.interrelatedOrderData = res.data.data
            }
          })
          .catch((error) => {
            console.error(error)
          })
      }
    },
  },
  mounted() {
    this.initQueryParams()
@@ -825,7 +1006,7 @@
      type: 'primary',
      fun: this.addSampleCustomerOrder,
      disabled: false,
      permitArr: []
      permitArr: [],
    })
    if (this.permissions.customerorder_from_otc) {
      this.table.toolbar.push({
@@ -833,17 +1014,17 @@
        type: 'primary',
        fun: this.syncERP,
        disabled: false,
        permitArr: []
        permitArr: [],
      })
    }
    if (this.permissions.customerorder_submit_oa) {
      this.table.toolbar.push({
        text: '提交审核',
        text: '提交OA',
        type: 'primary',
        fun: this.auditCustomerOrder,
        disabled: false,
        permitArr: [],
        loading: false
        loading: false,
      })
    }
    if (this.permissions.customerorder_set_salesparts) {
@@ -852,27 +1033,112 @@
        type: 'primary',
        fun: this.setSalesPart,
        disabled: false,
        permitArr: []
        permitArr: [],
      })
    }
    this.table.toolbar.push({
        text: '下载Word',
        text: '下载工艺文件',
        disabled: false,
        type: 'primary',
        fun: this.downloadWord,
        permitArr: ['03plan','04planed'],
    })
    this.table.toolbar.push({
        text: '下载排产单',
        disabled: false,
        type: 'primary',
        permitArr: [],
        fun: this.downloadProductionScheduling,
    })
    this.table.toolbar.push({
      text: '关联订单',
      disabled: false,
      type: 'primary',
      fun: this.interrelatedOrderFun,
      permitArr: [],
    })
    if (this.permissions.customerorder_create_masterplan) {
      this.table.toolbar.push({
        text: '主生产计划',
        disabled: false,
        fun: this.masterPlanHandle,
        permitArr: []
        permitArr: [],
      })
    }
  },
  methods: {
    //下载word
    checkHandOrder(val) {
      this.$confirm('确认审核通过该销售订单吗?', '提示', {
        confirmButtonText: '通过',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          checkHanderOrder(val)
            .then((res) => {
              if (res.status === 200) {
                this.$message.success('审核通过')
                this.getData()
              }
            })
            .catch((error) => {
              console.error(error)
            })
        })
        .catch(() => {})
    },
    interrelatedOrderFun() {
      if (this.multipleSelection.length != 2) {
        this.$message.error('请选择两条销售订单')
        return
      }
      let autoId = null
      let handId = null
      this.multipleSelection.forEach((ele) => {
        if (ele.sourceId == 0) {
          autoId = ele.id
        } else if (ele.sourceId == 1) {
          handId = ele.id
        }
      })
      if (autoId == null || handId == null) {
        this.$message.error('添加来源须为手动和同步')
        return
      }
      interrelatedOrder({
        customerOrderAutoId: autoId,
        customerOrderHandId: handId,
      })
        .then((res) => {
          if (res.status === 200) {
            this.$message.success('关联成功')
          }
        })
        .catch((error) => {
          console.error(error)
        })
    },
    //展示已关联订单
    showInterrelatedOrder(currentOrder) {
      this.interrelatedOrderId = currentOrder.id
      this.showInterrelatedOrderDialog = true
    },
    //下载排产通知单
    downloadProductionScheduling(){
        let ids = this.multipleSelection.map(obj => obj.id)
        if(ids.length<1){
            this.$message.error("请选择一条数据")
            return
        }
        downloadProduct({ids: ids}).then(res=>{
            if(res.status===200){
                transform(res)
            }
        }).catch(error=>{
            console.error(error)
        })
    },
    //下载工艺文件
    downloadWord(){
        let ids = this.multipleSelection.map(ele=>ele.id)
        if(ids.length<1){
@@ -884,15 +1150,18 @@
          const blob = response.data
          const link = document.createElement('a')
          link.href = URL.createObjectURL(blob)
          link.download = '工艺文件.docx'
          const disposition = response.headers['content-disposition']
          let temp = disposition.substring(disposition.lastIndexOf('=') + 1)
          link.download = decodeURI(temp)
          document.body.appendChild(link)
          link.click()
          window.setTimeout(function() {
          window.setTimeout(function () {
            URL.revokeObjectURL(blob)
            document.body.removeChild(link)
          }, 0)
        }).catch(error=>{
            console.error(error);
        })
        .catch((error) => {
          console.error(error)
        })
    },
    getOtcPartSyncOptionList() {
@@ -903,7 +1172,7 @@
      queryParam.push(
        Object.assign({
          prop: 'coState',
          searchInfoType: 'select'
          searchInfoType: 'select',
          // propVal: '01partUnCheck'
          // propVal: '02technologyUnCheck'
        })
@@ -959,6 +1228,18 @@
        this.$message.error('请选择销售订单')
      }
    },
    checkIsPass(row, column, cellValue) {
      this.isPassList.forEach((obj) => {
        if (obj.value === cellValue) {
          if (obj.value) {
            cellValue = "<span style='color:#34BD66;'>" + obj.label + '</span>'
          } else {
            cellValue = "<span style='color:#E84738;'>" + obj.label + '</span>'
          }
        }
      })
      return cellValue
    },
    formatDutyDate(row, column, cellValue) {
      if (cellValue) {
        const dutyDateList = /\d{4}-\d{1,2}-\d{1,2}/g.exec(cellValue)
@@ -970,16 +1251,23 @@
    },
    // 新增 / 修改
    addOrUpdateHandle(row) {
      this.addOrUpdateVisible = true
      this.$nextTick(() => {
        this.$refs.addOrUpdate.init(row ? row.id : row)
      })
      if (row.isPass) {
        this.addOrUpdateVisible = true
        this.$nextTick(() => {
          this.$refs.addOrUpdate.init(row ? row.id : row)
        })
      } else {
        this.addSampleVisible = true
        this.$nextTick(() => {
          this.$refs.addSampleForm.init(row ? row.contractNo : null)
        })
      }
    },
    // 新增样品订单
    addSampleCustomerOrder() {
      this.addSampleVisible = true
      this.$nextTick(() => {
        this.$refs.addSampleForm.init(0)
        this.$refs.addSampleForm.init(null)
      })
    },
    // 打开日期选择框
@@ -1036,46 +1324,34 @@
    // 审核销售订单
    auditCustomerOrder() {
      if (this.multipleSelection.length > 0) {
        if (this.judgeCoState(this.multipleSelection)) {
          let flag = true
          const ids = []
          this.multipleSelection.forEach((item) => {
            if (item.partNo != null && item.partNo !== '') {
              ids.push(item.id)
            } else {
              flag = false
            }
          })
          if (flag) {
            checkOA(this.multipleSelection.map((e) => e.id),{}).then((res) => {
              if (!res.data.data.success) {
                this.$confirm(`${res.data.data.message}`, '提示', {
                  confirmButtonText: '确定',
                  cancelButtonText: '取消',
                  closeOnClickModal: false,
                  type: 'warning'
                }).then(() => {
                  this.auditCustomerOrderSure(ids)
                })
              } else {
                this.auditCustomerOrderSure(ids)
              }
            })
        let flag = true
        const ids = []
        this.multipleSelection.forEach((item) => {
          if (item.partNo != null && item.partNo !== '') {
            ids.push(item.id)
          } else {
            this.$message.error('存在销售订单未绑定销售件!')
            flag = false
          }
        })
        if (flag) {
          checkOA(
            this.multipleSelection.map((e) => e.id)
          ).then((res) => {
            if (res.data.data.success) {
              this.auditCustomerOrderSure(ids)
            }
          }).catch(error=>{
            this.$message.error(error.message)
          })
        } else {
          this.$message.error('销售订单审核状态为作废,不可进行操作!')
          this.$message.error('存在销售订单未绑定零件号!')
        }
      } else {
        this.$message.error('请先勾选销售订单!')
      }
    },
    auditCustomerOrderSure(ids) {
      const toolbar = this.table.toolbar.find(
        (item) => item.text === '提交审核'
      )
      const toolbar = this.table.toolbar.find((item) => item.text === '提交OA')
      if (toolbar) {
        toolbar.loading = true
        auditCustomerOrder(ids)
@@ -1085,7 +1361,7 @@
              this.$message.success(resData.msg)
              this.getData()
            } else {
              this.$message.error('提交审核失败!')
              this.$message.error('提交OA失败!')
            }
            toolbar.loading = false
          })
@@ -1103,7 +1379,7 @@
          id: row.id,
          customerOrderNo: row.customerOrderNo,
          splitQuantity: '',
          title: ''
          title: '',
        }
        this.$nextTick(() => {
          this.$refs.packageExportForm.resetFields()
@@ -1119,7 +1395,7 @@
          exportCustomerOrderSplit({
            id: this.packageExport.form.id,
            splitQuantity: this.packageExport.form.splitQuantity,
            title: this.packageExport.form.title
            title: this.packageExport.form.title,
          })
            .then((response) => {
              transform(response)
@@ -1133,13 +1409,13 @@
    },
    // 作废
    cancelHandle(row) {
      this.$confirm('确认作废id为【' + row.id + '】的数据?','提示' , {
      this.$confirm('确认作废id为【' + row.id + '】的数据?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        closeOnClickModal: false,
        type: 'warning'
        type: 'warning',
      }).then(() => {
        dropByContractNo({id:row.id}).then((res) => {
        dropByContractNo({ id: row.id }).then((res) => {
          if (res.data.code === 0) {
            this.$message.success('作废成功')
            this.getData()
@@ -1174,7 +1450,7 @@
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        closeOnClickModal: false,
        type: 'warning'
        type: 'warning',
      })
        .then(() => {
          return delCustomerOrder(row.id)
@@ -1188,7 +1464,7 @@
    handleSelectionChange(val) {
      // 根据状态,禁用表头按钮
      // 筛选出选中记录的状态
      var stateArr = val.map(function(value, index) {
      var stateArr = val.map(function (value, index) {
        return value.coState
      })
      // 选中状态数组元素去重
@@ -1273,6 +1549,14 @@
    },
    getIsAudit(row, column, cellValue) {
      this.isAuditList.forEach((obj) => {
        if (obj.value === cellValue) {
          cellValue = obj.label
        }
      })
      return cellValue
    },
    checkIsOa(row, column, cellValue) {
      this.isOaList.forEach((obj) => {
        if (obj.value === cellValue) {
          cellValue = obj.label
        }
@@ -1402,6 +1686,10 @@
      } else {
        if (this.judgeCoState(this.multipleSelection)) {
          if (event == 'RELEVANCE') {
            if (!this.multipleSelection[0].isPass) {
              this.$message.error('请先审核通过,再关联工艺文件')
              return
            }
            const firstPartNo = this.multipleSelection[0].partNo
            this.multipleSelection.forEach((item) => {
              if (item.isDocument) {
@@ -1494,7 +1782,7 @@
      if (!isLt10M) {
        this.$message({
          message: '文件大小',
          type: 'warning'
          type: 'warning',
        })
      }
      return isLt10M
@@ -1506,7 +1794,7 @@
      } else {
        this.$message({
          message: '上传成功',
          type: 'success'
          type: 'success',
        })
        this.getData()
      }
@@ -1524,7 +1812,7 @@
    downDataTemplate() {
      uploadBatchTemplate().then((response) => {
        const blob = new Blob([response.data], {
          type: 'application/force-download'
          type: 'application/force-download',
        })
        const filename = decodeURI('模板文件.xlsx')
        // 创建一个超链接,将文件流赋进去,然后实现这个超链接的单击事件
@@ -1564,10 +1852,10 @@
      // } else {
      //   this.$message.error('请选择至少一条销售订单')
      // }
      this.$refs['exportForm'].validate(valid => {
        if(valid){
      this.$refs['exportForm'].validate((valid) => {
        if (valid) {
          const exportTime = this.dataForm.exportTime
          let queryParam=this.$refs.customerOrderTable.getQueryParam();
          let queryParam = this.$refs.customerOrderTable.getQueryParam()
          queryParam.selectTime = exportTime
          exportCustomerOrder(queryParam)
            .then((response) => {
@@ -1609,7 +1897,7 @@
      if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') {
        otcCustomerOrderSync({
          selectTime: this.dataForm.selectTime,
          pathCode: '1'
          pathCode: '1',
        })
          .then((response) => {
            this.table.toolbar.find(
@@ -1637,7 +1925,7 @@
        ).loading = false
        this.$message.error('请先选择日期')
      }
    }
  }
    },
  },
}
</script>