|
@@ -0,0 +1,269 @@
|
|
|
+<template>
|
|
|
+ <div class="page-container column-container">
|
|
|
+ <!-- 搜索区 -->
|
|
|
+ <el-form
|
|
|
+ class="list-search-container"
|
|
|
+ :model="queryParams"
|
|
|
+ ref="queryRef"
|
|
|
+ :inline="true"
|
|
|
+ >
|
|
|
+ <el-form-item class="section-title" label="零存库管理" />
|
|
|
+ <el-form-item class="section-title" label="工段:">
|
|
|
+ <el-select-v2 v-model="queryParams.deptId" :options="deptList" placeholder="请选择工段" style="width: 110px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="批次号:">
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入批次号"
|
|
|
+ v-model.trim="queryParams.lotCode"
|
|
|
+ style="width: 120px"
|
|
|
+ clearable
|
|
|
+ @keyup.enter="handleQuery"
|
|
|
+ @keydown.enter.prevent
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品描述:">
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入产品描述"
|
|
|
+ v-model.trim="queryParams.productDescription"
|
|
|
+ style="width: 120px"
|
|
|
+ clearable
|
|
|
+ @keyup.enter="handleQuery"
|
|
|
+ @keydown.enter.prevent
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="图号:">
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入图号"
|
|
|
+ v-model.trim="queryParams.drawingNumber"
|
|
|
+ style="width: 120px"
|
|
|
+ clearable
|
|
|
+ @keyup.enter="handleQuery"
|
|
|
+ @keydown.enter.prevent
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="存录员:">
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入存录员"
|
|
|
+ v-model.trim="queryParams.storagerName"
|
|
|
+ style="width: 120px"
|
|
|
+ clearable
|
|
|
+ @keyup.enter="handleQuery"
|
|
|
+ @keydown.enter.prevent
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="零存时间:">
|
|
|
+ <el-date-picker v-model="queryParams.startStorageTime" type="date" value-format="YYYY-MM-DD"
|
|
|
+ :editable="false" clearable placeholder="请选择" style="width: 136px" />
|
|
|
+ <span>~</span>
|
|
|
+ <el-date-picker v-model="queryParams.endStorageTime" type="date" value-format="YYYY-MM-DD"
|
|
|
+ :editable="false" clearable placeholder="请选择" style="width: 136px"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="取出批次:">
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入取出批次"
|
|
|
+ v-model.trim="queryParams.retrievalLotCode"
|
|
|
+ style="width: 120px"
|
|
|
+ clearable
|
|
|
+ @keyup.enter="handleQuery"
|
|
|
+ @keydown.enter.prevent
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="零取时间:">
|
|
|
+ <el-date-picker v-model="queryParams.startRetrievalTime" type="date" value-format="YYYY-MM-DD"
|
|
|
+ :editable="false" clearable placeholder="请选择" style="width: 136px" />
|
|
|
+ <span>~</span>
|
|
|
+ <el-date-picker v-model="queryParams.endRetrievalTime" type="date" value-format="YYYY-MM-DD"
|
|
|
+ :editable="false" clearable placeholder="请选择" style="width: 136px"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态:">
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.status"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择状态"
|
|
|
+ style="width: 130px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="dict in is_retrieval"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="info" icon="Search" @click="handleQuery"
|
|
|
+ >搜索</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <!-- 列表区 -->
|
|
|
+ <div class="el-table-container">
|
|
|
+ <div class="el-table-inner-container">
|
|
|
+ <el-table
|
|
|
+ ref="dataTable"
|
|
|
+ v-loading="loading"
|
|
|
+ border
|
|
|
+ :data="dataList"
|
|
|
+ highlight-current-row
|
|
|
+ height="100%"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ type="index"
|
|
|
+ label="行号"
|
|
|
+ width="50"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="批次号"
|
|
|
+ width="120"
|
|
|
+ align="center"
|
|
|
+ prop="lotCode"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="产品描述"
|
|
|
+ align="center"
|
|
|
+ prop="productDescription"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="图号"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ prop="drawingNumber"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="版本号"
|
|
|
+ align="center"
|
|
|
+ width="70"
|
|
|
+ prop="technologyVersion"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="工段"
|
|
|
+ width="90"
|
|
|
+ align="center"
|
|
|
+ prop="deptName"
|
|
|
+ />
|
|
|
+ <el-table-column label="存录员" align="center" width="80" prop="storagerName" />
|
|
|
+ <el-table-column label="零存数量" align="center" width="150" prop="storageNum" >
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input-number v-if="scope.row.editStatus" controls-position="right" v-model="scope.row.storageNum" style="width: 150px"
|
|
|
+ :min="0" />
|
|
|
+ <span v-else>{{ scope.row.storageNum }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="零存时间" align="center" width="150" prop="createTime" />
|
|
|
+ <el-table-column
|
|
|
+ label="取出批次"
|
|
|
+ align="center"
|
|
|
+ width="120"
|
|
|
+ prop="retrievalLotCode"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="取出时间"
|
|
|
+ align="center"
|
|
|
+ width="150"
|
|
|
+ prop="retrievalTime"
|
|
|
+ />
|
|
|
+ <el-table-column label="状态" align="center" width="70" prop="status">
|
|
|
+ <template #default="scope">
|
|
|
+ <dict-tag :options="is_retrieval" :value="scope.row.status" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center" width="160">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-button link v-if="!scope.row.editStatus" type="warning" size="small" icon="Edit"
|
|
|
+ @click="scope.row.editStatus = true" v-hasPermi="['business:storageRetrieval:update']">编辑</el-button>
|
|
|
+ <el-button link v-else type="primary" size="small" icon="Finished" @click="handleSubmit(scope.row)">保存</el-button>
|
|
|
+ <el-button link v-if="scope.row.editStatus" type="info" size="small" icon="Close"
|
|
|
+ @click=" handleCancelEdit">取消编辑</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 分页 -->
|
|
|
+ <pagination
|
|
|
+ v-show="total > 0"
|
|
|
+ :total="total"
|
|
|
+ v-model:page="queryParams.pageNum"
|
|
|
+ v-model:limit="queryParams.pageSize"
|
|
|
+ @pagination="getList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script setup>
|
|
|
+import { listStorageRetrieval, updateStorageRetrieval } from "@/api/business/storageRetrieval";
|
|
|
+import { getDeptList } from "@/api/business/planDetailSubDetail.js";
|
|
|
+const { proxy } = getCurrentInstance();
|
|
|
+/** 字典数组区 */
|
|
|
+const { is_retrieval } = proxy.useDict("is_retrieval");
|
|
|
+/** 查询对象 */
|
|
|
+const queryParams = ref({
|
|
|
+ status:'0',
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+});
|
|
|
+/** 变量 */
|
|
|
+const dataList = ref([]);
|
|
|
+const loading = ref(false);
|
|
|
+const deptList = ref([]);
|
|
|
+const total = ref(0);
|
|
|
+const isDispatch = ref(false);
|
|
|
+
|
|
|
+/*********************** 方法区 ***********************/
|
|
|
+//当前登录人员的咨询部门权限
|
|
|
+function getList() {
|
|
|
+ getDeptList().then((response) => {
|
|
|
+ deptList.value = response.data.rows;
|
|
|
+ isDispatch.value = response.data.others.isDispatch;
|
|
|
+ loading.value = false;
|
|
|
+ if (isDispatch.value) {
|
|
|
+ deptList.value.unshift({ label: "全部", value: "0" });
|
|
|
+ }
|
|
|
+ let index = deptList.value.findIndex(item => {
|
|
|
+ return item.label == '外协'
|
|
|
+ })
|
|
|
+ if (index > -1) {
|
|
|
+ deptList.value.splice(index, 1)
|
|
|
+ }
|
|
|
+ queryParams.value.deptId = deptList.value[0].value;
|
|
|
+ getStorageRetrievalList();
|
|
|
+ });
|
|
|
+}
|
|
|
+/** 查询列表 */
|
|
|
+function getStorageRetrievalList() {
|
|
|
+ loading.value = true;
|
|
|
+ listStorageRetrieval(queryParams.value).then((res) => {
|
|
|
+ if(res.rows.length > 0) {
|
|
|
+ res.rows.forEach(element => {
|
|
|
+ element.editStatus = false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ dataList.value = res.rows;
|
|
|
+ console.log(dataList.value)
|
|
|
+ total.value = res.total;
|
|
|
+ loading.value = false;
|
|
|
+ });
|
|
|
+}
|
|
|
+/** 搜索按钮操作 */
|
|
|
+function handleQuery() {
|
|
|
+ queryParams.value.pageNum = 1;
|
|
|
+ getStorageRetrievalList();
|
|
|
+}
|
|
|
+//保存
|
|
|
+function handleSubmit(data) {
|
|
|
+ updateStorageRetrieval(data).then(res =>{
|
|
|
+ proxy.$modal.msgSuccess("保存成功");
|
|
|
+ getStorageRetrievalList()
|
|
|
+ })
|
|
|
+}
|
|
|
+//取消编辑
|
|
|
+function handleCancelEdit() {
|
|
|
+ getStorageRetrievalList()
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ getList();
|
|
|
+});
|
|
|
+</script>
|