haoxuan
2024-05-07 1cd64a26daed3e0eb7b4ccf74e50267d79eaef09
src/views/productManage/productRegisterForm/addProductRegisterPage.vue
@@ -2,14 +2,27 @@
  <div class="add-product-page">
    <div class="top-view">
      <div class="t-left">
        <el-button type="primary" size="small">放弃</el-button>
        <el-button type="primary" size="small">保存</el-button>
        <el-divider direction="vertical"></el-divider>
        <el-button type="primary" size="small">退出</el-button>
        <el-button type="primary" size="small" @click="cancelClickOne"
          >放弃</el-button
        >
        <el-button
          type="primary"
          size="small"
          :loading="isAddloading"
          @click="saveClickOne('ruleForm')"
          >保存</el-button
        >
        <!-- <el-divider direction="vertical"></el-divider> -->
        <!-- <el-button type="primary" size="small" @click="quitClick">退出</el-button> -->
      </div>
      <div class="t-right">
        <div class="t-right-circle" :class="isDeviceConnectStatus ? 't-r-bg-green ' : 't-r-bg-red '"></div>
        <div :class="isDeviceConnectStatus ? 't-right-green' : 't-right-red'">计量仪器连接正常</div>
        <div
          class="t-right-circle"
          :class="isDeviceConnectStatus ? 't-r-bg-green ' : 't-r-bg-red '"
        ></div>
        <div :class="isDeviceConnectStatus ? 't-right-green' : 't-right-red'">
          计量仪器连接正常
        </div>
      </div>
    </div>
    <div class="body-card">
@@ -19,7 +32,7 @@
            :model="ruleForm"
            :rules="rules"
            ref="ruleForm"
            label-width="80px"
            label-width="85px"
            label-position="right"
            class="demo-ruleForm"
          >
