123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- <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>
|