| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <span class="search_title">ä¸´ææ¥æï¼</span> |
| | | <el-date-picker |
| | | v-model="searchForm.expiryDate" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | type="date" |
| | | placeholder="è¯·éæ©" |
| | | clearable |
| | | @change="handleQuery" |
| | | /> |
| | | <span class="search_title ml10">å¤çæ¥æï¼</span> |
| | | <el-date-picker |
| | | v-model="searchForm.handleDate" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | type="date" |
| | | placeholder="è¯·éæ©" |
| | | clearable |
| | | @change="handleQuery" |
| | | /> |
| | | <span style = "margin-left: 10px;" class="search_title">å¤çç¶æï¼</span> |
| | | <el-select v-model="searchForm.status" placeholder="è¯·éæ©ç¶æ" @change="handleQuery" style="width: 140px" clearable> |
| | | <el-option label="å¾
å¤ç" :value="1"></el-option> |
| | | <el-option label="å·²å¤ç" :value="2"></el-option> |
| | | </el-select> |
| | | <el-button type="primary" @click="handleQuery" style="margin-left: 10px" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button @click="resetQuery" style="margin-left: 10px" |
| | | >éç½®</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="table_actions" style="margin-bottom: 10px;"> |
| | | <el-button type="primary" @click="openForm('add')">æ°å¢</el-button> |
| | | <el-button type="danger" @click="handleDelete">å é¤</el-button> |
| | | </div> |
| | | <div class="table_list"> |
| | | <PIMTable |
| | | rowKey="id" |
| | | :column="tableColumn" |
| | | :tableData="tableData" |
| | | :page="page" |
| | | :isSelection="true" |
| | | @selection-change="handleSelectionChange" |
| | | :tableLoading="tableLoading" |
| | | @pagination="pagination" |
| | | > |
| | | <!-- è¡¨æ ¼ææ§½ --> |
| | | <template #status="{ row }"> |
| | | <el-tag :type="row.status === 1 ? 'warning' : 'success'"> |
| | | {{ row.status === 1 ? 'å¾
å¤ç' : 'å·²å¤ç' }} |
| | | </el-tag> |
| | | </template> |
| | | |
| | | <template #operation="{ row }"> |
| | | <el-button type="primary" link @click="openForm('view', row)">æ¥ç</el-button> |
| | | <el-button type="primary" link @click="openForm('edit', row)" v-if="row.status === 1">ç¼è¾</el-button> |
| | | </template> |
| | | </PIMTable> |
| | | </div> |
| | | <form-dia ref="formDia" @close="handleQuery"></form-dia> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {onMounted, ref} from "vue"; |
| | | import FormDia from "@/views/customerService/expiryAfterSales/components/formDia.vue"; |
| | | import {ElMessageBox} from "element-plus"; |
| | | // import {expiryAfterSalesDelete, expiryAfterSalesListPage} from "@/api/customerService/index.js"; // ææ¶æ³¨éæï¼ä½¿ç¨åæ°æ® |
| | | import useUserStore from "@/store/modules/user.js"; |
| | | const { proxy } = getCurrentInstance(); |
| | | const userStore = useUserStore() |
| | | |
| | | const data = reactive({ |
| | | searchForm: { |
| | | expiryDate: "", |
| | | handleDate: "", |
| | | status: "" |
| | | }, |
| | | tableData: [], |
| | | page: { |
| | | current: 1, |
| | | size: 10, |
| | | total: 0, |
| | | }, |
| | | selectedRows: [], |
| | | tableLoading: false, |
| | | formDia: null, |
| | | tableColumn: [ |
| | | { |
| | | label: "临æäº§ååç§°", |
| | | prop: "productName", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "äº§åæ¹å·", |
| | | prop: "batchNumber", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "ä¸´ææ¥æ", |
| | | prop: "expiryDate", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "åºåæ°é", |
| | | prop: "stockQuantity", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "客æ·åç§°", |
| | | prop: "customerName", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "é®é¢æè¿°", |
| | | prop: "problemDesc", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "å¤çç¶æ", |
| | | prop: "status", |
| | | width: "", |
| | | slot: true, |
| | | }, |
| | | { |
| | | label: "å¤ç人", |
| | | prop: "handlerName", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "å¤çæ¥æ", |
| | | prop: "handleDate", |
| | | width: "", |
| | | }, |
| | | { |
| | | label: "æä½", |
| | | prop: "operation", |
| | | slot: true, |
| | | width: "200", |
| | | }, |
| | | ], |
| | | }); |
| | | |
| | | const { |
| | | searchForm, |
| | | tableData, |
| | | page, |
| | | selectedRows, |
| | | tableLoading, |
| | | formDia, |
| | | tableColumn, |
| | | } = toRefs(data); |
| | | |
| | | // æ¥è¯¢ |
| | | const handleQuery = () => { |
| | | page.value.current = 1; |
| | | getList(); |
| | | }; |
| | | |
| | | // éæ© |
| | | const handleSelectionChange = (selection) => { |
| | | selectedRows.value = selection; |
| | | }; |
| | | |
| | | // éç½® |
| | | const resetQuery = () => { |
| | | proxy.resetForm("queryRef"); |
| | | searchForm.value = { |
| | | expiryDate: "", |
| | | handleDate: "", |
| | | status: "" |
| | | }; |
| | | handleQuery(); |
| | | }; |
| | | |
| | | // å页 |
| | | const pagination = (obj) => { |
| | | page.value.current = obj.page; |
| | | page.value.size = obj.limit; |
| | | getList(); |
| | | }; |
| | | |
| | | // è·ååè¡¨æ°æ® |
| | | const getList = () => { |
| | | tableLoading.value = true; |
| | | // åæ¶æ³¨é并使ç¨çå®API |
| | | // expiryAfterSalesListPage({ |
| | | // ...searchForm.value, |
| | | // current: page.value.current, |
| | | // size: page.value.size |
| | | // }).then(res => { |
| | | // tableData.value = res.data.records; |
| | | // page.value.total = res.data.total; |
| | | // tableLoading.value = false; |
| | | // }); |
| | | |
| | | // ææ¶è¿åç©ºæ°æ® |
| | | tableData.value = []; |
| | | page.value.total = 0; |
| | | tableLoading.value = false; |
| | | }; |
| | | |
| | | // æå¼å¼¹æ¡ |
| | | const openForm = (type, row) => { |
| | | nextTick(() => { |
| | | formDia.value?.openDialog(type, row) |
| | | }) |
| | | }; |
| | | |
| | | // å é¤ |
| | | const handleDelete = () => { |
| | | let ids = []; |
| | | if (selectedRows.value.length > 0) { |
| | | ids = selectedRows.value.map((item) => item.id); |
| | | } else { |
| | | proxy.$modal.msgWarning("è¯·éæ©æ°æ®"); |
| | | return; |
| | | } |
| | | ElMessageBox.confirm("éä¸çå
容å°è¢«å é¤ï¼æ¯å¦ç¡®è®¤å é¤ï¼", "å é¤æç¤º", { |
| | | confirmButtonText: "确认", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | tableLoading.value = true; |
| | | // åæ¶æ³¨é并使ç¨çå®API |
| | | // expiryAfterSalesDelete(ids).then(() => { |
| | | // proxy.$modal.msgSuccess("å 餿å"); |
| | | // getList(); |
| | | // }).finally(() => { |
| | | // tableLoading.value = false; |
| | | // }); |
| | | |
| | | // ææ¶æ¨¡æå 餿å |
| | | tableLoading.value = false; |
| | | proxy.$modal.msgSuccess("å 餿å"); |
| | | getList(); |
| | | }) |
| | | .catch(() => { |
| | | proxy.$modal.msg("已忶"); |
| | | }); |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | getList(); |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |