|
@@ -6,16 +6,16 @@
|
|
|
:inline="true"
|
|
|
v-show="showSearch"
|
|
|
>
|
|
|
- <el-form-item label="物料名称" prop="toolName">
|
|
|
+ <el-form-item label="工具品种" prop="toolName">
|
|
|
<el-input
|
|
|
v-model="queryParams.toolName"
|
|
|
- placeholder="请输入物料名称"
|
|
|
+ placeholder="请输入工具品种"
|
|
|
clearable
|
|
|
style="width: 200px"
|
|
|
@keyup.enter="handleQuery"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="一级类型" prop="levelOneTypeId">
|
|
|
+ <el-form-item label="大类" prop="levelOneTypeId">
|
|
|
<el-select
|
|
|
v-model="queryParams.levelOneTypeId"
|
|
|
placeholder="请选择"
|
|
@@ -31,7 +31,7 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="二级类型" prop="levelTwoTypeId">
|
|
|
+ <el-form-item label="二级分类" prop="levelTwoTypeId">
|
|
|
<el-select
|
|
|
v-model="queryParams.levelTwoTypeId"
|
|
|
placeholder="请选择"
|
|
@@ -56,12 +56,7 @@
|
|
|
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- icon="Plus"
|
|
|
- @click="handleAdd"
|
|
|
- v-hasPermi="['system:post:add']"
|
|
|
+ <el-button type="primary" plain icon="Plus" @click="handleAdd"
|
|
|
>新增</el-button
|
|
|
>
|
|
|
</el-col>
|
|
@@ -71,8 +66,7 @@
|
|
|
plain
|
|
|
icon="Edit"
|
|
|
:disabled="single"
|
|
|
- @click="handleUpdate"
|
|
|
- v-hasPermi="['system:post:edit']"
|
|
|
+ @click="handleSelecterUpdate"
|
|
|
>修改</el-button
|
|
|
>
|
|
|
</el-col>
|
|
@@ -83,7 +77,6 @@
|
|
|
icon="Delete"
|
|
|
:disabled="multiple"
|
|
|
@click="handleDelete"
|
|
|
- v-hasPermi="['system:post:remove']"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
</el-col>
|
|
@@ -99,13 +92,15 @@
|
|
|
>
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="工具编号" align="center" prop="id" />
|
|
|
- <el-table-column label="工具名称" align="center" prop="toolName" />
|
|
|
- <el-table-column label="工具规格" align="center" prop="specifications" />
|
|
|
+ <el-table-column label="工具品种" align="center" prop="toolName" />
|
|
|
+ <el-table-column label="工具别名" align="center" prop="aliasName" />
|
|
|
+ <el-table-column label="规格标准" align="center" prop="specifications" />
|
|
|
+ <el-table-column label="举例" align="center" prop="example" />
|
|
|
<el-table-column label="描述" align="center" prop="describe" />
|
|
|
<el-table-column label="数量" align="center" prop="toolNum" />
|
|
|
<el-table-column
|
|
|
label="操作"
|
|
|
- width="180"
|
|
|
+ width="240"
|
|
|
align="center"
|
|
|
class-name="small-padding fixed-width"
|
|
|
>
|
|
@@ -118,6 +113,14 @@
|
|
|
v-hasPermi="['system:post:edit']"
|
|
|
>修改</el-button
|
|
|
>
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ type="primary"
|
|
|
+ icon="Edit"
|
|
|
+ @click="handleUpdate(scope.row)"
|
|
|
+ v-hasPermi="['system:post:edit']"
|
|
|
+ >物料管理</el-button
|
|
|
+ >
|
|
|
<el-button
|
|
|
link
|
|
|
type="primary"
|
|
@@ -138,41 +141,112 @@
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
<!-- 添加或修改岗位对话框 -->
|
|
|
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
|
|
- <el-form ref="postRef" :model="form" :rules="rules" label-width="80px">
|
|
|
- <el-form-item label="物料名称" prop="postName">
|
|
|
- <el-input v-model="form.postName" placeholder="请输入岗位名称" />
|
|
|
+ <el-dialog
|
|
|
+ :title="title"
|
|
|
+ v-model="open"
|
|
|
+ width="66vw"
|
|
|
+ append-to-body
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ ref="toolRef"
|
|
|
+ :model="form"
|
|
|
+ :rules="rules"
|
|
|
+ label-width="120px"
|
|
|
+ v-loading="formLoading"
|
|
|
+ >
|
|
|
+ <el-form-item label="工具品种" prop="toolName">
|
|
|
+ <el-input v-model="form.toolName" placeholder="请输入工具品种" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="岗位编码" prop="postCode">
|
|
|
- <el-input v-model="form.postCode" placeholder="请输入编码名称" />
|
|
|
+ <el-form-item label="工具别称" prop="aliasName">
|
|
|
+ <el-input v-model="form.aliasName" placeholder="请输入工具别称" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="岗位顺序" prop="postSort">
|
|
|
+ <el-form-item label="大类" prop="levelOneId">
|
|
|
+ <el-select
|
|
|
+ v-model="form.levelOneId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ @change="handleChangeSubmitFormLevelType"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="dict in levelOneDict"
|
|
|
+ :key="dict.id"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="二级分类" prop="levelTwoId">
|
|
|
+ <el-select
|
|
|
+ v-model="form.levelTwoId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="dict in submitFormLevelTwoDict"
|
|
|
+ :key="dict.id"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工具描述" prop="describe">
|
|
|
+ <el-input
|
|
|
+ v-model="form.describe"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工具数量" prop="toolNum">
|
|
|
<el-input-number
|
|
|
- v-model="form.postSort"
|
|
|
- controls-position="right"
|
|
|
+ v-model="form.toolNum"
|
|
|
:min="0"
|
|
|
+ :step="1"
|
|
|
+ step-strictly
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="岗位状态" prop="status">
|
|
|
- <el-radio-group v-model="form.status">
|
|
|
- <el-radio
|
|
|
- v-for="dict in sys_normal_disable"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.value"
|
|
|
- >{{ dict.label }}</el-radio
|
|
|
- >
|
|
|
- </el-radio-group>
|
|
|
+ <el-form-item label="规格说明" prop="specifications">
|
|
|
+ <el-input
|
|
|
+ v-model="form.specifications"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入内容"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
+ <el-form-item label="举例" prop="example">
|
|
|
<el-input
|
|
|
- v-model="form.remark"
|
|
|
+ v-model="form.example"
|
|
|
type="textarea"
|
|
|
placeholder="请输入内容"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="示意图" prop="imageList">
|
|
|
+ <FileUpload
|
|
|
+ v-model="form.imageList"
|
|
|
+ :fileType="['png', 'jpg', 'jpeg']"
|
|
|
+ :fileSize="20"
|
|
|
+ :limit="5"
|
|
|
+ imageMode
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="使用手册" prop="manualFileList">
|
|
|
+ <FileUpload
|
|
|
+ v-model="form.manualFileList"
|
|
|
+ :fileSize="10"
|
|
|
+ :limit="10"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="附件资料" prop="resourceFileList">
|
|
|
+ <FileUpload
|
|
|
+ v-model="form.resourceFileList"
|
|
|
+ :fileSize="10"
|
|
|
+ :limit="10"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
- <div class="dialog-footer">
|
|
|
+ <div style="text-align: center">
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
@@ -182,6 +256,10 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup name="Material">
|
|
|
+import useSearchForm from "./hooks/useSearchForm.js";
|
|
|
+import useSubmitForm from "./hooks/useSubmitForm.js";
|
|
|
+import useTable from "./hooks/useTable.js";
|
|
|
+
|
|
|
import {
|
|
|
listPost,
|
|
|
addPost,
|
|
@@ -193,43 +271,12 @@ import { listTools, queryToolDict } from "@/api/bussiness";
|
|
|
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
|
|
|
-const toolList = ref([]);
|
|
|
-const open = ref(false);
|
|
|
-const loading = ref(true);
|
|
|
const showSearch = ref(true);
|
|
|
-const ids = ref([]);
|
|
|
-const single = ref(true);
|
|
|
-const multiple = ref(true);
|
|
|
-const total = ref(0);
|
|
|
-const title = ref("");
|
|
|
-const levelOneDict = ref([]);
|
|
|
-const levelTwoDict = ref([]);
|
|
|
-
|
|
|
-const data = reactive({
|
|
|
- form: {},
|
|
|
- queryParams: {
|
|
|
- toolName: "",
|
|
|
- levelOneTypeId: "",
|
|
|
- levelTwoTypeId: "",
|
|
|
- },
|
|
|
- pager: {
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10,
|
|
|
- },
|
|
|
- rules: {
|
|
|
- // postName: [
|
|
|
- // { required: true, message: "岗位名称不能为空", trigger: "blur" },
|
|
|
- // ],
|
|
|
- // postCode: [
|
|
|
- // { required: true, message: "岗位编码不能为空", trigger: "blur" },
|
|
|
- // ],
|
|
|
- // postSort: [
|
|
|
- // { required: true, message: "岗位顺序不能为空", trigger: "blur" },
|
|
|
- // ],
|
|
|
- },
|
|
|
+const pager = ref({
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
});
|
|
|
-
|
|
|
-const { queryParams, pager, form, rules } = toRefs(data);
|
|
|
+const total = ref(0);
|
|
|
|
|
|
/** 查询岗位列表 */
|
|
|
const getList = (params = {}) => {
|
|
@@ -247,115 +294,57 @@ const getList = (params = {}) => {
|
|
|
loading.value = false;
|
|
|
});
|
|
|
};
|
|
|
-
|
|
|
+const levelOneDict = ref([]);
|
|
|
/** 获取一级分类字典 */
|
|
|
const updateTypeOneDict = () => {
|
|
|
queryToolDict("1").then((data) => {
|
|
|
levelOneDict.value = data || [];
|
|
|
});
|
|
|
};
|
|
|
+updateTypeOneDict();
|
|
|
|
|
|
-const handleChangeLevelOneType = (val) => {
|
|
|
- queryParams.value.levelTwoTypeId = ""
|
|
|
- if (val) {
|
|
|
- queryToolDict("2", val).then((data) => {
|
|
|
- levelTwoDict.value = data || [];
|
|
|
- });
|
|
|
- } else {
|
|
|
- levelTwoDict.value = [];
|
|
|
- }
|
|
|
-};
|
|
|
+const {
|
|
|
+ queryParams,
|
|
|
+ levelTwoDict,
|
|
|
+ handleChangeLevelOneType,
|
|
|
+ handleQuery,
|
|
|
+ resetQuery,
|
|
|
+} = useSearchForm(getList);
|
|
|
|
|
|
-/** 取消按钮 */
|
|
|
-const cancel = () => {
|
|
|
- open.value = false;
|
|
|
- reset();
|
|
|
-};
|
|
|
-/** 表单重置 */
|
|
|
-const reset = () => {
|
|
|
- form.value = {
|
|
|
- postId: undefined,
|
|
|
- postCode: undefined,
|
|
|
- postName: undefined,
|
|
|
- postSort: 0,
|
|
|
- status: "0",
|
|
|
- remark: undefined,
|
|
|
- };
|
|
|
- proxy.resetForm("postRef");
|
|
|
-};
|
|
|
+const {
|
|
|
+ form,
|
|
|
+ rules,
|
|
|
+ open,
|
|
|
+ title,
|
|
|
+ formLoading,
|
|
|
+ submitFormLevelTwoDict,
|
|
|
+ submitForm,
|
|
|
+ cancel,
|
|
|
+ reset,
|
|
|
+ handleChangeSubmitFormLevelType,
|
|
|
+} = useSubmitForm(getList);
|
|
|
+
|
|
|
+const {
|
|
|
+ toolList,
|
|
|
+ loading,
|
|
|
+ single,
|
|
|
+ multiple,
|
|
|
+ handleSelectionChange,
|
|
|
+ handleAdd,
|
|
|
+ handleUpdate,
|
|
|
+ handleDelete,
|
|
|
+ handleSelecterUpdate
|
|
|
+} = useTable(
|
|
|
+ open,
|
|
|
+ title,
|
|
|
+ form,
|
|
|
+ formLoading,
|
|
|
+ submitFormLevelTwoDict,
|
|
|
+ queryParams,
|
|
|
+ getList,
|
|
|
+ updateTypeOneDict,
|
|
|
+ reset
|
|
|
+);
|
|
|
|
|
|
-/** 搜索按钮操作 */
|
|
|
-const handleQuery = () => {
|
|
|
- const params = {
|
|
|
- toolName: queryParams.value.toolName || "",
|
|
|
- parentId:
|
|
|
- queryParams.value.levelTwoTypeId ||
|
|
|
- queryParams.value.levelOneTypeId ||
|
|
|
- undefined,
|
|
|
- };
|
|
|
- getList(params);
|
|
|
-};
|
|
|
-/** 重置按钮操作 */
|
|
|
-const resetQuery = () => {
|
|
|
- proxy.resetForm("queryRef");
|
|
|
- handleQuery();
|
|
|
-};
|
|
|
-/** 多选框选中数据 */
|
|
|
-const handleSelectionChange = (selection) => {
|
|
|
- ids.value = selection.map((item) => item.postId);
|
|
|
- single.value = selection.length != 1;
|
|
|
- multiple.value = !selection.length;
|
|
|
-};
|
|
|
-/** 新增按钮操作 */
|
|
|
-const handleAdd = () => {
|
|
|
- reset();
|
|
|
- open.value = true;
|
|
|
- title.value = "添加岗位";
|
|
|
-};
|
|
|
-/** 修改按钮操作 */
|
|
|
-const handleUpdate = (row) => {
|
|
|
- reset();
|
|
|
- const postId = row.postId || ids.value;
|
|
|
- getPost(postId).then((response) => {
|
|
|
- form.value = response.data;
|
|
|
- open.value = true;
|
|
|
- title.value = "修改岗位";
|
|
|
- });
|
|
|
-};
|
|
|
-/** 提交按钮 */
|
|
|
-const submitForm = () => {
|
|
|
- proxy.$refs["postRef"].validate((valid) => {
|
|
|
- if (valid) {
|
|
|
- if (form.value.postId != undefined) {
|
|
|
- updatePost(form.value).then((response) => {
|
|
|
- proxy.$modal.msgSuccess("修改成功");
|
|
|
- open.value = false;
|
|
|
- getList(queryParams.value);
|
|
|
- });
|
|
|
- } else {
|
|
|
- addPost(form.value).then((response) => {
|
|
|
- proxy.$modal.msgSuccess("新增成功");
|
|
|
- open.value = false;
|
|
|
- getList(queryParams.value);
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-};
|
|
|
-/** 删除按钮操作 */
|
|
|
-const handleDelete = (row) => {
|
|
|
- const postIds = row.postId || ids.value;
|
|
|
- proxy.$modal
|
|
|
- .confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?')
|
|
|
- .then(function () {
|
|
|
- return delPost(postIds);
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- getList(queryParams.value);
|
|
|
- proxy.$modal.msgSuccess("删除成功");
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
-};
|
|
|
-updateTypeOneDict();
|
|
|
getList(queryParams.value);
|
|
|
</script>
|