bingbo
2023-11-24 cd5f5e0bf379cf41b93ddb24cf0e1b0831fb1d01
Merge branch 'master' of http://111.30.93.211:10101/r/supipe
已修改7个文件
已添加1个文件
1643 ■■■■ 文件已修改
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/api/modules/ductpiecePLM.js 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/api/modules/materials.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/DuctpiecePLM/DuctProduct/ProductIndex.vue 650 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/DuctpiecePLM/DuctpieceIndex.vue 650 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/GoodManage/WeightRecord.vue 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java
@@ -4,6 +4,7 @@
import com.thhy.materials.modules.biz.concret.entity.dto.DicetName;
import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant;
import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto;
import com.thhy.materials.modules.biz.weigh.entity.TWeighbridge;
import com.thhy.materials.modules.biz.weigh.mapper.WeighMapper;
import com.thhy.materials.modules.biz.weigh.service.WeighService;
import org.redisson.api.RLock;
@@ -192,6 +193,50 @@
    }
    //苏州项目------- 地磅入库  记录,及库存修改
    @Scheduled(fixedRate = 2000000) // 每隔3秒执行一次任务
    public void weighbridge() {
        //查询搅拌 所有类型
        List<DicetName> dictList = weighService.dictList();
        List<TWeighbridge> tWeighbridges = weighMapper.weighbridgeListType();
        for (DicetName dicetName : dictList){
            for (TWeighbridge weighbridge :tWeighbridges){
                if(dicetName.getDictName().equals(weighbridge.getMatname())){
                    //开始的库存
                    Double materialValue = weighMapper.materialStockValue(dicetName.getDictId());
                    //净重
                    String jweight = weighbridge.getJweight();
                    HashMap<String, Object> hashMap = new HashMap<>();
                    hashMap.put("id","");
                    hashMap.put("type",1);
                    hashMap.put("opType",1);
                    hashMap.put("materialName",dicetName.getDictId());
                    hashMap.put("materialValue",Double.valueOf(jweight));
                    hashMap.put("beforeStock",materialValue);
                    BigDecimal b1 = new BigDecimal(jweight);
                    BigDecimal b2 = new BigDecimal(materialValue);
                    double v1 = b1.add(b2).doubleValue();
                    hashMap.put("afterStock",v1);
                    hashMap.put("companyId","031e3dd577e8ed28e96aa69b");
                    RLock lock = redissonclient.getLock("materlock");
                    if(!lock.isLocked()) {
                        lock.lock(10, TimeUnit.SECONDS);
                        //插入记录表//苏州项目(入库计入增加)
                        weighMapper.materialStockRecordIns(hashMap);
                        //更改记录值
                        weighMapper.materialStockRecordUp(dicetName.getDictId(),b1.add(b2).doubleValue());
                        lock.unlock();
                    }
                    weighMapper.weighbridgeUpdateType(weighbridge.getWeighbridgeId());
                }
            }
        }
    }
}
hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java
@@ -73,4 +73,12 @@
    void netWeighUpdateNew(@Param("byId") Integer byId,@Param("netWeight") double netWeight);
    List<TWeighbridge> weighbridgeList(Map<String, Object> values);
    List<TWeighbridge> weighbridgeListType();
    Double materialStockValue(String dictId);
    void materialStockRecordIns(HashMap<String, Object> hashMap);
    void weighbridgeUpdateType(Integer weighbridgeId);
}
hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml
@@ -615,4 +615,100 @@
        order by weighbridge_id desc
    </select>
    <select id="weighbridgeListType" resultType="com.thhy.materials.modules.biz.weigh.entity.TWeighbridge">
        select
        weighbridge_id as weighbridgeId,
        id,
        code,
        orgName,
        supplyOrgName,
        carNumber,
        driverName,
        matName,
        matModel,
        mPoundTime,
        mPoundWeight,
        mPoundName,
        pPoundTime,
        pPoundWeight,
        pPoundName,
        jPoundWeight,
        buckleWeight,
        mWeight,
        pWeight,
        jWeight,
        wareName,
        fileImage,
        types
         from  t_weighbridge where
        types=1
    </select>
    <select id="materialStockValue" resultType="java.lang.Double">
        select material_value as materialValue
        from  t_material_stock where  material_name=#{dictId}
    </select>
    <insert id="materialStockRecordIns" >
        insert into t_material_stock_record
        <trim prefix="(" suffix=")" suffixOverrides=",">
            id,
            <if test="createDate != null">
                create_date,
            </if>
            <if test="type != null">
                type,
            </if>
            <if test="opType != null">
                op_type,
            </if>
            <if test="materialName != null">
                material_name,
            </if>
            <if test="materialValue != null">
                material_value,
            </if>
            <if test="beforeStock != null">
                before_stock,
            </if>
            <if test="afterStock != null">
                after_stock,
            </if>
            <if test="companyId != null">
                company_id,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            REPLACE(UUID(),'-',''),
            <if test="createDate != null">
                #{createDate,jdbcType=TIMESTAMP},
            </if>
            <if test="type != null">
                #{type,jdbcType=INTEGER},
            </if>
            <if test="opType != null">
                #{opType,jdbcType=INTEGER},
            </if>
            <if test="materialName != null">
                #{materialName,jdbcType=VARCHAR},
            </if>
            <if test="materialValue != null">
                #{materialValue,jdbcType=DOUBLE},
            </if>
            <if test="beforeStock != null">
                #{beforeStock,jdbcType=DOUBLE},
            </if>
            <if test="afterStock != null">
                #{afterStock,jdbcType=DOUBLE},
            </if>
            <if test="companyId != null">
                #{companyId},
            </if>
        </trim>
    </insert>
    <update id="weighbridgeUpdateType" >
        update t_weighbridge set
        types=2
        where weighbridge_id=#{weighbridgeId}
    </update>
</mapper>
web/src/api/modules/ductpiecePLM.js
@@ -26,7 +26,6 @@
      url: '/m/pipeInfo/findList',
      data: {
        proId: params.proId,
        segmentId: params.segmentId,
        ringNum: params.ringNum,
        groupId: params.groupId,
        checkResult: params.checkResult,
@@ -56,14 +55,17 @@
  // 获取全部钢筋笼与模具信息
  getAllSteelPipeData: (params) =>
    axios.post('/m/steelProduce/ModSteelPullDown', params),
  /**
   * agv监控
   */
  searchAgvLists: (params) =>
    axios.post('/screen/pl/agv', params),
  // 获取时间信息
  getPipeTimeData: (params) =>
    axios.post('/m/pipeInfo/updateDateInfo', params),
  // 修改时间信息
  updatePipeTimeData: (params) =>
    axios.post('/m/pipeInfo/updatePipeDate', params),
  /**
   * 水养模块接口
   * */
@@ -110,6 +112,7 @@
      data: {
        waterCultivatedId: params.waterCultivatedId,
        ringNum: params.ringNum,
        proId:params.proId,
        blockNum: params.blockNum,
        reinforcement: params.reinforcement,
        groutingHoles: params.groutingHoles,
@@ -119,6 +122,18 @@
        outCulEndTime: params.outCulEndTime
      }
    }),
  // 根据项目查询环号
  getProjectRingNumData: (params) =>
    axios.get('/m/waterCultivated/ringNumList', {params}),
  // 根据项目  环号查询管片信息
  getProjectRingPipeData: (params) =>
    axios.post('/m/pipeCultivated/pipeInfoList', params),
  // 获取水养池下拉
  getWaterCultivatedData: (params) =>
    axios.post('/m/waterCultivated/pulldown', params),
  // 提交入池
  submitpipeEnterCistern: (params) =>
        axios.post('/m/pipeCultivated/intowaterWeb', params),
  /*
   * 管片蒸养
@@ -208,6 +223,13 @@
  getAllPipInfos: params =>
    axios.post('/materials/pipeOut/pipeInfoInList', params),
  
    // 获取堆场下拉信息
    getRepoRecordData: () =>
        axios.post('/m/repoRecord/repoPullDown'),
  // 管片入库
    submitPipePutbankInfo: (params) =>
    axios.post('/m/repoRecord/intoRepoWeb', params),
  /**
   * 发运管理中的GPS设备管理
   */
@@ -288,7 +310,8 @@
        pageSize: params.pageSize
      },
      data: {
        ringNum: params.ringNum
        ringNum: params.ringNum,
        proId:params.proId
      }
    }),
  // 获取管片详情
