zss
2023-12-11 c880739ec4cd5ede33b31eb98ad5f7628ea288e5
src/views/plan/customerorder/index.vue
@@ -38,10 +38,10 @@
            </el-button>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="item in documentTagArr"
                :disabled="item.disabled"
              >
                v-for="(item,index) in documentTagArr"
                :disabled="item.disabled">
                {{ item.label }}
              </el-dropdown-item>
            </el-dropdown-menu>
@@ -57,8 +57,9 @@
            </el-button>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="item in commitStateTagArr"
                v-for="(item,index) in commitStateTagArr"
                :disabled="item.disabled"
                >{{ item.label }}</el-dropdown-item
              >
@@ -80,19 +81,18 @@
          <el-button
            style="margin-left:10px;"
            type="primary"
            @click="exportStandBook"
            @click="()=>exportDialogVisible=true"
            >导出台账</el-button
          >
          <el-button
          <!-- <el-button
            v-if="permissions.plan_customerorder_return"
            style="margin-left:10px;"
            type="primary"
            @click="returnOrder"
            >订单退回</el-button
          >
          > -->
        </template>
      </ttable>
      <!-- 弹窗, 日期选择 -->
      <ConfirmPullCustomerorder
        v-if="showPullCustomerOrderVisible"
@@ -189,6 +189,26 @@
        </span>
        <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-form-item label="日期" prop="exportTime">
              <el-date-picker
                v-model="dataForm.exportTime"
                type="datetime"
                style="width:100%"
                placeholder="选择日期时间"
                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>
      <!-- 箱码信息导出 -->
      <el-dialog
        title="箱码信息导出"