@@ -28,196 +41,584 @@
                <el-form-item label="编号" prop="number">
                  <el-input v-model="ruleForm.number" size="small"></el-input>
                </el-form-item>
                <el-form-item label="生产用时" prop="productTime">
                  <el-input v-model="ruleForm.productTime" size="small"></el-input>
                <el-form-item label="生产用时" prop="record">
                  <el-input
                    v-model.number="ruleForm.record"
                    size="small"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="3">
                <el-form-item label="生产日期" prop="productDate">
                <el-form-item label="生产日期" prop="createTime">
                  <el-date-picker
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                    v-model="ruleForm.productDate"
                    v-model="ruleForm.createTime"
                    size="small"
                    style="width: 100%"
                  ></el-date-picker>
                </el-form-item>
                <el-form-item label="回数" prop="numTimes">
                  <el-input v-model="ruleForm.numTimes" size="small"></el-input>
                <el-form-item label="回数" prop="circle">
                  <el-input
                    v-model.number="ruleForm.circle"
                    size="small"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="3">
                <el-form-item label="庄口" prop="lots">
                  <el-select v-model="ruleForm.lots" placeholder="请选择庄口" size="small">
                    <el-option label="庄口一" value="庄口一"></el-option>
                    <el-option label="庄口二" value="庄口二"></el-option>
                <el-form-item label="庄口" prop="marketId">
                  <el-select
                    v-model="ruleForm.marketId"
                    placeholder="请选择"
                    class="select-width"
                    @change='getGroupNumber'
                  >
                    <el-option
                      v-for="item in marketList"
                      :key="item.ID"
                      :label="item.name"
                      :value="item.ID"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="落丝茧量" prop="silkCocoonCount">
                  <el-input v-model="ruleForm.silkCocoonCount" size="small"></el-input>
                <el-form-item label="落丝茧量" prop="fallingSilkCocoonNumber">
                  <el-input
                    v-model.number="ruleForm.fallingSilkCocoonNumber"
                    size="small"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="3">
                <el-form-item label="车间" prop="workshop">
                  <el-select v-model="ruleForm.workshop" placeholder="请选择车间" size="small">
                    <el-option label="车间一" value="车间一"></el-option>
                    <el-option label="车间二" value="车间二"></el-option>
                    <el-option label="车间三" value="车间三"></el-option>
                    <el-option label="车间四" value="车间四"></el-option>
                <el-form-item label="车间" prop="workshopNumber">
                  <el-select
                    v-model="ruleForm.workshopNumber"
                    placeholder="请选择"
                    class="select-width"
                    @change='getGroupNumber'
                  >
                    <el-option
                      v-for="item in nameList"
                      :key="item.number"
                      :label="item.name"
                      :value="item.number"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="每桶茧量" prop="barrelCocoonCount">
                <el-form-item label="每桶茧量" prop="bucketCocoonNumber">
                  <div style="display: flex">
                    <el-input v-model="ruleForm.silkCocoonCount" size="small"></el-input>
                    <span>克</span>
                    <el-input
                      v-model.number="ruleForm.bucketCocoonNumber"
                      size="small"
                    ></el-input>
                    <span class='margin_left_5px'>克</span>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="3">
                <el-form-item label="组别" prop="group">
                  <el-select v-model="ruleForm.group" placeholder="请选择组别" size="small">
                <el-form-item label="组别" prop="groupNumber">
                  <el-select
                    v-model="ruleForm.groupNumber"
                    placeholder="请先选择车间"
                    no-data-text='请先选择车间'
                    class="select-width"
                    @change="getGroupNumber(false,'groupNumber')"
                  >
                    <el-option
                      v-for="item in groupOptions"
                      :key="item.id"
                      :label="item.value"
                      :value="item.id"
                    ></el-option>
                      v-for="item in workshopGroupList"
                      :key="item"
                      :label="item"
                      :value="item"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="实际车速" prop="actualSpeed">
                  <el-input v-model="ruleForm.actualSpeed" size="small"></el-input>
                <el-form-item label="实际车速" prop="vehicleSpeed">
                  <el-input
                    v-model.number="ruleForm.vehicleSpeed"
                    size="small"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="3">
                <el-form-item label="规格" prop="spec">
                  <el-input v-model="ruleForm.spec" size="small"></el-input>
                  <el-select
                    v-model="ruleForm.spec"
                    placeholder="请选择"
                    class="select-width"
                  >
                    <el-option
                      v-for="item in specList"
                      :key="item.ID"
                      :label="item.name"
                      :value="item.name"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="乙班时间" prop="bShiftTime">
                  <el-input v-model="ruleForm.bShiftTime" size="small"></el-input>
                <el-form-item label="乙班时间" prop="timeYi">
                  <el-date-picker
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                    v-model="ruleForm.timeYi"
                    size="small"
                    style="width: 100%"
                  ></el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="3">
                <el-form-item label="是否结庄" prop="end">
                  <el-input v-model="ruleForm.spec" size="small"></el-input>
                <el-form-item label="是否结庄" prop="jieZhuang">
                  <el-input
                    v-model="ruleForm.jieZhuang"
                    size="small"
                  ></el-input>
                </el-form-item>
                <el-form-item label="甲班时间" prop="aShiftTime">
                  <el-input v-model="ruleForm.aShiftTime" size="small"></el-input>
                <el-form-item label="甲班时间" prop="timeJia">
                  <el-date-picker
                    value-format="yyyy-MM-dd"
                    type="date"
                    placeholder="选择日期"
                    v-model="ruleForm.timeJia"
                    size="small"
                    style="width: 100%"
                  ></el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="3">
                <el-form-item label="等级" prop="grade">
                  <el-input v-model="ruleForm.grade" size="small"></el-input>
                <el-form-item label="等级" prop="level">
                  <el-input
                    disabled
                    v-model="ruleForm.level"
                    size="small"
                  ></el-input>
                </el-form-item>
                <el-form-item label="车组缫折" prop="reelingDiscount">
                  <el-input v-model="ruleForm.reelingDiscount" size="small"></el-input>
                <el-form-item label="车组缫折" prop="groupReelingdiscount">
                  <el-input
                    v-model="ruleForm.groupReelingdiscount"
                    size="small"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="16">
                <el-form-item label="落丝桶数:" prop="doffBarrelage">
                <el-form-item label="落丝桶数:" prop="fallingSilkBucket">
                  <div class="doff-barrelage-card">
                    <div class="d-b-common">
                      <el-input v-model="ruleForm.oneInput" size="small" class="d-b-c-input"></el-input>
                      <el-checkbox v-model="ruleForm.isOneDoff"></el-checkbox>
                    <div class="select-width">
                      <el-form-item
                        label=""
                        @input="inputStart"
                        label-width="0"
                        label-position="right"
                        prop="fallingSilkBucketOne"
                        :rules="[
                          {
                            required: ruleForm.selectOne,
                            message: '请填写',
                            trigger: 'change',
                          },
                        ]"
                        class='margin_right_10px select-width-input'
                      >
                        <el-input
                          v-model="ruleForm.fallingSilkBucketOne"
                          size="small"
                        ></el-input>
                      </el-form-item>
                      <el-checkbox
                        v-model="ruleForm.selectOne"
                      ></el-checkbox>
                    </div>
                    <div class="d-b-common">
                      <el-input v-model="ruleForm.twoInput" size="small" class="d-b-c-input"></el-input>
                      <el-checkbox v-model="ruleForm.isTwoDoff"></el-checkbox>
                    <div class="select-width">
                      <el-form-item
                        label=""
                        @input="inputStart"
                        label-width="0"
                        :rules="[
                          {
                            required: ruleForm.selectTwo,
                            message: '请填写',
                            trigger: 'change',
                          },
                        ]"
                        prop="fallingSilkBucketTwo"
                        class='margin_right_10px select-width-input'
                      >
                        <el-input
                          v-model="ruleForm.fallingSilkBucketTwo"
                          size="small"
                          class="d-b-c-input"
                        ></el-input>
                      </el-form-item>
                      <el-checkbox
                        v-model="ruleForm.selectTwo"
                      ></el-checkbox>
                    </div>
                    <div class="d-b-common">
                      <el-input v-model="ruleForm.threeInput" size="small" class="d-b-c-input"></el-input>
                      <el-checkbox v-model="ruleForm.isThreeDoff"></el-checkbox>
                    <div class="select-width">
                      <el-form-item
                        label=""
                        @input="inputStart"
                        label-width=""
                        :rules="[
                          {
                            required: ruleForm.selectThree,
                            message: '请填写',
                            trigger: 'change',
                          },
                        ]"
                        prop="fallingSilkBucketThree"
                        class='margin_right_10px select-width-input'
                      >
                        <el-input
                          v-model="ruleForm.fallingSilkBucketThree"
                          size="small"
                          class="d-b-c-input"
                        ></el-input>
                      </el-form-item>
                      <el-checkbox
                        v-model="ruleForm.selectThree"
                      ></el-checkbox>
                    </div>
                  </div>
                </el-form-item>
                <el-form-item label="号带颜色:" prop="numBandColor">
                <el-form-item label="号带颜色:" prop="back">
                  <div class="doff-barrelage-card">
                    <div class="d-b-common">
                      <div class="n-m-c-label">第一回</div>
                      <el-input v-model="ruleForm.oneInput" size="small" class="d-b-c-input"></el-input>
                      <el-form-item
                        label="第一回"
                        @input="inputStartTwo"
                        label-width="90px"
                        prop="oneBack"
                        class="select-width"
                      >
                        <el-input
                          v-model="ruleForm.oneBack"
                          size="small"
                        ></el-input>
                      </el-form-item>
                    </div>
                    <div class="d-b-common">
                      <div class="n-m-c-label">第二回</div>
                      <el-input v-model="ruleForm.twoInput" size="small" class="d-b-c-input"></el-input>
                      <el-form-item
                        label="第二回"
                        @input="inputStartTwo"
                        label-width="90px"
                        prop="twoBack"
                        class="select-width"
                      >
                        <el-input
                          v-model="ruleForm.twoBack"
                          size="small"
                        ></el-input>
                      </el-form-item>
                    </div>
                    <div class="d-b-common">
                      <div class="n-m-c-label">第三回</div>
                      <el-input v-model="ruleForm.threeInput" size="small" class="d-b-c-input"></el-input>
                      <el-form-item
                        label="第三回"
                        @input="inputStartTwo"
                        label-width="90px"
                        prop="threeBack"
                        class="select-width"
                      >
                        <!-- <div class="n-m-c-label">第三回</div> -->
                        <el-input
                          v-model="ruleForm.threeBack"
                          size="small"
                        ></el-input>
                      </el-form-item>
                    </div>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="4">
                <el-form-item label="理论丝量" prop="theorySilkCount">
                  <el-input v-model="ruleForm.theorySilkCount" size="small"></el-input>
                <el-form-item label="理论丝量" prop="theorySilkAmount">
                  <el-input
                    v-model.number="ruleForm.theorySilkAmount"
                    size="small"
                  ></el-input>
                </el-form-item>
                <el-form-item label="总产量" prop="totalOutput">
                <el-form-item label="总产量" prop="total">
                  <div style="display: flex">
                    <el-input v-model="ruleForm.totalOutput" size="small"></el-input>
                    <span>kg</span>
                    <el-input
                      v-model.number="ruleForm.total"
                      size="small"
                    ></el-input>
                    <span class='margin_left_5px'>kg</span>
                  </div>
                </el-form-item>
              </el-col>
              <el-col :span="4">
                <el-form-item label="台时产量" prop="platformTimeOutput">
                  <el-input v-model="ruleForm.platformTimeOutput" size="small"></el-input>
                <el-form-item label="台时产量" prop="hourYield">
                  <el-input
                    v-model.number="ruleForm.hourYield"
                    size="small"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
        </div>
        <div class="b-t-right">
          <div class="b-t-r-icon" :class="isDeviceConnectStatus ? 'c-p' : 'c-n'" @click="deviceConnectClick">
          <div
            class="b-t-r-icon"
            :class="isDeviceConnectStatus ? 'c-p' : 'c-n'"
            @click="deviceConnectClick"
          >
            <i class="el-icon-d-arrow-left"></i>
          </div>
        </div>
      </div>
      <div class="body-table">
        <div class="b-t-unit">单位:克</div>
        <el-table :data="tableData" style="width: 100%" border>
          <el-table-column prop="carNum" label="车号" width="99" align="center"> </el-table-column>
        <el-table
          :data="tableData"
          style="width: 100%"
          border
          v-if='tableShow'
          :height="'calc(100% - 0px)'"
          :cell-style='cellStyle'
        >
          <el-table-column
            prop="carNumber"
            label="车号"
            width="99"
            align="center"
          >
          </el-table-column>
          <el-table-column label="第一回" align="center">
            <el-table-column prop="fist1" label="1" width="60" align="center"> </el-table-column>
            <el-table-column prop="fist2" label="2" width="60" align="center"> </el-table-column>
            <el-table-column prop="fist3" label="3" width="60" align="center"> </el-table-column>
            <el-table-column prop="fist4" label="4" width="60" align="center"> </el-table-column>
            <el-table-column
              prop="pieceNumber11"
              label="1"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber12"
              label="2"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber13"
              label="3"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber14"
              label="4"
              width="60"
              align="center"
            >
            </el-table-column>
          </el-table-column>
          <el-table-column label="第二回" align="center">
            <el-table-column prop="two1" label="1" width="60" align="center"> </el-table-column>
            <el-table-column prop="two2" label="2" width="60" align="center"> </el-table-column>
            <el-table-column prop="two3" label="3" width="60" align="center"> </el-table-column>
            <el-table-column prop="two4" label="4" width="60" align="center"> </el-table-column>
            <el-table-column
              prop="pieceNumber21"
              label="1"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber22"
              label="2"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber23"
              label="3"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber24"
              label="4"
              width="60"
              align="center"
            >
            </el-table-column>
          </el-table-column>
          <el-table-column label="第三回" align="center">
            <el-table-column prop="three1" label="1" width="60" align="center"> </el-table-column>
            <el-table-column prop="three2" label="2" width="60" align="center"> </el-table-column>
            <el-table-column prop="three3" label="3" width="60" align="center"> </el-table-column>
            <el-table-column prop="three4" label="4" width="60" align="center"> </el-table-column>
            <el-table-column
              prop="pieceNumber31"
              label="1"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber32"
              label="2"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber33"
              label="3"
              width="60"
              align="center"
            >
            </el-table-column>
            <el-table-column
              prop="pieceNumber34"
              label="4"
              width="60"
              align="center"
            >
            </el-table-column>
          </el-table-column>
          <el-table-column prop="date" label="台产量" align="center"> </el-table-column>
          <el-table-column prop="date" label="个人产量" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="台时产量" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="个人缫折" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="一回产量" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="一回台产" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="一回缫折" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="二回产量" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="二回台产" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="二回缫折" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="三回产量" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="三回台产" width="60" align="center"> </el-table-column>
          <el-table-column prop="date" label="三回缫折" width="60" align="center"> </el-table-column>
          <el-table-column prop="oneYield" label="台产量" align="center">
            <template slot-scope="scope">
               {{getOneYield(scope.row)}}
            </template>
          </el-table-column>
          <el-table-column
            prop="peopleYield"
            label="个人产量"
            width="60"
            align="center"
          >
          <template slot-scope="scope">
               {{scope.row.peopleYield!=0?scope.row.peopleYield.toFixed(2):''}}
            </template>
          </el-table-column>
          <el-table-column
            prop="hourYield"
            label="台时产量"
            width="60"
            align="center"
          >
            <template slot-scope="scope">
              {{(ruleForm.record&&ruleForm.record!=0&&scope.row.oneYield)?(scope.row.oneYield/ruleForm.record).toFixed(2):''}}
            </template>
          </el-table-column>
          <el-table-column
            prop="personReelingdiscount"
            label="个人缫折"
            width="60"
            align="center"
          >
          </el-table-column>
          <el-table-column
            prop="allYield1"
            label="一回产量"
            width="60"
            align="center"
          >
            <template slot-scope="scope">
               {{getallYield(scope.row,1)}}
            </template>
          </el-table-column>
          <el-table-column
            prop="oneYield1"
            label="一回台产"
            width="60"
            align="center"
          >
            <template slot-scope="scope">
                 {{(ruleForm.record&&ruleForm.record!=0&&scope.row.allYield1)?(scope.row.allYield1/ruleForm.record).toFixed(2):''}}
            </template>
          </el-table-column>
          <el-table-column
            prop="reelingdiscount1"
            label="一回缫折"
            width="60"
            align="center"
          >
          </el-table-column>
          <el-table-column
            prop="allYield2"
            label="二回产量"
            width="60"
            align="center"
          >
          <template slot-scope="scope">
               {{getallYield(scope.row,2)}}
            </template>
          </el-table-column>
          <el-table-column
            prop="oneYield2"
            label="二回台产"
            width="60"
            align="center"
          >
          <template slot-scope="scope">
               {{(ruleForm.record&&ruleForm.record!=0&&scope.row.allYield2)?(scope.row.allYield2/ruleForm.record).toFixed(2):''}}
            </template>
          </el-table-column>
          <el-table-column
            prop="reelingdiscount2"
            label="二回缫折"
            width="60"
            align="center"
          >
          </el-table-column>
          <el-table-column
            prop="allYield3"
            label="三回产量"
            width="60"
            align="center"
          >
          <template slot-scope="scope">
               {{getallYield(scope.row,3)}}
            </template>
          </el-table-column>
          <el-table-column
            prop="oneYield3"
            label="三回台产"
            width="60"
            align="center"
          >
          <template slot-scope="scope">
            {{(ruleForm.record&&ruleForm.record!=0&&scope.row.allYield3)?(scope.row.allYield3/ruleForm.record).toFixed(2):''}}
            </template>
          </el-table-column>
          <el-table-column
            prop="reelingdiscount3"
            label="三回缫折"
            width="60"
            align="center"
          >
          </el-table-column>
        </el-table>
      </div>
    </div>
    <!-- 仪器连接正常弹窗 -->
    <addProductDialog ref="addProductDialog" />
  </div>
    <addProductDialog ref="addProductDialog"
      :marketList='marketList'
      :nameList='nameList'
      :form='ruleForm'
      :specList='specList'
      @changeForm='changeForm'
      @changeTableInput='changeTableInput' />
    </div>
</template>
<script>
import addProductDialog from "./components/addProductDialog"
import addProductDialog from "./components/addProductDialog";
import {
  getYieldRegisterInfo,
  saveYieldRegister,
  getWorkshopManageCar,
  getWorkshopManageGroup,
} from "@/api/productManage/productRegisterForm.js";
import {
  getDictList,
} from "@/api/productManage/silkRegisterForm.js";
export default {
  name: "addProductRegisterPage",
  props: {},
@@ -226,70 +627,668 @@
  computed: {},
  data() {
    return {
      isDeviceConnectStatus: false,
      isDeviceConnectStatus: true,
      marketList: [], //庄口
      nameList: [], //车间
      workshopGroupList: [], //组别
      specList: [], //规格
      ruleForm: {
        number: "",
        productTime: "",
        productDate: "",
        numTimes: "",
        lots: "庄口一",
        silkCocoonCount: "",
        workshop: "车间一",
        barrelCocoonCount: "",
        group: 1,
        actualSpeed: "",
        record: "",
        createTime: "",
        circle: "",
        marketId: "",
        fallingSilkCocoonNumber: "",
        workshopNumber: "",
        bucketCocoonNumber: "",
        groupNumber: "",
        vehicleSpeed: "",
        spec: "",
        bShiftTime: "",
        aShiftTime: "",
        end: false,
        reelingDiscount: "",
        grade: "",
        oneInput: "",
        isOneDoff: false,
        twoInput: "",
        isTwoDoff: false,
        threeInput: "",
        isThreeDoff: false,
        theorySilkCount: "",
        totalOutput: "",
        platformTimeOutput: ""
        timeYi: "",
        jieZhuang: "",
        timeJia: "",
        level: "",
        groupReelingdiscount: "",
        fallingSilkBucket: "",
        fallingSilkBucketOne: "",
        selectOne: false,
        fallingSilkBucketTwo: "",
        selectTwo: false,
        fallingSilkBucketThree: "",
        selectThree: false,
        back: "",
        oneBack: "",
        twoBack: "",
        threeBack: "",
        theorySilkAmount: "",
        total: "",
        hourYield: "",
      },
      rules: {
        number: [{ required: true, message: "请输入编号", trigger: "blur" }],
        productDate: [{ required: true, message: "请选择生产日期", trigger: "change" }],
        workshop: [{ type: "date", required: true, message: "请选择车间", trigger: "change" }]
        number: [{ required: true, message: "请输入编号", trigger:  ["change", "blur"] }],
        createTime: [
          { required: true, message: "请选择生产日期", trigger:  ["change", "blur"] },
        ],
        marketId:  [
          { required: true, message: "请选择", trigger:  ["change", "blur"] },
        ],
        workshopNumber:  [
          { required: true, message: "请选择", trigger:  ["change", "blur"] },
        ],
        groupNumber:  [
          { required: true, message: "请选择", trigger:  ["change", "blur"] },
        ],
        spec:  [
          { required: true, message: "请选择", trigger:  ["change", "blur"] },
        ],
      },
      groupOptions: [
        { id: 1, value: 1 },
        { id: 2, value: 2 },
        { id: 3, value: 3 },
        { id: 4, value: 4 },
        { id: 5, value: 5 },
        { id: 6, value: 6 },
        { id: 7, value: 7 },
        { id: 8, value: 8 },
        { id: 9, value: 9 }
      ],
      tableData: []
    }
      tableData: [],
      isAddloading: false,
      productRegisterId:null,
      productRegisterNumber:null,
      tableDataItems:[],
      tableDataCircles:[],
      yieldRegisterId:'',
      tableShow:true,
    };
  },
  created() {},
  mounted() {
    let query = this.$route.query;
    if (query) {
      this.productRegisterId = query.id ? query.id : "";
      this.productRegisterNumber = query.number ? query.number : "";
    }
    this.getSelectDataList();
    this.getDetailsData()
  },
  methods: {
    async getDetailsData(){
      this.ruleForm = {
        number: "",
        record: "",
        createTime: "",
        circle: "",
        marketId: "",
        fallingSilkCocoonNumber: "",
        workshopNumber: "",
        bucketCocoonNumber: "",
        groupNumber: "",
        vehicleSpeed: "",
        spec: "",
        timeYi: "",
        jieZhuang: "",
        timeJia: "",
        level: "",
        groupReelingdiscount: "",
        fallingSilkBucket: "",
        fallingSilkBucketOne: "",
        selectOne: false,
        fallingSilkBucketTwo: "",
        selectTwo: false,
        fallingSilkBucketThree: "",
        selectThree: false,
        back: "",
        oneBack: "",
        twoBack: "",
        threeBack: "",
        theorySilkAmount: "",
        total: "",
        hourYield: "",
      };
        if (this.productRegisterNumber) {
          await getYieldRegisterInfo({ number:this.productRegisterNumber }).then(
            (response) => {
              if (response.code === 200) {
                let config = JSON.parse(
                  JSON.stringify(response.data ? response.data : {})
                );
                this.ruleForm = config;
                this.$set(this.ruleForm,'workshopNumber',this.ruleForm.workshopNumber+'')
                this.tableDataItems=config.items
                  ? config.items
                  : [];
                  this.tableDataCircles=config.circles
                  ? config.circles
                  : [];
                this.getGroupNumber(true)
              }
            }
          );
        }
    },
    getTableEdit(){
      if(this.tableData.length>0){
        for(let i in this.tableData){
          if(this.tableDataItems.length>0){
            for(let j in this.tableDataItems){
              if(this.tableData[i].carNumber==this.tableDataItems[j].carNumber){
                this.tableData[i]={
                  perList:this.tableData[i].perList,
                  isBlue:this.tableData[i].isBlue,
                  ...this.tableDataItems[j],
                }
              }
            }
          }
        }
      }
      this.yieldRegisterId=this.tableDataItems.length>0?this.tableDataItems[0].yieldRegisterId:""
      if(this.tableDataCircles.length>0){
        for(let i in this.tableData){
          for(let j in this.tableDataCircles){
            if(this.tableDataCircles[j].carNumber==this.tableData[i].carNumber){
              let circle=this.tableDataCircles[j].circle
              let pieceNumberList=this.tableDataCircles[j].pieceNumbers||[]
              this.tableData[i]['allYield'+circle]=this.tableDataCircles[j]['allYield']
              this.tableData[i]['oneYield'+circle]=this.tableDataCircles[j]['oneYield']
              this.tableData[i]['reelingdiscount'+circle]=this.tableDataCircles[j]['reelingdiscount']
              if(pieceNumberList.length>0){
                for(let k in pieceNumberList){
                  this.tableData[i]['pieceNumber'+circle+pieceNumberList[k].pieceNumber]=pieceNumberList[k].value
                }
              }
            }
          }
        }
      }
      this.ruleForm.carNumber=this.tableData.length>0?this.tableData[0].carNumber:''
    },
    // 表格的计算问题
    getOneYield(row){
      let string='';
      if(row.pieceNumber11||row.pieceNumber12||row.pieceNumber13||row.pieceNumber14||row.pieceNumber21||row.pieceNumber22||row.pieceNumber23||row.pieceNumber24||row.pieceNumber31||row.pieceNumber32||row.pieceNumber33||row.pieceNumber34){
        if(row.pieceNumber11){
          string=Number(row.pieceNumber11)
        }
        if(row.pieceNumber12){
          string=Number(string)+Number(row.pieceNumber12)
        }
        if(row.pieceNumber13){
          string=Number(string)+Number(row.pieceNumber13)
        }
        if(row.pieceNumber14){
          string=Number(string)+Number(row.pieceNumber14)
        }
        if(row.pieceNumber21){
          string=Number(string)+Number(row.pieceNumber21)
        }
        if(row.pieceNumber22){
          string=Number(string)+Number(row.pieceNumber22)
        }
        if(row.pieceNumber23){
          string=Number(string)+Number(row.pieceNumber23)
        }
        if(row.pieceNumber24){
          string=Number(string)+Number(row.pieceNumber24)
        }
        if(row.pieceNumber31){
          string=Number(string)+Number(row.pieceNumber31)
        }
        if(row.pieceNumber32){
          string=Number(string)+Number(row.pieceNumber32)
        }
        if(row.pieceNumber33){
          string=Number(string)+Number(row.pieceNumber33)
        }
        if(row.pieceNumber34){
          string=Number(string)+Number(row.pieceNumber34)
        }
      }
      this.getPeopleYield(row)
      row.oneYield=Number(string);
      return string.toFixed(2);
    },
    getPeopleYield(row){
      let string=0
      if(row.perList){
        if(row.perList.length>0){
          let carNumber=row.perList[row.perList.length-1]
          for(let i in this.tableData){
            for(let j in row.perList){
              if(row.perList[j]==this.tableData[i].carNumber){
                string=string+this.tableData[i].oneYield
              }
            }
          }
          for(let k in this.tableData){
            if(this.tableData[k].carNumber==carNumber){
              this.$set(this.tableData[k],'peopleYield',string)
              break;
            }
          }
        }
      }
    },
    getallYield(row,val){
      let string='';
      if(row['pieceNumber'+val+'1']||row['pieceNumber'+val+'2']||row['pieceNumber'+val+'3']||row['pieceNumber'+val+'4']){
        if(row['pieceNumber'+val+'1']){
          string=Number(row['pieceNumber'+val+'1'])
        }
        if(row['pieceNumber'+val+'2']){
          string=Number(string)+Number(row['pieceNumber'+val+'2'])
        }
        if(row['pieceNumber'+val+'3']){
          string=Number(string)+Number(row['pieceNumber'+val+'3'])
        }
        if(row['pieceNumber'+val+'4']){
          string=Number(string)+Number(row['pieceNumber'+val+'4'])
        }
      }
      row['allYield'+val]=Number(string);
      return string.toFixed(2);
    },
    changeForm(form,val,data){
      if(val){
        if(Object.keys(data).length>0){
          let config = JSON.parse(
                  JSON.stringify(data ? data : {})
                );
                this.ruleForm = config;
                this.$set(this.ruleForm,'workshopNumber',this.ruleForm.workshopNumber+'')
                this.tableDataItems=config.items
                  ? config.items
                  : [];
                  this.tableDataCircles=config.circles
                  ? config.circles
                  : [];
          this.$router.push({
            name:'addProductRegisterPage',
            query:{
                id:data.id,
                number:data.number,
              }
          });
        }
      }
    },
    cellStyle({row,columnIndex}){
      let cellStyle;
      if(row.isBlue){
        let pieceNumber=this.$refs.addProductDialog.proForm.pieceNumber||1
        let pieces=this.$refs.addProductDialog.proForm.pieces||1
        let number=(Number(pieceNumber)-1)*4+Number(pieces)
        if(columnIndex==number){
          cellStyle='borderColor:#2a78fb;borderTop:1px solid #2a78fb;borderLeft:1px solid #2a78fb;'
        }
      }else{
        cellStyle='borderColor:#EBEEF5;borderTop:0;borderLeft:0'
      }
      return cellStyle;
    },
    changeTableInput(form){
      let string=''
      for(let i in this.tableData){
        if(this.tableData[i].carNumber==form.carNumber){
          string=i
           if(Number(form.pieceNumber)>0&&Number(form.pieces)<5){
            this.tableData.map((item) => {
              item.isBlue=false
            })
            this.$set(this.tableData[i],'isBlue',true)
            this.$set(this.tableData[i],'pieceNumber'+form.pieceNumber+form.pieces,form.netWeight)
            this.tableShow=false;
            this.$nextTick(()=>{
              this.tableShow=true;
              this.$forceUpdate();
            })
            break;
          }
        }
      }
      if(form.netWeight){
        if(form.pieceNumber==3&&form.pieces==4){
          if(Number(string)+1<=this.tableData.length){
            this.$refs.addProductDialog.proForm.carNumber=this.tableData[Number(string)+1].carNumber
            this.$refs.addProductDialog.proForm.pieceNumber=1
            this.$refs.addProductDialog.proForm.pieces=1
            this.$set(this.tableData[Number(string)+1],'isBlue',true)
            this.$set(this.tableData[Number(string)],'isBlue',false)
            this.tableShow=false;
            this.$nextTick(()=>{
              this.tableShow=true;
              this.$forceUpdate();
            })
          }
        }else{
          if(form.pieces==4){
            this.$refs.addProductDialog.proForm.pieceNumber=Number(form.pieceNumber)+1
            this.$refs.addProductDialog.proForm.pieces=1
          }else{
            this.$refs.addProductDialog.proForm.pieces=Number(form.pieces)+1
          }
        }
        this.$refs.addProductDialog.proForm.netWeight=''
        this.$forceUpdate();
      }
    },
    getSelectDataList() {
      //车间
      getDictList({
        dictType: 1,
      }).then((res) => {
        if (res.code == 200) {
          this.nameList = res.data || [];
          this.$set(this.ruleForm,'workshopNumber',this.ruleForm.workshopNumber+'')
        }
      });
      //规格
      getDictList({
        dictType: 3,
      }).then((res) => {
        if (res.code == 200) {
          this.specList = res.data || [];
        }
      });
      //庄口
      getDictList({
        dictType: 0,
      }).then((res) => {
        if (res.code == 200) {
          this.marketList = res.data || [];
        }
      });
    },
    getGroupNumber(val,prop){
      if(this.ruleForm.workshopNumber){
        //组别
        getWorkshopManageGroup({number:this.ruleForm.workshopNumber}).then((res) => {
           if (res.code == 200) {
              let workshopGroupList = res.data || {};
              this.workshopGroupList=[]
              if(Object.keys(workshopGroupList).length>0){
                for(let i in workshopGroupList){
                  this.workshopGroupList.push(workshopGroupList[i])
                }
                if(prop&&prop!='groupNumber'){
                  this.ruleForm.groupNumber=''
                }
                // 编辑
                if(val){
                  setTimeout(()=>{
                    this.$set(this.ruleForm,'groupNumber',this.ruleForm.groupNumber)
                  },200)
                }
              }
            }else{
              this.workshopGroupList=[]
              this.ruleForm.groupNumber=''
            }
          });
          if(this.ruleForm.groupNumber&&this.ruleForm.marketId){
            let workshopName=''
            for(let i in this.nameList){
              if( this.nameList[i].number==this.ruleForm.workshopNumber){
                workshopName= this.nameList[i].name
                break;
              }
            }
            let marketName=''
            for(let i in this.marketList){
              if( this.marketList[i].ID==this.ruleForm.marketId){
                marketName= this.marketList[i].name
                break;
              }
            }
            getWorkshopManageCar({
              workshopName:workshopName,
              marketName:marketName,
              groupNumber:this.ruleForm.groupNumber,
            }).then((res) => {
              if (res.code == 200) {
                this.tableData=[]
                this.ruleForm.level=res.data.level||''
                let data = JSON.parse(JSON.stringify(res.data.car)) || [];
               if(Object.keys(data).length>0){
                for(let i in data){
                  for(let j in data[i]){
                    this.tableData.push({carNumber:data[i][j],perList:data[i],isBlue:false})
                  }
                }
                this.tableData[0].isBlue=true
               }
               this.ruleForm.carNumber=this.tableData.length>0?this.tableData[0].carNumber:''
              //  编辑
               if(val){
                this.getTableEdit()
               }
              }else{
                this.tableData=[]
                this.ruleForm.level=''
                this.ruleForm.carNumber=''
              }
            });
          }
      }else{
        this.workshopGroupList =[]
      }
    },
    inputStart() {
      this.ruleForm.fallingSilkBucket = this.ruleForm.fallingSilkBucketOne + "-" + this.ruleForm.fallingSilkBucketTwo+"-" + this.ruleForm.fallingSilkBucketThree;
    },
    inputStartTwo() {
      this.ruleForm.back = this.ruleForm.oneBack + "-" + this.ruleForm.twoBack+"-" + this.ruleForm.threeBack;
    },
    // 仪器连接弹窗
    deviceConnectClick() {
      console.log("dddd")
      if (this.isDeviceConnectStatus) {
        this.$refs.addProductDialog.editDialogVisible = true
        this.$refs.addProductDialog.proForm.pieceNumber= this.$refs.addProductDialog.proForm.pieceNumber||1
        this.$refs.addProductDialog.proForm.pieces= this.$refs.addProductDialog.proForm.pieces||1
        this.$forceUpdate();
        this.$refs.addProductDialog.editDialogVisible = true;
      }
    }
  }
}
    },
    // 退出
    quitClick() {
      this.$router.go(-1);
    },
    // 放弃
    cancelClickOne() {
      this.ruleForm = {
        number: "",
        record: "",
        createTime: "",
        circle: "",
        marketId: "",
        fallingSilkCocoonNumber: "",
        workshopNumber: "",
        bucketCocoonNumber: "",
        groupNumber: "",
        vehicleSpeed: "",
        spec: "",
        timeYi: "",
        jieZhuang: "",
        timeJia: "",
        level: "",
        groupReelingdiscount: "",
        fallingSilkBucket: "",
        fallingSilkBucketOne: "",
        selectOne: false,
        fallingSilkBucketTwo: "",
        selectTwo: false,
        fallingSilkBucketThree: "",
        selectThree:false,
        back: "",
        oneBack: "",
        twoBack: "",
        threeBack: "",
        theorySilkAmount: "",
        total: "",
        hourYield: "",
      };
      this.$refs.ruleForm.resetFields();
      this.tableData = [];
    },
    // 保存
    saveClickOne(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          let form = JSON.parse(JSON.stringify(this.ruleForm));
          // params.workshopGroup=Number(params.workshopGroup)
          this.isAddloading = true;
          delete form.circleTwo;
          let circles=[]
          let items=[]
          let tableData = JSON.parse(
            JSON.stringify(this.tableData)
          );
          form.bucketCocoonNumber=Number(form.bucketCocoonNumber)
          form.circle=Number(form.circle)
          form.fallingSilkBucketOne=Number(form.fallingSilkBucketOne)
          form.fallingSilkBucketThree=Number(form.fallingSilkBucketThree)
          form.fallingSilkBucketTwo=Number(form.fallingSilkBucketTwo)
          form.fallingSilkCocoonNumber=Number(form.fallingSilkCocoonNumber)
          form.groupNumber=Number(form.groupNumber)
          form.hourYield=Number(form.hourYield)
          form.marketId=Number(form.marketId)
          form.record=Number(form.record)
          form.theorySilkAmount=Number(form.theorySilkAmount)
          form.total=Number(form.total)
          form.vehicleSpeed=Number(form.vehicleSpeed)
          for(let i in tableData){
            let listItems1={
              allYield:Number(tableData[i].allYield1)||0, //产量
              carNumber:tableData[i].carNumber,
              circle:1,//回数
              oneYield:Number(tableData[i].oneYield1)||0,//   台产
              pieceNumbers:[
                {
                  pieceNumber:1,
                  value:Number(tableData[i].pieceNumber11)||0
                },
                {
                  pieceNumber:2,
                  value:Number(tableData[i].pieceNumber12)||0
                },
                {
                  pieceNumber:3,
                  value:Number(tableData[i].pieceNumber13)||0
                },
                {
                  pieceNumber:4,
                  value:Number(tableData[i].pieceNumber14)||0
                },
              ],
              reelingdiscount:tableData[i].reelingdiscount1||'', //缫折
            }
            let listItems2={
              allYield:Number(tableData[i].allYield2)||0, //产量
              carNumber:tableData[i].carNumber,
              circle:2,//回数
              pieceNumbers:[
                {
                  pieceNumber:1,
                  value:Number(tableData[i].pieceNumber21)||0
                },
                {
                  pieceNumber:2,
                  value:Number(tableData[i].pieceNumber22)||0
                },
                {
                  pieceNumber:3,
                  value:Number(tableData[i].pieceNumber23)||0
                },
                {
                  pieceNumber:4,
                  value:Number(tableData[i].pieceNumber24)||0
                },
              ],
              oneYield:Number(tableData[i].oneYield2)||0,//   台产
              reelingdiscount:tableData[i].reelingdiscount2||'', //缫折
            }
            let listItems3={
              allYield:Number(tableData[i].allYield3)||0, //产量
              carNumber:tableData[i].carNumber,
              circle:3,//回数
              oneYield:Number(tableData[i].oneYield3)||0,//   台产
              pieceNumbers:[
                {
                  pieceNumber:1,
                  value:Number(tableData[i].pieceNumber31)||0
                },
                {
                  pieceNumber:2,
                  value:Number(tableData[i].pieceNumber32)||0
                },
                {
                  pieceNumber:3,
                  value:Number(tableData[i].pieceNumber33)||0
                },
                {
                  pieceNumber:4,
                  value:Number(tableData[i].pieceNumber34)||0
                },
              ],
              reelingdiscount:tableData[i].reelingdiscount3||'', //缫折
              // yieldRegisterId:''
            }
            let listItems4={
              hourYield:Number(tableData[i].hourYield)||0,
              carNumber:tableData[i].carNumber,
              oneYield:Number(tableData[i].oneYield)||0,
              peopleYield:Number(tableData[i].peopleYield)||0,
              personReelingdiscount:tableData[i].personReelingdiscount||'',
              // yieldRegisterId:''
            }
            if(this.yieldRegisterId){
              listItems1.yieldRegisterId=this.yieldRegisterId
              listItems2.yieldRegisterId=this.yieldRegisterId
              listItems3.yieldRegisterId=this.yieldRegisterId
              listItems4.yieldRegisterId=this.yieldRegisterId
            }
            circles.push(listItems1)
            circles.push(listItems2)
            circles.push(listItems3)
            items.push(listItems4)
          }
          let params = {
            ...form,
            circles: circles,
            items:items,
          };
          console.log(params,'===params111')
          saveYieldRegister(params)
            .then((res) => {
              if (res.code == 200) {
                this.isRegisterSave = true;
                this.$message({
                  message: "保存成功!",
                  type: "success",
                });
                this.$router.push({
                  path: "/productManage/productRegisterForm",
                });
              }
              this.isAddloading = false;
            })
            .catch(() => {
              setTimeout(() => {
                this.isAddloading = false;
              }, 3000);
            });
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
  },
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.add-product-page {
  height: 100%;
  position:relative;
  ::v-deep .el-table .el-table__cell {
    padding: 6px 0 !important;
    height: 35px;
    text-align: center;
  }
  .top-view {
    margin: 20px 30px;
    height: 52px;
@@ -318,6 +1317,13 @@
    padding: 10px 15px;
    height: calc(100% - 180px);
    border-radius: 4px;
    .select-width {
      width: calc(100%  - 20px);
      .select-width-input{
        width:150px;
        float:left;
      }
    }
    .body-top {
      display: flex;
      .b-t-left {
@@ -357,6 +1363,8 @@
      }
    }
    .body-table {
      width:100%;
      height:calc(100% - 263px);
      position: relative;
      .b-t-unit {
        position: absolute;
@@ -384,7 +1392,4 @@
.c-n {
  cursor: no-drop;
}
::v-deep {
}
</style>
</style>