├── .gitignore ├── README.md ├── babel.config.js ├── dist ├── app.1562720671791.js ├── app.1562720671791.js.map ├── chunk-vendors.1562720671791.js ├── chunk-vendors.1562720671791.js.map ├── css │ ├── app.fc74a0c4.css │ └── chunk-vendors.c2bd9410.css ├── favicon.ico ├── fonts │ ├── element-icons.535877f5.woff │ └── element-icons.732389de.ttf └── index.html ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── assets │ └── logo.png ├── components │ ├── HelloWorld.vue │ └── second.vue ├── cron │ ├── date.vue │ ├── index.js │ ├── index.vue │ ├── time.vue │ ├── timeConf.js │ ├── week.vue │ └── year.vue └── main.js └── vue.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | 4 | /.idea/*.xml 5 | /tests/e2e/videos/ 6 | /tests/e2e/screenshots/ 7 | 8 | # local env files 9 | .env.local 10 | .env.*.local 11 | 12 | # Log files 13 | npm-debug.log* 14 | yarn-debug.log* 15 | yarn-error.log* 16 | 17 | # Editor directories and files 18 | .idea 19 | .vscode 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw* 25 | 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 暂时还没发到 npm 3 | ##### //bug 4 | ##### 选中具体值后切换单选框值没有清空 5 | ##### //todos 6 | ##### 提供重置至初始状态 解决 指定 秒/分/时/月选中太多一次性重置功能 7 | ##### 提供cron 反查功能 8 | ##### 基于typescript的cron组件 9 | ##### 有问题欢迎提出 10 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /dist/app.1562720671791.js: -------------------------------------------------------------------------------- 1 | (function(e){function t(t){for(var s,l,o=t[0],r=t[1],c=t[2],f=0,d=[];f\n
\n \n \n \n \n \n \n \n \n
\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelloWorld.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HelloWorld.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HelloWorld.vue?vue&type=template&id=013cb137&scoped=true&\"\nimport script from \"./HelloWorld.vue?vue&type=script&lang=js&\"\nexport * from \"./HelloWorld.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"013cb137\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=c1d0d592&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tab-container\"},[_c('el-tabs',{attrs:{\"type\":\"border-card\"}},[_c('el-tab-pane',{attrs:{\"label\":\"秒\"}},[_c('cron-time',{ref:\"seconds\",attrs:{\"data\":_vm.cronList[0],\"type\":\"seconds\"},on:{\"changeVal\":_vm.changeVal,\"setCorrectVal\":_vm.setCorrectVal}})],1),_c('el-tab-pane',{attrs:{\"label\":\"分\"}},[_c('cron-time',{ref:\"minutes\",attrs:{\"data\":_vm.cronList[1],\"type\":\"minutes\"},on:{\"changeVal\":_vm.changeVal}})],1),_c('el-tab-pane',{attrs:{\"label\":\"时\"}},[_c('cron-time',{ref:\"hours\",attrs:{\"data\":_vm.cronList[2],\"type\":\"hours\"},on:{\"changeVal\":_vm.changeVal}})],1),_c('el-tab-pane',{attrs:{\"label\":\"日\"}},[_c('cron-date',{ref:\"date\",attrs:{\"data\":_vm.cronList[3]},on:{\"changeDate\":_vm.changeDate}})],1),_c('el-tab-pane',{attrs:{\"label\":\"月\"}},[_c('cron-time',{ref:\"month\",attrs:{\"data\":_vm.cronList[4],\"type\":\"month\"},on:{\"changeVal\":_vm.changeVal}})],1),_c('el-tab-pane',{attrs:{\"label\":\"周\"}},[_c('cron-week',{ref:\"week\",attrs:{\"data\":_vm.cronList[5]},on:{\"changeWeek\":_vm.changeWeek}})],1),_c('el-tab-pane',{attrs:{\"label\":\"年\"}},[_c('cron-year',{ref:\"year\",attrs:{\"data\":_vm.cronList[6]},on:{\"changeYear\":_vm.changeYear}})],1)],1),_c('div',{staticClass:\"cron-show\"},[_vm._v(_vm._s(_vm.cronStr))]),_c('div',{staticClass:\"footer\"},[_c('el-button',{attrs:{\"type\":\"normal\",\"size\":\"mini\"},on:{\"click\":_vm.reset}},[_vm._v(\"取消\")]),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.$emit('sure',_vm.cronStr)}}},[_vm._v(\"确定\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabBody\"},[_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"1\"},on:{\"change\":_vm.change},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_vm._v(\"每一日\")])],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"5\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"本月最后一天\")])])],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"7\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"本月最后一个工作日\")])])],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"8\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"在本月底前\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":1,\"max\":31},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['8'].values),callback:function ($$v) {_vm.$set(_vm.timeConf['8'], \"values\", $$v)},expression:\"timeConf['8'].values\"}}),_c('span',{staticClass:\"offset-left\"},[_vm._v(\"天\")])],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"2\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"从\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['2'].values[0]),callback:function ($$v) {_vm.$set(_vm.timeConf['2'].values, 0, $$v)},expression:\"timeConf['2'].values[0]\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(\"开始 每隔\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"max\":31,\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['2'].values[1]),callback:function ($$v) {_vm.$set(_vm.timeConf['2'].values, 1, $$v)},expression:\"timeConf['2'].values[1]\"}}),_c('span',{staticClass:\"offset-left\"},[_vm._v(\"日开始\")])],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"3\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"周期从\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"max\":31,\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['3'].values[0]),callback:function ($$v) {_vm.$set(_vm.timeConf['3'].values, 0, $$v)},expression:\"timeConf['3'].values[0]\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(\"日到\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"max\":31,\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['3'].values[1]),callback:function ($$v) {_vm.$set(_vm.timeConf['3'].values, 1, $$v)},expression:\"timeConf['3'].values[1]\"}}),_c('span',{staticClass:\"offset-left\"},[_vm._v(\"日\")])],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"4\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"每月\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"max\":31,\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['4'].values),callback:function ($$v) {_vm.$set(_vm.timeConf['4'], \"values\", $$v)},expression:\"timeConf['4'].values\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(\"号最近的那个工作日\")])],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"6\"},on:{\"change\":_vm.change},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"指定天数\")])]),_c('el-checkbox-group',{staticClass:\"group\",on:{\"change\":_vm.checkChange},model:{value:(_vm.timeConf['6'].values),callback:function ($$v) {_vm.$set(_vm.timeConf['6'], \"values\", $$v)},expression:\"timeConf['6'].values\"}},[_vm._l((31),function(item,index){return [_c('el-checkbox',{key:index,staticClass:\"event-col\",attrs:{\"label\":item}})]})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./date.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./date.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./date.vue?vue&type=template&id=0df6acb4&scoped=true&\"\nimport script from \"./date.vue?vue&type=script&lang=js&\"\nexport * from \"./date.vue?vue&type=script&lang=js&\"\nimport style0 from \"./date.vue?vue&type=style&index=0&id=0df6acb4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0df6acb4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabBody\"},[_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"1\"},on:{\"change\":_vm.emitValue},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_vm._v(_vm._s(_vm.timeConf[_vm.type][\"1\"].text))])],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"2\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.emitValue($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"从\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":0,\"max\":_vm.max},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf[_vm.type]['2'].values[0]),callback:function ($$v) {_vm.$set(_vm.timeConf[_vm.type]['2'].values, 0, $$v)},expression:\"timeConf[type]['2'].values[0]\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(_vm._s(_vm.timeConf[_vm.type]['2'].text)+\"开始 每隔\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":0,\"max\":_vm.max},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf[_vm.type]['2'].values[1]),callback:function ($$v) {_vm.$set(_vm.timeConf[_vm.type]['2'].values, 1, $$v)},expression:\"timeConf[type]['2'].values[1]\"}}),_c('span',{staticClass:\"offset-left\"},[_vm._v(_vm._s(_vm.timeConf[_vm.type]['2'].text)+\"执行\")])],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"3\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.emitValue($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"周期从\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":0,\"max\":_vm.max},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf[_vm.type]['3'].values[0]),callback:function ($$v) {_vm.$set(_vm.timeConf[_vm.type]['3'].values, 0, $$v)},expression:\"timeConf[type]['3'].values[0]\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(_vm._s(_vm.timeConf[_vm.type]['3'].text)+\"到\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":0,\"max\":_vm.max},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf[_vm.type]['3'].values[1]),callback:function ($$v) {_vm.$set(_vm.timeConf[_vm.type]['3'].values, 1, $$v)},expression:\"timeConf[type]['3'].values[1]\"}}),_c('span',{staticClass:\"offset-left\"},[_vm._v(_vm._s(_vm.timeConf[_vm.type]['3'].text))])],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"4\"},on:{\"change\":_vm.emitValue},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"指定\"+_vm._s(_vm.timeConf[_vm.type]['4'].text))])]),_c('el-checkbox-group',{staticClass:\"group\",on:{\"change\":_vm.checkChange},model:{value:(_vm.timeConf[_vm.type]['4'].values),callback:function ($$v) {_vm.$set(_vm.timeConf[_vm.type]['4'], \"values\", $$v)},expression:\"timeConf[type]['4'].values\"}},[(_vm.type==='seconds' || _vm.type==='minutes')?[_vm._l((60),function(item,index){return [_c('el-checkbox',{key:index,staticClass:\"event-col\",attrs:{\"label\":index<10?'0'+index:''+index}})]})]:(_vm.type==='hours')?[_vm._l((24),function(item,index){return [_c('el-checkbox',{key:index,staticClass:\"event-col\",attrs:{\"label\":index<10?'0'+index:''+index}})]})]:(_vm.type==='month')?[_vm._l((12),function(item,index){return [_c('el-checkbox',{key:index,staticClass:\"event-col\",attrs:{\"label\":item<10?'0'+item:''+item}})]})]:_vm._e()],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const timeConf={\n seconds:{\n \"1\":{\n text:\"每一秒钟\",\n },\n \"2\":{\n text:\"秒\",\n values:[5,3]\n },\n \"3\":{\n text:\"秒\",\n values:[1,3]\n },\n \"4\":{\n text:\"秒数\",\n values:[]\n }\n },\n minutes:{\n \"1\":{\n text:\"每一分钟\"\n },\n \"2\":{\n text:\"分\",\n values:[5,3]\n },\n \"3\":{\n text:\"分\",\n values:[1,3]\n },\n \"4\":{\n text:\"分钟数\",\n values:[]\n }\n },\n hours:{\n \"1\":{\n text:\"每一小时\"\n },\n \"2\":{\n text:\"小时\",\n values:[5,3]\n },\n \"3\":{\n text:\"小时\",\n values:[1,3]\n },\n \"4\":{\n text:\"小时数\",\n values:[]\n }\n },\n month:{\n \"1\":{\n text:\"每一月\"\n },\n \"2\":{\n text:\"月\",\n values:[5,3]\n },\n \"3\":{\n text:\"月\",\n values:[1,3]\n },\n \"4\":{\n text:\"月份\",\n values:[]\n }\n }\n}","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./time.vue?vue&type=template&id=1e0782ee&scoped=true&\"\nimport script from \"./time.vue?vue&type=script&lang=js&\"\nexport * from \"./time.vue?vue&type=script&lang=js&\"\nimport style0 from \"./time.vue?vue&type=style&index=0&id=1e0782ee&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e0782ee\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabBody\"},[_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"1\"},on:{\"change\":_vm.change},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_vm._v(\"每周\")])],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"5\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"本月最后一个星期\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":1,\"max\":7},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['5'].values),callback:function ($$v) {_vm.$set(_vm.timeConf['5'], \"values\", $$v)},expression:\"timeConf['5'].values\"}})],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"2\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"第\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":1,\"max\":4},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['2'].values[0]),callback:function ($$v) {_vm.$set(_vm.timeConf['2'].values, 0, $$v)},expression:\"timeConf['2'].values[0]\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(\"周的星期\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"max\":7,\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['2'].values[1]),callback:function ($$v) {_vm.$set(_vm.timeConf['2'].values, 1, $$v)},expression:\"timeConf['2'].values[1]\"}}),_c('span',{staticClass:\"offset-left\"},[_vm._v(\"开始\")])],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"3\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.change($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"周期从星期\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"max\":7,\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['3'].values[0]),callback:function ($$v) {_vm.$set(_vm.timeConf['3'].values, 0, $$v)},expression:\"timeConf['3'].values[0]\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(\"到星期\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"max\":7,\"min\":1},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['3'].values[1]),callback:function ($$v) {_vm.$set(_vm.timeConf['3'].values, 1, $$v)},expression:\"timeConf['3'].values[1]\"}})],1)],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"4\"},on:{\"change\":_vm.change},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"指定星期\")])]),_c('el-checkbox-group',{staticClass:\"group\",on:{\"change\":_vm.checkChange},model:{value:(_vm.timeConf['4'].values),callback:function ($$v) {_vm.$set(_vm.timeConf['4'], \"values\", $$v)},expression:\"timeConf['4'].values\"}},[_vm._l((7),function(item,index){return [_c('el-checkbox',{key:index,staticClass:\"event-col\",attrs:{\"value\":item,\"label\":item}})]})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./week.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./week.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./week.vue?vue&type=template&id=ac1154cc&scoped=true&\"\nimport script from \"./week.vue?vue&type=script&lang=js&\"\nexport * from \"./week.vue?vue&type=script&lang=js&\"\nimport style0 from \"./week.vue?vue&type=style&index=0&id=ac1154cc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ac1154cc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabBody\"},[_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"1\"},on:{\"change\":_vm.emitValue},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_vm._v(\"每年\")])],1),_c('el-row',{staticClass:\"event-row\"},[_c('el-radio',{attrs:{\"label\":\"2\"},nativeOn:{\"change\":function($event){$event.stopPropagation();return _vm.emitValue($event)}},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_c('span',{staticClass:\"first\"},[_vm._v(\"周期 从\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":_vm.timeConf['2'].values[0]},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['2'].values[0]),callback:function ($$v) {_vm.$set(_vm.timeConf['2'].values, 0, $$v)},expression:\"timeConf['2'].values[0]\"}}),_c('span',{staticClass:\"offset-left middle\"},[_vm._v(\"年到\")]),_c('el-input-number',{attrs:{\"size\":\"mini\",\"min\":_vm.timeConf['2'].values[0]},on:{\"change\":_vm.emitValue},model:{value:(_vm.timeConf['2'].values[1]),callback:function ($$v) {_vm.$set(_vm.timeConf['2'].values, 1, $$v)},expression:\"timeConf['2'].values[1]\"}}),_c('span',{staticClass:\"offset-left\"},[_vm._v(\"年\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./year.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./year.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./year.vue?vue&type=template&id=563c234e&scoped=true&\"\nimport script from \"./year.vue?vue&type=script&lang=js&\"\nexport * from \"./year.vue?vue&type=script&lang=js&\"\nimport style0 from \"./year.vue?vue&type=style&index=0&id=563c234e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"563c234e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--11-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5e402394&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5e402394&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e402394\",\n null\n \n)\n\nexport default component.exports","import vCron from './index.vue';\nexport default {\n install(Vue){\n Vue.component(vCron.name,vCron)\n }\n}","import Vue from 'vue'\nimport App from './App.vue'\nimport elementUi from 'element-ui'\nimport \"element-ui/lib/theme-chalk/index.css\";\nimport vCron from './cron/'\nVue.config.productionTip = false\nVue.use(elementUi)\nVue.use(vCron)\nnew Vue({\n render: h => h(App),\n}).$mount('#app')\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./week.vue?vue&type=style&index=0&id=ac1154cc&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./week.vue?vue&type=style&index=0&id=ac1154cc&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time.vue?vue&type=style&index=0&id=1e0782ee&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time.vue?vue&type=style&index=0&id=1e0782ee&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5e402394&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5e402394&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./year.vue?vue&type=style&index=0&id=563c234e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./year.vue?vue&type=style&index=0&id=563c234e&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./date.vue?vue&type=style&index=0&id=0df6acb4&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--5-oneOf-1-0!../../node_modules/css-loader/index.js??ref--5-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--5-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./date.vue?vue&type=style&index=0&id=0df6acb4&scoped=true&lang=css&\""],"sourceRoot":""} -------------------------------------------------------------------------------- /dist/css/app.fc74a0c4.css: -------------------------------------------------------------------------------- 1 | #app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:60px}.event-row[data-v-0df6acb4]{margin-bottom:10px}span[data-v-0df6acb4]{display:inline-block;margin-right:10px}.first[data-v-0df6acb4]{width:65px}.middle[data-v-0df6acb4]{width:70px}.offset-left[data-v-0df6acb4]{margin-left:10px}.group[data-v-0df6acb4]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.event-col[data-v-0df6acb4]{width:44px}.group[data-v-0df6acb4]{margin-top:10px}.event-row[data-v-1e0782ee]{margin-bottom:10px}span[data-v-1e0782ee]{display:inline-block;margin-right:10px}.first[data-v-1e0782ee]{width:55px}.middle[data-v-1e0782ee]{width:85px}.offset-left[data-v-1e0782ee]{margin-left:10px}.group[data-v-1e0782ee]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:10px}.event-col[data-v-1e0782ee]{width:44px}.event-row[data-v-ac1154cc]{margin-bottom:10px}span[data-v-ac1154cc]{display:inline-block;margin-right:10px}.first[data-v-ac1154cc]{width:110px}.middle[data-v-ac1154cc]{width:70px}.offset-left[data-v-ac1154cc]{margin-left:10px}.group[data-v-ac1154cc]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:10px}.event-col[data-v-ac1154cc]{width:44px}.event-row[data-v-563c234e]{margin-bottom:10px}span[data-v-563c234e]{display:inline-block;margin-right:10px}.first[data-v-563c234e]{width:55px}.middle[data-v-563c234e]{width:70px}.offset-left[data-v-563c234e]{margin-left:10px}.group[data-v-563c234e]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:10px}.event-col[data-v-563c234e]{width:44px}.cron-show[data-v-5e402394]{padding:10px}.footer[data-v-5e402394]{width:100%;text-align:right} -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wj86611199/vue-crontab/ddc7910cda404069641769183e22c36f08b9ac3d/dist/favicon.ico -------------------------------------------------------------------------------- /dist/fonts/element-icons.535877f5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wj86611199/vue-crontab/ddc7910cda404069641769183e22c36f08b9ac3d/dist/fonts/element-icons.535877f5.woff -------------------------------------------------------------------------------- /dist/fonts/element-icons.732389de.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wj86611199/vue-crontab/ddc7910cda404069641769183e22c36f08b9ac3d/dist/fonts/element-icons.732389de.ttf -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | crontab
-------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "v-cron", 3 | "version": "0.1.1", 4 | "private": false, 5 | "homepage": "https://wj86611199.github.io/vue-crontab", 6 | "scripts": { 7 | "serve": "vue-cli-service serve", 8 | "build": "vue-cli-service build", 9 | "lint": "vue-cli-service lint", 10 | "predeploy": "npm run build", 11 | "deploy": "gh-pages -d dist" 12 | }, 13 | "dependencies": { 14 | "core-js": "^2.6.5", 15 | "element-ui": "^2.10.1", 16 | "vue": "^2.6.10" 17 | }, 18 | "devDependencies": { 19 | "@vue/cli-plugin-babel": "^3.9.0", 20 | "@vue/cli-plugin-eslint": "^3.9.0", 21 | "@vue/cli-service": "^3.9.0", 22 | "babel-eslint": "^10.0.1", 23 | "eslint": "^5.16.0", 24 | "eslint-plugin-vue": "^5.0.0", 25 | "gh-pages": "^2.0.1", 26 | "uglifyjs-webpack-plugin": "^2.1.3", 27 | "vue-template-compiler": "^2.6.10" 28 | }, 29 | "eslintConfig": { 30 | "root": true, 31 | "env": { 32 | "node": true 33 | }, 34 | "extends": [ 35 | "plugin:vue/essential", 36 | "eslint:recommended" 37 | ], 38 | "rules": {}, 39 | "parserOptions": { 40 | "parser": "babel-eslint" 41 | } 42 | }, 43 | "postcss": { 44 | "plugins": { 45 | "autoprefixer": {} 46 | } 47 | }, 48 | "browserslist": [ 49 | "> 1%", 50 | "last 2 versions" 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wj86611199/vue-crontab/ddc7910cda404069641769183e22c36f08b9ac3d/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | crontab 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | 18 | 28 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wj86611199/vue-crontab/ddc7910cda404069641769183e22c36f08b9ac3d/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 37 | 38 | 39 | 41 | -------------------------------------------------------------------------------- /src/components/second.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 16 | -------------------------------------------------------------------------------- /src/cron/date.vue: -------------------------------------------------------------------------------- 1 | 91 | 92 | 223 | 224 | 252 | -------------------------------------------------------------------------------- /src/cron/index.js: -------------------------------------------------------------------------------- 1 | import vCron from './index.vue'; 2 | export default { 3 | install(Vue){ 4 | Vue.component(vCron.name,vCron) 5 | } 6 | } -------------------------------------------------------------------------------- /src/cron/index.vue: -------------------------------------------------------------------------------- 1 | 39 | 40 | 119 | 120 | 129 | -------------------------------------------------------------------------------- /src/cron/time.vue: -------------------------------------------------------------------------------- 1 | 73 | 74 | 174 | 175 | 201 | -------------------------------------------------------------------------------- /src/cron/timeConf.js: -------------------------------------------------------------------------------- 1 | export const timeConf={ 2 | seconds:{ 3 | "1":{ 4 | text:"每一秒钟", 5 | }, 6 | "2":{ 7 | text:"秒", 8 | values:[5,3] 9 | }, 10 | "3":{ 11 | text:"秒", 12 | values:[1,3] 13 | }, 14 | "4":{ 15 | text:"秒数", 16 | values:[] 17 | } 18 | }, 19 | minutes:{ 20 | "1":{ 21 | text:"每一分钟" 22 | }, 23 | "2":{ 24 | text:"分", 25 | values:[5,3] 26 | }, 27 | "3":{ 28 | text:"分", 29 | values:[1,3] 30 | }, 31 | "4":{ 32 | text:"分钟数", 33 | values:[] 34 | } 35 | }, 36 | hours:{ 37 | "1":{ 38 | text:"每一小时" 39 | }, 40 | "2":{ 41 | text:"小时", 42 | values:[5,3] 43 | }, 44 | "3":{ 45 | text:"小时", 46 | values:[1,3] 47 | }, 48 | "4":{ 49 | text:"小时数", 50 | values:[] 51 | } 52 | }, 53 | month:{ 54 | "1":{ 55 | text:"每一月" 56 | }, 57 | "2":{ 58 | text:"月", 59 | values:[5,3] 60 | }, 61 | "3":{ 62 | text:"月", 63 | values:[1,3] 64 | }, 65 | "4":{ 66 | text:"月份", 67 | values:[] 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /src/cron/week.vue: -------------------------------------------------------------------------------- 1 | 72 | 73 | 179 | 180 | 206 | -------------------------------------------------------------------------------- /src/cron/year.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 81 | 82 | 83 | 109 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import elementUi from 'element-ui' 4 | import "element-ui/lib/theme-chalk/index.css"; 5 | import vCron from './cron/' 6 | Vue.config.productionTip = false 7 | Vue.use(elementUi) 8 | Vue.use(vCron) 9 | new Vue({ 10 | render: h => h(App), 11 | }).$mount('#app') 12 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); 2 | const path = require("path"); 3 | 4 | // 拼接路径 5 | const resolve = dir => require("path").join(__dirname, dir); 6 | 7 | // 增加环境变量 8 | let publicPath = "./"; 9 | 10 | const Timestamp = new Date().getTime(); 11 | module.exports = { 12 | publicPath, // 根据你的实际情况更改这里 13 | lintOnSave: true, 14 | devServer: { 15 | port: 8081, 16 | disableHostCheck: true, 17 | }, 18 | configureWebpack: { 19 | // webpack 配置 20 | output: { 21 | // 输出重构 打包编译后的 文件名称 【模块名称.时间戳】 22 | filename: `[name].${Timestamp}.js`, 23 | chunkFilename: `[name].${Timestamp}.js` 24 | } 25 | }, 26 | // 默认设置: https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-service/lib/config/base.js 27 | chainWebpack: config => { 28 | /** 29 | * 删除懒加载模块的 prefetch preload,降低带宽压力 30 | * https://cli.vuejs.org/zh/guide/html-and-static-assets.html#prefetch 31 | * https://cli.vuejs.org/zh/guide/html-and-static-assets.html#preload 32 | * 而且预渲染时生成的 prefetch 标签是 modern 版本的,低版本浏览器是不需要的 33 | */ 34 | config.plugins.delete("prefetch").delete("preload"); 35 | // 解决 cli3 热更新失效 https://github.com/vuejs/vue-cli/issues/1559 36 | config.resolve.symlinks(true); 37 | config 38 | // 开发环境 39 | .when( 40 | process.env.NODE_ENV === "development", 41 | // sourcemap不包含列信息 42 | config => config.devtool("cheap-source-map") 43 | ) 44 | // 非开发环境 45 | // i18n 46 | config.module 47 | .rule("i18n") 48 | .resourceQuery(/blockType=i18n/) 49 | .use("i18n") 50 | .loader("@kazupon/vue-i18n-loader") 51 | .end(); 52 | config.module.rules.delete("svg"); 53 | 54 | config.module 55 | .rule("svg") 56 | .test(/\.(svg)(\?.*)?$/) 57 | .include.add(path.resolve(__dirname, "src/icons")) 58 | .end() 59 | .use("svg-sprite-loader") 60 | .loader("svg-sprite-loader") 61 | .options({ 62 | symbolId: "icon-[name]" 63 | }); 64 | config.module 65 | .rule("vue") 66 | .use("vue-loader") 67 | .loader("vue-loader"); 68 | 69 | // image exclude 70 | const imagesRule = config.module.rule("images"); 71 | imagesRule 72 | .test(/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/) 73 | .exclude.add(resolve("src/assets/svg-icons/icons")) 74 | .end(); 75 | // 重新设置 alias 76 | config.resolve.alias 77 | .set("vue$", "vue/dist/vue.esm.js") 78 | .set("api", resolve("src/api")) 79 | .set("styles", resolve("src/styles")) 80 | .set("views", resolve("src/views")) 81 | .set("routes", resolve("src/router")) 82 | .set("components", resolve("src/components")); 83 | } 84 | }; 85 | --------------------------------------------------------------------------------