@@ -302,9 +322,12 @@
  data() {
    return {
      dataForm: {
        selectTime: null
        selectTime: null,
        exportTime: null
      },
      dataRule: {},
      dataRule: {
        exportTime:[{required:true,message:'导出日期不能为空',trigger:'change'}]
      },
      pickerOptions: {
        onPick: ({ maxDate, minDate }) => {
          if (minDate && this.pickerMinDate) {
@@ -323,6 +346,7 @@
          return false
        }
      },
      exportDialogVisible: false,
      syncDateVisible: false,
      syncDate: [],
      showCustomerorderReturn: false,
@@ -424,9 +448,8 @@
          {
            minWidth: '100',
            width: '100px',
            prop: 'customerOrderNo',
            prop: 'contractNo',
            label: '合同编号',
            // label: '订单号',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -436,8 +459,7 @@
          {
            minWidth: '120',
            prop: 'entityName',
            label: '合同主题',
            sort: false,
            label: '工程名称',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
@@ -450,6 +472,19 @@
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'sourceId',
            label: '添加来源',
            isTag: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'select',
            formatter: this.getSourceId,
            optList: () => {
              return this.sourceIdList
            }
          },
          {
            minWidth: '200',
@@ -465,42 +500,13 @@
          {
            minWidth: '120',
            prop: 'placeOrderDate',
            label: '签订日期',
            label: '下单日期',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '120',
            prop: 'factoryPlaceOrderDate',
            label: '开始日期',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '120',
            prop: 'endTime',
            label: '终止日期',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text',
            formatter: this.formatDutyDate
          },
          // {
          //   minWidth: '120',
          //   prop: 'customerNo',
          //   label: '客户编号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '120',
            prop: 'customerName',
@@ -510,16 +516,6 @@
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '120',
          //   prop: 'customerContractNo',
          //   label: '客户订单号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '120',
            prop: 'coState',
@@ -546,108 +542,20 @@
              return this.isAuditList
            }
          },
          {
            minWidth: '80',
            prop: 'ifsDeliveryNo',
            label: '合同分类',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'ifsLineItemNo',
            label: '合同来源',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'returnStatus',
            label: '合同状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'originalContractStatus',
            label: '出库状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'ifsSalesUnit',
            label: '启用状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '120',
          //   prop: 'coLineNo',
          //   label: 'GSM行号',
          //   minWidth: '80',
          //   prop: 'sourceId',
          //   label: '订单来源',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // {
          //   minWidth: '120',
          //   prop: 'otcLineNo',
          //   label: 'OTC行号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // // 状态
          // {
          //   minWidth: '120',
          //   prop: 'otcPartSync',
          //   label: 'OTC推送状态',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'select',
          //   optList: () => {
          //     return this.getOtcPartSyncOptionList()
          //   },
          //   formatter: (row, column, cellValue) => {
          //     var formatVal
          //     if (cellValue == null) {
          //       formatVal = ''
          //     } else if (cellValue) {
          //       formatVal = '已同步'
          //     } else {
          //       formatVal = '未同步'
          //     }
          //     return formatVal
          //   }
          // },
          // {
          //   minWidth: '120',
          //   prop: 'verifyDate',
          //   label: 'OTC审核时间',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'datetimerange'
          // },
          {
            minWidth: '120',
            width: '100px',
            prop: 'partNo',
            label: '零件号',
            label: '产品编号',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -656,8 +564,8 @@
          {
            minWidth: '120',
            width: '100px',
            prop: 'customerPartName',
            label: '零件名称',
            prop: 'productName',
            label: '产品名称',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -667,7 +575,7 @@
            minWidth: '120',
            width: '100px',
            prop: 'productType',
            label: '型号',
            label: '隶属品牌',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
@@ -676,7 +584,7 @@
            minWidth: '120',
            width: '100px',
            prop: 'otcUnit',
            label: '零件属性',
            label: '单位',
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
@@ -693,45 +601,8 @@
          },
          {
            minWidth: '120',
            width: '100px',
            prop: 'outerColor',
            label: '外护颜色',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'otcQuantity',
            label: '销售数量',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'otcUnit',
            label: '销售单位',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'buyQtyDue',
            label: '库存数量',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'unit',
            label: '零件单位',
            label: '数量',
            sort: true,
            isTrue: true,
            isSearch: true,
@@ -739,253 +610,6 @@
          },
          {
            minWidth: '140',
            prop: 'requireNumber',
            label: '已下发数量',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'customerPartSpec',
            label: '客户零件规格',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'finalCustomerName',
            label: '最终客户名称',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'productGroup',
            label: '产品分组',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'productType',
            label: '产品类型',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'centralizedMiningProperty',
            label: '采集性质',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'orderDescription',
            label: '订单说明',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'division',
            label: '事业部',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'printType',
            label: '印字方式',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'printingRequirements',
            label: '印字要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'printContent',
            label: '印字内容',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'packageRequire',
            label: '包装要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'qualityRequire',
            label: '质量要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'otherProductRequire',
            label: '生产需求说明',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'divisionSystem',
            label: '系统',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'shippingAddress',
            label: '收货地址',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'salesmanName',
            label: '业务员',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'lengthRequirement',
            label: '盘长要求',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'remark',
            label: '订单行备注',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'comment',
            label: '订单头备注',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '80',
          //   prop: 'ifsLineNo',
          //   label: 'IFS行号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // {
          //   minWidth: '80',
          //   prop: 'ifsDeliveryNo',
          //   label: 'IFS交货号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // {
          //   minWidth: '80',
          //   prop: 'ifsLineItemNo',
          //   label: 'IFS行项号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '80',
            prop: 'salesPartNo',
            label: '销售件号',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '80',
            prop: 'salesPartName',
            label: '销售件描述',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            width: '120',
            prop: 'wantedDeliveryDate',
            label: '期望交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '200',
            width: '120',
            prop: 'plannedDeliveryDate',
            label: '计划交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '120',
            prop: 'manufactureAttr',
            label: '制造属性',
            sort: true,
@@ -994,20 +618,56 @@
            searchInfoType: 'select',
            formatter: this.getManufactureAttr,
            optList: () => {
              return this.manufactureAttrs
              return this.manufactureAttrList
            }
          }
          // {
          //   minWidth: '200',
          //   width: '120',
          //   prop: 'createTime',
          //   label: '创建时间',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'datetimerange',
          //   formatter: this.formatDutyDate
          // }
          },
          {
            minWidth: '140',
            prop: 'customerPartSpec',
            label: '规格型号',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'returnStatus',
            label: '合同正本状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'originalContractStatus',
            label: '正本状态',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            prop: 'salesMan',
            label: '业务员',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '140',
            width: '120',
            prop: 'deliveryDate',
            label: '交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
        ],
        toolbar: [],
        operator: [
@@ -1030,7 +690,7 @@
          //   fun: this.packageExportHandle
          // },
          {
            text: '作废',
            text: '删除',
            type: 'text',
            size: 'small',
            fun: this.cancelHandle,
@@ -1048,7 +708,7 @@
        operatorConfig: {
          fixed: 'right',
          label: '操作',
          width: 260,
          width: 100,
          minWidth: 100
        }
      },
@@ -1079,6 +739,16 @@
          label: '订单编辑'
        }
      ],
      manufactureAttrList: [{
        label: '普通',
        value: 'N'
      },{
        label: '样品',
        value: 'S'
      },{
        label: '研发',
        value: 'D'
      }],
      isAuditList: [
        {
          value: '01draft',
@@ -1097,6 +767,13 @@
          label: '退回'
        }
      ],
      sourceIdList: [{
        label: '同步',
        value: '0'
      },{
        label: '手动',
        value: '1'
      }],
      stockVisible: false,
      partName: null,
      showPullCustomerOrderVisible: false,
@@ -1158,6 +835,11 @@
    ...mapGetters(['permissions'])
  },
  watch: {
    exportDialogVisible(newVal) {
      if (!newVal) {
        this.$refs.exportForm.resetFields()
      }
    },
    coState: {
      handler(newValue, oldValue) {
        if (newValue) {
@@ -1171,7 +853,7 @@
    this.initQueryParams()
  },
  created() {
    this.getManufactureAttrs()
    // this.getManufactureAttrs()
    this.getTitles()
    /**
     * {
@@ -1238,14 +920,14 @@
    //   })
    // }
    if (this.permissions.customerorder_submit_oa) {
      // this.table.toolbar.push({
      //   text: '提交审核',
      //   type: 'primary',
      //   fun: this.auditCustomerOrder,
      //   disabled: false,
      //   permitArr: [],
      //   loading: false
      // })
      this.table.toolbar.push({
        text: '提交审核',
        type: 'primary',
        fun: this.auditCustomerOrder,
        disabled: false,
        permitArr: [],
        loading: false
      })
    }
    if (this.permissions.customerorder_set_salesparts) {
      this.table.toolbar.push({
@@ -1272,7 +954,7 @@
      queryParam.push(
        Object.assign({
          prop: 'coState',
          searchInfoType: 'select',
          searchInfoType: 'select'
          // propVal: '01partUnCheck'
          // propVal: '02technologyUnCheck'
        })
@@ -1293,7 +975,6 @@
    },
    // 创建主生产计划
    masterPlanHandle() {
      console.log(this.multipleSelection);
      if (this.multipleSelection && this.multipleSelection.length > 0) {
        if (this.judgeCoState(this.multipleSelection)) {
          // 判断一下剩余数量是否大于0
@@ -1410,7 +1091,7 @@
          let flag = true
          const ids = []
          this.multipleSelection.forEach((item) => {
            if (item.salesPartNo != null && item.salesPartNo !== '') {
            if (item.partNo != null && item.partNo !== '') {
              ids.push(item.id)
            } else {
              flag = false
@@ -1418,7 +1099,6 @@
          })
          if (flag) {
            checkOA(this.multipleSelection.map((e) => e.id)).then((res) => {
              console.log(res)
              if (!res.data.data.success) {
                this.$confirm(`${res.data.data.message}`, '提示', {
                  confirmButtonText: '确定',
@@ -1467,7 +1147,6 @@
    // 箱码信息导出
    packageExportHandle(row) {
      console.log(row.otcQuantity)
      if (row.otcQuantity) {
        this.packageExport.visible = true
        this.packageExport.form = {
@@ -1504,13 +1183,13 @@
    },
    // 作废
    cancelHandle(row) {
      this.$confirm('是否确认作废销售订单号为' + row.customerOrderNo + '提示', {
      this.$confirm('确认作废id为【' + row.id + '】的数据?','提示' , {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        closeOnClickModal: false,
        type: 'warning'
      }).then(() => {
        dropByContractNo(row.customerOrderNo).then((res) => {
        dropByContractNo({id:row.id}).then((res) => {
          if (res.data.code === 0) {
            this.$message.success('作废成功')
            this.getData()
@@ -1593,23 +1272,31 @@
      })
      return cellValue
    },
    getManufactureAttr(row, column, cellValue) {
      this.manufactureAttrs.forEach((obj) => {
    getSourceId(row, column, cellValue) {
      this.sourceIdList.forEach((obj) => {
        if (obj.value === cellValue) {
          cellValue = obj.label
        }
      })
      return cellValue
    },
    getManufactureAttrs() {
      remote('manufacture_attr_type').then((response) => {
        if (response.data.code === 0) {
          this.manufactureAttrs = response.data.data
        } else {
          this.manufactureAttrs = []
    getManufactureAttr(row, column, cellValue) {
      this.manufactureAttrList.forEach((obj) => {
        if (obj.value === cellValue) {
          cellValue = obj.label
        }
      })
      return cellValue
    },
    // getManufactureAttrs() {
    //   remote('manufacture_attr_type').then((response) => {
    //     if (response.data.code === 0) {
    //       this.manufactureAttrs = response.data.data
    //     } else {
    //       this.manufactureAttrs = []
    //     }
    //   })
    // },
    getTitles() {
      remote('order_export_title_type').then((response) => {
        if (response.data.code === 0) {
@@ -1758,7 +1445,7 @@
                  '存在销售订单已关联工艺文件,如需更改,请先解除关联'
                )
              }
              if (item.salesPartNo == null || item.salesPartNo === '') {
              if (item.partNo == null || item.partNo === '') {
                status = true
                this.$message.error('存在销售订单未绑定销售件,请先绑定')
              }
@@ -1888,7 +1575,6 @@
    },
    // 导出台账
    exportStandBook() {
      // console.log(this.$refs.customerOrderTable.getQueryParam(),"SSS")
      // if (this.multipleSelection.length > 0) {
      //   let ids = ''
      //   this.multipleSelection.forEach((item) => {
@@ -1913,11 +1599,18 @@
      // } else {
      //   this.$message.error('请选择至少一条销售订单')
      // }
      exportCustomerOrder(this.$refs.customerOrderTable.getQueryParam())
        .then((response) => {
          transform(response)
        })
        .catch(() => {})
      this.$refs['exportForm'].validate(valid => {
        if(valid){
          const exportTime = this.dataForm.exportTime
          let queryParam=this.$refs.customerOrderTable.getQueryParam();
          queryParam.selectTime = exportTime
          exportCustomerOrder(queryParam)
            .then((response) => {
              transform(response)
            })
            .catch(() => {})
        }
      })
    },
    setSalesPart() {
      if (this.multipleSelection.length > 0) {