9cdb7fbb355fc02a82560036dfa10fd9.json 8.0 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\crontab\\index.vue?vue&type=style&index=0&id=27fac4ae&lang=scss&scoped=true","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\crontab\\index.vue","mtime":1761185180211},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\css-loader\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQouaXZ1LW10IHsNCiAgcGFkZGluZy10b3A6IDEwcHg7DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAyLA;AACA;AACA","file":"index.vue","sourceRoot":"src/pages/system/crontab","sourcesContent":["<template>\r\n <div>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\" :body-style=\"{ padding: '0 20px' }\">\r\n <div>\r\n <el-tabs v-model=\"currentTab\" @tab-click=\"getList\">\r\n <el-tab-pane\r\n :label=\"item.label\"\r\n :name=\"item.value.toString()\"\r\n v-for=\"(item, index) in headerList\"\r\n :key=\"index\"\r\n />\r\n </el-tabs>\r\n </div>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\">\r\n <el-alert type=\"warning\" :closable=\"false\">\r\n <template slot=\"title\">\r\n 启动定时任务两种方式:<br />\r\n 1、使用命令启动:php think timer start\r\n --d;如果更改了执行周期、编辑是否开启、删除定时任务需要重新启动下定时任务确保生效;<br />\r\n 2、使用接口触发定时任务,建议每分钟调用一次,接口地址 {{ apiBaseURL }}api/crontab/run <br />\r\n </template>\r\n </el-alert>\r\n <el-button v-if=\"currentTab === '1'\" type=\"primary\" v-db-click @click=\"addTask\" class=\"mt14\"\r\n >添加定时任务</el-button\r\n >\r\n <el-table :data=\"tableData\" v-loading=\"loading\" class=\"ivu-mt\">\r\n <el-table-column label=\"标题\" min-width=\"150\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"任务说明\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.content }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"执行周期\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ taskTrip(scope.row) }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"是否开启\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n class=\"defineSwitch\"\r\n :active-value=\"1\"\r\n :inactive-value=\"0\"\r\n v-model=\"scope.row.is_open\"\r\n size=\"large\"\r\n @change=\"handleChange(scope.row)\"\r\n active-text=\"开启\"\r\n inactive-text=\"关闭\"\r\n >\r\n </el-switch>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <a v-db-click @click=\"edit(scope.row.id)\">编辑</a>\r\n <el-divider direction=\"vertical\" v-if=\"currentTab === '1'\"></el-divider>\r\n <a\r\n v-if=\"currentTab === '1'\"\r\n v-permission=\"'seckill'\"\r\n v-db-click\r\n @click=\"handleDelete(scope.row, '删除定时任务', scope.$index)\"\r\n >删除</a\r\n >\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination v-if=\"total\" :total=\"total\" :page.sync=\"page\" :limit.sync=\"limit\" @pagination=\"getList\" />\r\n </div>\r\n <creatTask ref=\"addTask\" :currentTab=\"currentTab\" @submitAsk=\"getList\"></creatTask>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { timerIndex, showTimer } from '@/api/system';\r\nimport creatTask from './createModal.vue';\r\nimport setting from '@/setting';\r\nexport default {\r\n name: 'system_crontab',\r\n components: { creatTask },\r\n data() {\r\n return {\r\n loading: false,\r\n tableData: [],\r\n page: 1,\r\n limit: 15,\r\n total: 1,\r\n apiBaseURL: '',\r\n headerList: [\r\n { label: '系统任务', value: '0' },\r\n { label: '自定义任务', value: '1' },\r\n ],\r\n currentTab: '0',\r\n };\r\n },\r\n created() {\r\n this.apiBaseURL = setting.apiBaseURL.replace(/adminapi/, '');\r\n this.getList();\r\n },\r\n methods: {\r\n taskTrip(row) {\r\n switch (row.type) {\r\n case 1:\r\n return `每隔${row.second}秒执行一次`;\r\n case 2:\r\n return `每隔${row.minute}分钟执行一次`;\r\n case 3:\r\n return `每隔${row.hour}小时执行一次`;\r\n case 4:\r\n return `每隔${row.day}天执行一次`;\r\n case 5:\r\n return `每天${row.hour}时${row.minute}分${row.second}秒执行一次`;\r\n case 6:\r\n return `每个星期${row.week}的${row.hour}时${row.minute}分${row.second}秒执行一次`;\r\n case 7:\r\n return `每月${row.day}日的${row.hour}时${row.minute}分${row.second}秒执行一次`;\r\n case 8:\r\n return `每年${row.month}月${row.day}日的${row.hour}时${row.minute}分${row.second}秒执行一次`;\r\n }\r\n },\r\n // 列表\r\n getList() {\r\n this.loading = true;\r\n timerIndex({\r\n page: this.page,\r\n limit: this.limit,\r\n custom: this.currentTab === '1' ? 1 : 0,\r\n })\r\n .then((res) => {\r\n this.loading = false;\r\n let { count, list } = res.data;\r\n this.total = count;\r\n this.tableData = list;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n addTask() {\r\n this.$refs.addTask.timerInfo(0);\r\n },\r\n edit(id) {\r\n this.$refs.addTask.timerInfo(id);\r\n },\r\n // 删除\r\n handleDelete(row, tit, num) {\r\n let delfromData = {\r\n title: tit,\r\n num: num,\r\n url: `system/crontab/del/${row.id}`,\r\n method: 'delete',\r\n ids: '',\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 是否开启\r\n handleChange({ id, is_open }) {\r\n showTimer(id, is_open)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ivu-mt {\r\n padding-top: 10px;\r\n}\r\n</style>\r\n"]}]}