web/src/api/modules/materials.js
@@ -41,7 +41,7 @@
   */
  //查询列表接口
  searchWeighRecordsList: (params) =>
    axios.post('/materials/weigh/queryAllWeigh', params),
    axios.post('/materials/weigh/weighbridgeList', params),
  /**
web/src/views/DuctpiecePLM/DuctProduct/ProductIndex.vue
@@ -3,12 +3,18 @@
    <div class="main_header">
      <div class="header_item">
        <span class="header_label">项目名称:</span>
        <el-select v-model="projectId" clearable placeholder="请选择项目" @change="changeHeaderProject">
        <el-select
          v-model="projectId"
          clearable
          placeholder="请选择项目"
          @change="changeHeaderProject"
        >
          <el-option
            v-for="item in projectData"
            :key="item.proId"
            :label="item.proName"
            :value="item.proId">
            :value="item.proId"
          >
          </el-option>
        </el-select>
      </div>
@@ -23,7 +29,8 @@
            v-for="item in groupData"
            :key="item.groupId"
            :label="item.groupName"
            :value="item.groupId">
            :value="item.groupId"
          >
          </el-option>
        </el-select>
      </div>
@@ -42,7 +49,8 @@
            v-for="item in reinforcementData"
            :key="item.hasSteel"
            :label="item.dictName"
            :value="item.hasSteel">
            :value="item.hasSteel"
          >
          </el-option>
        </el-select>
      </div>
@@ -53,7 +61,8 @@
            v-for="item in groutingHolesData"
            :key="item.groutingHoles"
            :label="item.dictName"
            :value="item.groutingHoles">
            :value="item.groutingHoles"
          >
          </el-option>
        </el-select> 
      </div>
@@ -64,7 +73,8 @@
            v-for="item in blockNumData"
            :key="item.blockNum"
            :label="item.dictName"
            :value="item.blockNum">
            :value="item.blockNum"
          >
          </el-option>
        </el-select>
      </div>
@@ -76,7 +86,8 @@
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd">
          value-format="yyyy-MM-dd"
        >
        </el-date-picker>
      </div>
      <!-- <div class="header_item">
@@ -98,20 +109,33 @@
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd">
          value-format="yyyy-MM-dd"
        >
        </el-date-picker>
      </div>
      <div class="header_item">
        <el-button v-if="showButton('search')" icon="el-icon-search" @click="searchDuctpiecePLMList(true)">查询</el-button>
        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="propInsert()">新增管片</el-button>
        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="exportExcel()">导出Excel</el-button>
        <el-button
          v-if="showButton('search')"
          icon="el-icon-search"
          @click="searchDuctpiecePLMList(true)"
          >查询</el-button
        >
        <el-button
          v-if="showButton('insert')"
          icon="el-icon-download"
          @click="propInsert()"
          >新增管片</el-button
        >
        <el-button
          v-if="showButton('export')"
          icon="el-icon-download"
          @click="exportExcel()"
          >导出Excel</el-button
        >
      </div>
    </div>
    <div class="main_content">
      <el-table
        v-loading="loading"
        :data="ductpieceList"
        height="100%">
      <el-table v-loading="loading" :data="ductpieceList" height="100%">
        <el-table-column label="序号" width="60" align="center">
          <template #default="scope">
            <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
@@ -121,28 +145,83 @@
        <el-table-column prop="proName" label="项目名称" align="center"></el-table-column>
        <el-table-column prop="pipeNum" label="管片编号" align="center"></el-table-column>
        <el-table-column prop="turnName" label="转向" align="center"></el-table-column>
        <el-table-column prop="reinforcementName" label="配筋" align="center"></el-table-column>
        <el-table-column prop="groutingHolesName" label="注浆孔" align="center"></el-table-column>
        <el-table-column prop="blockNumName" label="块号" align="center"></el-table-column>
        <el-table-column
          prop="reinforcementName"
          label="配筋"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="groutingHolesName"
          label="注浆孔"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="blockNumName"
          label="块号"
          align="center"
        ></el-table-column>
        <el-table-column prop="mouldNum" label="模具" align="center"></el-table-column>
        <el-table-column prop="intoModTime" label="入模时间" align="center"></el-table-column>
        <el-table-column
          prop="intoModTime"
          label="入模时间"
          align="center"
        ></el-table-column>
        <!-- <el-table-column prop="pouringTime" label="浇筑时间" align="center"></el-table-column> -->
        <el-table-column prop="checkTime" label="质检时间" align="center"></el-table-column>
        <el-table-column prop="groupName" label="生产班组" align="center"></el-table-column>
        <el-table-column
          prop="checkTime"
          label="质检时间"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="groupName"
          label="生产班组"
          align="center"
        ></el-table-column>
        <el-table-column label="质量标注" align="center">
          <template #default="{ row }">
            <div>
               {{ row.checkResult == 0 ? '未质检' : row.checkResult == 1 ? '合格' : row.checkResult == 2 ? '不合格' : row.checkResult == 3 ? '报废' : ''}}
              {{
                row.checkResult == 0
                  ? "未质检"
                  : row.checkResult == 1
                  ? "合格"
                  : row.checkResult == 2
                  ? "不合格"
                  : row.checkResult == 3
                  ? "报废"
                  : ""
              }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" width="300">
          <template #default="{ row }">
            <template v-if="showButton('update') && row.checkResult !== 1">
              <el-button class="table_btn" size="mini" @click="propIssue(row)">存在问题</el-button>
            <template v-if="showButton('update') && [2, 3].includes(row.checkResult)">
              <el-button class="table_btn" size="mini" @click="propIssue(row)"
                >存在问题</el-button
              >
            </template>
            <el-button class="table_btn" size="mini" v-if="showButton('update') && row.checkResult == 0" @click="propUpdate(row)">修改环号</el-button>
            <el-button class="table_btn" size="mini" v-if="showButton('delete')" @click="propCheckHistory(row)">质量追溯</el-button>
            <el-button
              class="table_btn"
              size="mini"
              v-if="showButton('update')"
              @click="propUpdate(row)"
              >修改环号</el-button
            >
            <el-button
              class="table_btn"
              size="mini"
              v-if="showButton('update')"
              @click="propUpdateTime(row)"
              >修改时间</el-button
            >
            <el-button
              class="table_btn"
              size="mini"
              v-if="showButton('delete')"
              @click="propCheckHistory(row)"
              >质量追溯</el-button
            >
          </template>
        </el-table-column>
      </el-table>
@@ -156,15 +235,23 @@
        :page-sizes="[10, 20, 50, 100]"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total">
        :total="total"
      >
      </el-pagination>
    </div>
    <el-dialog
      class="prop_dialog"
      title="存在问题"
      :visible.sync="asyncDuctPiece"
      width="35%">
      <el-form ref="form" :model="formDuctPiece" :rules="rulesDuctPiece" label-width="auto" class="rule_form">
      width="35%"
    >
      <el-form
        ref="form"
        :model="formDuctPiece"
        :rules="rulesDuctPiece"
        label-width="auto"
        class="rule_form"
      >
        <el-form-item label="质检结果:">
          <span class="issue_status">{{checkResultStr}}</span>
        </el-form-item>
@@ -173,7 +260,8 @@
            v-model="formDuctPiece.existProblem" 
            type="textarea"
            disabled
            placeholder="请输入存在问题"></el-input>
            placeholder="请输入存在问题"
          ></el-input>
        </el-form-item>
        <el-form-item label="问题图片:">
          <div class="problem_content">
@@ -181,7 +269,8 @@
              v-for="item in fileList"
              :key="item.id"
              class="problem_image"
              :src="item.url">
              :src="item.url"
            >
            </el-image>
          </div>
        </el-form-item>
@@ -190,7 +279,8 @@
            v-model="formDuctPiece.exeProResult" 
            type="textarea"
            clearable 
            placeholder="请输入问题处理结果"></el-input>
            placeholder="请输入问题处理结果"
          ></el-input>
        </el-form-item>
        <el-form-item label="备注:">
          <el-input 
@@ -199,7 +289,8 @@
            clearable 
            placeholder="请输入备注"
            maxlength="200"
            show-word-limit></el-input>
            show-word-limit
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer">
@@ -212,45 +303,47 @@
      class="prop_dialog"
      title="质量追溯"
      :visible.sync="asyncRetrospect"
      width="70%">
      width="70%"
    >
      <div class="retrospect_content">
        <div class="retrospect_content_title">
          钢筋笼信息
        </div>
        <div class="retrospect_content_title">钢筋笼信息</div>
        <div class="retrospect_content_table">
          <div 
            class="table_item" 
            :style="{width: `calc(100% / ${asyncCageInfo.length})`}"
            v-for="item in asyncCageInfo"
            :key="item.id">
            :key="item.id"
          >
            <div class="table_item_chunk table_th">{{item.label}}</div>
            <div class="table_item_chunk table_td">{{
              item.value === 'steelCheckResult' ? showCheckResult(retrospectInfo[item.value]) : retrospectInfo[item.value]}}
            <div class="table_item_chunk table_td">
              {{
                item.value === "steelCheckResult"
                  ? showCheckResult(retrospectInfo[item.value])
                  : retrospectInfo[item.value]
              }}
            </div>
          </div>
        </div>
        <div class="retrospect_content_title">
          模具信息
        </div>
        <div class="retrospect_content_title">模具信息</div>
        <div class="retrospect_content_table">
          <div 
            class="table_item" 
            :style="{width: `calc(100% / ${asyncMouldInfo.length})`}"
            v-for="item in asyncMouldInfo"
            :key="item.id">
            :key="item.id"
          >
            <div class="table_item_chunk table_th">{{item.label}}</div>
            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
          </div>
        </div>
        <div class="retrospect_content_title">
          管片信息
        </div>
        <div class="retrospect_content_title">管片信息</div>
        <div class="retrospect_content_table">
          <div 
            class="table_item" 
            :style="{width: `calc(100% / ${asyncDuctpieceInfo.length})`}"
            v-for="item in asyncDuctpieceInfo"
            :key="item.id">
            :key="item.id"
          >
            <div class="table_item_chunk table_th">{{item.label}}</div>
            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
          </div>
@@ -261,52 +354,209 @@
      class="prop_dialog"
      :title="asyncTitle ? '新增管片' : '修改环号'"
      :visible.sync="asyncInsert"
      width="35%">
      <el-form ref="formInsert" :model="formInsert" :rules="rulesInsert" label-width="auto" class="rule_form">
        <el-form-item label="项目名称:" prop="proId" v-if="asyncTtile">
          <el-select v-model="formInsert.proId" clearable placeholder="请选择项目信息" @change="getAllSteelPipeData">
      width="35%"
    >
      <el-form
        ref="formInsert"
        :model="formInsert"
        :rules="rulesInsert"
        label-width="auto"
        class="rule_form"
      >
        <el-form-item label="项目名称:" prop="proId" v-if="asyncTitle">
          <el-select
            v-model="formInsert.proId"
            clearable
            placeholder="请选择项目信息"
            @change="getAllSteelPipeData"
          >
            <el-option
              v-for="item in projectData"
              :key="item.proId"
              :label="item.proName"
              :value="item.proId">
              :value="item.proId"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="配筋:" prop="reinforcementId" v-if="asyncTitle">
          <el-select
            v-model="formInsert.reinforcementId"
            clearable
            placeholder="请选择配筋"
          >
            <el-option
              v-for="item in steelData"
              :key="item.hasSteel"
              :label="item.dictName"
              :value="item.hasSteel"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="环号:" prop="ringNum">
          <el-input v-model="formInsert.ringNum" clearable placeholder="请输入环号"></el-input>
          <el-input
            v-model="formInsert.ringNum"
            clearable
            placeholder="请输入环号"
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer">
        <el-button @click="asyncInsert = false">取 消</el-button>
        <el-button class="submit_btn" @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()">提 交</el-button>
        <el-button
          class="submit_btn"
          @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()"
          >提 交</el-button
        >
      </div>
    </el-dialog>
    <el-dialog
      class="prop_dialog"
      title="修改时间"
      :visible.sync="asyncTime"
      width="35%">
      <el-form
        ref="formTime"
        :model="formTime"
        :rules="rulesTime"
        label-width="auto"
        class="rule_form">
        <el-form-item label="入模时间:" prop="inModTime">
          <el-date-picker
            v-model="formTime.inModTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入模时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="浇筑时间:" prop="pouringTime">
          <el-date-picker
            v-model="formTime.pouringTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择浇筑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="入窑时间:" prop="placingInTime">
          <el-date-picker
            v-model="formTime.placingInTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入窑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="出窑时间:" prop="placingOutTime">
          <el-date-picker
            v-model="formTime.placingOutTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择出窑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="出模时间:" prop="outModTime">
          <el-date-picker
            v-model="formTime.outModTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入窑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="质检时间:" prop="checkTime">
          <el-date-picker
            v-model="formTime.checkTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择质检时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="入水养时间:" prop="inWaterTime" v-if="formTime.inWaterTime">
          <el-date-picker
            v-model="formTime.inWaterTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入水养时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="出水养时间:" prop="outWaterTime" v-if="formTime.outWaterTime">
          <el-date-picker
            v-model="formTime.outWaterTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择出水养时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="入库时间:" prop="inRepoTime" v-if="formTime.inRepoTime">
          <el-date-picker
            v-model="formTime.inRepoTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入库时间"
          >
          </el-date-picker>
        </el-form-item>
        <!-- <el-form-item label="出库时间:" prop="intoModTime">
          <el-date-picker
            v-model="formTime.intoModTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择出库时间"
          >
          </el-date-picker>
        </el-form-item> -->
      </el-form>
      <div slot="footer">
        <el-button @click="asyncTime = false">取 消</el-button>
        <el-button
          class="submit_btn"
          @click="submitUpdateTime()"
          >提 交
        </el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { cageInfo, mouldInfo, ductpiedceInfo } from '../file/retrospect';
import { cageInfo, mouldInfo, ductpiedceInfo } from "../file/retrospect";
import { downLoadFile, throttle } from "../../../plugins/public";
import { buttonPinia } from '../../../pinia';
import { downLoadFile, throttle } from '../../../plugins/public';
  export default {
    data() {
    // const validatePass = (rule, value, callback) => {
    //   if(value === '') {
    //     callback(new Error('请再次输入密码'));
    //   } else if(value < ) {
    //   } else {
    //     callback();
    //   }
    // }
      return {
        projectId: '',
      projectId: "",
        projectData: [],
        ringNum: '', // 环号
        groupId: '', // 班组
      ringNum: "", // 环号
      groupId: "", // 班组
        groupData: [], // 班组信息
        checkResult: '', // 质量标注
        reinforcement: '', // 配筋
      checkResult: "", // 质量标注
      reinforcement: "", // 配筋
        reinforcementData: [], // 配筋信息
        groutingHoles: '', // 注浆孔
      groutingHoles: "", // 注浆孔
        groutingHolesData: [], // 注浆孔信息
        blockNum: '', // 块号
      blockNum: "", // 块号
        blockNumData: [], // 块号信息
        inModTime: '', // 入模时间
        pouringTime: '', // 浇筑时间
        checkTime: '', // 质检时间
      inModTime: "", // 入模时间
      pouringTime: "", // 浇筑时间
      checkTime: "", // 质检时间
        pageNum: 1,
        pageSize: 10,
        total: 0,
@@ -315,33 +565,95 @@
        asyncDuctPiece: false, // 存在问题弹窗
        formDuctPiece: {}, // 表单信息
        rulesDuctPiece: {}, // 表单校验规则
        issueType: '',
      issueType: "",
        asyncRetrospect: false, // 质量追溯弹窗
        asyncCageInfo: cageInfo, // 钢筋笼信息
        asyncMouldInfo: mouldInfo, // 模具信息
        asyncDuctpieceInfo: ductpiedceInfo, // 管片信息
        retrospectInfo: {},// 质量追溯信息
        pipeId: '',
        checkResultStr: '',
      fileList: [],
      pipeId: "",
      checkResultStr: "",
        asyncTitle: true,
        asyncInsert: false,
        formInsert: {},
        rulesInsert: {
          proId: [{
        proId: [
          {
            required: true,
            message: '请选择项目名称',
            trigger: 'blur'
          }],
          ringNum: [{
            message: "请选择项目名称",
            trigger: ["blur", "change"],
          },
        ],
        reinforcementId: [
          {
            required: true,
            message: '请输入环号',
            trigger: 'blur'
          }],
            message: "请选择配筋",
            trigger: ["blur", "change"],
          },
        ],
        ringNum: [
          {
            required: true,
            message: "请输入环号",
            trigger: "blur",
          },
        ]
        },
        proData: [],
        steelData: [],
        mouldData: [],
      changeTime: false,
      asyncTime: false,
      formTime: {},
      rulesTime: {
        inModTime: [{
          required: true,
          message: "请选择入模时间",
          trigger: ["blur", "change"],
        }],
        outModTime: [{
          required: true,
          message: "请选择出模时间",
          trigger: ["blur", "change"],
        }],
        pouringTime: [{
          required: true,
          message: "请选择浇筑时间",
          trigger: ["blur", "change"],
        }],
        placingInTime: [{
          required: true,
          message: "请选择入窑时间",
          trigger: ["blur", "change"],
        }],
        placingOutTime: [{
          required: true,
          message: "请选择出窑时间",
          trigger: ["blur", "change"],
        }],
        checkTime: [{
          required: true,
          message: "请选择质检时间",
          trigger: ["blur", "change"],
        }],
        inWaterTime: [{
          required: true,
          message: "请选择入池时间",
          trigger: ["blur", "change"],
        }],
        outWaterTime: [{
          required: true,
          message: "请选择出池时间",
          trigger: ["blur", "change"],
        }],
        inRepoTime: [{
          required: true,
          message: "请选择入库时间",
          trigger: ["blur", "change"],
        }]
      }
    };
    },
    mounted() {
      this.getAllProjects();
@@ -351,13 +663,16 @@
    methods: {
      // 根据项目获取钢筋笼 模具信息
      async getAllSteelPipeData(proId) {
      if (proId) {
        this.steelData = [];
        this.mouldData = [];
        const { data } = await this.$api.DuctpiecePLM.getAllSteelPipeData({
          proId: proId
        const { data } = await this.$api.Basics.getProjectSystemInfoData({
          proId: proId,
        });
        this.steelData = data.steel;
        this.mouldData = data.mod;
        this.steelData = data.proHas;
      } else {
        this.$set(this.formInsert, "reinforcementId", "");
        this.steelData = [];
      }
      },
      // 获取全部班组
      async getAllGroupData() {
@@ -386,21 +701,23 @@
          reinforcement: this.reinforcement,
          groutingHoles: this.groutingHoles,
          blockNum: this.blockNum,
          inModStartTime: this.inModTime ? this.inModTime[0] + ' 00:00:00' : '',
          inModEndTime: this.inModTime ? this.inModTime[1] + ' 23:59:59' : '',
          pouringStartTime: this.pouringTime ? this.pouringTime[0] + ' 00:00:00' : '',
          pouringEndTime: this.pouringTime ? this.pouringTime[1] + ' 23:59:59' : '',
          checkStartTime: this.checkTime ? this.checkTime[0] + ' 00:00:00' : '',
          checkEndTime: this.checkTime ? this.checkTime[1] + ' 23:59:59' : ''
        }).then((res) => {
        inModStartTime: this.inModTime ? this.inModTime[0] + " 00:00:00" : "",
        inModEndTime: this.inModTime ? this.inModTime[1] + " 23:59:59" : "",
        pouringStartTime: this.pouringTime ? this.pouringTime[0] + " 00:00:00" : "",
        pouringEndTime: this.pouringTime ? this.pouringTime[1] + " 23:59:59" : "",
        checkStartTime: this.checkTime ? this.checkTime[0] + " 00:00:00" : "",
        checkEndTime: this.checkTime ? this.checkTime[1] + " 23:59:59" : "",
      })
        .then((res) => {
          if(res.success) {
            this.total = res.data.total;
            this.ductpieceList = res.data.list;
          }
          this.loading = false;
        }).catch(() => {
          this.loading = false;
        })
        .catch(() => {
          this.loading = false;
        });
      },
      // 打开新增管片信息
      propInsert() {
@@ -412,8 +729,38 @@
      propUpdate(row) {
        this.asyncTitle = false;
        this.asyncInsert = true;
        this.$set(this.formInsert, 'pipeNum', row.pipeNum);
        this.$set(this.formInsert, 'ringNum', row.ringNum);
      this.$set(this.formInsert, "pipeNum", row.pipeNum);
      this.$set(this.formInsert, "ringNum", row.ringNum);
    },
    // 打开修改时间
    propUpdateTime(row) {
      this.asyncTime = true;
      this.$set(this.formTime, "pipeNum", row.pipeNum);
      this.$set(this.formTime, "ringNum", row.ringNum);
      this.$api.DuctpiecePLM.getPipeTimeData({
        pipeNum: row.pipeNum
      }).then(res => {
        if(res.success) {
          this.$set(this.formTime, 'inModTime', res.data.inModTime);
          this.$set(this.formTime, 'outModTime', res.data.outModTime);
          this.$set(this.formTime, 'pouringTime', res.data.pouringTime);
          this.$set(this.formTime, 'placingInTime', res.data.placingInTime);
          this.$set(this.formTime, 'placingOutTime', res.data.placingOutTime);
          this.$set(this.formTime, 'checkTime', res.data.checkTime);
          if(res.data.inWaterFlag) {
            this.$set(this.formTime, 'inWaterTime', res.data.inWaterTime);
          }
          if(res.data.OutWaterFlag) {
            this.$set(this.formTime, 'outWaterTime', res.data.outWaterTime);
          }
          if(res.data.inRepoFlag) {
            this.$set(this.formTime, 'inRepoTime', res.data.inRepoTime);
          }
          // this.$set(this.formInsert, '', res.data.);
        } else {
         this.$message.warning(res.statusMsg);
        }
      })
      },
      // 导出Excel
      exportExcel() {
@@ -429,47 +776,47 @@
          pouringStartTime: this.pouringTime[0],
          pouringEndTime: this.pouringTime[1],
          checkStartTime: this.checkTime[0],
          checkEndTime: this.checkTime[1]
        checkEndTime: this.checkTime[1],
        }).then((res) => {
          if(res.success) {
            downLoadFile(res.data, '/m/pipeInfo/export');
          downLoadFile(res.data, "/m/pipeInfo/export");
          }
        })
      });
      },
      // 打开存在问题
      propIssue(row) {
        this.pipeId = row.pipeId
      this.pipeId = row.pipeId;
        this.checkResultStr = row.checkResultStr;
        this.issueType = row.type;
        this.asyncDuctPiece = true;
        this.$api.DuctpiecePLM.getProblemInfo({
          pipeId: row.pipeId
        pipeId: row.pipeId,
        }).then((res) => {
          if(res.success) {
            this.$set(this.formDuctPiece, 'pipeCheckId', res.data.pipeCheckId);
            this.$set(this.formDuctPiece, 'existProblem', res.data.existProblem);
            this.$set(this.formDuctPiece, 'exeProResult', res.data.exeProResult);
            this.$set(this.formDuctPiece, 'exeProNote', res.data.exeProNote);
          this.$set(this.formDuctPiece, "pipeCheckId", res.data.pipeCheckId);
          this.$set(this.formDuctPiece, "existProblem", res.data.existProblem);
          this.$set(this.formDuctPiece, "exeProResult", res.data.exeProResult);
          this.$set(this.formDuctPiece, "exeProNote", res.data.exeProNote);
            this.fileList = res.data.files.map((item, index) => {
              return {
                id: index + 1,
                url: `https://szpipe.thhy-tj.com/${item}`
              url: `https://pipe.thhy-tj.com/${item}`,
            };
          });
              }
            })
          }
        })
      });
      },
      // 打开质量追溯
      propCheckHistory(row) {
        this.asyncRetrospect = true;
        this.retrospectInfo = {};
        this.$api.DuctpiecePLM.getCheckHistoryInfo({
          pipeId: row.pipeId
        pipeId: row.pipeId,
        }).then((res) => {
          if(res.success) {
            this.retrospectInfo = res.data;
          }
        })
      });
      },
      // 提交存在问题
      submitInsertForm: throttle(function() {
@@ -480,11 +827,11 @@
          if(res.success) {
            this.asyncDuctPiece = false;
            this.searchDuctpiecePLMList(true);
            this.$message.success('添加成功!');
          this.$message.success("添加成功!");
          } else {
            this.$message.warning(res.statusMsg);
          }
        })
      });
      }, 3000),
      // 提交新增管片信息
      submitInsertPipe: throttle(function() {
@@ -492,16 +839,16 @@
          if(valid) {
            const params = Object.assign({}, this.formInsert);
            this.$api.DuctpiecePLM.insertPipeData(params).then((res) => {
              if(res.statusMsg === 'ok') {
            if (res.statusMsg === "ok") {
                this.asyncInsert = false;
                this.searchDuctpiecePLMList(true);
                this.$message.success('新增成功!');
              this.$message.success("新增成功!");
              } else {
                this.$message.warning(res.statusMsg);
              }
            })
          });
          }
        })
      });
      }, 3000),
      // 提交修改环号信息
      submitUpdatePipe: throttle(function() {
@@ -509,38 +856,62 @@
          if(valid) {
            const params = Object.assign({}, this.formInsert);
            this.$api.DuctpiecePLM.updataRingNumData(params).then((res) => {
              if(res.statusMsg === 'ok') {
            if (res.statusMsg === "ok") {
                this.asyncInsert = false;
                this.searchDuctpiecePLMList(true);
                this.$message.success('修改成功!');
              this.$message.success("修改成功!");
              } else {
                this.$message.warning(res.statusMsg);
              }
            })
          });
        }
      });
    }, 3000),
    // 提交修改时间信息
    submitUpdateTime: throttle(function() {
      this.$refs.formTime.validate((valid) => {
        if(valid) {
          const params = Object.assign({}, this.formTime);
          this.$api.DuctpiecePLM.updatePipeTimeData(params).then((res) => {
            if (res.statusMsg === "ok") {
              this.asyncTime = false;
              this.searchDuctpiecePLMList(true);
              this.$message.success("修改成功!");
            } else {
              this.$message.warning(res.statusMsg);
            }
          });
          }
        })
      }, 3000),
      // 
      showCheckResult(value) {
        return !value ? '' : value == 1 ? '合格' : '存在问题';
      return !value ? "" : value == 1 ? "合格" : "存在问题";
      },
      // 根据项目获取尺寸 配筋 块号信息
      changeHeaderProject(data) {
          this.blockNum = '';
          this.reinforcement = '';
          this.groutingHoles = '';
      this.blockNum = "";
      this.reinforcement = "";
      this.groutingHoles = "";
          this.groutingHolesData = [];
          this.blockNumData = [];
          this.reinforcementData = [];
        if(data) {
          this.$api.Basics.getProjectSystemInfoData({
            proId: data
          proId: data,
          }).then((res) => {
            this.groutingHolesData = res.data.proGroutings;
            this.blockNumData = res.data.proBloks;
            this.reinforcementData = res.data.proHas;
          })
        });
        }
    },
    // 转换毫秒
    transitionMsec(time) {
      let msec = 0;
      const date = Date.parse(new Date(time));
      console.log(date,'==-=-=-')
      return msec;
      },
      // 切换页数
      changePageNum(page) {
@@ -562,28 +933,33 @@
      asyncDuctpieceInfo(bol) {
        if(!bol) {
          this.formDuctPiece = {};
          this.pipeId = '';
          this.checkResultStr = '';
        this.pipeId = "";
        this.checkResultStr = "";
          this.fileList = [];
        }
      },
      asyncInsert(bol) {
        if(!bol) {
          this.steelData = [];
          this.mouldData = [];
          this.formInsert = {};
          this.$refs.formInsert.resetFields();
        }
    },
    asyncTime(bol) {
      if(!bol) {
        this.formTime = {};
        this.$refs.formTime.resetFields();
      }
    }
  }
  },
};
</script>
<style lang="scss" scoped>
@import '../../../style/layout-main.scss';
@import "../../../style/layout-main.scss";
.issue_status {
  color: #F42829;
  color: #f42829;
}
.retrospect_content {
@@ -594,7 +970,7 @@
    padding: 0 15px 15px;
    font-size: 16px;
    font-weight: 600;
    color: #FFF;
    color: #fff;
    border-bottom: 1px solid #0d5274;
    &::before {
@@ -605,7 +981,7 @@
      transform: translateY(-85%);
      width: 3px;
      height: 50%;
      background: #18F6F8;
      background: #18f6f8;
    }
  }
@@ -614,22 +990,22 @@
    margin: 10px 10px 10px 0;
    .table_item {
      border: 1px solid #1CB7E0;
      border: 1px solid #1cb7e0;
      border-right: none;
      &:last-child {
        border-right: 1px solid #1CB7E0;
        border-right: 1px solid #1cb7e0;
      }
      .table_item_chunk {
        padding: 10px;
        color: #18F6F8;
        color: #18f6f8;
        text-align: center;
      }
      .table_th {
        border-bottom: 1px solid #1CB7E0;
        background: #082F57;
        border-bottom: 1px solid #1cb7e0;
        background: #082f57;
      }
    }
  }
web/src/views/DuctpiecePLM/DuctpieceIndex.vue
@@ -3,12 +3,18 @@
    <div class="main_header">
      <div class="header_item">
        <span class="header_label">项目名称:</span>
        <el-select v-model="projectId" clearable placeholder="请选择项目" @change="changeHeaderProject">
        <el-select
          v-model="projectId"
          clearable
          placeholder="请选择项目"
          @change="changeHeaderProject"
        >
          <el-option
            v-for="item in projectData"
            :key="item.proId"
            :label="item.proName"
            :value="item.proId">
            :value="item.proId"
          >
          </el-option>
        </el-select>
      </div>
@@ -23,7 +29,8 @@
            v-for="item in groupData"
            :key="item.groupId"
            :label="item.groupName"
            :value="item.groupId">
            :value="item.groupId"
          >
          </el-option>
        </el-select>
      </div>
@@ -42,7 +49,8 @@
            v-for="item in reinforcementData"
            :key="item.hasSteel"
            :label="item.dictName"
            :value="item.hasSteel">
            :value="item.hasSteel"
          >
          </el-option>
        </el-select>
      </div>
@@ -53,7 +61,8 @@
            v-for="item in groutingHolesData"
            :key="item.groutingHoles"
            :label="item.dictName"
            :value="item.groutingHoles">
            :value="item.groutingHoles"
          >
          </el-option>
        </el-select> 
      </div>
@@ -64,7 +73,8 @@
            v-for="item in blockNumData"
            :key="item.blockNum"
            :label="item.dictName"
            :value="item.blockNum">
            :value="item.blockNum"
          >
          </el-option>
        </el-select>
      </div>
@@ -76,7 +86,8 @@
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd">
          value-format="yyyy-MM-dd"
        >
        </el-date-picker>
      </div>
      <!-- <div class="header_item">
@@ -98,20 +109,33 @@
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd">
          value-format="yyyy-MM-dd"
        >
        </el-date-picker>
      </div>
      <div class="header_item">
        <el-button v-if="showButton('search')" icon="el-icon-search" @click="searchDuctpiecePLMList(true)">查询</el-button>
        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="propInsert()">新增管片</el-button>
        <el-button v-if="showButton('insert')" icon="el-icon-download" @click="exportExcel()">导出Excel</el-button>
        <el-button
          v-if="showButton('search')"
          icon="el-icon-search"
          @click="searchDuctpiecePLMList(true)"
          >查询</el-button
        >
        <el-button
          v-if="showButton('insert')"
          icon="el-icon-download"
          @click="propInsert()"
          >新增管片</el-button
        >
        <el-button
          v-if="showButton('export')"
          icon="el-icon-download"
          @click="exportExcel()"
          >导出Excel</el-button
        >
      </div>
    </div>
    <div class="main_content">
      <el-table
        v-loading="loading"
        :data="ductpieceList"
        height="100%">
      <el-table v-loading="loading" :data="ductpieceList" height="100%">
        <el-table-column label="序号" width="60" align="center">
          <template #default="scope">
            <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
@@ -121,28 +145,83 @@
        <el-table-column prop="proName" label="项目名称" align="center"></el-table-column>
        <el-table-column prop="pipeNum" label="管片编号" align="center"></el-table-column>
        <el-table-column prop="turnName" label="转向" align="center"></el-table-column>
        <el-table-column prop="reinforcementName" label="配筋" align="center"></el-table-column>
        <el-table-column prop="groutingHolesName" label="注浆孔" align="center"></el-table-column>
        <el-table-column prop="blockNumName" label="块号" align="center"></el-table-column>
        <el-table-column
          prop="reinforcementName"
          label="配筋"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="groutingHolesName"
          label="注浆孔"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="blockNumName"
          label="块号"
          align="center"
        ></el-table-column>
        <el-table-column prop="mouldNum" label="模具" align="center"></el-table-column>
        <el-table-column prop="intoModTime" label="入模时间" align="center"></el-table-column>
        <el-table-column
          prop="intoModTime"
          label="入模时间"
          align="center"
        ></el-table-column>
        <!-- <el-table-column prop="pouringTime" label="浇筑时间" align="center"></el-table-column> -->
        <el-table-column prop="checkTime" label="质检时间" align="center"></el-table-column>
        <el-table-column prop="groupName" label="生产班组" align="center"></el-table-column>
        <el-table-column
          prop="checkTime"
          label="质检时间"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="groupName"
          label="生产班组"
          align="center"
        ></el-table-column>
        <el-table-column label="质量标注" align="center">
          <template #default="{ row }">
            <div>
               {{ row.checkResult == 0 ? '未质检' : row.checkResult == 1 ? '合格' : row.checkResult == 2 ? '不合格' : row.checkResult == 3 ? '报废' : ''}}
              {{
                row.checkResult == 0
                  ? "未质检"
                  : row.checkResult == 1
                  ? "合格"
                  : row.checkResult == 2
                  ? "不合格"
                  : row.checkResult == 3
                  ? "报废"
                  : ""
              }}
            </div>
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" width="300">
          <template #default="{ row }">
            <template v-if="showButton('update') && row.checkResult !== 1">
              <el-button class="table_btn" size="mini" @click="propIssue(row)">存在问题</el-button>
            <template v-if="showButton('update') && [2, 3].includes(row.checkResult)">
              <el-button class="table_btn" size="mini" @click="propIssue(row)"
                >存在问题</el-button
              >
            </template>
            <el-button class="table_btn" size="mini" v-if="showButton('update') && row.checkResult == 0" @click="propUpdate(row)">修改环号</el-button>
            <el-button class="table_btn" size="mini" v-if="showButton('delete')" @click="propCheckHistory(row)">质量追溯</el-button>
            <el-button
              class="table_btn"
              size="mini"
              v-if="showButton('update')"
              @click="propUpdate(row)"
              >修改环号</el-button
            >
            <el-button
              class="table_btn"
              size="mini"
              v-if="showButton('update')"
              @click="propUpdateTime(row)"
              >修改时间</el-button
            >
            <el-button
              class="table_btn"
              size="mini"
              v-if="showButton('delete')"
              @click="propCheckHistory(row)"
              >质量追溯</el-button
            >
          </template>
        </el-table-column>
      </el-table>
@@ -156,15 +235,23 @@
        :page-sizes="[10, 20, 50, 100]"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total">
        :total="total"
      >
      </el-pagination>
    </div>
    <el-dialog
      class="prop_dialog"
      title="存在问题"
      :visible.sync="asyncDuctPiece"
      width="35%">
      <el-form ref="form" :model="formDuctPiece" :rules="rulesDuctPiece" label-width="auto" class="rule_form">
      width="35%"
    >
      <el-form
        ref="form"
        :model="formDuctPiece"
        :rules="rulesDuctPiece"
        label-width="auto"
        class="rule_form"
      >
        <el-form-item label="质检结果:">
          <span class="issue_status">{{checkResultStr}}</span>
        </el-form-item>
@@ -173,7 +260,8 @@
            v-model="formDuctPiece.existProblem" 
            type="textarea"
            disabled
            placeholder="请输入存在问题"></el-input>
            placeholder="请输入存在问题"
          ></el-input>
        </el-form-item>
        <el-form-item label="问题图片:">
          <div class="problem_content">
@@ -181,7 +269,8 @@
              v-for="item in fileList"
              :key="item.id"
              class="problem_image"
              :src="item.url">
              :src="item.url"
            >
            </el-image>
          </div>
        </el-form-item>
@@ -190,7 +279,8 @@
            v-model="formDuctPiece.exeProResult" 
            type="textarea"
            clearable 
            placeholder="请输入问题处理结果"></el-input>
            placeholder="请输入问题处理结果"
          ></el-input>
        </el-form-item>
        <el-form-item label="备注:">
          <el-input 
@@ -199,7 +289,8 @@
            clearable 
            placeholder="请输入备注"
            maxlength="200"
            show-word-limit></el-input>
            show-word-limit
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer">
@@ -212,45 +303,47 @@
      class="prop_dialog"
      title="质量追溯"
      :visible.sync="asyncRetrospect"
      width="70%">
      width="70%"
    >
      <div class="retrospect_content">
        <div class="retrospect_content_title">
          钢筋笼信息
        </div>
        <div class="retrospect_content_title">钢筋笼信息</div>
        <div class="retrospect_content_table">
          <div 
            class="table_item" 
            :style="{width: `calc(100% / ${asyncCageInfo.length})`}"
            v-for="item in asyncCageInfo"
            :key="item.id">
            :key="item.id"
          >
            <div class="table_item_chunk table_th">{{item.label}}</div>
            <div class="table_item_chunk table_td">{{
              item.value === 'steelCheckResult' ? showCheckResult(retrospectInfo[item.value]) : retrospectInfo[item.value]}}
            <div class="table_item_chunk table_td">
              {{
                item.value === "steelCheckResult"
                  ? showCheckResult(retrospectInfo[item.value])
                  : retrospectInfo[item.value]
              }}
            </div>
          </div>
        </div>
        <div class="retrospect_content_title">
          模具信息
        </div>
        <div class="retrospect_content_title">模具信息</div>
        <div class="retrospect_content_table">
          <div 
            class="table_item" 
            :style="{width: `calc(100% / ${asyncMouldInfo.length})`}"
            v-for="item in asyncMouldInfo"
            :key="item.id">
            :key="item.id"
          >
            <div class="table_item_chunk table_th">{{item.label}}</div>
            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
          </div>
        </div>
        <div class="retrospect_content_title">
          管片信息
        </div>
        <div class="retrospect_content_title">管片信息</div>
        <div class="retrospect_content_table">
          <div 
            class="table_item" 
            :style="{width: `calc(100% / ${asyncDuctpieceInfo.length})`}"
            v-for="item in asyncDuctpieceInfo"
            :key="item.id">
            :key="item.id"
          >
            <div class="table_item_chunk table_th">{{item.label}}</div>
            <div class="table_item_chunk table_td">{{retrospectInfo[item.value]}}</div>
          </div>
@@ -261,52 +354,209 @@
      class="prop_dialog"
      :title="asyncTitle ? '新增管片' : '修改环号'"
      :visible.sync="asyncInsert"
      width="35%">
      <el-form ref="formInsert" :model="formInsert" :rules="rulesInsert" label-width="auto" class="rule_form">
        <el-form-item label="项目名称:" prop="proId" v-if="asyncTtile">
          <el-select v-model="formInsert.proId" clearable placeholder="请选择项目信息" @change="getAllSteelPipeData">
      width="35%"
    >
      <el-form
        ref="formInsert"
        :model="formInsert"
        :rules="rulesInsert"
        label-width="auto"
        class="rule_form"
      >
        <el-form-item label="项目名称:" prop="proId" v-if="asyncTitle">
          <el-select
            v-model="formInsert.proId"
            clearable
            placeholder="请选择项目信息"
            @change="getAllSteelPipeData"
          >
            <el-option
              v-for="item in projectData"
              :key="item.proId"
              :label="item.proName"
              :value="item.proId">
              :value="item.proId"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="配筋:" prop="reinforcementId" v-if="asyncTitle">
          <el-select
            v-model="formInsert.reinforcementId"
            clearable
            placeholder="请选择配筋"
          >
            <el-option
              v-for="item in steelData"
              :key="item.hasSteel"
              :label="item.dictName"
              :value="item.hasSteel"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="环号:" prop="ringNum">
          <el-input v-model="formInsert.ringNum" clearable placeholder="请输入环号"></el-input>
          <el-input
            v-model="formInsert.ringNum"
            clearable
            placeholder="请输入环号"
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer">
        <el-button @click="asyncInsert = false">取 消</el-button>
        <el-button class="submit_btn" @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()">提 交</el-button>
        <el-button
          class="submit_btn"
          @click="asyncTitle ? submitInsertPipe() : submitUpdatePipe()"
          >提 交</el-button
        >
      </div>
    </el-dialog>
    <el-dialog
      class="prop_dialog"
      title="修改时间"
      :visible.sync="asyncTime"
      width="35%">
      <el-form
        ref="formTime"
        :model="formTime"
        :rules="rulesTime"
        label-width="auto"
        class="rule_form">
        <el-form-item label="入模时间:" prop="inModTime">
          <el-date-picker
            v-model="formTime.inModTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入模时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="浇筑时间:" prop="pouringTime">
          <el-date-picker
            v-model="formTime.pouringTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择浇筑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="入窑时间:" prop="placingInTime">
          <el-date-picker
            v-model="formTime.placingInTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入窑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="出窑时间:" prop="placingOutTime">
          <el-date-picker
            v-model="formTime.placingOutTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择出窑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="出模时间:" prop="outModTime">
          <el-date-picker
            v-model="formTime.outModTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入窑时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="质检时间:" prop="checkTime">
          <el-date-picker
            v-model="formTime.checkTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择质检时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="入水养时间:" prop="inWaterTime" v-if="formTime.inWaterTime">
          <el-date-picker
            v-model="formTime.inWaterTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入水养时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="出水养时间:" prop="outWaterTime" v-if="formTime.outWaterTime">
          <el-date-picker
            v-model="formTime.outWaterTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择出水养时间"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="入库时间:" prop="inRepoTime" v-if="formTime.inRepoTime">
          <el-date-picker
            v-model="formTime.inRepoTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择入库时间"
          >
          </el-date-picker>
        </el-form-item>
        <!-- <el-form-item label="出库时间:" prop="intoModTime">
          <el-date-picker
            v-model="formTime.intoModTime"
            value-format="yyyy-MM-dd HH:mm:ss"
            type="datetime"
            placeholder="选择出库时间"
          >
          </el-date-picker>
        </el-form-item> -->
      </el-form>
      <div slot="footer">
        <el-button @click="asyncTime = false">取 消</el-button>
        <el-button
          class="submit_btn"
          @click="submitUpdateTime()"
          >提 交
        </el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { cageInfo, mouldInfo, ductpiedceInfo } from './file/retrospect';
import { cageInfo, mouldInfo, ductpiedceInfo } from "./file/retrospect";
import { downLoadFile, throttle } from "../../plugins/public";
import { buttonPinia } from '../../pinia';
import { downLoadFile, throttle } from '../../plugins/public';
  export default {
    data() {
    // const validatePass = (rule, value, callback) => {
    //   if(value === '') {
    //     callback(new Error('请再次输入密码'));
    //   } else if(value < ) {
    //   } else {
    //     callback();
    //   }
    // }
      return {
        projectId: '',
      projectId: "",
        projectData: [],
        ringNum: '', // 环号
        groupId: '', // 班组
      ringNum: "", // 环号
      groupId: "", // 班组
        groupData: [], // 班组信息
        checkResult: '', // 质量标注
        reinforcement: '', // 配筋
      checkResult: "", // 质量标注
      reinforcement: "", // 配筋
        reinforcementData: [], // 配筋信息
        groutingHoles: '', // 注浆孔
      groutingHoles: "", // 注浆孔
        groutingHolesData: [], // 注浆孔信息
        blockNum: '', // 块号
      blockNum: "", // 块号
        blockNumData: [], // 块号信息
        inModTime: '', // 入模时间
        pouringTime: '', // 浇筑时间
        checkTime: '', // 质检时间
      inModTime: "", // 入模时间
      pouringTime: "", // 浇筑时间
      checkTime: "", // 质检时间
        pageNum: 1,
        pageSize: 10,
        total: 0,
@@ -315,33 +565,95 @@
        asyncDuctPiece: false, // 存在问题弹窗
        formDuctPiece: {}, // 表单信息
        rulesDuctPiece: {}, // 表单校验规则
        issueType: '',
      issueType: "",
        asyncRetrospect: false, // 质量追溯弹窗
        asyncCageInfo: cageInfo, // 钢筋笼信息
        asyncMouldInfo: mouldInfo, // 模具信息
        asyncDuctpieceInfo: ductpiedceInfo, // 管片信息
        retrospectInfo: {},// 质量追溯信息
        pipeId: '',
        checkResultStr: '',
      fileList: [],
      pipeId: "",
      checkResultStr: "",
        asyncTitle: true,
        asyncInsert: false,
        formInsert: {},
        rulesInsert: {
          proId: [{
        proId: [
          {
            required: true,
            message: '请选择项目名称',
            trigger: 'blur'
          }],
          ringNum: [{
            message: "请选择项目名称",
            trigger: ["blur", "change"],
          },
        ],
        reinforcementId: [
          {
            required: true,
            message: '请输入环号',
            trigger: 'blur'
          }],
            message: "请选择配筋",
            trigger: ["blur", "change"],
          },
        ],
        ringNum: [
          {
            required: true,
            message: "请输入环号",
            trigger: "blur",
          },
        ]
        },
        proData: [],
        steelData: [],
        mouldData: [],
      changeTime: false,
      asyncTime: false,
      formTime: {},
      rulesTime: {
        inModTime: [{
          required: true,
          message: "请选择入模时间",
          trigger: ["blur", "change"],
        }],
        outModTime: [{
          required: true,
          message: "请选择出模时间",
          trigger: ["blur", "change"],
        }],
        pouringTime: [{
          required: true,
          message: "请选择浇筑时间",
          trigger: ["blur", "change"],
        }],
        placingInTime: [{
          required: true,
          message: "请选择入窑时间",
          trigger: ["blur", "change"],
        }],
        placingOutTime: [{
          required: true,
          message: "请选择出窑时间",
          trigger: ["blur", "change"],
        }],
        checkTime: [{
          required: true,
          message: "请选择质检时间",
          trigger: ["blur", "change"],
        }],
        inWaterTime: [{
          required: true,
          message: "请选择入池时间",
          trigger: ["blur", "change"],
        }],
        outWaterTime: [{
          required: true,
          message: "请选择出池时间",
          trigger: ["blur", "change"],
        }],
        inRepoTime: [{
          required: true,
          message: "请选择入库时间",
          trigger: ["blur", "change"],
        }]
      }
    };
    },
    mounted() {
      this.getAllProjects();
@@ -351,13 +663,16 @@
    methods: {
      // 根据项目获取钢筋笼 模具信息
      async getAllSteelPipeData(proId) {
      if (proId) {
        this.steelData = [];
        this.mouldData = [];
        const { data } = await this.$api.DuctpiecePLM.getAllSteelPipeData({
          proId: proId
        const { data } = await this.$api.Basics.getProjectSystemInfoData({
          proId: proId,
        });
        this.steelData = data.steel;
        this.mouldData = data.mod;
        this.steelData = data.proHas;
      } else {
        this.$set(this.formInsert, "reinforcementId", "");
        this.steelData = [];
      }
      },
      // 获取全部班组
      async getAllGroupData() {
@@ -386,21 +701,23 @@
          reinforcement: this.reinforcement,
          groutingHoles: this.groutingHoles,
          blockNum: this.blockNum,
          inModStartTime: this.inModTime ? this.inModTime[0] + ' 00:00:00' : '',
          inModEndTime: this.inModTime ? this.inModTime[1] + ' 23:59:59' : '',
          pouringStartTime: this.pouringTime ? this.pouringTime[0] + ' 00:00:00' : '',
          pouringEndTime: this.pouringTime ? this.pouringTime[1] + ' 23:59:59' : '',
          checkStartTime: this.checkTime ? this.checkTime[0] + ' 00:00:00' : '',
          checkEndTime: this.checkTime ? this.checkTime[1] + ' 23:59:59' : ''
        }).then((res) => {
        inModStartTime: this.inModTime ? this.inModTime[0] + " 00:00:00" : "",
        inModEndTime: this.inModTime ? this.inModTime[1] + " 23:59:59" : "",
        pouringStartTime: this.pouringTime ? this.pouringTime[0] + " 00:00:00" : "",
        pouringEndTime: this.pouringTime ? this.pouringTime[1] + " 23:59:59" : "",
        checkStartTime: this.checkTime ? this.checkTime[0] + " 00:00:00" : "",
        checkEndTime: this.checkTime ? this.checkTime[1] + " 23:59:59" : "",
      })
        .then((res) => {
          if(res.success) {
            this.total = res.data.total;
            this.ductpieceList = res.data.list;
          }
          this.loading = false;
        }).catch(() => {
          this.loading = false;
        })
        .catch(() => {
          this.loading = false;
        });
      },
      // 打开新增管片信息
      propInsert() {
@@ -412,8 +729,38 @@
      propUpdate(row) {
        this.asyncTitle = false;
        this.asyncInsert = true;
        this.$set(this.formInsert, 'pipeNum', row.pipeNum);
        this.$set(this.formInsert, 'ringNum', row.ringNum);
      this.$set(this.formInsert, "pipeNum", row.pipeNum);
      this.$set(this.formInsert, "ringNum", row.ringNum);
    },
    // 打开修改时间
    propUpdateTime(row) {
      this.asyncTime = true;
      this.$set(this.formTime, "pipeNum", row.pipeNum);
      this.$set(this.formTime, "ringNum", row.ringNum);
      this.$api.DuctpiecePLM.getPipeTimeData({
        pipeNum: row.pipeNum
      }).then(res => {
        if(res.success) {
          this.$set(this.formTime, 'inModTime', res.data.inModTime);
          this.$set(this.formTime, 'outModTime', res.data.outModTime);
          this.$set(this.formTime, 'pouringTime', res.data.pouringTime);
          this.$set(this.formTime, 'placingInTime', res.data.placingInTime);
          this.$set(this.formTime, 'placingOutTime', res.data.placingOutTime);
          this.$set(this.formTime, 'checkTime', res.data.checkTime);
          if(res.data.inWaterFlag) {
            this.$set(this.formTime, 'inWaterTime', res.data.inWaterTime);
          }
          if(res.data.OutWaterFlag) {
            this.$set(this.formTime, 'outWaterTime', res.data.outWaterTime);
          }
          if(res.data.inRepoFlag) {
            this.$set(this.formTime, 'inRepoTime', res.data.inRepoTime);
          }
          // this.$set(this.formInsert, '', res.data.);
        } else {
         this.$message.warning(res.statusMsg);
        }
      })
      },
      // 导出Excel
      exportExcel() {
@@ -429,47 +776,47 @@
          pouringStartTime: this.pouringTime[0],
          pouringEndTime: this.pouringTime[1],
          checkStartTime: this.checkTime[0],
          checkEndTime: this.checkTime[1]
        checkEndTime: this.checkTime[1],
        }).then((res) => {
          if(res.success) {
            downLoadFile(res.data, '/m/pipeInfo/export');
          downLoadFile(res.data, "/m/pipeInfo/export");
          }
        })
      });
      },
      // 打开存在问题
      propIssue(row) {
        this.pipeId = row.pipeId
      this.pipeId = row.pipeId;
        this.checkResultStr = row.checkResultStr;
        this.issueType = row.type;
        this.asyncDuctPiece = true;
        this.$api.DuctpiecePLM.getProblemInfo({
          pipeId: row.pipeId
        pipeId: row.pipeId,
        }).then((res) => {
          if(res.success) {
            this.$set(this.formDuctPiece, 'pipeCheckId', res.data.pipeCheckId);
            this.$set(this.formDuctPiece, 'existProblem', res.data.existProblem);
            this.$set(this.formDuctPiece, 'exeProResult', res.data.exeProResult);
            this.$set(this.formDuctPiece, 'exeProNote', res.data.exeProNote);
          this.$set(this.formDuctPiece, "pipeCheckId", res.data.pipeCheckId);
          this.$set(this.formDuctPiece, "existProblem", res.data.existProblem);
          this.$set(this.formDuctPiece, "exeProResult", res.data.exeProResult);
          this.$set(this.formDuctPiece, "exeProNote", res.data.exeProNote);
            this.fileList = res.data.files.map((item, index) => {
              return {
                id: index + 1,
                url: `https://szpipe.thhy-tj.com/${item}`
              url: `https://pipe.thhy-tj.com/${item}`,
            };
          });
              }
            })
          }
        })
      });
      },
      // 打开质量追溯
      propCheckHistory(row) {
        this.asyncRetrospect = true;
        this.retrospectInfo = {};
        this.$api.DuctpiecePLM.getCheckHistoryInfo({
          pipeId: row.pipeId
        pipeId: row.pipeId,
        }).then((res) => {
          if(res.success) {
            this.retrospectInfo = res.data;
          }
        })
      });
      },
      // 提交存在问题
      submitInsertForm: throttle(function() {
@@ -480,11 +827,11 @@
          if(res.success) {
            this.asyncDuctPiece = false;
            this.searchDuctpiecePLMList(true);
            this.$message.success('添加成功!');
          this.$message.success("添加成功!");
          } else {
            this.$message.warning(res.statusMsg);
          }
        })
      });
      }, 3000),
      // 提交新增管片信息
      submitInsertPipe: throttle(function() {
@@ -492,16 +839,16 @@
          if(valid) {
            const params = Object.assign({}, this.formInsert);
            this.$api.DuctpiecePLM.insertPipeData(params).then((res) => {
              if(res.statusMsg === 'ok') {
            if (res.statusMsg === "ok") {
                this.asyncInsert = false;
                this.searchDuctpiecePLMList(true);
                this.$message.success('新增成功!');
              this.$message.success("新增成功!");
              } else {
                this.$message.warning(res.statusMsg);
              }
            })
          });
          }
        })
      });
      }, 3000),
      // 提交修改环号信息
      submitUpdatePipe: throttle(function() {
@@ -509,38 +856,62 @@
          if(valid) {
            const params = Object.assign({}, this.formInsert);
            this.$api.DuctpiecePLM.updataRingNumData(params).then((res) => {
              if(res.statusMsg === 'ok') {
            if (res.statusMsg === "ok") {
                this.asyncInsert = false;
                this.searchDuctpiecePLMList(true);
                this.$message.success('修改成功!');
              this.$message.success("修改成功!");
              } else {
                this.$message.warning(res.statusMsg);
              }
            })
          });
        }
      });
    }, 3000),
    // 提交修改时间信息
    submitUpdateTime: throttle(function() {
      this.$refs.formTime.validate((valid) => {
        if(valid) {
          const params = Object.assign({}, this.formTime);
          this.$api.DuctpiecePLM.updatePipeTimeData(params).then((res) => {
            if (res.statusMsg === "ok") {
              this.asyncTime = false;
              this.searchDuctpiecePLMList(true);
              this.$message.success("修改成功!");
            } else {
              this.$message.warning(res.statusMsg);
            }
          });
          }
        })
      }, 3000),
      // 
      showCheckResult(value) {
        return !value ? '' : value == 1 ? '合格' : '存在问题';
      return !value ? "" : value == 1 ? "合格" : "存在问题";
      },
      // 根据项目获取尺寸 配筋 块号信息
      changeHeaderProject(data) {
          this.blockNum = '';
          this.reinforcement = '';
          this.groutingHoles = '';
      this.blockNum = "";
      this.reinforcement = "";
      this.groutingHoles = "";
          this.groutingHolesData = [];
          this.blockNumData = [];
          this.reinforcementData = [];
        if(data) {
          this.$api.Basics.getProjectSystemInfoData({
            proId: data
          proId: data,
          }).then((res) => {
            this.groutingHolesData = res.data.proGroutings;
            this.blockNumData = res.data.proBloks;
            this.reinforcementData = res.data.proHas;
          })
        });
        }
    },
    // 转换毫秒
    transitionMsec(time) {
      let msec = 0;
      const date = Date.parse(new Date(time));
      console.log(date,'==-=-=-')
      return msec;
      },
      // 切换页数
      changePageNum(page) {
@@ -562,28 +933,33 @@
      asyncDuctpieceInfo(bol) {
        if(!bol) {
          this.formDuctPiece = {};
          this.pipeId = '';
          this.checkResultStr = '';
        this.pipeId = "";
        this.checkResultStr = "";
          this.fileList = [];
        }
      },
      asyncInsert(bol) {
        if(!bol) {
          this.steelData = [];
          this.mouldData = [];
          this.formInsert = {};
          this.$refs.formInsert.resetFields();
        }
    },
    asyncTime(bol) {
      if(!bol) {
        this.formTime = {};
        this.$refs.formTime.resetFields();
      }
    }
  }
  },
};
</script>
<style lang="scss" scoped>
@import '../../style/layout-main.scss';
@import "../../style/layout-main.scss";
.issue_status {
  color: #F42829;
  color: #f42829;
}
.retrospect_content {
@@ -594,7 +970,7 @@
    padding: 0 15px 15px;
    font-size: 16px;
    font-weight: 600;
    color: #FFF;
    color: #fff;
    border-bottom: 1px solid #0d5274;
    &::before {
@@ -605,7 +981,7 @@
      transform: translateY(-85%);
      width: 3px;
      height: 50%;
      background: #18F6F8;
      background: #18f6f8;
    }
  }
@@ -614,22 +990,22 @@
    margin: 10px 10px 10px 0;
    .table_item {
      border: 1px solid #1CB7E0;
      border: 1px solid #1cb7e0;
      border-right: none;
      &:last-child {
        border-right: 1px solid #1CB7E0;
        border-right: 1px solid #1cb7e0;
      }
      .table_item_chunk {
        padding: 10px;
        color: #18F6F8;
        color: #18f6f8;
        text-align: center;
      }
      .table_th {
        border-bottom: 1px solid #1CB7E0;
        background: #082F57;
        border-bottom: 1px solid #1cb7e0;
        background: #082f57;
      }
    }
  }
web/src/views/GoodManage/WeightRecord.vue
对比新文件
@@ -0,0 +1,159 @@
<template>
  <div class="main">
    <div class="main_header">
      <div class="header_item">
        <span class="header_label">车牌号:</span>
        <el-input v-model="search.carNumber" :size="size" clearable placeholder="请输入车牌号"></el-input>
      </div>
      <div class="header_item">
        <span class="header_label">原材料名称:</span>
        <el-input v-model="search.matName" :size="size" clearable placeholder="请输入原材料名称"></el-input>
      </div>
      <div class="header_item">
        <span class="header_label">时间范围:</span>
        <el-date-picker
            v-model="search.time"
            type="daterange"
            :default-time="['00:00:00','23:59:59']"
            clearable
            value-format="yyyy-MM-dd HH:mm:ss"
            range-separator="-"
            start-placeholder="起始时间"
            end-placeholder="结束时间">
        </el-date-picker>
      </div>
      <div class="header_item">
        <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button>
      </div>
    </div>
    <div class="main_content">
      <el-table
        v-loading="loading"
        :data="dataList"
        height="100%">
        <el-table-column align="center" label="序号" width="60">
          <template #default="scope">
            <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="code" label="过磅编号" align="center" width="120"></el-table-column>
        <el-table-column prop="orgname" label="业务所属机构" align="center" width="200"></el-table-column>
        <el-table-column prop="supplyorgname" label="供应单位名称" align="center" width="200"></el-table-column>
        <el-table-column prop="carnumber" label="车牌号" align="center"></el-table-column>
        <el-table-column prop="drivername" label="运输司机" align="center" ></el-table-column>
        <el-table-column prop="matname" label="原料名称" align="center"></el-table-column>
        <el-table-column prop="matmodel" label="原材料型号" align="center" width="150"></el-table-column>
        <el-table-column prop="mpoundtime" label="过毛时间" align="center"></el-table-column>
        <el-table-column prop="mpoundweight" label="毛重" align="center"></el-table-column>
        <el-table-column prop="mpoundname" label="过毛人" align="center"></el-table-column>
        <el-table-column prop="ppoundtime" label="皮重时间" align="center"></el-table-column>
        <el-table-column prop="ppoundname" label="过皮人" align="center"></el-table-column>
        <el-table-column prop="jpoundweight" label="过磅净重" align="center"></el-table-column>
        <el-table-column prop="buckleweight" label="扣重" align="center"></el-table-column>
        <el-table-column prop="mweight" label="毛重" align="center"></el-table-column>
        <el-table-column prop="pweight" label="皮重" align="center"></el-table-column>
        <el-table-column prop="jweight" label="净重" align="center"></el-table-column>
        <el-table-column prop="warename" label="入库仓名称" align="center" width="100"></el-table-column>
        <el-table-column prop="types" label="同步状态" align="center" width="100">
            <template #default="{row}">
                <div>{{row.types===1?'未同步':row.types===2?'已同步':''}}</div>
            </template>
        </el-table-column>
      </el-table>
    </div>
    <div class="main_footer">
      <el-pagination
        background
        @current-change="changePageNum"
        @size-change="changePageSize"
        :current-page="pageNum"
        :page-sizes="[10, 20, 50, 100]"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total">
      </el-pagination>
    </div>
  </div>
</template>
<script>
import { buttonPinia } from '../../pinia/index';
import { changeSize } from '../../plugins/public'; // 导入节流、动态切换组件尺寸方法
  export default {
    data() {
      return {
        size: changeSize(), // 组件尺寸
        pageNum: 1,
        pageSize: 10,
        search:{},//查询条件
        total: 0,
        loading: false,
        dataList: [], //进场称重列表
      }
    },
    watch: {
      asyncVisible(bol) {
        if(!bol) {
          this.ruleForm = {};
          this.$refs.ruleForm.resetFields();
        }
      }
    },
    mounted() {
      const that = this;
      // 根据窗口大小动态修改组件尺寸
      window.onresize = () => {
        that.size = changeSize();
      }
      that.searchButtonInfo(true);
    },
    methods: {
      // 查询按钮列表信息
      searchButtonInfo(bol) {
        if(bol) {
          this.pageNum = 1;
        }
        let params = Object.assign({},this.search,{
          pageNum: this.pageNum,
          pageSize: this.pageSize
        })
        params.startTime = this.search.time&&this.search.time[0]
        params.endTime = this.search.time&&this.search.time[1]
        delete params.time
        this.loading = true;
        this.$api.Materials.searchWeighRecordsList(params).then((res) => {
          if(res.statusMsg === 'ok') {
            this.total = res.data.total;
            this.dataList = res.data.list;
          }
          this.loading = false;
        })
      },
      // 判断按钮权限信息
      showButton(str) {
        const pinia = buttonPinia();
        return pinia.$state.buttonInfo.includes(str);
      },
      // 切换页数
      changePageNum(page) {
        this.pageNum = page;
        this.searchButtonInfo();
      },
      // 切换每页条数
      changePageSize(size) {
        this.pageSize = size;
        this.searchButtonInfo();
      }
    }
  }
</script>
<style lang="scss" scoped>
@import '../../style/layout-main.scss';
/deep/.el-color-picker__trigger{
  border-color:#1C4390;
}
/deep/.el-color-picker__color{
  border-color:#1C4390;
}
</style>