|
@@ -5,24 +5,18 @@
|
|
<el-form :inline="true" :model="searchForm" class="search-form">
|
|
<el-form :inline="true" :model="searchForm" class="search-form">
|
|
<el-form-item label="规格编号">
|
|
<el-form-item label="规格编号">
|
|
<el-input
|
|
<el-input
|
|
- v-model="searchForm.pa_no"
|
|
|
|
|
|
+ v-model="searchForm.ps_no"
|
|
placeholder="规格编号"
|
|
placeholder="规格编号"
|
|
- style="width: 150px"
|
|
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="规格名称">
|
|
<el-form-item label="规格名称">
|
|
<el-input
|
|
<el-input
|
|
v-model="searchForm.ps_name"
|
|
v-model="searchForm.ps_name"
|
|
placeholder="规格名称"
|
|
placeholder="规格名称"
|
|
- style="width: 150px"
|
|
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <!-- <el-form-item label="规格类型">
|
|
|
|
- <el-select
|
|
|
|
- v-model="searchForm.specType"
|
|
|
|
- placeholder="规格类型"
|
|
|
|
- style="width: 150px"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item label="规格类型">
|
|
|
|
+ <el-select v-model="searchForm.psp_name" placeholder="规格类型">
|
|
<el-option label="全部" value=""></el-option>
|
|
<el-option label="全部" value=""></el-option>
|
|
<el-option label="输入" value="输入"></el-option>
|
|
<el-option label="输入" value="输入"></el-option>
|
|
<el-option label="单选" value="单选"></el-option>
|
|
<el-option label="单选" value="单选"></el-option>
|
|
@@ -30,48 +24,51 @@
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="所属分类">
|
|
<el-form-item label="所属分类">
|
|
- <el-select
|
|
|
|
- v-model="searchForm.category"
|
|
|
|
- placeholder="所属分类"
|
|
|
|
- style="width: 150px"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-select v-model="searchForm.ps_category" placeholder="所属���类">
|
|
<el-option label="全部" value=""></el-option>
|
|
<el-option label="全部" value=""></el-option>
|
|
- <el-option label="LCD,LED" value="LCD,LED"></el-option>
|
|
|
|
|
|
+ <el-option label="LED" value="LED"></el-option>
|
|
|
|
+ <el-option label="LCD" value="LCD"></el-option>
|
|
<el-option label="DLP" value="DLP"></el-option>
|
|
<el-option label="DLP" value="DLP"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- </el-form-item> -->
|
|
|
|
|
|
+ </el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
- <el-button type="primary" @click="handleSearch">搜索</el-button>
|
|
|
|
- <el-button @click="resetSearch">重置</el-button>
|
|
|
|
|
|
+ <el-button type="primary" icon="el-icon-search" @click="handleSearch"
|
|
|
|
+ >搜索</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button icon="el-icon-refresh" @click="resetSearch"
|
|
|
|
+ >重置</el-button
|
|
|
|
+ >
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
<el-button type="primary" @click="handleAdd">新建规格</el-button>
|
|
<el-button type="primary" @click="handleAdd">新建规格</el-button>
|
|
<!-- 表格区域 -->
|
|
<!-- 表格区域 -->
|
|
<el-table :data="tableData" style="width: 100%; margin-top: 20px">
|
|
<el-table :data="tableData" style="width: 100%; margin-top: 20px">
|
|
- <el-table-column prop="pa_no" label="规格编号"></el-table-column>
|
|
|
|
|
|
+ <el-table-column prop="ps_no" label="规格编号"></el-table-column>
|
|
<el-table-column prop="ps_name" label="规格名称"></el-table-column>
|
|
<el-table-column prop="ps_name" label="规格名称"></el-table-column>
|
|
- <!-- <el-table-column prop="specType" label="规格值类型" width="120">
|
|
|
|
|
|
+ <el-table-column prop="psp_name" label="规格值类型" width="120">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-tag
|
|
<el-tag
|
|
|
|
+ v-if="scope.row.psp_name"
|
|
:type="
|
|
:type="
|
|
- scope.row.specType === '输入'
|
|
|
|
|
|
+ scope.row.psp_name === '输入'
|
|
? 'primary'
|
|
? 'primary'
|
|
- : scope.row.specType === '单选'
|
|
|
|
|
|
+ : scope.row.psp_name === '单选'
|
|
? 'success'
|
|
? 'success'
|
|
: 'warning'
|
|
: 'warning'
|
|
"
|
|
"
|
|
>
|
|
>
|
|
- {{ scope.row.specType }}
|
|
|
|
|
|
+ {{ scope.row.psp_name }}
|
|
</el-tag>
|
|
</el-tag>
|
|
|
|
+ <span v-else ></span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="specValue"
|
|
|
|
|
|
+ prop="psp_value"
|
|
label="规格值"
|
|
label="规格值"
|
|
width="180"
|
|
width="180"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
- <el-table-column prop="category" label="所属分类"></el-table-column> -->
|
|
|
|
|
|
+ <el-table-column prop="ps_category" label="所属分类"></el-table-column>
|
|
<el-table-column label="操作" width="250">
|
|
<el-table-column label="操作" width="250">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-button size="mini" @click="handleView(scope.row)">查看</el-button>
|
|
<el-button size="mini" @click="handleView(scope.row)">查看</el-button>
|
|
@@ -101,33 +98,33 @@
|
|
<!-- 新增/编辑对话框 -->
|
|
<!-- 新增/编辑对话框 -->
|
|
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="500px">
|
|
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="500px">
|
|
<el-form :model="form" :rules="rules" ref="form" label-width="100px">
|
|
<el-form :model="form" :rules="rules" ref="form" label-width="100px">
|
|
- <el-form-item label="规格编号" prop="pa_no">
|
|
|
|
- <el-input v-model="form.pa_no"></el-input>
|
|
|
|
|
|
+ <el-form-item label="规格编号" prop="ps_no">
|
|
|
|
+ <el-input v-model="form.ps_no"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="规格名称" prop="ps_name">
|
|
<el-form-item label="规格名称" prop="ps_name">
|
|
<el-input v-model="form.ps_name"></el-input>
|
|
<el-input v-model="form.ps_name"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <!-- <el-form-item label="规格值类型" prop="specType">
|
|
|
|
- <el-select v-model="form.specType" style="width: 100%">
|
|
|
|
|
|
+ <el-form-item label="规格值类型" prop="psp_name">
|
|
|
|
+ <el-select v-model="form.psp_name" style="width: 100%">
|
|
<el-option label="输入" value="输入"></el-option>
|
|
<el-option label="输入" value="输入"></el-option>
|
|
<el-option label="单选" value="单选"></el-option>
|
|
<el-option label="单选" value="单选"></el-option>
|
|
<el-option label="复选" value="复选"></el-option>
|
|
<el-option label="复选" value="复选"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="规格值" prop="specValue">
|
|
|
|
|
|
+ <el-form-item label="规格值" prop="psp_value">
|
|
<el-input
|
|
<el-input
|
|
- v-model="form.specValue"
|
|
|
|
|
|
+ v-model="form.psp_value"
|
|
type="textarea"
|
|
type="textarea"
|
|
placeholder="多个值请用逗号分隔"
|
|
placeholder="多个值请用逗号分隔"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="所属分类" prop="category">
|
|
|
|
- <el-select v-model="form.category" style="width: 100%">
|
|
|
|
|
|
+ <el-form-item label="所属分类" prop="ps_category">
|
|
|
|
+ <el-select v-model="form.ps_category" style="width: 100%">
|
|
<el-option label="全部" value="全部"></el-option>
|
|
<el-option label="全部" value="全部"></el-option>
|
|
<el-option label="LCD,LED" value="LCD,LED"></el-option>
|
|
<el-option label="LCD,LED" value="LCD,LED"></el-option>
|
|
<el-option label="DLP" value="DLP"></el-option>
|
|
<el-option label="DLP" value="DLP"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- </el-form-item> -->
|
|
|
|
|
|
+ </el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div slot="footer">
|
|
<div slot="footer">
|
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
@@ -143,7 +140,7 @@
|
|
>
|
|
>
|
|
<el-descriptions :column="1" border>
|
|
<el-descriptions :column="1" border>
|
|
<el-descriptions-item label="规格编号">{{
|
|
<el-descriptions-item label="规格编号">{{
|
|
- viewForm.pa_no
|
|
|
|
|
|
+ viewForm.ps_no
|
|
}}</el-descriptions-item>
|
|
}}</el-descriptions-item>
|
|
<el-descriptions-item label="规格名称">{{
|
|
<el-descriptions-item label="规格名称">{{
|
|
viewForm.ps_name
|
|
viewForm.ps_name
|
|
@@ -162,6 +159,7 @@ import {
|
|
addSpec,
|
|
addSpec,
|
|
updateSpec,
|
|
updateSpec,
|
|
getSpecDetail,
|
|
getSpecDetail,
|
|
|
|
+ deleteSpec,
|
|
} from "@/api/ProductMent/specMent";
|
|
} from "@/api/ProductMent/specMent";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -169,10 +167,10 @@ export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
searchForm: {
|
|
searchForm: {
|
|
- pa_no: "",
|
|
|
|
|
|
+ ps_no: "",
|
|
ps_name: "",
|
|
ps_name: "",
|
|
- /* specType: "",
|
|
|
|
- category: "", */
|
|
|
|
|
|
+ psp_name: "",
|
|
|
|
+ ps_category: "",
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
pageSize: 10,
|
|
},
|
|
},
|
|
@@ -185,24 +183,24 @@ export default {
|
|
dialogVisible: false,
|
|
dialogVisible: false,
|
|
dialogTitle: "",
|
|
dialogTitle: "",
|
|
form: {
|
|
form: {
|
|
- pa_no: "",
|
|
|
|
|
|
+ ps_no: "",
|
|
ps_name: "",
|
|
ps_name: "",
|
|
- /* specType: "",
|
|
|
|
- specValue: "",
|
|
|
|
- category: "", */
|
|
|
|
|
|
+ psp_name: "",
|
|
|
|
+ psp_value: "",
|
|
|
|
+ ps_category: "",
|
|
},
|
|
},
|
|
rules: {
|
|
rules: {
|
|
- pa_no: [{ required: true, message: "请输入规格编号", trigger: "blur" }],
|
|
|
|
|
|
+ ps_no: [{ required: true, message: "请输入规格编号", trigger: "blur" }],
|
|
ps_name: [
|
|
ps_name: [
|
|
{ required: true, message: "请输入规格名称", trigger: "blur" },
|
|
{ required: true, message: "请输入规格名称", trigger: "blur" },
|
|
],
|
|
],
|
|
- specType: [
|
|
|
|
|
|
+ psp_name: [
|
|
{ required: true, message: "请选择规格值类型", trigger: "change" },
|
|
{ required: true, message: "请选择规格值类型", trigger: "change" },
|
|
],
|
|
],
|
|
},
|
|
},
|
|
viewDialogVisible: false,
|
|
viewDialogVisible: false,
|
|
viewForm: {
|
|
viewForm: {
|
|
- pa_no: "",
|
|
|
|
|
|
+ ps_no: "",
|
|
ps_name: "",
|
|
ps_name: "",
|
|
},
|
|
},
|
|
};
|
|
};
|
|
@@ -215,10 +213,10 @@ export default {
|
|
|
|
|
|
resetSearch() {
|
|
resetSearch() {
|
|
this.searchForm = {
|
|
this.searchForm = {
|
|
- pa_no: "",
|
|
|
|
|
|
+ ps_no: "",
|
|
ps_name: "",
|
|
ps_name: "",
|
|
- /* specType: "",
|
|
|
|
- category: "", */
|
|
|
|
|
|
+ psp_name: "",
|
|
|
|
+ ps_category: "",
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
pageSize: this.pagination.pageSize,
|
|
pageSize: this.pagination.pageSize,
|
|
};
|
|
};
|
|
@@ -229,48 +227,101 @@ export default {
|
|
handleAdd() {
|
|
handleAdd() {
|
|
this.dialogTitle = "新增规格";
|
|
this.dialogTitle = "新增规格";
|
|
this.form = {
|
|
this.form = {
|
|
- pa_no: "",
|
|
|
|
|
|
+ ps_no: "",
|
|
ps_name: "",
|
|
ps_name: "",
|
|
- /* specType: "",
|
|
|
|
- specValue: "",
|
|
|
|
- category: "", */
|
|
|
|
|
|
+ psp_name: "",
|
|
|
|
+ psp_value: "",
|
|
|
|
+ ps_category: "",
|
|
};
|
|
};
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
},
|
|
},
|
|
handleEdit(row) {
|
|
handleEdit(row) {
|
|
this.dialogTitle = "编辑规格";
|
|
this.dialogTitle = "编辑规格";
|
|
this.form = {
|
|
this.form = {
|
|
- ps_id:row.ps_id,
|
|
|
|
- pa_no: row.pa_no,
|
|
|
|
|
|
+ ps_id: row.ps_id,
|
|
|
|
+ ps_no: row.ps_no,
|
|
ps_name: row.ps_name,
|
|
ps_name: row.ps_name,
|
|
};
|
|
};
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
},
|
|
},
|
|
handleDelete(row) {
|
|
handleDelete(row) {
|
|
- this.$confirm("确认删除该规格?", "提示", {
|
|
|
|
|
|
+ // 删除确认对话框
|
|
|
|
+ this.$confirm("此操作将永久删除该规格,是否继续?", "提示", {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
type: "warning",
|
|
type: "warning",
|
|
})
|
|
})
|
|
- .then(() => {
|
|
|
|
- deleteSpec(row.pa_no).then((res) => {
|
|
|
|
|
|
+ .then(async () => {
|
|
|
|
+ // 使用 async/await 处理异步操作
|
|
|
|
+ try {
|
|
|
|
+ // 显示加载中
|
|
|
|
+ const loading = this.$loading({
|
|
|
|
+ lock: true,
|
|
|
|
+ text: "删除中...",
|
|
|
|
+ spinner: "el-icon-loading",
|
|
|
|
+ background: "rgba(0, 0, 0, 0.7)",
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // 确保 row.ps_id 存在
|
|
|
|
+ if (!row.ps_id) {
|
|
|
|
+ throw new Error("规格ID不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const res = await deleteSpec(row.ps_id);
|
|
|
|
+ loading.close();
|
|
|
|
+
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
- this.$message.success("删除成功");
|
|
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "删除成功!",
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // 处理删除后的页面更新逻辑
|
|
if (
|
|
if (
|
|
this.tableData.length === 1 &&
|
|
this.tableData.length === 1 &&
|
|
this.pagination.currentPage > 1
|
|
this.pagination.currentPage > 1
|
|
) {
|
|
) {
|
|
- this.pagination.currentPage -= 1;
|
|
|
|
|
|
+ this.pagination.currentPage--;
|
|
|
|
+ this.searchForm.pageNum = this.pagination.currentPage;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (
|
|
|
|
+ this.tableData.length === 1 &&
|
|
|
|
+ this.pagination.total <=
|
|
|
|
+ this.pagination.pageSize * this.pagination.currentPage
|
|
|
|
+ ) {
|
|
|
|
+ this.pagination.currentPage = Math.max(
|
|
|
|
+ 1,
|
|
|
|
+ this.pagination.currentPage - 1
|
|
|
|
+ );
|
|
|
|
+ this.searchForm.pageNum = this.pagination.currentPage;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // 重新加载数据
|
|
this.loadData();
|
|
this.loadData();
|
|
} else {
|
|
} else {
|
|
this.$message.error(res.message || "删除失败");
|
|
this.$message.error(res.message || "删除失败");
|
|
}
|
|
}
|
|
- });
|
|
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.error("删除失败:", error);
|
|
|
|
+ this.$message.error("删除失败,请稍后重试");
|
|
|
|
+ // 确保加载动画被关闭
|
|
|
|
+ this.$loading().close();
|
|
|
|
+ }
|
|
})
|
|
})
|
|
- .catch(() => {});
|
|
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ // 只有用户点击取消按钮时才显示取消删除的提示
|
|
|
|
+ if (err === "cancel" || err.toString().includes("cancel")) {
|
|
|
|
+ this.$message({
|
|
|
|
+ type: "info",
|
|
|
|
+ message: "已取消删除",
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
},
|
|
},
|
|
handleView(row) {
|
|
handleView(row) {
|
|
this.viewForm = {
|
|
this.viewForm = {
|
|
- pa_no: row.pa_no,
|
|
|
|
|
|
+ ps_no: row.ps_no,
|
|
ps_name: row.ps_name,
|
|
ps_name: row.ps_name,
|
|
};
|
|
};
|
|
this.viewDialogVisible = true;
|
|
this.viewDialogVisible = true;
|