This commit is contained in:
		
							parent
							
								
									98c23b4154
								
							
						
					
					
						commit
						0f73417cc2
					
				| 
						 | 
				
			
			@ -572,11 +572,11 @@ export default {
 | 
			
		|||
                //     },
 | 
			
		||||
                // ],
 | 
			
		||||
                phone: [
 | 
			
		||||
                    {
 | 
			
		||||
                        required: true,
 | 
			
		||||
                        trigger: 'blur',
 | 
			
		||||
                        message: '请输入退料人的手机号'
 | 
			
		||||
                    },
 | 
			
		||||
                    // {
 | 
			
		||||
                    //     required: true,
 | 
			
		||||
                    //     trigger: 'blur',
 | 
			
		||||
                    //     message: '请输入退料人的手机号'
 | 
			
		||||
                    // },
 | 
			
		||||
                    {
 | 
			
		||||
                        pattern: /^1[3456789]\d{9}$/,
 | 
			
		||||
                        message: '请输入正确的手机号码',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1099,7 +1099,7 @@ export default {
 | 
			
		|||
 | 
			
		||||
    // 高亮文本
 | 
			
		||||
    highlightText(text, keyword) {
 | 
			
		||||
      console.log("yyyyyyyyyyyyy",text,keyword)
 | 
			
		||||
      // console.log("yyyyyyyyyyyyy",text,keyword)
 | 
			
		||||
      if (!keyword) return text;
 | 
			
		||||
      const reg = new RegExp(keyword, 'gi');
 | 
			
		||||
      return text.replace(reg, match => `<span class="highlight-text">${match}</span>`);
 | 
			
		||||
| 
						 | 
				
			
			@ -1167,9 +1167,8 @@ export default {
 | 
			
		|||
      if (this.currentMatchIndex === -1 || !this.matchedOptions.length) return;
 | 
			
		||||
 | 
			
		||||
      const option = this.matchedOptions[this.currentMatchIndex];
 | 
			
		||||
      const selectDom = this.$el.querySelector('.el-select-dropdown__wrap');
 | 
			
		||||
      const selectDom = this.$el.querySelector('.type-select-dropdown');
 | 
			
		||||
      const optionDom = selectDom?.querySelector(`[data-key="${option.typeId}"]`);
 | 
			
		||||
 | 
			
		||||
      if (optionDom) {
 | 
			
		||||
        optionDom.scrollIntoView({ block: 'center', behavior: 'smooth' });
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -1225,7 +1224,7 @@ export default {
 | 
			
		|||
//   overflow-y: auto;
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
.highlight-text {
 | 
			
		||||
::v-deep .highlight-text {
 | 
			
		||||
  background-color: #ffd04b;
 | 
			
		||||
  color: #000;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,17 +11,8 @@
 | 
			
		|||
          label-width="90px"
 | 
			
		||||
        >
 | 
			
		||||
          <el-form-item label="类型规格:" prop="partId">
 | 
			
		||||
            <el-select
 | 
			
		||||
              v-model="queryParams.partId"
 | 
			
		||||
              placeholder="请选择类型规格"
 | 
			
		||||
              clearable
 | 
			
		||||
            >
 | 
			
		||||
              <el-option
 | 
			
		||||
                v-for="dict in materialModelList"
 | 
			
		||||
                :key="dict.value"
 | 
			
		||||
                :label="dict.label"
 | 
			
		||||
                :value="dict.value"
 | 
			
		||||
              />
 | 
			
		||||
            <el-select v-model="queryParams.partId" placeholder="请选择类型规格" clearable>
 | 
			
		||||
              <el-option v-for="dict in materialModelList" :key="dict.value" :label="dict.label" :value="dict.value" />
 | 
			
		||||
            </el-select>
 | 
			
		||||
          </el-form-item>
 | 
			
		||||
          <!-- <el-form-item label="机具厂家:"  prop="supplierId">
 | 
			
		||||
| 
						 | 
				
			
			@ -40,33 +31,18 @@
 | 
			
		|||
              placeholder="请选择出厂日期"
 | 
			
		||||
              value-format="yyyy-MM-dd"
 | 
			
		||||
              type="date"
 | 
			
		||||
            >
 | 
			
		||||
            </el-date-picker>
 | 
			
		||||
            ></el-date-picker>
 | 
			
		||||
          </el-form-item>
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
          <el-form-item>
 | 
			
		||||
            <el-button
 | 
			
		||||
              type="primary"
 | 
			
		||||
              icon="el-icon-search"
 | 
			
		||||
              size="mini"
 | 
			
		||||
              @click="handleQuery"
 | 
			
		||||
              >查询</el-button
 | 
			
		||||
            >
 | 
			
		||||
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
 | 
			
		||||
              >重置</el-button
 | 
			
		||||
            >
 | 
			
		||||
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
 | 
			
		||||
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
 | 
			
		||||
          </el-form-item>
 | 
			
		||||
        </el-form>
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
        <el-row :gutter="10" class="mb8">
 | 
			
		||||
          <el-col :span="1.5">
 | 
			
		||||
            <el-button
 | 
			
		||||
              type="primary"
 | 
			
		||||
              size="mini"
 | 
			
		||||
              icon="el-icon-back"
 | 
			
		||||
              @click="jumpList"
 | 
			
		||||
              >配件验收</el-button
 | 
			
		||||
            >
 | 
			
		||||
            <el-button type="primary" size="mini" icon="el-icon-back" @click="jumpList">配件验收</el-button>
 | 
			
		||||
          </el-col>
 | 
			
		||||
          <!-- <el-col :span="1.5">
 | 
			
		||||
            <el-button
 | 
			
		||||
| 
						 | 
				
			
			@ -78,111 +54,66 @@
 | 
			
		|||
              >导出</el-button
 | 
			
		||||
            >
 | 
			
		||||
          </el-col> -->
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
          <el-col :span="1.5">
 | 
			
		||||
            <el-button
 | 
			
		||||
              type="success"
 | 
			
		||||
              @click="batchPass"
 | 
			
		||||
              icon="el-icon-check"
 | 
			
		||||
              v-show="!isView"
 | 
			
		||||
              size="mini"
 | 
			
		||||
              >合格</el-button
 | 
			
		||||
            >
 | 
			
		||||
            <el-button type="success" @click="batchPass" icon="el-icon-check" v-show="!isView" size="mini">
 | 
			
		||||
              合格
 | 
			
		||||
            </el-button>
 | 
			
		||||
          </el-col>
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
          <el-col :span="1.5">
 | 
			
		||||
            <el-button
 | 
			
		||||
              type="danger"
 | 
			
		||||
              @click="batchReject"
 | 
			
		||||
              icon="el-icon-close"
 | 
			
		||||
              v-show="!isView"
 | 
			
		||||
              size="mini"
 | 
			
		||||
              >不合格</el-button
 | 
			
		||||
            >
 | 
			
		||||
            <el-button type="danger" @click="batchReject" icon="el-icon-close" v-show="!isView" size="mini">
 | 
			
		||||
              不合格
 | 
			
		||||
            </el-button>
 | 
			
		||||
          </el-col>
 | 
			
		||||
        </el-row>
 | 
			
		||||
    
 | 
			
		||||
        <el-table
 | 
			
		||||
          v-loading="loading"
 | 
			
		||||
          :data="tableList"
 | 
			
		||||
          ref="multipleTable"
 | 
			
		||||
        >
 | 
			
		||||
 | 
			
		||||
        <el-table v-loading="loading" :data="tableList" ref="multipleTable">
 | 
			
		||||
          <!-- <el-table-column
 | 
			
		||||
            type="selection"
 | 
			
		||||
            width="55"
 | 
			
		||||
            align="center" :selectable="selectable"
 | 
			
		||||
            :reserve-selection="true"
 | 
			
		||||
          /> -->
 | 
			
		||||
          <el-table-column label="序号" align="center" width="80" type="index">
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
          <el-table-column
 | 
			
		||||
            label="配件类型"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="maName"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          />
 | 
			
		||||
          <el-table-column
 | 
			
		||||
            label="配件名称"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="maTypeName"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          />
 | 
			
		||||
          <el-table-column
 | 
			
		||||
            label="规格型号"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="partName"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          />
 | 
			
		||||
          <el-table-column
 | 
			
		||||
            label="到货数量"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="purchaseNum"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          />
 | 
			
		||||
          <el-table-column
 | 
			
		||||
            label="单位"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="unitName"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          />
 | 
			
		||||
    
 | 
			
		||||
          <el-table-column label="序号" align="center" width="80" type="index"></el-table-column>
 | 
			
		||||
          <el-table-column label="配件类型" align="center" prop="maName" :show-overflow-tooltip="true" />
 | 
			
		||||
          <el-table-column label="配件名称" align="center" prop="maTypeName" :show-overflow-tooltip="true" />
 | 
			
		||||
          <el-table-column label="规格型号" align="center" prop="partName" :show-overflow-tooltip="true" />
 | 
			
		||||
          <el-table-column label="到货数量" align="center" prop="purchaseNum" :show-overflow-tooltip="true" />
 | 
			
		||||
          <el-table-column label="单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
 | 
			
		||||
 | 
			
		||||
          <!-- <el-table-column
 | 
			
		||||
            label="供应商"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="supplier"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          /> -->
 | 
			
		||||
          <el-table-column
 | 
			
		||||
            label="出厂日期"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="productionTime"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          />
 | 
			
		||||
          <el-table-column
 | 
			
		||||
                label="相关配套资料"
 | 
			
		||||
                align="center"
 | 
			
		||||
                prop=""
 | 
			
		||||
            >
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
              <div style="color: #02A7F0;cursor: pointer;" @click="openFileDialog(scope.row)" v-if="scope.row.isExitFile==1">报告管理</div>
 | 
			
		||||
              <div style="color: red;cursor: pointer;" @click="openFileDialog(scope.row)" v-if="scope.row.isExitFile==0">报告管理</div>
 | 
			
		||||
          </template>
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
    
 | 
			
		||||
          <el-table-column
 | 
			
		||||
            label="状态"
 | 
			
		||||
            align="center"
 | 
			
		||||
            prop="status"
 | 
			
		||||
            :show-overflow-tooltip="true"
 | 
			
		||||
          >
 | 
			
		||||
          <el-table-column label="出厂日期" align="center" prop="productionTime" :show-overflow-tooltip="true" />
 | 
			
		||||
          <el-table-column label="相关配套资料" align="center" prop="">
 | 
			
		||||
            <template slot-scope="scope">
 | 
			
		||||
              <dict-tag
 | 
			
		||||
                :options="dict.type.purchase_task_status"
 | 
			
		||||
                :value="scope.row.status"
 | 
			
		||||
              />
 | 
			
		||||
              <div
 | 
			
		||||
                style="color: #02a7f0; cursor: pointer"
 | 
			
		||||
                @click="openFileDialog(scope.row)"
 | 
			
		||||
                v-if="scope.row.isExitFile == 1"
 | 
			
		||||
              >
 | 
			
		||||
                报告管理
 | 
			
		||||
              </div>
 | 
			
		||||
              <div
 | 
			
		||||
                style="color: red; cursor: pointer"
 | 
			
		||||
                @click="openFileDialog(scope.row)"
 | 
			
		||||
                v-if="scope.row.isExitFile == 0"
 | 
			
		||||
              >
 | 
			
		||||
                报告管理
 | 
			
		||||
              </div>
 | 
			
		||||
            </template>
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
          <el-table-column label="状态" align="center" prop="status" :show-overflow-tooltip="true">
 | 
			
		||||
            <template slot-scope="scope">
 | 
			
		||||
              <dict-tag :options="dict.type.purchase_task_status" :value="scope.row.status" />
 | 
			
		||||
            </template>
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
 | 
			
		||||
          <!-- <el-table-column label="操作" align="center" width="180" v-if="!isView">
 | 
			
		||||
            <template slot-scope="scope">
 | 
			
		||||
              <el-button size="mini" type="success" @click="pass(scope.row)" v-if="scope.row.status==0">
 | 
			
		||||
| 
						 | 
				
			
			@ -238,42 +169,43 @@
 | 
			
		|||
 | 
			
		||||
    <!-- 验收弹窗 -->
 | 
			
		||||
    <el-dialog title="验收" :visible.sync="confirmShow" width="600px" height="300px">
 | 
			
		||||
      <div style="width: 100%; height: 80%; display: flex;margin-bottom: 10px;">
 | 
			
		||||
        <div style="width:15%;">验收结论:</div>
 | 
			
		||||
      <div style="width: 100%; height: 80%; display: flex; margin-bottom: 10px">
 | 
			
		||||
        <div style="width: 15%">验收结论:</div>
 | 
			
		||||
        <el-input
 | 
			
		||||
          type="textarea"
 | 
			
		||||
          :rows="3" style="width:80%;"
 | 
			
		||||
          :rows="3"
 | 
			
		||||
          style="width: 80%"
 | 
			
		||||
          placeholder="请输入结论"
 | 
			
		||||
          v-model="checkResult"
 | 
			
		||||
          maxlength="100">
 | 
			
		||||
        </el-input>
 | 
			
		||||
          maxlength="100"
 | 
			
		||||
        ></el-input>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div style="width: 100%;height: 20%;display: flex;justify-content: flex-end;align-items: center;">
 | 
			
		||||
      <div style="width: 100%; height: 20%; display: flex; justify-content: flex-end; align-items: center">
 | 
			
		||||
        <el-button type="primary" @click="confirmCheck">确认</el-button>
 | 
			
		||||
        <el-button size="mini" @click="confirmShow = false">取消</el-button>
 | 
			
		||||
      </div>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
 | 
			
		||||
      <el-dialog title="报告管理" :visible.sync="open" width="900px" append-to-body>
 | 
			
		||||
            <el-table :data="fileDataList" width="100%" height="350px">
 | 
			
		||||
                <el-table-column label="序号" type="index" width="55" align="center"/>
 | 
			
		||||
                <el-table-column label="报告类型" align="center" prop="dictLabel" :show-overflow-tooltip="true"/>
 | 
			
		||||
                <el-table-column label="类型名称" align="center" :show-overflow-tooltip="true">
 | 
			
		||||
                <template>
 | 
			
		||||
                    <div>{{this.rowData.maTypeName}}</div>
 | 
			
		||||
                </template>
 | 
			
		||||
                </el-table-column>
 | 
			
		||||
                <el-table-column label="规格型号" align="center" :show-overflow-tooltip="true">
 | 
			
		||||
                <template>
 | 
			
		||||
                    <div>{{this.rowData.partName}}</div>
 | 
			
		||||
                </template>
 | 
			
		||||
                </el-table-column>
 | 
			
		||||
                <!-- <el-table-column label="报告日期" align="center" prop="orgName" :show-overflow-tooltip="true"/>
 | 
			
		||||
    <el-dialog title="报告管理" :visible.sync="open" width="900px" append-to-body>
 | 
			
		||||
      <el-table :data="fileDataList" width="100%" height="350px">
 | 
			
		||||
        <el-table-column label="序号" type="index" width="55" align="center" />
 | 
			
		||||
        <el-table-column label="报告类型" align="center" prop="dictLabel" :show-overflow-tooltip="true" />
 | 
			
		||||
        <el-table-column label="类型名称" align="center" :show-overflow-tooltip="true">
 | 
			
		||||
          <template>
 | 
			
		||||
            <div>{{ this.rowData.maTypeName }}</div>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column label="规格型号" align="center" :show-overflow-tooltip="true">
 | 
			
		||||
          <template>
 | 
			
		||||
            <div>{{ this.rowData.partName }}</div>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <!-- <el-table-column label="报告日期" align="center" prop="orgName" :show-overflow-tooltip="true"/>
 | 
			
		||||
                <el-table-column label="截止有效期" align="center" prop="orgName" :show-overflow-tooltip="true"/> -->
 | 
			
		||||
                <el-table-column label="操作" align="center" width="100">
 | 
			
		||||
                <template slot-scope="scope">
 | 
			
		||||
                <div style="display: flex;align-items: center;justify-content: center;">
 | 
			
		||||
                    <!-- <el-upload ref="upload" :limit="1" :headers="upload.headers"
 | 
			
		||||
        <el-table-column label="操作" align="center" width="100">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <div style="display: flex; align-items: center; justify-content: center">
 | 
			
		||||
              <!-- <el-upload ref="upload" :limit="1" :headers="upload.headers"
 | 
			
		||||
                    :action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
 | 
			
		||||
                    :on-success="handleFileSuccess"   :auto-upload="true"
 | 
			
		||||
                    >
 | 
			
		||||
| 
						 | 
				
			
			@ -282,58 +214,55 @@
 | 
			
		|||
                    </el-button>
 | 
			
		||||
                    </el-upload> -->
 | 
			
		||||
 | 
			
		||||
                    <el-button size="mini" type="text" @click="picturePreviewFile(scope.row)" v-if="scope.row.fileListTemp!=0">
 | 
			
		||||
                        查看
 | 
			
		||||
                    </el-button>
 | 
			
		||||
                </div>
 | 
			
		||||
              <el-button
 | 
			
		||||
                size="mini"
 | 
			
		||||
                type="text"
 | 
			
		||||
                @click="picturePreviewFile(scope.row)"
 | 
			
		||||
                v-if="scope.row.fileListTemp != 0"
 | 
			
		||||
              >
 | 
			
		||||
                查看
 | 
			
		||||
              </el-button>
 | 
			
		||||
            </div>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
      </el-table>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
 | 
			
		||||
    <!-- 图片查看弹窗 -->
 | 
			
		||||
    <el-dialog :visible.sync="dialogVisible" width="500px" height="500px">
 | 
			
		||||
      <img width="100%" height="500px" :src="dialogImageUrl" />
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
 | 
			
		||||
                </template>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
            </el-table>
 | 
			
		||||
        </el-dialog>
 | 
			
		||||
 | 
			
		||||
        <!-- 图片查看弹窗 -->
 | 
			
		||||
        <el-dialog :visible.sync="dialogVisible" width="500px" height="500px" >
 | 
			
		||||
            <img width="100%" height="500px" :src="dialogImageUrl"  />
 | 
			
		||||
        </el-dialog>
 | 
			
		||||
 | 
			
		||||
        <!-- 文件查看列表 -->
 | 
			
		||||
        <el-dialog title="文件列表" :visible.sync="dialogVisibleFile" width="500px" height="500px" >
 | 
			
		||||
            <el-table :data="fileListInfo" width="100%" height="350px">
 | 
			
		||||
                <el-table-column label="序号" type="index"  width="55" align="center"/>
 | 
			
		||||
                <el-table-column label="文件名称" align="center" prop="name" :show-overflow-tooltip="true"/>
 | 
			
		||||
                <el-table-column label="操作" align="center" >
 | 
			
		||||
                    <template slot-scope="scope">
 | 
			
		||||
                    <el-button size="mini" type="text" @click="picturePreview(scope.row)" v-if="scope.row.url" >
 | 
			
		||||
                        查看
 | 
			
		||||
                    </el-button>
 | 
			
		||||
                    </template>
 | 
			
		||||
                </el-table-column>
 | 
			
		||||
            </el-table>
 | 
			
		||||
        </el-dialog>
 | 
			
		||||
    <!-- 文件查看列表 -->
 | 
			
		||||
    <el-dialog title="文件列表" :visible.sync="dialogVisibleFile" width="500px" height="500px">
 | 
			
		||||
      <el-table :data="fileListInfo" width="100%" height="350px">
 | 
			
		||||
        <el-table-column label="序号" type="index" width="55" align="center" />
 | 
			
		||||
        <el-table-column label="文件名称" align="center" prop="name" :show-overflow-tooltip="true" />
 | 
			
		||||
        <el-table-column label="操作" align="center">
 | 
			
		||||
          <template slot-scope="scope">
 | 
			
		||||
            <el-button size="mini" type="text" @click="picturePreview(scope.row)" v-if="scope.row.url">查看</el-button>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
      </el-table>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
  <script>
 | 
			
		||||
import { getManufacturerSelect } from "@/api/ma/supplier";
 | 
			
		||||
import {
 | 
			
		||||
  acceptInnerVerifyer,
 | 
			
		||||
  getPurchaseFileList,
 | 
			
		||||
  uploadPurchaseFile,
 | 
			
		||||
  } from "@/api/purchase/goodsAccept";
 | 
			
		||||
import { getPartType,partTypeWarehouse,partTypeReject,innerVerify } from '@/api/part/partAccept';
 | 
			
		||||
import { getPartTypeCheckInfo,getPartTypeFileList } from '@/api/part/partArrived';
 | 
			
		||||
import { downloadFile } from "@/utils/download";
 | 
			
		||||
import { getToken } from "@/utils/auth";
 | 
			
		||||
<script>
 | 
			
		||||
import { getManufacturerSelect } from '@/api/ma/supplier'
 | 
			
		||||
import { acceptInnerVerifyer, getPurchaseFileList, uploadPurchaseFile } from '@/api/purchase/goodsAccept'
 | 
			
		||||
import { getPartType, partTypeWarehouse, partTypeReject, innerVerify } from '@/api/part/partAccept'
 | 
			
		||||
import { getPartTypeCheckInfo, getPartTypeFileList } from '@/api/part/partArrived'
 | 
			
		||||
import { downloadFile } from '@/utils/download'
 | 
			
		||||
import { getToken } from '@/utils/auth'
 | 
			
		||||
import { getSignListApi } from '@/api/purchase/goodsAccept'
 | 
			
		||||
export default {
 | 
			
		||||
  name: "PartAcceptDetailTwo",
 | 
			
		||||
  dicts: ["purchase_task_status"],
 | 
			
		||||
  name: 'PartAcceptDetailTwo',
 | 
			
		||||
  dicts: ['purchase_task_status'],
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      Id: "",
 | 
			
		||||
      taskId: "",
 | 
			
		||||
      Id: '',
 | 
			
		||||
      taskId: '',
 | 
			
		||||
      // 遮罩层
 | 
			
		||||
      loading: false,
 | 
			
		||||
      dialogLoading: false,
 | 
			
		||||
| 
						 | 
				
			
			@ -354,18 +283,18 @@ export default {
 | 
			
		|||
      total: 0,
 | 
			
		||||
      //表格数据
 | 
			
		||||
      tableList: [],
 | 
			
		||||
      fixCodeList: ["否", "是"],
 | 
			
		||||
      fixCodeList: ['否', '是'],
 | 
			
		||||
      // 弹出层标题
 | 
			
		||||
      title: "",
 | 
			
		||||
      title: '',
 | 
			
		||||
      // 是否显示弹出层
 | 
			
		||||
      open: false,
 | 
			
		||||
      rowData: {},
 | 
			
		||||
      fileDataList: [
 | 
			
		||||
        { dictLabel: "合格证", fileType: "0", name: "", url: "" },
 | 
			
		||||
        { dictLabel: "型式试验报告", fileType: "1", name: "", url: "" },
 | 
			
		||||
        { dictLabel: "出厂检测报告", fileType: "2", name: "", url: "" },
 | 
			
		||||
        { dictLabel: "第三方检测报告", fileType: "3", name: "", url: "" },
 | 
			
		||||
        { dictLabel: "其他", fileType: "4", name: "", url: "" },
 | 
			
		||||
        { dictLabel: '合格证', fileType: '0', name: '', url: '' },
 | 
			
		||||
        { dictLabel: '型式试验报告', fileType: '1', name: '', url: '' },
 | 
			
		||||
        { dictLabel: '出厂检测报告', fileType: '2', name: '', url: '' },
 | 
			
		||||
        { dictLabel: '第三方检测报告', fileType: '3', name: '', url: '' },
 | 
			
		||||
        { dictLabel: '其他', fileType: '4', name: '', url: '' }
 | 
			
		||||
      ],
 | 
			
		||||
      // 查询参数
 | 
			
		||||
      queryParams: {
 | 
			
		||||
| 
						 | 
				
			
			@ -373,42 +302,42 @@ export default {
 | 
			
		|||
        // pageSize: 10,
 | 
			
		||||
        partId: undefined,
 | 
			
		||||
        supplierId: undefined,
 | 
			
		||||
        productionTime: undefined,
 | 
			
		||||
        productionTime: undefined
 | 
			
		||||
      },
 | 
			
		||||
      //确认弹窗
 | 
			
		||||
      confirmShow: false,
 | 
			
		||||
      taskStatus: "", //3合格、1不合格
 | 
			
		||||
      checkResult: "",
 | 
			
		||||
      taskStatus: '', //3合格、1不合格
 | 
			
		||||
      checkResult: '',
 | 
			
		||||
      verifyPass: true, //true合格、false不合格
 | 
			
		||||
      //图片查看弹窗
 | 
			
		||||
      dialogImageUrl: "",
 | 
			
		||||
      dialogImageUrl: '',
 | 
			
		||||
      dialogVisible: false,
 | 
			
		||||
      //上传
 | 
			
		||||
      upload: {
 | 
			
		||||
        // 设置上传的请求头部
 | 
			
		||||
        headers: { Authorization: "Bearer " + getToken() },
 | 
			
		||||
        headers: { Authorization: 'Bearer ' + getToken() },
 | 
			
		||||
        // 上传的地址
 | 
			
		||||
        url: process.env.VUE_APP_BASE_API + "/file/upload",
 | 
			
		||||
        url: process.env.VUE_APP_BASE_API + '/file/upload'
 | 
			
		||||
      },
 | 
			
		||||
      fileListInfo:[],
 | 
			
		||||
      fileListInfo: [],
 | 
			
		||||
      dialogVisibleFile: false,
 | 
			
		||||
      auditingList: []
 | 
			
		||||
    };
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    const taskId = this.$route.query && this.$route.query.taskId;
 | 
			
		||||
    const Id = this.$route.query && this.$route.query.Id;
 | 
			
		||||
    const isView = this.$route.query && this.$route.query.isView;
 | 
			
		||||
    this.taskId = taskId;
 | 
			
		||||
    this.Id = Id;
 | 
			
		||||
    if (isView == "true") {
 | 
			
		||||
      this.isView = true;
 | 
			
		||||
    const taskId = this.$route.query && this.$route.query.taskId
 | 
			
		||||
    const Id = this.$route.query && this.$route.query.Id
 | 
			
		||||
    const isView = this.$route.query && this.$route.query.isView
 | 
			
		||||
    this.taskId = taskId
 | 
			
		||||
    this.Id = Id
 | 
			
		||||
    if (isView == 'true') {
 | 
			
		||||
      this.isView = true
 | 
			
		||||
    } else {
 | 
			
		||||
      this.isView = false;
 | 
			
		||||
      this.isView = false
 | 
			
		||||
    }
 | 
			
		||||
    this.getPartType();
 | 
			
		||||
    console.log(this.isView);
 | 
			
		||||
    this.getList();
 | 
			
		||||
    this.getPartType()
 | 
			
		||||
    console.log(this.isView)
 | 
			
		||||
    this.getList()
 | 
			
		||||
    this.getSignList()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
| 
						 | 
				
			
			@ -419,25 +348,42 @@ export default {
 | 
			
		|||
        console.log('🚀 ~ getSignList ~ res:', res)
 | 
			
		||||
        // 合并auditingList
 | 
			
		||||
        if (res.code === 200 && res.data && res.data.length > 0) {
 | 
			
		||||
          const kuGuanOrder = ['库管一班', '库管二班', '库管三班']
 | 
			
		||||
          // 用 deptName 去重
 | 
			
		||||
          const map = new Map()
 | 
			
		||||
          res.data.forEach(item => map.set(item.deptName, { ...item }))
 | 
			
		||||
          // 查找有数据的库管班
 | 
			
		||||
          const kuGuanItem = kuGuanOrder.map(name => map.get(name)).find(Boolean)
 | 
			
		||||
          // 组装最终列表
 | 
			
		||||
          this.auditingList = [
 | 
			
		||||
            // 第一层:供应科,userName 没有值时默认 '姚士超'
 | 
			
		||||
            (() => {
 | 
			
		||||
              const item = map.get('供应科') || { deptName: '供应科', auditStatus: 1 }
 | 
			
		||||
              return { ...item, userName: item.userName || '姚士超' }
 | 
			
		||||
            })(),
 | 
			
		||||
            // 第二层:技术科
 | 
			
		||||
            map.get('技术科') || { deptName: '技术科', auditStatus: 0 },
 | 
			
		||||
            // 第三层:库管班
 | 
			
		||||
            kuGuanItem || { deptName: '库管班', auditStatus: 0 }
 | 
			
		||||
          const length = res.data.length
 | 
			
		||||
          this.auditingList = res.data.map((item, index) => {
 | 
			
		||||
            return {
 | 
			
		||||
              ...item,
 | 
			
		||||
              deptName: index == 0 ? '供应科' : item.deptName || '',
 | 
			
		||||
              auditStatus: 1
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          const list = [
 | 
			
		||||
            { deptName: '安全/技术科', auditStatus: 0 },
 | 
			
		||||
            { deptName: '库管班', auditStatus: 0 }
 | 
			
		||||
          ]
 | 
			
		||||
          console.log('🚀 ~ getSignList ~ this.auditingList:', this.auditingList)
 | 
			
		||||
          if (length == 1) {
 | 
			
		||||
            this.auditingList.push(...list)
 | 
			
		||||
          } else if (length == 2) {
 | 
			
		||||
            this.auditingList.push(list[1])
 | 
			
		||||
          }
 | 
			
		||||
          console.log('🚀 ~ getSignList ~ this.审核:', this.auditingList)
 | 
			
		||||
          // const kuGuanOrder = ['库管一班', '库管二班', '库管三班']
 | 
			
		||||
          // // 用 deptName 去重
 | 
			
		||||
          // const map = new Map()
 | 
			
		||||
          // res.data.forEach(item => map.set(item.deptName, { ...item }))
 | 
			
		||||
          // // 查找有数据的库管班
 | 
			
		||||
          // const kuGuanItem = kuGuanOrder.map(name => map.get(name)).find(Boolean)
 | 
			
		||||
          // // 组装最终列表
 | 
			
		||||
          // this.auditingList = [
 | 
			
		||||
          //   // 第一层:供应科,userName 没有值时默认 '姚士超'
 | 
			
		||||
          //   (() => {
 | 
			
		||||
          //     const item = map.get('供应科') || { deptName: '供应科', auditStatus: 1 }
 | 
			
		||||
          //     return { ...item, userName: item.userName || '姚士超' }
 | 
			
		||||
          //   })(),
 | 
			
		||||
          //   // 第二层:技术科
 | 
			
		||||
          //   map.get('技术科') || { deptName: '技术科', auditStatus: 0 },
 | 
			
		||||
          //   // 第三层:库管班
 | 
			
		||||
          //   kuGuanItem || { deptName: '库管班', auditStatus: 0 }
 | 
			
		||||
          // ]
 | 
			
		||||
        }
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.log('🚀 ~ getSignList ~ error:', error)
 | 
			
		||||
| 
						 | 
				
			
			@ -446,70 +392,70 @@ export default {
 | 
			
		|||
    //是否可用勾选框
 | 
			
		||||
    selectable(row) {
 | 
			
		||||
      console.log(row)
 | 
			
		||||
      if (row.status == 2||row.status == 13 ||row.status == 14) {
 | 
			
		||||
          return true
 | 
			
		||||
      if (row.status == 2 || row.status == 13 || row.status == 14) {
 | 
			
		||||
        return true
 | 
			
		||||
      } else {
 | 
			
		||||
          return false
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    // 返回列表页
 | 
			
		||||
    jumpList() {
 | 
			
		||||
      const obj = { path: "/part/partAcceptTwo" };
 | 
			
		||||
      this.$tab.closeOpenPage(obj);
 | 
			
		||||
      const obj = { path: '/part/partAcceptTwo' }
 | 
			
		||||
      this.$tab.closeOpenPage(obj)
 | 
			
		||||
    },
 | 
			
		||||
    getPartType() {
 | 
			
		||||
      getPartType({ level: 3 }).then((response) => {
 | 
			
		||||
        let matModelRes = response.data;
 | 
			
		||||
        this.materialModelList = matModelRes.map((item) => {
 | 
			
		||||
      getPartType({ level: 3 }).then(response => {
 | 
			
		||||
        let matModelRes = response.data
 | 
			
		||||
        this.materialModelList = matModelRes.map(item => {
 | 
			
		||||
          return {
 | 
			
		||||
            label: item.partName,
 | 
			
		||||
            value: item.partId,
 | 
			
		||||
          };
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
            value: item.partId
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    getSupplierList() {
 | 
			
		||||
      getManufacturerSelect().then((response) => {
 | 
			
		||||
        let arrRes = response.rows;
 | 
			
		||||
        this.supplierList = arrRes.map((item) => {
 | 
			
		||||
      getManufacturerSelect().then(response => {
 | 
			
		||||
        let arrRes = response.rows
 | 
			
		||||
        this.supplierList = arrRes.map(item => {
 | 
			
		||||
          return {
 | 
			
		||||
            label: item.supplier,
 | 
			
		||||
            value: item.supplierId,
 | 
			
		||||
          };
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
            value: item.supplierId
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    /** 查询列表 */
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.loading = true;
 | 
			
		||||
      this.queryParams.id = this.Id;
 | 
			
		||||
      this.queryParams.taskId = this.taskId;
 | 
			
		||||
      getPartTypeCheckInfo(this.queryParams).then((response) => {
 | 
			
		||||
        this.tableList = response.data.partTypeCheckDetailsList;
 | 
			
		||||
      this.loading = true
 | 
			
		||||
      this.queryParams.id = this.Id
 | 
			
		||||
      this.queryParams.taskId = this.taskId
 | 
			
		||||
      getPartTypeCheckInfo(this.queryParams).then(response => {
 | 
			
		||||
        this.tableList = response.data.partTypeCheckDetailsList
 | 
			
		||||
        // this.total = response.total;
 | 
			
		||||
        this.loading = false;
 | 
			
		||||
      });
 | 
			
		||||
        this.loading = false
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    /** 重置按钮操作 */
 | 
			
		||||
    resetQuery() {
 | 
			
		||||
      this.resetForm("queryForm");
 | 
			
		||||
      this.queryParams.keyWord = null;
 | 
			
		||||
      this.handleQuery();
 | 
			
		||||
      this.resetForm('queryForm')
 | 
			
		||||
      this.queryParams.keyWord = null
 | 
			
		||||
      this.handleQuery()
 | 
			
		||||
    },
 | 
			
		||||
    /** 搜索按钮操作 */
 | 
			
		||||
    handleQuery() {
 | 
			
		||||
      this.queryParams.pageNum = 1;
 | 
			
		||||
      this.getList();
 | 
			
		||||
      this.queryParams.pageNum = 1
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
    // 多选框选中数据
 | 
			
		||||
    handleSelectionChange(selection) {
 | 
			
		||||
      this.ids = selection;
 | 
			
		||||
      this.infos = [];
 | 
			
		||||
      selection.forEach((item) => {
 | 
			
		||||
        this.infos.push({id:item.id,partId:item.partId,purchaseNum:item.purchaseNum,taskId:item.taskId});
 | 
			
		||||
      });
 | 
			
		||||
      this.single = selection.length != 1;
 | 
			
		||||
      this.multiple = !selection.length;
 | 
			
		||||
      this.ids = selection
 | 
			
		||||
      this.infos = []
 | 
			
		||||
      selection.forEach(item => {
 | 
			
		||||
        this.infos.push({ id: item.id, partId: item.partId, purchaseNum: item.purchaseNum, taskId: item.taskId })
 | 
			
		||||
      })
 | 
			
		||||
      this.single = selection.length != 1
 | 
			
		||||
      this.multiple = !selection.length
 | 
			
		||||
    },
 | 
			
		||||
    //入库
 | 
			
		||||
    pass(row) {
 | 
			
		||||
| 
						 | 
				
			
			@ -518,25 +464,31 @@ export default {
 | 
			
		|||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
 | 
			
		||||
      const infos=[{id:row.id,partId:row.partId,purchaseNum:row.purchaseNum,taskId:this.taskId}]
 | 
			
		||||
      this.$modal.confirm('是否确认入库该配件?')
 | 
			
		||||
            .then(function() {
 | 
			
		||||
              return partTypeWarehouse(infos)
 | 
			
		||||
            }).then(() => {
 | 
			
		||||
                  this.$modal.msgSuccess('入库成功')
 | 
			
		||||
                  this.getList()
 | 
			
		||||
            }).catch(() => {});
 | 
			
		||||
      const infos = [{ id: row.id, partId: row.partId, purchaseNum: row.purchaseNum, taskId: this.taskId }]
 | 
			
		||||
      this.$modal
 | 
			
		||||
        .confirm('是否确认入库该配件?')
 | 
			
		||||
        .then(function () {
 | 
			
		||||
          return partTypeWarehouse(infos)
 | 
			
		||||
        })
 | 
			
		||||
        .then(() => {
 | 
			
		||||
          this.$modal.msgSuccess('入库成功')
 | 
			
		||||
          this.getList()
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {})
 | 
			
		||||
    },
 | 
			
		||||
    //驳回
 | 
			
		||||
    reject(row) {
 | 
			
		||||
      const infos=[{id:row.id,partId:row.partId,purchaseNum:row.purchaseNum,taskId:this.taskId}]
 | 
			
		||||
      this.$modal.confirm('是否确认驳回该配件?')
 | 
			
		||||
            .then(function() {
 | 
			
		||||
              return partTypeReject(infos)
 | 
			
		||||
            }).then(() => {
 | 
			
		||||
                  this.$modal.msgSuccess('驳回成功')
 | 
			
		||||
                  this.getList()
 | 
			
		||||
            }).catch(() => {});
 | 
			
		||||
      const infos = [{ id: row.id, partId: row.partId, purchaseNum: row.purchaseNum, taskId: this.taskId }]
 | 
			
		||||
      this.$modal
 | 
			
		||||
        .confirm('是否确认驳回该配件?')
 | 
			
		||||
        .then(function () {
 | 
			
		||||
          return partTypeReject(infos)
 | 
			
		||||
        })
 | 
			
		||||
        .then(() => {
 | 
			
		||||
          this.$modal.msgSuccess('驳回成功')
 | 
			
		||||
          this.getList()
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {})
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    //批量入库
 | 
			
		||||
| 
						 | 
				
			
			@ -545,102 +497,105 @@ export default {
 | 
			
		|||
      //   this.$modal.msgError("请选择配件");
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      this.taskStatus = "3";
 | 
			
		||||
      this.checkResult = "合格";
 | 
			
		||||
      this.verifyPass = true;
 | 
			
		||||
      this.checkList = [];
 | 
			
		||||
      this.checkList = this.tableList.map((item) => {
 | 
			
		||||
      this.taskStatus = '3'
 | 
			
		||||
      this.checkResult = '合格'
 | 
			
		||||
      this.verifyPass = true
 | 
			
		||||
      this.checkList = []
 | 
			
		||||
      this.checkList = this.tableList.map(item => {
 | 
			
		||||
        let obj = {
 | 
			
		||||
          taskId: item.taskId,
 | 
			
		||||
          partId: item.partId,
 | 
			
		||||
          checkResult: this.checkResult,
 | 
			
		||||
        };
 | 
			
		||||
        return obj;
 | 
			
		||||
      });
 | 
			
		||||
      this.confirmShow = true;
 | 
			
		||||
          checkResult: this.checkResult
 | 
			
		||||
        }
 | 
			
		||||
        return obj
 | 
			
		||||
      })
 | 
			
		||||
      this.confirmShow = true
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    //批量驳回
 | 
			
		||||
    batchReject() {
 | 
			
		||||
    //  if(this.infos==0){
 | 
			
		||||
    //     this.$modal.msgError("请选择配件");
 | 
			
		||||
    //     return;
 | 
			
		||||
    //   }
 | 
			
		||||
      this.taskStatus = "1";
 | 
			
		||||
      this.checkResult = "不合格";
 | 
			
		||||
      this.verifyPass = false;
 | 
			
		||||
      this.checkList = [];
 | 
			
		||||
      this.checkList = this.tableList.map((item) => {
 | 
			
		||||
      //  if(this.infos==0){
 | 
			
		||||
      //     this.$modal.msgError("请选择配件");
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      this.taskStatus = '1'
 | 
			
		||||
      this.checkResult = '不合格'
 | 
			
		||||
      this.verifyPass = false
 | 
			
		||||
      this.checkList = []
 | 
			
		||||
      this.checkList = this.tableList.map(item => {
 | 
			
		||||
        let obj = {
 | 
			
		||||
          taskId: item.taskId,
 | 
			
		||||
          partId: item.partId,
 | 
			
		||||
          checkResult: this.checkResult,
 | 
			
		||||
        };
 | 
			
		||||
        return obj;
 | 
			
		||||
      });
 | 
			
		||||
      this.confirmShow = true;
 | 
			
		||||
          checkResult: this.checkResult
 | 
			
		||||
        }
 | 
			
		||||
        return obj
 | 
			
		||||
      })
 | 
			
		||||
      this.confirmShow = true
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    //验收确认请求
 | 
			
		||||
    confirmCheck() {
 | 
			
		||||
      this.checkList.forEach((item) => {
 | 
			
		||||
        item.checkResult = this.checkResult;
 | 
			
		||||
      });
 | 
			
		||||
      this.checkList.forEach(item => {
 | 
			
		||||
        item.checkResult = this.checkResult
 | 
			
		||||
      })
 | 
			
		||||
      let param = {
 | 
			
		||||
        purchaseCheckDetailsList:this.checkList,
 | 
			
		||||
        verifyPass:this.verifyPass
 | 
			
		||||
        purchaseCheckDetailsList: this.checkList,
 | 
			
		||||
        verifyPass: this.verifyPass
 | 
			
		||||
      }
 | 
			
		||||
      console.log(param);
 | 
			
		||||
      innerVerify(param).then((response) => {
 | 
			
		||||
      console.log(param)
 | 
			
		||||
      innerVerify(param).then(response => {
 | 
			
		||||
        if (response.code == 200) {
 | 
			
		||||
          this.$modal.msgSuccess("验收成功");
 | 
			
		||||
          this.confirmShow = false;
 | 
			
		||||
          this.getList();
 | 
			
		||||
          this.$refs.multipleTable.clearSelection();
 | 
			
		||||
          this.$modal.msgSuccess('验收成功')
 | 
			
		||||
          this.confirmShow = false
 | 
			
		||||
          this.getList()
 | 
			
		||||
          this.$refs.multipleTable.clearSelection()
 | 
			
		||||
          // 返回
 | 
			
		||||
          this.jumpList()
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
      //文件管理
 | 
			
		||||
      openFileDialog(row){
 | 
			
		||||
        this.rowData=row;
 | 
			
		||||
        this.fileDataList = [{dictLabel:"合格证",fileType:"0",name:"",url:"",fileList:[],fileListTemp:[]},
 | 
			
		||||
              {dictLabel:"型式试验报告",fileType:"1",name:"",url:"",fileList:[],fileListTemp:[]},
 | 
			
		||||
              {dictLabel:"出厂检测报告",fileType:"2",name:"",url:"",fileList:[],fileListTemp:[]},
 | 
			
		||||
              {dictLabel:"第三方检测报告",fileType:"3",name:"",url:"",fileList:[],fileListTemp:[]},
 | 
			
		||||
              {dictLabel:"其他",fileType:"4",name:"",url:"",fileList:[],fileListTemp:[]}]
 | 
			
		||||
        this.getFileData()
 | 
			
		||||
        this.open=true
 | 
			
		||||
      },
 | 
			
		||||
      getFileData(){
 | 
			
		||||
        let param = {
 | 
			
		||||
          modelId:this.rowData.partId,
 | 
			
		||||
          taskType:13,
 | 
			
		||||
          taskId:this.rowData.taskId
 | 
			
		||||
        }
 | 
			
		||||
        getPartTypeFileList(param).then((response) => {
 | 
			
		||||
          if(response.data.length>0){
 | 
			
		||||
              response.data.forEach(item=>{
 | 
			
		||||
                  let index = this.fileDataList.findIndex(v => v.fileType == item.fileType)
 | 
			
		||||
                  item.fileDetailList.forEach(item2=>{
 | 
			
		||||
                      this.fileDataList[index].fileList.push({
 | 
			
		||||
                          name:item2.name,
 | 
			
		||||
                          url:item2.url
 | 
			
		||||
                      })
 | 
			
		||||
                      this.fileDataList[index].fileListTemp.push({
 | 
			
		||||
                          name:item2.name,
 | 
			
		||||
                          url:item2.url
 | 
			
		||||
                      })
 | 
			
		||||
                  })
 | 
			
		||||
    //文件管理
 | 
			
		||||
    openFileDialog(row) {
 | 
			
		||||
      this.rowData = row
 | 
			
		||||
      this.fileDataList = [
 | 
			
		||||
        { dictLabel: '合格证', fileType: '0', name: '', url: '', fileList: [], fileListTemp: [] },
 | 
			
		||||
        { dictLabel: '型式试验报告', fileType: '1', name: '', url: '', fileList: [], fileListTemp: [] },
 | 
			
		||||
        { dictLabel: '出厂检测报告', fileType: '2', name: '', url: '', fileList: [], fileListTemp: [] },
 | 
			
		||||
        { dictLabel: '第三方检测报告', fileType: '3', name: '', url: '', fileList: [], fileListTemp: [] },
 | 
			
		||||
        { dictLabel: '其他', fileType: '4', name: '', url: '', fileList: [], fileListTemp: [] }
 | 
			
		||||
      ]
 | 
			
		||||
      this.getFileData()
 | 
			
		||||
      this.open = true
 | 
			
		||||
    },
 | 
			
		||||
    getFileData() {
 | 
			
		||||
      let param = {
 | 
			
		||||
        modelId: this.rowData.partId,
 | 
			
		||||
        taskType: 13,
 | 
			
		||||
        taskId: this.rowData.taskId
 | 
			
		||||
      }
 | 
			
		||||
      getPartTypeFileList(param)
 | 
			
		||||
        .then(response => {
 | 
			
		||||
          if (response.data.length > 0) {
 | 
			
		||||
            response.data.forEach(item => {
 | 
			
		||||
              let index = this.fileDataList.findIndex(v => v.fileType == item.fileType)
 | 
			
		||||
              item.fileDetailList.forEach(item2 => {
 | 
			
		||||
                this.fileDataList[index].fileList.push({
 | 
			
		||||
                  name: item2.name,
 | 
			
		||||
                  url: item2.url
 | 
			
		||||
                })
 | 
			
		||||
                this.fileDataList[index].fileListTemp.push({
 | 
			
		||||
                  name: item2.name,
 | 
			
		||||
                  url: item2.url
 | 
			
		||||
                })
 | 
			
		||||
              })
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
          }).catch(() => {
 | 
			
		||||
          })
 | 
			
		||||
      },
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {})
 | 
			
		||||
    },
 | 
			
		||||
    //上传
 | 
			
		||||
    beforeFileUpload(row) {
 | 
			
		||||
      this.rowData.fileType = row.fileType;
 | 
			
		||||
      this.rowData.fileType = row.fileType
 | 
			
		||||
      // this.rowData.dictLabel=row.dictLabel;
 | 
			
		||||
    },
 | 
			
		||||
    // 文件上传成功处理
 | 
			
		||||
| 
						 | 
				
			
			@ -648,63 +603,66 @@ export default {
 | 
			
		|||
      if (response.code == 200) {
 | 
			
		||||
        let param = {
 | 
			
		||||
          taskId: this.taskId,
 | 
			
		||||
          taskType: "0",
 | 
			
		||||
          taskType: '0',
 | 
			
		||||
          name: response.data.name,
 | 
			
		||||
          url: response.data.url,
 | 
			
		||||
          modelId: this.rowData.typeId,
 | 
			
		||||
          fileType: this.rowData.fileType,
 | 
			
		||||
        };
 | 
			
		||||
        console.log(param);
 | 
			
		||||
          fileType: this.rowData.fileType
 | 
			
		||||
        }
 | 
			
		||||
        console.log(param)
 | 
			
		||||
        uploadPurchaseFile(param)
 | 
			
		||||
          .then((response) => {
 | 
			
		||||
            this.$modal.msgSuccess("上传成功");
 | 
			
		||||
            this.getFileData();
 | 
			
		||||
          .then(response => {
 | 
			
		||||
            this.$modal.msgSuccess('上传成功')
 | 
			
		||||
            this.getFileData()
 | 
			
		||||
          })
 | 
			
		||||
          .catch(() => {
 | 
			
		||||
            this.$modal.msgError("上传失败");
 | 
			
		||||
          });
 | 
			
		||||
            this.$modal.msgError('上传失败')
 | 
			
		||||
          })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    picturePreviewFile(row) {
 | 
			
		||||
          this.fileListInfo = row.fileListTemp
 | 
			
		||||
      this.fileListInfo = row.fileListTemp
 | 
			
		||||
 | 
			
		||||
          this.dialogVisibleFile = true
 | 
			
		||||
      },
 | 
			
		||||
      this.dialogVisibleFile = true
 | 
			
		||||
    },
 | 
			
		||||
    //图片查看
 | 
			
		||||
    picturePreview(file) {
 | 
			
		||||
      this.dialogImageUrl = file.url;
 | 
			
		||||
      const parts = file.name.split(".");
 | 
			
		||||
      const extension = parts.pop();
 | 
			
		||||
      if (extension === 'doc' || extension === 'DOC' || extension === 'docx' || extension === 'DOCX' || extension === 'pdf' || extension === 'PDF') {
 | 
			
		||||
        const windowName = file.name;
 | 
			
		||||
        window.open(file.url, windowName);
 | 
			
		||||
      this.dialogImageUrl = file.url
 | 
			
		||||
      const parts = file.name.split('.')
 | 
			
		||||
      const extension = parts.pop()
 | 
			
		||||
      if (
 | 
			
		||||
        extension === 'doc' ||
 | 
			
		||||
        extension === 'DOC' ||
 | 
			
		||||
        extension === 'docx' ||
 | 
			
		||||
        extension === 'DOCX' ||
 | 
			
		||||
        extension === 'pdf' ||
 | 
			
		||||
        extension === 'PDF'
 | 
			
		||||
      ) {
 | 
			
		||||
        const windowName = file.name
 | 
			
		||||
        window.open(file.url, windowName)
 | 
			
		||||
      } else {
 | 
			
		||||
        this.dialogVisible = true;
 | 
			
		||||
        this.dialogVisible = true
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 导出按钮操作 */
 | 
			
		||||
    handleExport() {
 | 
			
		||||
      const formatTime = (date) => {
 | 
			
		||||
        const year = date.getFullYear();
 | 
			
		||||
        const month = String(date.getMonth() + 1).padStart(2, '0');
 | 
			
		||||
        const day = String(date.getDate()).padStart(2, '0');
 | 
			
		||||
        const hours = String(date.getHours()).padStart(2, '0');
 | 
			
		||||
        const minutes = String(date.getMinutes()).padStart(2, '0');
 | 
			
		||||
        const seconds = String(date.getSeconds()).padStart(2, '0');
 | 
			
		||||
        return `${year}${month}${day}_${hours}${minutes}${seconds}`;
 | 
			
		||||
      };
 | 
			
		||||
      const formatTime = date => {
 | 
			
		||||
        const year = date.getFullYear()
 | 
			
		||||
        const month = String(date.getMonth() + 1).padStart(2, '0')
 | 
			
		||||
        const day = String(date.getDate()).padStart(2, '0')
 | 
			
		||||
        const hours = String(date.getHours()).padStart(2, '0')
 | 
			
		||||
        const minutes = String(date.getMinutes()).padStart(2, '0')
 | 
			
		||||
        const seconds = String(date.getSeconds()).padStart(2, '0')
 | 
			
		||||
        return `${year}${month}${day}_${hours}${minutes}${seconds}`
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      const currentTime = formatTime(new Date());
 | 
			
		||||
      this.download(
 | 
			
		||||
        "/material/part_arrived/exportDetails",
 | 
			
		||||
        { taskId: this.taskId },
 | 
			
		||||
        `新购到货详情_${currentTime}.xlsx`
 | 
			
		||||
      );
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
      const currentTime = formatTime(new Date())
 | 
			
		||||
      this.download('/material/part_arrived/exportDetails', { taskId: this.taskId }, `新购到货详情_${currentTime}.xlsx`)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
  <style lang="scss" scoped>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.uploadImg {
 | 
			
		||||
  padding-top: 20px;
 | 
			
		||||
  display: flex;
 | 
			
		||||
| 
						 | 
				
			
			@ -757,7 +715,6 @@ export default {
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.btn-container {
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  display: flex;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -395,7 +395,7 @@
 | 
			
		|||
 | 
			
		||||
      <div slot="footer" class="dialog-footer" style="text-align: center">
 | 
			
		||||
        <el-button type="primary" @click="addUserOpen">人员添加</el-button>
 | 
			
		||||
        <el-button type="primary" @click="configNotice">发起验收</el-button>
 | 
			
		||||
        <el-button type="primary" @click="configNotice" v-loading="btnLoading">发起验收</el-button>
 | 
			
		||||
      </div>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -454,6 +454,7 @@ export default {
 | 
			
		|||
      // 遮罩层
 | 
			
		||||
      loading: true,
 | 
			
		||||
      loadingTwo: true,
 | 
			
		||||
      btnLoading: false,
 | 
			
		||||
      updateTime: "",
 | 
			
		||||
      // 选中数组
 | 
			
		||||
      ids: [],
 | 
			
		||||
| 
						 | 
				
			
			@ -774,6 +775,8 @@ export default {
 | 
			
		|||
            isPartFlag: 0,
 | 
			
		||||
          };
 | 
			
		||||
          if (this.configUserList.length > 0) {
 | 
			
		||||
            if (this.btnLoading) return
 | 
			
		||||
            this.btnLoading = true
 | 
			
		||||
            bmNoticeInfo(param).then((response) => {
 | 
			
		||||
              console.log(response);
 | 
			
		||||
              if (response.code == 200) {
 | 
			
		||||
| 
						 | 
				
			
			@ -781,9 +784,12 @@ export default {
 | 
			
		|||
                  message: "操作成功",
 | 
			
		||||
                  type: "success",
 | 
			
		||||
                });
 | 
			
		||||
                this.btnLoading = false
 | 
			
		||||
                this.showPeople = false;
 | 
			
		||||
                this.getList();
 | 
			
		||||
              }
 | 
			
		||||
            }).catch(() => {
 | 
			
		||||
              this.btnLoading = false
 | 
			
		||||
            });
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,13 @@
 | 
			
		|||
          label-width="90px"
 | 
			
		||||
        >
 | 
			
		||||
          <el-form-item label="类型规格:" prop="typeId">
 | 
			
		||||
            <el-select v-model="queryParams.typeId" placeholder="请选择类型规格" clearable filterable style="width: 240px">
 | 
			
		||||
            <el-select
 | 
			
		||||
              v-model="queryParams.typeId"
 | 
			
		||||
              placeholder="请选择类型规格"
 | 
			
		||||
              clearable
 | 
			
		||||
              filterable
 | 
			
		||||
              style="width: 240px"
 | 
			
		||||
            >
 | 
			
		||||
              <el-option v-for="dict in materialModelList" :key="dict.value" :label="dict.label" :value="dict.value" />
 | 
			
		||||
            </el-select>
 | 
			
		||||
          </el-form-item>
 | 
			
		||||
| 
						 | 
				
			
			@ -364,25 +370,42 @@ export default {
 | 
			
		|||
        console.log('🚀 ~ getSignList ~ res:', res)
 | 
			
		||||
        // 合并auditingList
 | 
			
		||||
        if (res.code === 200 && res.data && res.data.length > 0) {
 | 
			
		||||
          const kuGuanOrder = ['库管一班', '库管二班', '库管三班']
 | 
			
		||||
          // 用 deptName 去重
 | 
			
		||||
          const map = new Map()
 | 
			
		||||
          res.data.forEach(item => map.set(item.deptName, { ...item }))
 | 
			
		||||
          // 查找有数据的库管班
 | 
			
		||||
          const kuGuanItem = kuGuanOrder.map(name => map.get(name)).find(Boolean)
 | 
			
		||||
          // 组装最终列表
 | 
			
		||||
          this.auditingList = [
 | 
			
		||||
            // 第一层:供应科,userName 没有值时默认 '姚士超'
 | 
			
		||||
            (() => {
 | 
			
		||||
              const item = map.get('供应科') || { deptName: '供应科', auditStatus: 1 }
 | 
			
		||||
              return { ...item, userName: '姚士超' }
 | 
			
		||||
            })(),
 | 
			
		||||
            // 第二层:技术科
 | 
			
		||||
            map.get('技术科') || { deptName: '技术科', auditStatus: 0 },
 | 
			
		||||
            // 第三层:库管班
 | 
			
		||||
            kuGuanItem || { deptName: '库管班', auditStatus: 0 }
 | 
			
		||||
          const length = res.data.length
 | 
			
		||||
          this.auditingList = res.data.map((item, index) => {
 | 
			
		||||
            return {
 | 
			
		||||
              ...item,
 | 
			
		||||
              deptName: index == 0 ? '供应科' : item.deptName || '',
 | 
			
		||||
              auditStatus: 1
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          const list = [
 | 
			
		||||
            { deptName: '安全/技术科', auditStatus: 0 },
 | 
			
		||||
            { deptName: '库管班', auditStatus: 0 }
 | 
			
		||||
          ]
 | 
			
		||||
          console.log('🚀 ~ getSignList ~ this.auditingList:', this.auditingList)
 | 
			
		||||
          if (length == 1) {
 | 
			
		||||
            this.auditingList.push(...list)
 | 
			
		||||
          } else if (length == 2) {
 | 
			
		||||
            this.auditingList.push(list[1])
 | 
			
		||||
          }
 | 
			
		||||
          console.log('🚀 ~ getSignList ~ this.审核:', this.auditingList)
 | 
			
		||||
          // const kuGuanOrder = ['库管一班', '库管二班', '库管三班']
 | 
			
		||||
          // // 用 deptName 去重
 | 
			
		||||
          // const map = new Map()
 | 
			
		||||
          // res.data.forEach(item => map.set(item.deptName, { ...item }))
 | 
			
		||||
          // // 查找有数据的库管班
 | 
			
		||||
          // const kuGuanItem = kuGuanOrder.map(name => map.get(name)).find(Boolean)
 | 
			
		||||
          // 组装最终列表
 | 
			
		||||
          // this.auditingList = [
 | 
			
		||||
          //   // 第一层:供应科,userName 没有值时默认 '姚士超'
 | 
			
		||||
          //   (() => {
 | 
			
		||||
          //     const item = map.get('供应科') || { deptName: '供应科', auditStatus: 1 }
 | 
			
		||||
          //     return { ...item, userName: '姚士超' }
 | 
			
		||||
          //   })(),
 | 
			
		||||
          //   // 第二层:技术科
 | 
			
		||||
          //   map.get('技术科') || { deptName: '技术科', auditStatus: 0 },
 | 
			
		||||
          //   // 第三层:库管班
 | 
			
		||||
          //   kuGuanItem || { deptName: '库管班', auditStatus: 0 }
 | 
			
		||||
          // ]
 | 
			
		||||
        }
 | 
			
		||||
      } catch (error) {
 | 
			
		||||
        console.log('🚀 ~ getSignList ~ error:', error)
 | 
			
		||||
| 
						 | 
				
			
			@ -717,7 +740,6 @@ export default {
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.btn-container {
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  display: flex;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,7 +104,7 @@
 | 
			
		|||
                            collapse-tags
 | 
			
		||||
                            :filter-method="handleSearchImpl"
 | 
			
		||||
                            :popper-class="'type-select-dropdown'"
 | 
			
		||||
                            :popper-append-to-body="true"
 | 
			
		||||
                            :popper-append-to-body="false"
 | 
			
		||||
                            @visible-change="handleVisibleChange"
 | 
			
		||||
                        >
 | 
			
		||||
                            <el-option
 | 
			
		||||
| 
						 | 
				
			
			@ -141,20 +141,6 @@
 | 
			
		|||
                        </el-input>
 | 
			
		||||
                    </el-col>
 | 
			
		||||
                </el-row>
 | 
			
		||||
                <!-- <el-cascader
 | 
			
		||||
                    :key="propsKey"
 | 
			
		||||
                    v-model="deviceType"
 | 
			
		||||
                    :show-all-levels="false"
 | 
			
		||||
                    :options="equipmentTypeList"
 | 
			
		||||
                    :props="deviceTypeTreeProps"
 | 
			
		||||
                    filterable
 | 
			
		||||
                    collapse-tags
 | 
			
		||||
                    style="width: 240px"
 | 
			
		||||
                    placeholder="请选择规格型号"
 | 
			
		||||
                    ref="deviceTypeCascader"
 | 
			
		||||
                    popper-class="popper-select"
 | 
			
		||||
                    @change="deviceTypeChange"
 | 
			
		||||
                ></el-cascader> -->
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
 | 
			
		||||
            <el-form-item label="备注" prop="remark">
 | 
			
		||||
| 
						 | 
				
			
			@ -612,6 +598,7 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    watch: {},
 | 
			
		||||
    mounted() {
 | 
			
		||||
        this.equipmentType()
 | 
			
		||||
        if (this.isEdit) {
 | 
			
		||||
            console.log('isEdit',this.isEdit)
 | 
			
		||||
            this.taskId = this.editTaskId
 | 
			
		||||
| 
						 | 
				
			
			@ -621,7 +608,7 @@ export default {
 | 
			
		|||
            this.maForm.arrivalTime = this.formatDate(new Date());
 | 
			
		||||
        }
 | 
			
		||||
        this.supplierInfoList()
 | 
			
		||||
        this.equipmentType()
 | 
			
		||||
        
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
        handleDateTypeChange(val) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1367,9 +1354,8 @@ export default {
 | 
			
		|||
            if (this.currentMatchIndex === -1 || !this.matchedOptions.length) return
 | 
			
		||||
 | 
			
		||||
            const option = this.matchedOptions[this.currentMatchIndex]
 | 
			
		||||
            const selectDom = this.$el.querySelector('.el-select-dropdown__wrap')
 | 
			
		||||
            const selectDom = this.$el.querySelector('.type-select-dropdown')
 | 
			
		||||
            const optionDom = selectDom?.querySelector(`[data-key="${option.typeId}"]`)
 | 
			
		||||
 | 
			
		||||
            if (optionDom) {
 | 
			
		||||
                optionDom.scrollIntoView({ block: 'center', behavior: 'smooth' })
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -1414,7 +1400,7 @@ export default {
 | 
			
		|||
//     overflow-y: auto;
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
.highlight-text {
 | 
			
		||||
::v-deep .highlight-text {
 | 
			
		||||
    background-color: #ffd04b;
 | 
			
		||||
    color: #000;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -354,7 +354,7 @@
 | 
			
		|||
 | 
			
		||||
      <div slot="footer" class="dialog-footer" style="text-align: center">
 | 
			
		||||
        <el-button type="primary" @click="addUserOpen">人员添加</el-button>
 | 
			
		||||
        <el-button type="primary" @click="configNotice">发起验收</el-button>
 | 
			
		||||
        <el-button type="primary" @click="configNotice" v-loading="btnLoading">发起验收</el-button>
 | 
			
		||||
      </div>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -412,6 +412,7 @@ export default {
 | 
			
		|||
      // 遮罩层
 | 
			
		||||
      loading: true,
 | 
			
		||||
      loadingTwo: true,
 | 
			
		||||
      btnLoading: false,
 | 
			
		||||
      updateTime: "",
 | 
			
		||||
      // 选中数组
 | 
			
		||||
      ids: [],
 | 
			
		||||
| 
						 | 
				
			
			@ -643,6 +644,8 @@ export default {
 | 
			
		|||
            content: this.form.remark,
 | 
			
		||||
          };
 | 
			
		||||
          if (this.configUserList.length > 0) {
 | 
			
		||||
            if (this.btnLoading) return
 | 
			
		||||
            this.btnLoading = true
 | 
			
		||||
            bmNoticeInfo(param).then((response) => {
 | 
			
		||||
              console.log(response);
 | 
			
		||||
              if (response.code == 200) {
 | 
			
		||||
| 
						 | 
				
			
			@ -650,9 +653,12 @@ export default {
 | 
			
		|||
                  message: "操作成功",
 | 
			
		||||
                  type: "success",
 | 
			
		||||
                });
 | 
			
		||||
                this.btnLoading = false
 | 
			
		||||
                this.showPeople = false;
 | 
			
		||||
                this.getList();
 | 
			
		||||
              }
 | 
			
		||||
            }).catch(() => {
 | 
			
		||||
              this.btnLoading = false
 | 
			
		||||
            });
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue