zouyu
2023-12-14 43b705c29b0e089bdc1cf1cc9076b83f500b1ff5
src/views/plan/customerorder/sample-customerorder-form.vue
@@ -51,14 +51,6 @@
              <el-input v-model="dataForm.entityName" placeholder=""></el-input>
            </el-form-item>
          </el-col>
          <!-- <el-col :span="6">
            <el-form-item label="事业部" prop="salesDepartment">
              <el-input
                v-model="dataForm.salesDepartment"
                placeholder=""
              ></el-input>
            </el-form-item>
          </el-col> -->
          <el-col :span="6">
            <el-form-item label="省份" prop="province">
              <el-input v-model="dataForm.province" placeholder=""></el-input>
@@ -68,8 +60,8 @@
        <el-row>
          <el-col :span="6">
            <el-form-item label="业务员" prop="salesMan">
              <el-select @change="selsctionSales" v-model="salesSelectData" style="width:100%">
                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item" :label="item.staffName"/>
              <el-select @change="selsctionSales" clearable filterable v-model="salesSelectData" style="width:100%">
                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staffNo+','+item.staffName" :label="item.staffName"/>
              </el-select>
            </el-form-item>
          </el-col>
@@ -135,6 +127,19 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="6">
            <el-form-item label="订单备注" prop="comment">
              <el-input
                v-model="dataForm.comment"
                style="width: 100%"
                type="textarea"
                :rows="1"
              >
              </el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </div>
@@ -143,6 +148,7 @@
    </el-divider>
    <div>
      <avue-crud ref="crud"
        class="l-mes"
        show-hide="false"
        :option="option"
        :data="tableData">
@@ -162,196 +168,6 @@
          </template>
      </avue-crud>
    </div>
    <!-- <div class="l-mes normal-form">
      <el-row :gutter="20">
        <el-col :span="2">
          <span>零件号</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.partNo"
            placeholder=""
            readonly
          >
            <el-button
              slot="append"
              icon="el-icon-search"
              @click="openPartDialog()"
            ></el-button>
          </el-input>
        </el-col>
        <el-col :span="2">
          <span>单位</span>
        </el-col>
        <el-col :span="6">
          <el-select
            v-model="dataForm.customerOrder.unit"
            placeholder=""
            style="width: 100%"
          >
            <el-option
              v-for="item in units"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            />
          </el-select>
        </el-col>
        <el-col :span="2">
          <span>数量</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.buyQtyDue"
            placeholder=""
          ></el-input>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="2">
          <span>电压等级</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.voltAgeClass"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>产品名称</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.productName"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>制造属性</span>
        </el-col>
        <el-col :span="6">
          <el-select
            v-model="dataForm.customerOrder.manufactureAttr"
            placeholder=""
            style="width: 100%"
            disabled
          >
            <el-option
              v-for="item in manufactureAttrs"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            />
          </el-select>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="2">
          <span>外护颜色</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.outerColor"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>零件规格</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.customerPartSpec"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>包装要求</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.packageRequire"
            placeholder=""
          ></el-input>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="2">
          <span>质量要求</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.qualityRequire"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>生产需求说明</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.otherProductRequire"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>系统</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.divisionSystem"
            placeholder=""
          ></el-input>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="2">
          <span>收货地址</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.shippingAddress"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>业务员</span>
        </el-col>
        <el-col :span="6">
          <el-select v-model="dataForm.customerOrder.salesmanName" style="width:100%">
                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staff_no" :label="item.staffName"/>
          </el-select>
        </el-col>
        <el-col :span="2">
          <span>盘长要求</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.lengthRequirement"
            placeholder=""
          ></el-input>
        </el-col>
      </el-row>
      <el-row :gutter="20">
        <el-col :span="2">
          <span>备注</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.remark"
            placeholder=""
          ></el-input>
        </el-col>
        <el-col :span="2">
          <span>产品类型</span>
        </el-col>
        <el-col :span="6">
          <el-input
            v-model="dataForm.customerOrder.productType"
            placeholder=""
          ></el-input>
        </el-col>
      </el-row>
    </div> -->
    <span slot="footer" class="dialog-footer">
      <el-button @click="visible = false">取消</el-button>
@@ -388,12 +204,35 @@
  color: #c0c4cc;
  margin: -1px 0;
}
.l-mes .el-input-group__append,
.l-mes .el-input-group__prepend {
  padding: 0;
  border-top: none;
  border-right: none;
  border-left: none;
  border-radius: 0;
  background-color: transparent;
}
.l-mes .el-input-group__append .el-button,
.l-mes .el-input-group__prepend .el-button {
  padding: 0;
  width: 25px;
  border: none !important;
  line-height: 28px;
  color: #c0c4cc;
  margin: -1px 0;
}
.l-mes .el-input-group__append .el-button i,
.l-mes .el-input-group__prepend .el-button i {
  vertical-align: middle;
}
</style>
<script>
import { addObj } from '@/api/plan/customer'
import { remote } from '@/api/admin/dict'
import PartDialog from '@/views/common/part.vue'
import { validateSixDecimal } from '@/util/validate'
import {dateFormat} from '@/util/date'
import { chooseStaff } from '@/api/admin/productType'
import { tableOption } from '@/const/crud/customerOrder/customerOrderForm'
@@ -401,6 +240,26 @@
export default {
  components: {
    PartDialog
  },
  watch:{
    visible(newVal){
      if(!newVal){
        this.tableData = [{
          "$cellEdit": true,
          "$index": 0,
          "partNo": "",
          "customerPartSpec": "",
          "manufactureAttr": "",
          "productName": "",
          "productType": "",
          "otcUnit": "",
          "buyQtyDue": "",
          "shippingAddress": "",
          "remark": "",
          "isTrusted": true
        }]
      }
    }
  },
  data() {
    return {
@@ -443,6 +302,7 @@
        returnStatus: null,
        salesMan: null,
        salerWorkCode: null,
        comment: null
      },
      dataRule: {},
      units: [],
@@ -456,8 +316,11 @@
  },
  methods: {
    selsctionSales(data){
        this.dataForm.salesMan =  data.staffName
        this.dataForm.salerWorkCode = data.staffNo
      if(data){
        let arr = data.split(",")
        this.dataForm.salesMan =  arr[1]
        this.dataForm.salerWorkCode = arr[0]
      }
    },
    getStaffOptions(){
      chooseStaff().then((response)=>{
@@ -482,8 +345,9 @@
      this.dataForm.customerNo = null
      this.dataForm.returnStatus = null
      this.dataForm.placeOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss')
      this.dataForm.factoryPlaceOrderDate = null
      this.dataForm.factoryPlaceOrderDate = dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss')
      this.dataForm.deliveryDate = null
      this.dataForm.comment = null
      this.dataForm.customerOrderVOList = [{
          "$cellEdit": true,
          "$index": 0,
@@ -501,23 +365,39 @@
    },
    // 表单提交
    dataFormSubmit() {
      this.buttonDisable = true
      this.$refs.dataForm.validate((valid) => {
        this.dataForm.customerOrderVOList = this.tableData
      const _than = this
      let isError = false
      _than.buttonDisable = true
      _than.tableData.forEach(ele=>{
        if(ele.buyQtyDue==null || ele.buyQtyDue=='' || ele.buyQtyDue==undefined){
          _than.$message.error("零件数量不能为空!")
          isError = true
        }else{
          var reg = /^\d+$/
          if(!reg.test(ele.buyQtyDue)){
            _than.$message.error("零件数量类型必须是数字!")
            isError = true
          }
        }
      })
      if(isError){
        _than.buttonDisable = false
        return
      }
      _than.$refs.dataForm.validate((valid) => {
        if (valid) {
          addObj(this.dataForm)
            .then((data) => {
              this.$message.success('添加成功')
              this.initDataForm();
              this.visible = false
              this.buttonDisable = false
              this.$emit('refreshDataList', 1)
            })
            .catch((error) => {
              this.buttonDisable = false
          _than.dataForm.customerOrderVOList = _than.tableData
          addObj(_than.dataForm).then((data) => {
              _than.$message.success('添加成功')
              _than.initDataForm();
              _than.visible = false
              _than.buttonDisable = false
              _than.$emit('refreshDataList', 1)
            }).catch((error) => {
              _than.buttonDisable = false
            })
        } else {
          this.buttonDisable = false
          _than.buttonDisable = false
        }
      })
    },
@@ -527,7 +407,6 @@
      this.showPart = true
    },
    selectPart(part) {
      console.log(part);
      const index = this.currentSelectRow
      if (part) {
        this.tableData[index].partNo = part.partNo