From 1308d4d7a162d3cabd0fe4f639b6d7f5dd376584 Mon Sep 17 00:00:00 2001 From: wyg <wu1555611@163.com> Date: 星期二, 18 六月 2024 09:30:18 +0800 Subject: [PATCH] '基础数据仓库初次提交' --- src/views/basicData/warehouse/index.vue | 606 ++++++++++++++++++------------------------------------ 1 files changed, 204 insertions(+), 402 deletions(-) diff --git a/src/views/basicData/warehouse/index.vue b/src/views/basicData/warehouse/index.vue index f1a2275..9312fc2 100644 --- a/src/views/basicData/warehouse/index.vue +++ b/src/views/basicData/warehouse/index.vue @@ -1,425 +1,227 @@ <template> - <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="宸ュ巶" prop="werks"> - <el-input - v-model.trim="queryParams.werks" - placeholder="璇疯緭鍏ュ伐鍘�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍚嶇О" prop="warehouseName"> - <el-input - v-model.trim="queryParams.warehouseName" - placeholder="璇疯緭鍏ュ悕绉�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - - <el-form-item label="缂栧彿" prop="lgort"> - <el-input - v-model.trim="queryParams.lgort" - placeholder="璇疯緭鍏ョ紪鍙�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - - <el-form-item label="鐘舵��" prop="state"> - <el-input - v-model.trim="queryParams.state" - placeholder="璇疯緭鍏ョ姸鎬�" - clearable - @keyup.enter.native="handleQuery" - /> - </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-form-item> - </el-form> - - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - v-hasPermi="['system:warehouse:add']" - >鏂板</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['system:warehouse:edit']" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['system:warehouse:remove']" - >鍒犻櫎</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - v-hasPermi="['system:warehouse:export']" - >瀵煎嚭</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> - - <el-table v-loading="loading" border :data="warehouseList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column - label="搴忓彿" - type="index" - fixed - width="50" /> - <!-- <el-table-column label="浠撳簱ID" align="center" prop="warehouseId" v-if="true"/> --> - <el-table-column label="浠撳簱缂栧彿" align="center" prop="lgort" /> - <el-table-column label="鍚嶇О" align="center" prop="warehouseName" /> - <el-table-column label="宸ュ巶" align="center" prop="werks" /> - <el-table-column label="绫诲埆" align="center" prop="type" /> - <el-table-column label="鏄惁鍚敤" align="center" prop="isUseLocation" > - <template slot-scope="scope"> - <dict-tag :options="dict.type.isenable" :value="scope.row.isUseLocation"/> + <el-main class="contbox" ref="contBox"> + <div class="head" ref="headBox"> + <BaseSearch + @getList="getList" + :formItemList="searchFormSchema" + @search="getList" + @showSearchChange="getElHeight(28)" + > + <template #actionButton> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['iqc_checkItem_create']" + >鏂板</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + @click="handleUpdate" + v-hasPermi="['iqc_checkItem_edit']" + >淇敼</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + @click="handleDelete" + v-hasPermi="['iqc_checkItem_delete']" + >鍒犻櫎</el-button + > + </el-col> </template> - </el-table-column> - <!-- <el-table-column label="绠$悊鍛業D" align="center" prop="userId" /> --> - <el-table-column label="绠$悊鍛樺悕绉�" align="center" prop="userName" /> - <el-table-column label="绠$悊鍛樼數璇�" align="center" prop="userPhone" /> - <el-table-column label="鍧愭爣X" align="center" prop="coordinateX" /> - <el-table-column label="鍧愭爣Y" align="center" prop="coordinateY" /> - <el-table-column label="鎻忚堪" align="center" prop="description" /> - <!-- <el-table-column label="鐘舵��" align="center" prop="state" /> --> - <el-table-column label="鏈�鍚庢洿鏂颁汉id" align="center" prop="lastUpdatedUserId" /> - <el-table-column label="鏈�鍚庢洿鏂颁汉濮撳悕" align="center" prop="lastUpdatedUserName" /> - <el-table-column label="鏈�鍚庢洿鏂版椂闂�" align="center" prop="lastUpdatedDateTime" width="180"> - <template slot-scope="scope"> - <span>{{ parseTime(scope.row.lastUpdatedDateTime, '{y}-{m}-{d}') }}</span> - </template> - </el-table-column> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['system:warehouse:edit']" - >淇敼</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['system:warehouse:remove']" - >鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> - - <pagination - v-show="total>0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> - - <!-- 娣诲姞鎴栦慨鏀逛粨搴撳璇濇 --> - <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> - <el-form-item label="浠撳簱缂栧彿" prop="lgort"> - <el-input v-model.trim="form.lgort" placeholder="璇疯緭鍏ヤ粨搴撶紪鍙�" /> - </el-form-item> - <el-form-item label="鍚嶇О" prop="warehouseName"> - <el-input v-model.trim="form.warehouseName" placeholder="璇疯緭鍏ュ悕绉�" /> - </el-form-item> - <el-form-item label="宸ュ巶" prop="werks"> - <el-input v-model.trim="form.werks" placeholder="璇疯緭鍏ュ伐鍘�" /> - </el-form-item> - <el-form-item label="绫诲埆" prop="type"> - <el-input v-model.trim="form.type" placeholder="璇疯緭鍏ョ被鍒�" /> - </el-form-item> - <el-form-item label="鏄惁鍚敤" prop="isUseLocation"> - <!-- <el-input v-model.trim="form.isUseLocation" placeholder="璇疯緭鍏�0,涓嶅惎鐢� - 1,鍚敤" /> --> - <el-select v-model="form.isUseLocation" placeholder="鏄惁鍚敤" clearable> - <el-option - v-for="dict in dict.type.isenable" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select> - </el-form-item> - <el-form-item label="绠$悊鍛樺悕绉�" prop="userId"> - <el-input v-model.trim="form.userName" placeholder="璇疯緭鍏ョ鐞嗗憳鍚嶇О" /> - </el-form-item> - <el-form-item label="绠$悊鍛樼數璇�" prop="userPhone"> - <el-input v-model.trim="form.userPhone" placeholder="璇疯緭鍏ョ鐞嗗憳鐢佃瘽" /> - </el-form-item> - <el-form-item label="鍧愭爣X" prop="coordinateX"> - <el-input v-model.trim="form.coordinateX" placeholder="璇疯緭鍏ュ潗鏍嘪" /> - </el-form-item> - <el-form-item label="鍧愭爣Y" prop="coordinateY"> - <el-input v-model.trim="form.coordinateY" placeholder="璇疯緭鍏ュ潗鏍嘫" /> - </el-form-item> - <el-form-item label="鎻忚堪" prop="description"> - <el-input v-model.trim="form.description" placeholder="璇疯緭鍏ユ弿杩�" /> - </el-form-item> - <!-- <el-form-item label="鐘舵��" prop="state"> - <el-input v-model.trim="form.state" placeholder="璇疯緭鍏ョ姸鎬�" /> - </el-form-item> --> - <!-- <el-form-item label="鏈�鍚庢洿鏂颁汉id" prop="lastUpdatedUserId"> - <el-input v-model.trim="form.lastUpdatedUserId" placeholder="璇疯緭鍏ユ渶鍚庢洿鏂颁汉id" /> - </el-form-item> - <el-form-item label="鏈�鍚庢洿鏂颁汉濮撳悕" prop="lastUpdatedUserName"> - <el-input v-model.trim="form.lastUpdatedUserName" placeholder="璇疯緭鍏ユ渶鍚庢洿鏂颁汉濮撳悕" /> - </el-form-item> - <el-form-item label="鏈�鍚庢洿鏂版椂闂�" prop="lastUpdatedDateTime"> - <el-date-picker clearable - v-model="form.lastUpdatedDateTime" - type="datetime" - value-format="yyyy-MM-dd HH:mm:ss" - placeholder="璇烽�夋嫨鏈�鍚庢洿鏂版椂闂�"> - </el-date-picker> - </el-form-item> --> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> - </div> + </BaseSearch> + </div> + <TableCom + :column="tabiInfo.columns" + :table-data="tabiInfo.tableData" + :table-loading="tabiInfo.tableLoading" + :isSelection="tabiInfo.isSelection" + :height="elementHeight" + rowKey="warehouseId" + ref="tabel" + @checkData="checkData" + @checkLook="checkInfo" + > + <template slot="checkType" slot-scope="scope"> + <dict-tag + :options="dict.type.check_type" + :value="scope.row.checkType" + /> + </template> + <template slot="isAutoCheck" slot-scope="scope"> + <dict-tag + :options="dict.type.is_auto_check" + :value="scope.row.isAutoCheck" + /> + </template> + <template slot="isRequired" slot-scope="scope"> + <dict-tag + :options="dict.type.is_required" + :value="scope.row.isRequired" + /> + </template> + <template slot="isToSpc" slot-scope="scope"> + <dict-tag :options="dict.type.is_to_spc" :value="scope.row.isToSpc" /> + </template> + <template slot="status" slot-scope="scope"> + <dict-tag :options="dict.type.status" :value="scope.row.status" /> + </template> + </TableCom> + <div class="pagination" ref="pagination"> + <pagination + v-show="pageInfo.pageTotal > 0" + :total="pageInfo.pageTotal" + :page.sync="pageInfo.currentPage" + :limit.sync="pageInfo.pageSize" + @pagination="getList" + /> + </div> + <AddaddModal ref="addaddModal" @getList="getList" /> + </el-main> </template> <script> -import { listWarehouse, getWarehouse, delWarehouse, addWarehouse, updateWarehouse } from "@/api/basicData/warehouse"; +import TableCom from "@/components/Table/index"; +import BaseSearch from "@/components/Table/BaseSearch"; + +import { columns, searchFormSchema } from "./info.data"; +import mixin from "@/components/Table/mixins/resize"; +import { listWarehouse, delWarehouse } from "@/api/basicData/warehouse"; +import AddaddModal from "./addModal"; export default { name: "Warehouse", - dicts: ['isenable'], + components: { TableCom, BaseSearch, AddaddModal }, + mixins: [mixin], + dicts: ["check_type", "is_auto_check", "is_required", "is_to_spc", "status"], data() { return { - // 鎸夐挳loading - buttonLoading: false, - // 閬僵灞� - loading: true, - // 閫変腑鏁扮粍 - ids: [], - // 闈炲崟涓鐢� - single: true, - // 闈炲涓鐢� - multiple: true, - // 鏄剧ず鎼滅储鏉′欢 - showSearch: true, - // 鎬绘潯鏁� - total: 0, - // 浠撳簱琛ㄦ牸鏁版嵁 - warehouseList: [], - // 寮瑰嚭灞傛爣棰� - title: "", - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, - // 鏌ヨ鍙傛暟 - queryParams: { - pageNum: 1, - pageSize: 10, - warehouseName: undefined, - werks: undefined, - type: undefined, - state: undefined, + searchFormSchema: searchFormSchema, + tabiInfo: { + columns: columns, + tableData: [], + tableLoading: false, + isSelection: true, + rowClassName: "rowClassName", }, - // 琛ㄥ崟鍙傛暟 - form: {}, - // 琛ㄥ崟鏍¢獙 - rules: { - warehouseId: [ - { required: true, message: "浠撳簱ID涓嶈兘涓虹┖", trigger: "blur" } - ], - lgort: [ - { required: true, message: "浠撳簱缂栧彿涓嶈兘涓虹┖", trigger: "blur" } - ], - warehouseName: [ - { required: true, message: "鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } - ], - werks: [ - { required: true, message: "宸ュ巶涓嶈兘涓虹┖", trigger: "blur" } - ], - type: [ - { required: true, message: "绫诲埆涓嶈兘涓虹┖", trigger: "change" } - ], - // isUseLocation: [ - // { required: true, message: "0,涓嶅惎鐢� - // 1,鍚敤涓嶈兘涓虹┖", trigger: "blur" } - // ], - userId: [ - { required: true, message: "绠$悊鍛業D涓嶈兘涓虹┖", trigger: "blur" } - ], - userPhone: [ - { required: true, message: "绠$悊鍛樼數璇濅笉鑳戒负绌�", trigger: "blur" } - ], - coordinateX: [ - { required: true, message: "鍧愭爣X涓嶈兘涓虹┖", trigger: "blur" } - ], - coordinateY: [ - { required: true, message: "鍧愭爣Y涓嶈兘涓虹┖", trigger: "blur" } - ], - description: [ - { required: true, message: "鎻忚堪涓嶈兘涓虹┖", trigger: "blur" } - ], - state: [ - { required: true, message: "鐘舵�佷笉鑳戒负绌�", trigger: "blur" } - ], - - } + pageInfo: { + pageSize: 10, + pageTotal: 0, + currentPage: 1, + }, + visible: false, + ids: [], + open: false, }; }, - created() { + mounted() { this.getList(); }, methods: { - /** 鏌ヨ浠撳簱鍒楄〃 */ - getList() { - this.loading = true; - listWarehouse(this.queryParams).then(response => { - this.warehouseList = response.rows; - this.total = response.total; - this.loading = false; - }); - }, - // 鍙栨秷鎸夐挳 - cancel() { - this.open = false; - this.reset(); - }, - // 琛ㄥ崟閲嶇疆 - reset() { - this.form = { - warehouseId: undefined, - lgort: undefined, - warehouseName: undefined, - werks: undefined, - type: undefined, - isUseLocation: undefined, - userId: undefined, - userPhone: undefined, - coordinateX: undefined, - coordinateY: undefined, - description: undefined, - state: undefined, - displayOrder: undefined, - createdUserId: undefined, - createdUserName: undefined, - createdDateTime: undefined, - lastUpdatedUserId: undefined, - lastUpdatedUserName: undefined, - lastUpdatedDateTime: undefined, - isDeleted: undefined + getList(info = {}) { + this.ids = []; + this.tabiInfo.tableLoading = true; + let params = { + pageSize: this.pageInfo.pageSize, + pageNum: this.pageInfo.currentPage, + bizType: 10, + ...info, }; - this.resetForm("form"); - }, - /** 鎼滅储鎸夐挳鎿嶄綔 */ - handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); - }, - /** 閲嶇疆鎸夐挳鎿嶄綔 */ - resetQuery() { - this.resetForm("queryForm"); - this.handleQuery(); - }, - // 澶氶�夋閫変腑鏁版嵁 - handleSelectionChange(selection) { - this.ids = selection.map(item => item.warehouseId) - this.single = selection.length!==1 - this.multiple = !selection.length - }, - /** 鏂板鎸夐挳鎿嶄綔 */ - handleAdd() { - this.reset(); - this.open = true; - this.title = "娣诲姞浠撳簱"; - }, - /** 淇敼鎸夐挳鎿嶄綔 */ - handleUpdate(row) { - this.loading = true; - this.reset(); - const warehouseId = row.warehouseId || this.ids - getWarehouse(warehouseId).then(response => { - this.loading = false; - this.form = response.data; - this.open = true; - this.title = "淇敼浠撳簱"; - }); - }, - /** 鎻愪氦鎸夐挳 */ - submitForm() { - this.$refs["form"].validate(valid => { - if (valid) { - this.buttonLoading = true; - if (this.form.warehouseId != null) { - updateWarehouse(this.form).then(response => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - }).finally(() => { - this.buttonLoading = false; - }); - } else { - addWarehouse(this.form).then(response => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }).finally(() => { - this.buttonLoading = false; - }); - } + listWarehouse(params).then((res) => { + if (res.code == 200) { + this.pageInfo.pageTotal = res.total; + this.tabiInfo.tableData = res.rows; + this.tabiInfo.tableLoading = false; } }); }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - const warehouseIds = row.warehouseId || this.ids; - this.$modal.confirm('鏄惁纭鍒犻櫎浠撳簱缂栧彿涓�"' + warehouseIds + '"鐨勬暟鎹」锛�').then(() => { - this.loading = true; - return delWarehouse(warehouseIds); - }).then(() => { - this.loading = false; - this.getList(); - this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - }).catch(() => { - }).finally(() => { - this.loading = false; - }); + checkData(data) { + if (data.length) { + this.ids = data.map((item) => { + return item.warehouseId; + }); + } else { + this.ids = []; + } }, - /** 瀵煎嚭鎸夐挳鎿嶄綔 */ - handleExport() { - this.download('system/warehouse/export', { - ...this.queryParams - }, `warehouse_${new Date().getTime()}.xlsx`) - } - } + handleAdd() { + this.$refs.addaddModal.elDialogShow(1); + }, + checkInfo(info) { + this.$refs.addaddModal.elDialogShow(3, info.warehouseId); + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate() { + if (this.ids.length > 1) { + this.$message({ + message: "鍙兘鎿嶄綔鍗曟潯鏁版嵁锛�", + type: "warning", + }); + return; + } else if (this.ids.length < 1) { + this.$message({ + message: "璇烽�夋嫨鏁版嵁", + type: "warning", + }); + return; + } + this.$refs.addaddModal.elDialogShow(2, this.ids[0]); + }, + handleDelete() { + const warehouseIds = this.ids; + + if (warehouseIds.length) { + this.$modal + .confirm( + '鏄惁纭鍒犻櫎宸查�変腑鐨勬暟鎹」锛�' + ) + .then(() => { + this.tabiInfo.tableLoading = true; + return delWarehouse(warehouseIds); + }) + .then(() => { + this.tabiInfo.tableLoading = false; + this.ids = []; + this.getList(); + this.$message({ + message: "鍒犻櫎鎴愬姛", + type: "success", + }); + }) + .catch(() => {}) + .finally(() => { + this.tabiInfo.tableLoading = false; + }); + } else { + this.$message({ + message: "璇烽�夋嫨鏁版嵁", + type: "warning", + }); + } + }, + }, }; </script> + +<style lang="less" scoped> +.rowClassName { + height: 50px; +} +.contbox { + width: 100; + height: 100%; +} +</style> -- Gitblit v1.9.3