charles
2024-07-11 5e9b4920000a4d02eef3b207218e3ce8d68935be
feat:纤度登记表重构
3个文件已修改
95 ■■■■ 已修改文件
src/api/productManage/silkRegisterForm.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productManage/silkRegisterForm/addPage.vue 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productManage/silkRegisterForm/components/FormTableView.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/productManage/silkRegisterForm.js
@@ -71,4 +71,13 @@
    method: "post",
    data
  })
}
// 自动生成编码
//
export function getAutoCode(params) {
    return request({
        url: "/api-jl/v1/system/getAutoCode",
        method: "get",
       params
    })
}
src/views/productManage/silkRegisterForm/addPage.vue
@@ -36,7 +36,6 @@
          </CommonSearch>
        </div>
      </div>
      <div class="body">
        <div class="body-l">
          <el-form
@@ -430,7 +429,8 @@
  saveRegister,
  getDictList,
  getRegisterDetails,
  getCarNumber
  getCarNumber,
  getAutoCode
} from "@/api/productManage/silkRegisterForm.js";
import {
  getCheckDetails,
@@ -440,8 +440,6 @@
//import CommonFormTableView from "@/components/makepager/CommonFormTableView";
import { getWorkshopManageGroup } from "@/api/productManage/productRegisterForm.js";
import FormTableView from '@/views/productManage/silkRegisterForm/components/FormTableView.vue';
import moment from 'moment';
let  idValue=moment(new Date()).format('YYYYMMDDHHmmss');
export default {
  name: "silkRegisterAddPage",
  props: {},
@@ -462,7 +460,7 @@
      deliveryTypeList: [],
      specList: [], //规格
      form: {
          number:idValue
          number:''
      },
      rules: {
        number: [
@@ -531,7 +529,7 @@
            productId: 1,
            position: null,
            fineness: null,
            quantity: null,
            quantity: 0,
            sum: null,
          },
        ],
@@ -541,18 +539,20 @@
            prop: "position",
            inputNumber: true,
            isRequird: true,
              noOperate:true
          }, // 客户名称
          {
            label: "纤度值",
            prop: "fineness",
            inputNumber: true,
            isRequird: true,
            isRequird: true
          }, // 销售负责人
          {
            label: "数量",
            prop: "quantity",
            inputNumber: true,
            isRequird: true,
              noOperate:true
          }, // 重要级别
          {
            label: "纤度合计",
@@ -587,10 +587,18 @@
    this.getDetailsData();
  },
  methods: {
    async getAutoCode(){
        const {code,data}=await getAutoCode({type:2});
        if(code===200){
            return data.id;
        }
        return '';
    },
    async getDetailsData(id) {
      const code= await this.getAutoCode()
      if (this.activeName == "first") {
        this.form = {
          number: idValue,
          number: code,
          finishDate:this.$moment(new Date()).format('YYYY-MM-DD'),
          market: "",
          workshopObj: "",
@@ -630,7 +638,7 @@
        }
      } else {
        this.form = {
          number: idValue,
          number: code,
          workshopObj: "",
          workshopGroup: "",
          circle: "",
@@ -798,7 +806,13 @@
                this.tableData=[]
                const {startCarNumber,endCarNumber,startCarHalf,endCarHalf}=res.data;
                for(let i=startCarNumber;i<=endCarNumber;i++){
                   if(i===startCarNumber){
                    if((i===startCarNumber&&startCarHalf===2)||(i===endCarNumber&&endCarHalf===1)){
                        this.tableData.push({position:i,productId:Number(i)*2-1,quantity:1});
                    }else{
                        this.tableData.push({position:i,productId:Number(i)*2-1,quantity:1});
                        this.tableData.push({position:i,productId:Number(i)*2,quantity:1});
                    }
                   /*if(i===startCarNumber){
                      if(startCarHalf===1){//左半车
                          this.tableData.push({position:i,productId:Number(i)*2-1});
                          this.tableData.push({position:i,productId:Number(i)*2});
@@ -815,7 +829,7 @@
                   }else{
                       this.tableData.push({position:i,productId:Number(i)*2-1});
                       this.tableData.push({position:i,productId:Number(i)*2});
                   }
                   }*/
                }
                /*let data = res.data?JSON.parse(JSON.stringify(res.data)) : [];
               if(Object.keys(data).length>0){
@@ -890,10 +904,11 @@
    },
    // 纤度登记表
    // 放弃
    cancelClickOne() {
   async cancelClickOne() {
      const code=await this.getAutoCode()
      if (this.activeName == "first") {
        this.form = {
          number: idValue,
          number: code,
          finishDate:this.$moment(new Date()).format('YYYY-MM-DD'),
          market: "",
          workshopObj: "",
@@ -911,7 +926,7 @@
            productId: 1,
            position: "",
            fineness: 0,
            quantity: 0,
            quantity: 1,
            sum: "",
          },
        ];
@@ -951,6 +966,22 @@
              delete finenessList[i].productId;
            }
            this.isAddloading = true;
            const mapFineness=new Map();
            finenessList.forEach(item=>{
               if(mapFineness.has(item.position)){
                  const value=mapFineness.get(item.position);
                  if(value[0].fineness===item.fineness){
                      value[0].sum+=item.sum;
                      value[0].quantity+=item.quantity;
                  }else{
                      value.push(item);
                  }
                  mapFineness.set(item.position,value);
               } else{
                   mapFineness.set(item.position,[item]);
               }
            });
            finenessList=[...mapFineness.values()].flat(Infinity);
            let params = {
              finenessList: finenessList,
              ...form,
@@ -969,7 +1000,6 @@
                    message: "保存成功!",
                    type: "success",
                  });
                  this.activeName = "second"
                  // this.$router.push({
                  //   path: "/productManage/silkRegisterForm",
@@ -984,7 +1014,6 @@
              });
          } else {
            let paramsTwo = {
              // ...form,
              info:form,
              items:this.tableTwoList.tableInfomation,
            };
@@ -1005,8 +1034,7 @@
                  this.getDetailsData();
                }
                this.isAddloading = false;
              })
              .catch(() => {
              }).catch(() => {
                setTimeout(() => {
                  this.isAddloading = false;
                }, 3000);
@@ -1109,6 +1137,7 @@
      }
      .list-view {
        margin-top: 20px;
        height: calc(100% - 180px);
        min-height: 200px;
        overflow-y: auto;
src/views/productManage/silkRegisterForm/components/FormTableView.vue
@@ -120,7 +120,7 @@
                  placeholder=""
                  :min="0"
                  :controls="false"
                  :disabled="!isOperate"
                  :disabled="!isOperate||item.noOperate"
                  size="mini"
                  style="width: 100%; margin-right: 5px"
                  @change="
@@ -230,8 +230,9 @@
                placeholder=""
                :min="0"
                :controls="false"
                :disabled="!isOperate"
                :disabled="!isOperate||item.noOperate"
                size="mini"
                @keydown.enter.native="moveToNextField($event,scope.$index)"
                style="width: 100%; margin-right: 5px"
                @change="
                  (val) => {
@@ -256,8 +257,7 @@
                  @change="
                    (val) => {
                      commonInputChange(val, item.prop, scope.row, scope)
                    }
                  "
                    }"
                ></el-input>
              </el-form-item>
            <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span>
@@ -265,7 +265,6 @@
        </el-table-column>
        <el-table-column label="操作" width="70" v-if="!detailEnter" align="center" fixed='right'>
          <template slot-scope="scope">
            <el-button type="text" size="small" :disabled="!isOperate" @click="deleteClick(scope)">删除</el-button>
          </template>
        </el-table-column>
@@ -278,7 +277,7 @@
        </el-checkbox-group>
      </div>
    </el-form>
    <el-button style="margin: 10px"  size="small" type="primary"  @click="add">新增</el-button>
   <!-- <el-button style="margin: 10px"  size="small" type="primary"  @click="add">新增</el-button>-->
    <div v-if="!detailEnter" style="margin: 10px" >
      <el-button size="small" type="primary" :disabled="!isOperate" @click="add">新增</el-button>
      <!-- <el-button size="small" type="primary" disabled>导入明细</el-button> -->
@@ -419,6 +418,16 @@
  },
  computed: {},
  methods: {
    moveToNextField(event,index){
        let inputs = document.querySelectorAll('.page-view input');
        let enabledInputs = Array.prototype.filter.call(inputs, function(input) {
            return !input.disabled;
        });
        if(index<enabledInputs.length-1){
            event.target.blur();
            enabledInputs[index+1].focus();
        }
    },
    getMergeNumber(){
      let pattern=new RegExp("[0-9]+");
        if(pattern.test(this.showSummary.mergeNumber)){