1 line
10 KiB
JSON
1 line
10 KiB
JSON
{"remainingRequest":"/Users/kang/Gitea/vue-element-admin/node_modules/babel-loader/lib/index.js!/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/Users/kang/Gitea/vue-element-admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/kang/Gitea/vue-element-admin/src/views/table/inline-edit-table.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/kang/Gitea/vue-element-admin/src/views/table/inline-edit-table.vue","mtime":1754409279874},{"path":"/Users/kang/Gitea/vue-element-admin/babel.config.js","mtime":1754409277597},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js","mtime":1754409278035},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/babel-loader/lib/index.js","mtime":1754409277911},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/cache-loader/dist/cjs.js","mtime":1754409278035},{"path":"/Users/kang/Gitea/vue-element-admin/node_modules/vue-loader/lib/index.js","mtime":1754409279720}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvciBmcm9tICIvVXNlcnMva2FuZy9HaXRlYS92dWUtZWxlbWVudC1hZG1pbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcmVnZW5lcmF0b3IuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiL1VzZXJzL2thbmcvR2l0ZWEvdnVlLWVsZW1lbnQtYWRtaW4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLm1hcC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgeyBmZXRjaExpc3QgfSBmcm9tICdAL2FwaS9hcnRpY2xlJzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdJbmxpbmVFZGl0VGFibGUnLAogIGZpbHRlcnM6IHsKICAgIHN0YXR1c0ZpbHRlcjogZnVuY3Rpb24gc3RhdHVzRmlsdGVyKHN0YXR1cykgewogICAgICB2YXIgc3RhdHVzTWFwID0gewogICAgICAgIHB1Ymxpc2hlZDogJ3N1Y2Nlc3MnLAogICAgICAgIGRyYWZ0OiAnaW5mbycsCiAgICAgICAgZGVsZXRlZDogJ2RhbmdlcicKICAgICAgfTsKICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdOwogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGxpc3Q6IG51bGwsCiAgICAgIGxpc3RMb2FkaW5nOiB0cnVlLAogICAgICBsaXN0UXVlcnk6IHsKICAgICAgICBwYWdlOiAxLAogICAgICAgIGxpbWl0OiAxMAogICAgICB9CiAgICB9OwogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0TGlzdCgpOwogIH0sCiAgbWV0aG9kczogewogICAgZ2V0TGlzdDogZnVuY3Rpb24gZ2V0TGlzdCgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3IoKS5tKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRmZXRjaExpc3QsIGRhdGEsIGl0ZW1zOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IoKS53KGZ1bmN0aW9uIChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQubikgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXMubGlzdExvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0Lm4gPSAxOwogICAgICAgICAgICAgIHJldHVybiBmZXRjaExpc3QoX3RoaXMubGlzdFF1ZXJ5KTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIF95aWVsZCRmZXRjaExpc3QgPSBfY29udGV4dC52OwogICAgICAgICAgICAgIGRhdGEgPSBfeWllbGQkZmV0Y2hMaXN0LmRhdGE7CiAgICAgICAgICAgICAgaXRlbXMgPSBkYXRhLml0ZW1zOwogICAgICAgICAgICAgIF90aGlzLmxpc3QgPSBpdGVtcy5tYXAoZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgIF90aGlzLiRzZXQodiwgJ2VkaXQnLCBmYWxzZSk7IC8vIGh0dHBzOi8vdnVlanMub3JnL3YyL2d1aWRlL3JlYWN0aXZpdHkuaHRtbAogICAgICAgICAgICAgICAgdi5vcmlnaW5hbFRpdGxlID0gdi50aXRsZTsgLy8gIHdpbGwgYmUgdXNlZCB3aGVuIHVzZXIgY2xpY2sgdGhlIGNhbmNlbCBib3R0b24KICAgICAgICAgICAgICAgIHJldHVybiB2OwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIF90aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYSgyKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgY2FuY2VsRWRpdDogZnVuY3Rpb24gY2FuY2VsRWRpdChyb3cpIHsKICAgICAgcm93LnRpdGxlID0gcm93Lm9yaWdpbmFsVGl0bGU7CiAgICAgIHJvdy5lZGl0ID0gZmFsc2U7CiAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgIG1lc3NhZ2U6ICdUaGUgdGl0bGUgaGFzIGJlZW4gcmVzdG9yZWQgdG8gdGhlIG9yaWdpbmFsIHZhbHVlJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSk7CiAgICB9LAogICAgY29uZmlybUVkaXQ6IGZ1bmN0aW9uIGNvbmZpcm1FZGl0KHJvdykgewogICAgICByb3cuZWRpdCA9IGZhbHNlOwogICAgICByb3cub3JpZ2luYWxUaXRsZSA9IHJvdy50aXRsZTsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgbWVzc2FnZTogJ1RoZSB0aXRsZSBoYXMgYmVlbiBlZGl0ZWQnLAogICAgICAgIHR5cGU6ICdzdWNjZXNzJwogICAgICB9KTsKICAgIH0KICB9Cn07"},{"version":3,"names":["fetchList","name","filters","statusFilter","status","statusMap","published","draft","deleted","data","list","listLoading","listQuery","page","limit","created","getList","methods","_this","_asyncToGenerator","_regenerator","m","_callee","_yield$fetchList","items","w","_context","n","v","map","$set","originalTitle","title","a","cancelEdit","row","edit","$message","message","type","confirmEdit"],"sources":["src/views/table/inline-edit-table.vue"],"sourcesContent":["<template>\n <div class=\"app-container\">\n <el-table v-loading=\"listLoading\" :data=\"list\" border fit highlight-current-row style=\"width: 100%\">\n <el-table-column align=\"center\" label=\"ID\" width=\"80\">\n <template slot-scope=\"{row}\">\n <span>{{ row.id }}</span>\n </template>\n </el-table-column>\n\n <el-table-column width=\"180px\" align=\"center\" label=\"Date\">\n <template slot-scope=\"{row}\">\n <span>{{ row.timestamp | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>\n </template>\n </el-table-column>\n\n <el-table-column width=\"120px\" align=\"center\" label=\"Author\">\n <template slot-scope=\"{row}\">\n <span>{{ row.author }}</span>\n </template>\n </el-table-column>\n\n <el-table-column width=\"100px\" label=\"Importance\">\n <template slot-scope=\"{row}\">\n <svg-icon v-for=\"n in + row.importance\" :key=\"n\" icon-class=\"star\" class=\"meta-item__icon\" />\n </template>\n </el-table-column>\n\n <el-table-column class-name=\"status-col\" label=\"Status\" width=\"110\">\n <template slot-scope=\"{row}\">\n <el-tag :type=\"row.status | statusFilter\">\n {{ row.status }}\n </el-tag>\n </template>\n </el-table-column>\n\n <el-table-column min-width=\"300px\" label=\"Title\">\n <template slot-scope=\"{row}\">\n <template v-if=\"row.edit\">\n <el-input v-model=\"row.title\" class=\"edit-input\" size=\"small\" />\n <el-button\n class=\"cancel-btn\"\n size=\"small\"\n icon=\"el-icon-refresh\"\n type=\"warning\"\n @click=\"cancelEdit(row)\"\n >\n cancel\n </el-button>\n </template>\n <span v-else>{{ row.title }}</span>\n </template>\n </el-table-column>\n\n <el-table-column align=\"center\" label=\"Actions\" width=\"120\">\n <template slot-scope=\"{row}\">\n <el-button\n v-if=\"row.edit\"\n type=\"success\"\n size=\"small\"\n icon=\"el-icon-circle-check-outline\"\n @click=\"confirmEdit(row)\"\n >\n Ok\n </el-button>\n <el-button\n v-else\n type=\"primary\"\n size=\"small\"\n icon=\"el-icon-edit\"\n @click=\"row.edit=!row.edit\"\n >\n Edit\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n </div>\n</template>\n\n<script>\nimport { fetchList } from '@/api/article'\n\nexport default {\n name: 'InlineEditTable',\n filters: {\n statusFilter(status) {\n const statusMap = {\n published: 'success',\n draft: 'info',\n deleted: 'danger'\n }\n return statusMap[status]\n }\n },\n data() {\n return {\n list: null,\n listLoading: true,\n listQuery: {\n page: 1,\n limit: 10\n }\n }\n },\n created() {\n this.getList()\n },\n methods: {\n async getList() {\n this.listLoading = true\n const { data } = await fetchList(this.listQuery)\n const items = data.items\n this.list = items.map(v => {\n this.$set(v, 'edit', false) // https://vuejs.org/v2/guide/reactivity.html\n v.originalTitle = v.title // will be used when user click the cancel botton\n return v\n })\n this.listLoading = false\n },\n cancelEdit(row) {\n row.title = row.originalTitle\n row.edit = false\n this.$message({\n message: 'The title has been restored to the original value',\n type: 'warning'\n })\n },\n confirmEdit(row) {\n row.edit = false\n row.originalTitle = row.title\n this.$message({\n message: 'The title has been edited',\n type: 'success'\n })\n }\n }\n}\n</script>\n\n<style scoped>\n.edit-input {\n padding-right: 100px;\n}\n.cancel-btn {\n position: absolute;\n right: 15px;\n top: 10px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,SAAAA,SAAA;AAEA;EACAC,IAAA;EACAC,OAAA;IACAC,YAAA,WAAAA,aAAAC,MAAA;MACA,IAAAC,SAAA;QACAC,SAAA;QACAC,KAAA;QACAC,OAAA;MACA;MACA,OAAAH,SAAA,CAAAD,MAAA;IACA;EACA;EACAK,IAAA,WAAAA,KAAA;IACA;MACAC,IAAA;MACAC,WAAA;MACAC,SAAA;QACAC,IAAA;QACAC,KAAA;MACA;IACA;EACA;EACAC,OAAA,WAAAA,QAAA;IACA,KAAAC,OAAA;EACA;EACAC,OAAA;IACAD,OAAA,WAAAA,QAAA;MAAA,IAAAE,KAAA;MAAA,OAAAC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,UAAAC,QAAA;QAAA,IAAAC,gBAAA,EAAAd,IAAA,EAAAe,KAAA;QAAA,OAAAJ,YAAA,GAAAK,CAAA,WAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,CAAA;YAAA;cACAT,KAAA,CAAAP,WAAA;cAAAe,QAAA,CAAAC,CAAA;cAAA,OACA3B,SAAA,CAAAkB,KAAA,CAAAN,SAAA;YAAA;cAAAW,gBAAA,GAAAG,QAAA,CAAAE,CAAA;cAAAnB,IAAA,GAAAc,gBAAA,CAAAd,IAAA;cACAe,KAAA,GAAAf,IAAA,CAAAe,KAAA;cACAN,KAAA,CAAAR,IAAA,GAAAc,KAAA,CAAAK,GAAA,WAAAD,CAAA;gBACAV,KAAA,CAAAY,IAAA,CAAAF,CAAA;gBACAA,CAAA,CAAAG,aAAA,GAAAH,CAAA,CAAAI,KAAA;gBACA,OAAAJ,CAAA;cACA;cACAV,KAAA,CAAAP,WAAA;YAAA;cAAA,OAAAe,QAAA,CAAAO,CAAA;UAAA;QAAA,GAAAX,OAAA;MAAA;IACA;IACAY,UAAA,WAAAA,WAAAC,GAAA;MACAA,GAAA,CAAAH,KAAA,GAAAG,GAAA,CAAAJ,aAAA;MACAI,GAAA,CAAAC,IAAA;MACA,KAAAC,QAAA;QACAC,OAAA;QACAC,IAAA;MACA;IACA;IACAC,WAAA,WAAAA,YAAAL,GAAA;MACAA,GAAA,CAAAC,IAAA;MACAD,GAAA,CAAAJ,aAAA,GAAAI,GAAA,CAAAH,KAAA;MACA,KAAAK,QAAA;QACAC,OAAA;QACAC,IAAA;MACA;IACA;EACA;AACA","ignoreList":[]}]} |