| | |
| | | </view> |
| | | |
| | | <!-- 操作按钮区 - 检验项目获取 --> |
| | | <view v-if="isUpdate && !isShowTable" class="action-buttons"> |
| | | <button class="primary-btn" @click="getItem">创建检验单</button> |
| | | </view> |
| | | |
| | | <view v-if="isShowTable" class="action-buttons"> |
| | | <button class="secondary-btn" @click="getTable">获取项目</button> |
| | | <button v-if="isUpdate" class="primary-btn" @click="saveTable">生成项目</button> |
| | | <view v-if="isUpdate" class="action-buttons"> |
| | | <button class="secondary-btn" @click="getTable">获取检验项目</button> |
| | | </view> |
| | | |
| | | <!-- 检验项目表格 --> |
| | |
| | | <view class="description-text">{{ item.itemMod }}</view> |
| | | </td> |
| | | <td> |
| | | <button :class="{ |
| | | 'record-btn-fill': item.isCheck >= item.levelNum, |
| | | 'record-btn-view': item.isCheck < item.levelNum |
| | | }" class="record-btn" @click="toDetail(item)"> |
| | | {{ item.isCheck >= item.levelNum ? '查看' : '填写' }} |
| | | <button v-if="item.isCheck < item.levelNum" class="record-btn record-btn-fill" |
| | | @click="toDetail(item)"> |
| | | 填写 ({{ item.isCheck }}/{{ item.levelNum }}) |
| | | </button> |
| | | <button v-else class="record-btn record-btn-view" @click="toDetail(item)"> |
| | | 查看 ({{ item.isCheck }}/{{ item.levelNum }}) |
| | | </button> |
| | | </td> |
| | | </tr> |
| | |
| | | </table> |
| | | </view> |
| | | |
| | | <!-- 操作按钮区 - 底部操作 --> |
| | | <view v-if="!isUpdate && !isShowTable" class="action-buttons"> |
| | | <button class="secondary-btn" @click="toImage">图片管理</button> |
| | | <button class="secondary-btn" @click="saveRemarks">添加描述</button> |
| | | <button v-if="!formData.fcheckResu" class="primary-btn" |
| | | style="background: linear-gradient(135deg, #e74c3c, #c0392b);" @click="removeXJ">删除单据 |
| | | <!-- 操作按钮区 --> |
| | | <view class="action-buttons"> |
| | | <button v-if="isUpdate && !isShowTable" class="secondary-btn" @click="getItem">创建检验单并生成部分默认值</button> |
| | | <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="toImage">上传/查看图片</button> |
| | | <button v-if="!isUpdate && !formData.fsubmit && !isShowTable" class="secondary-btn" @click="removeXJ"> |
| | | 删除单据 |
| | | </button> |
| | | <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="saveRemarks">添加备注</button> |
| | | <button v-if="!isUpdate && !isShowTable && formData.fsubmit !== 1 && getPendingCount() === 0 && tableData.length > 0" class="primary-btn" @click="submit">审核单据</button> |
| | | <button v-if="isShowTable" class="secondary-btn" @click="getTable">获取检验项目</button> |
| | | <button v-if="isShowTable && isUpdate" class="primary-btn" @click="saveTable">生成检验项目</button> |
| | | </view> |
| | | |
| | | <!-- 不合格描述弹窗 --> |
| | | <view v-if="remarksPopup" class="overlay"> |
| | | <view class="popup"> |
| | | <h3>修改不合格描述</h3> |
| | | <view class="form-group"> |
| | | <label class="form-label">不合格描述:</label> |
| | | <input v-model="remarks" class="form-input" placeholder="请输入不合格描述" type="text"/> |
| | | </view> |
| | | <view class="popup-buttons"> |
| | | <h3>修改备注</h3> |
| | | <form> |
| | | <view class="form-group"> |
| | | <label class="form-label">备注:</label> |
| | | <textarea v-model="remarks" class="form-input form-textarea" placeholder="请输入备注信息..."></textarea> |
| | | </view> |
| | | <button class="updateBut" @click="editRemarks">修改</button> |
| | | <button class="secondary-btn" @click="remarksPopup = !remarksPopup">取消</button> |
| | | </view> |
| | | <button @click="remarksPopup = !remarksPopup">取消</button> |
| | | </form> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | catQty: "", |
| | | detailMem: "", |
| | | taskNo: "", |
| | | fcheckResu: "", |
| | | fcheckResu: 0, |
| | | boardModel: "", |
| | | planQty: "", |
| | | mocode: "", |
| | | boardStyle: "" |
| | | boardStyle: "", |
| | | fSubmit: 0 |
| | | }, |
| | | |
| | | DAA020List: [], |
| | |
| | | }, |
| | | // 获取待检验项目数量 |
| | | getPendingCount() { |
| | | return this.tableData.filter(item => !item.result || item.result === '').length; |
| | | return this.tableData.filter(item => item.result === '未完成').length; |
| | | }, |
| | | submit() { |
| | | // 双重保险:检查是否还有未完成的检验项目 |
| | | const pendingCount = this.getPendingCount(); |
| | | if (pendingCount > 0) { |
| | | this.$showMessage(`还有 ${pendingCount} 个检验项目未完成,请完成所有检验项目后再提交审核`); |
| | | return; |
| | | } |
| | | |
| | | // 检查是否有检验项目 |
| | | if (this.tableData.length === 0) { |
| | | this.$showMessage("没有检验项目,无法提交审核"); |
| | | return; |
| | | } |
| | | |
| | | this.$post({ |
| | | url: "/XJ/XJQaSubmit", |
| | | data: { |
| | | userNo: this.$loginInfo.account, |
| | | gid: this.formData.id |
| | | } |
| | | }).then(res => { |
| | | console.log("完整响应数据:", res); |
| | | console.log("Status Code的值:", res.statusCode); |
| | | console.log("返回的数据:", res.data); |
| | | |
| | | // 检查多种成功条件 |
| | | if (res.statusCode === 200 || res.status === 0 || res.data === true || res.data.tbBillList === true) { |
| | | this.$showMessage("成功提交检验"); |
| | | // 提交成功后跳转到列表页面 |
| | | setTimeout(() => { |
| | | uni.navigateTo({ |
| | | url: '/pages/QC/XJ/List' |
| | | }); |
| | | }, 1500); // 1.5秒后跳转,让用户看到成功提示 |
| | | } else { |
| | | this.$showMessage(res.data.message || res.message || "提交失败"); |
| | | } |
| | | }).catch(err => { |
| | | console.log("提交出错:", err); |
| | | this.$showMessage("提交失败,请重试"); |
| | | }) |
| | | }, |
| | | |
| | | removeXJ() { |
| | | if (this.formData.id) { |
| | | this.$post({ |
| | |
| | | padding: 20px; |
| | | border: 1px solid #ccc; |
| | | box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); |
| | | width: 68vw; |
| | | height: 25vh; |
| | | width: 85vw; |
| | | min-height: 35vh; |
| | | max-height: 60vh; |
| | | border-radius: 8px; |
| | | } |
| | | |
| | |
| | | border-radius: 4px; |
| | | font-size: 14px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .popup .form-textarea { |
| | | min-height: 120px; |
| | | resize: vertical; |
| | | font-family: inherit; |
| | | line-height: 1.5; |
| | | } |
| | | |
| | | .popup-buttons { |
| | |
| | | display: block; |
| | | overflow-x: auto; |
| | | } |
| | | |
| | | /* 移动端弹出框优化 */ |
| | | .popup { |
| | | width: 95vw; |
| | | min-height: 40vh; |
| | | max-height: 70vh; |
| | | padding: 15px; |
| | | } |
| | | |
| | | .popup .form-textarea { |
| | | min-height: 100px; |
| | | } |
| | | } |
| | | </style> |