1. 程式人生 > 其它 >穀粒商城學習——P51商品服務-API-三級分類-刪除-刪除效果細化

穀粒商城學習——P51商品服務-API-三級分類-刪除-刪除效果細化

httpget和post模板

一直用的hbuilder,到這裡發現怎麼設定也不生效,於是轉vscode了

new global snippets file,手工建立模板vue.config-snippets

模板內容

    "http-get請求": {
        "prefix": "httpget",
        "body": [
            "this.\\$http({",
            "url: this.\\$http.adornUrl(''),",
            "method: 'get',",
            "params: this.\\$http.adornParams({})",
            "}).then(({data}) => {",
            "})"
        ],
        "description": "httpGET請求"
    },
    "http-post請求": {
        "prefix": "httppost",
        "body": [
            "this.\\$http({",
            "url:this.\\$http.adornUrl(''),",
            "method: 'post',",
            "data: this.\\$http.adornData(data, false)",
            "}).then(({ data }) => { });"
        ],
        "description": " httpPOST請求"
    },
View Code

本節主要用到了

MessageBox 彈框

this.$confirm(`確認提示`, "提示", {
        confirmButtonText: "確定",
        cancelButtonText: "取消",
        type: "warning",
      })
     .then(() => {})
     .catch(() => {});

Message 訊息提示

            this.$message({
              message: "提示訊息",
              type: "success",
            });

default-expanded-keys

指定展開節點的key,及node-key

我的category.vue原始碼

<template>
  <div>
    <el-tree
      :data="menus"
      :props="defaultProps"
      show-checkbox=""
      node-key="catId"
      :expand-on-click-node="false"
      :default-expanded-keys="expandedkey"
    >
      <
span class="custom-tree-node" slot-scope="{ node, data }"> <span>{{ node.label }}</span> <span> <el-button v-if="node.level <= 2" type="text" size="mini" @click="() => append(data)" > Append </el-button> <el-button v-if="node.childNodes.length == 0" type="text" size="mini" @click="() => remove(node, data)" > Delete </el-button> </span> </span> </el-tree> </div> </template> <script> //這裡可以匯入其他檔案(比如:元件,工具js,第三方外掛js,json檔案,圖片檔案等等) //例如:import《元件名稱》from'《元件路徑》'; export default { data() { return { expandedkey: [], menus: [], defaultProps: { children: "children", label: "name", }, }; }, created() { console.log(this.expandedkey); this.getMenus(); }, methods: { // remove(node, data) { // const parent = node.parent; // const children = parent.data.children || parent.data; // const index = children.findIndex(d => d.id === data.id); // children.splice(index, 1); // }, remove(node, data) { let ids = [data.catId]; console.log(ids); console.log(node); this.$confirm(`是否刪除${data.name}選單?`, "提示", { confirmButtonText: "確定", cancelButtonText: "取消", type: "warning", }) .then(() => { this.$http({ url: this.$http.adornUrl("/product/category/delete"), method: "post", data: this.$http.adornData(ids, false), }).then(({ data }) => { this.$message({ message: "選單刪除成功", type: "success", }); this.getMenus(); console.log(node.parent.data.catId); this.expandedkey = [node.parent.data.catId]; }); }) .catch(() => {}); }, append(data) { const newChild = { id: id++, label: "testtest", children: [], }; if (!data.children) { this.$set(data, "children", []); } data.children.push(newChild); }, getMenus() { this.$http({ url: this.$http.adornUrl("/product/category/list/tree"), method: "get", }).then(({ data }) => { console.log("成功獲取選單", data.data); this.menus = data.data; console.log("thismenus", this.menus); }); }, }, }; </script> <stylescoped> </style>
View Code