| 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\\event\\createModal.vue?vue&type=style&index=0&id=5517b5c0&lang=scss&scoped=true","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\event\\createModal.vue","mtime":1761185180214},{"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:DQouZm9ybS1jYXJkIHsNCiAgbWFyZ2luLWJvdHRvbTogNzRweDsNCg0KICA6OnYtZGVlcCAuaXZ1LWNhcmQtYm9keSB7DQogICAgcGFkZGluZzogMzBweCAwOw0KICB9DQp9DQoNCi5wYi0yMCB7DQogIHBhZGRpbmctYm90dG9tOiAyMHB4Ow0KfQ0KDQouYnRuLWNhcmQgew0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDIwMHB4Ow0KICB6LWluZGV4OiAyOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi5pbnB1dC1udW1iZXItd3JhcHBlciB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsNCg0KICAuaXZ1LWlucHV0LW51bWJlciB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgcGFkZGluZy1yaWdodDogMzVweDsNCiAgfQ0KDQogIDo6di1kZWVwIC5pdnUtaW5wdXQtbnVtYmVyLWhhbmRsZXItd3JhcCB7DQogICAgcmlnaHQ6IDM1cHg7DQogIH0NCg0KICAuc3VmZml4IHsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgdG9wOiAwOw0KICAgIHJpZ2h0OiAwOw0KICAgIHotaW5kZXg6IDE7DQogICAgd2lkdGg6IDM1cHg7DQogICAgaGVpZ2h0OiAxMDAlOw0KICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgbGluZS1oZWlnaHQ6IDMzcHg7DQogICAgY29sb3I6ICMzMzMzMzM7DQogIH0NCn0NCg0KLnRyaXAgew0KICBwYWRkaW5nLWxlZnQ6IDE1cHg7DQogIGNvbG9yOiAjYWFhOw0KfQ0KDQo6OnYtZGVlcCAuZWwtaW5wdXQtbnVtYmVyX19pbmNyZWFzZSwNCjo6di1kZWVwIC5lbC1pbnB1dC1udW1iZXJfX2RlY3JlYXNlIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm1sMzAgew0KICBtYXJnaW4tbGVmdDogMzBweDsNCn0NCg0KLmNvcHktdGFnIHsNCiAgZGlzcGxheTogZmxleDsNCiAgZmxleC13cmFwOiB3cmFwOw0KDQogIC5pdGVtIHsNCiAgICBtYXJnaW46IDVweDsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogIH0NCn0NCg0KLmRpYWxvZy1mb290ZXIgew0KICAvLyDlm7rlrprlnKjlupXpg6gNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIHJpZ2h0OiAwOw0KICB6LWluZGV4OiAxOw0KICBwYWRkaW5nOiAxMHB4IDIwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7DQogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZThlOGU4Ow0KICBkaXNwbGF5OiBmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCn0NCg0KLm1vbmFjby1lZGl0b3Igew0KICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1wcmV2LWJvcmRlci1jb2xvci1iYXNlKTsNCiAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICBoZWlnaHQ6IDQwMHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KfQ0KDQoudGV4dC1hcmVhIHsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICB3b3JkLWJyZWFrOiBicmVhay13b3JkOw0KfQ0K"},{"version":3,"sources":["createModal.vue"],"names":[],"mappings":";AA4OA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","file":"createModal.vue","sourceRoot":"src/pages/system/event","sourcesContent":["<template>\r\n <div>\r\n <el-drawer\r\n :visible.sync=\"modal\"\r\n :title=\"formValidate.id ? '编辑事件' : '添加事件'\"\r\n size=\"1000px\"\r\n @closed=\"initData\"\r\n >\r\n <el-form v-if=\"modal\" class=\"pb-20\" ref=\"formValidate\" :model=\"formValidate\" label-width=\"97px\" label-colon>\r\n <el-form-item label=\"事件名称:\" required>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"20\">\r\n <el-input v-model=\"formValidate.name\" placeholder=\"请输入事件名称\"></el-input>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n <el-form-item label=\"事件类型:\" required>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"20\">\r\n <el-select v-model=\"formValidate.mark\" @change=\"taskChange\">\r\n <el-option v-for=\"(item, name) in task\" :key=\"name\" :value=\"item.value\" :label=\"item.label\"></el-option>\r\n </el-select>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n <el-form-item label=\"事件说明:\">\r\n <el-row :gutter=\"10\">\r\n <el-col :span=\"24\">\r\n <el-input\r\n v-model=\"formValidate.content\"\r\n type=\"textarea\"\r\n :autosize=\"{ minRows: 3, maxRows: 5 }\"\r\n placeholder=\"请输入事件说明\"\r\n ></el-input>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n <el-form-item label=\"执行代码:\">\r\n <el-row :gutter=\"10\">\r\n <el-col :span=\"24\">\r\n <div ref=\"container\" id=\"container\" class=\"monaco-editor\"></div>\r\n <!-- <div class=\"copy-tag\">\r\n <el-tag\r\n class=\"item\"\r\n size=\"small\"\r\n v-for=\"(i, k, index) in copyData\"\r\n :key=\"index\"\r\n v-db-click\r\n @click=\"onCopy(k)\"\r\n >\r\n {{ i }}\r\n </el-tag>\r\n </div> -->\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n <el-form-item label=\"可用参数:\" v-if=\"copyData\">\r\n <el-row :gutter=\"10\">\r\n <el-col :span=\"24\">\r\n <el-input\r\n class=\"text-area\"\r\n v-model=\"copyData\"\r\n type=\"textarea\"\r\n :autosize=\"{ minRows: 7, maxRows: 7 }\"\r\n placeholder=\"请输入事件说明\"\r\n readonly\r\n ></el-input>\r\n <!-- <span class=\"text-area\">{{ copyData }}</span> -->\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n\r\n <el-form-item label=\"开发密码:\" required>\r\n <el-row :gutter=\"10\">\r\n <el-col :span=\"24\">\r\n <el-input v-model=\"formValidate.password\" type=\"password\" placeholder=\"请输入系统开发密码,开发密码在crmeb/config/filesystem.php中修改password\"></el-input>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n <el-form-item label=\"是否开启:\">\r\n <el-row :gutter=\"10\">\r\n <el-col :span=\"12\">\r\n <el-switch :active-value=\"1\" :inactive-value=\"0\" v-model=\"formValidate.is_open\" size=\"large\">\r\n <span slot=\"open\">开启</span>\r\n <span slot=\"close\">关闭</span>\r\n </el-switch>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n </el-form>\r\n <span class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"modal = false\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"handleSubmit\">提 交</el-button>\r\n </span>\r\n </el-drawer>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport * as monaco from 'monaco-editor';\r\nimport { mapMutations } from 'vuex';\r\nimport { eventTask, eventInfo, eventSave } from '@/api/system';\r\nexport default {\r\n data() {\r\n return {\r\n modal: false,\r\n task: [],\r\n loading: false,\r\n formValidate: {\r\n mark: '', //键\r\n content: '',\r\n is_open: 0,\r\n name: '',\r\n password: '',\r\n customCode: '',\r\n },\r\n copyData: '',\r\n trip: '',\r\n editor: '', //当前编辑器对象\r\n };\r\n },\r\n created() {\r\n this.eventTask();\r\n },\r\n methods: {\r\n ...mapMutations('admin/layout', ['setCopyrightShow']),\r\n taskChange(item) {\r\n // 获取选中值对应 task 中的的data的值\r\n let taskData = this.task.find((i) => i.value === item);\r\n this.copyData = taskData.data;\r\n },\r\n /**\r\n * 初始化编辑器\r\n */\r\n initEditor(conetnt = '') {\r\n try {\r\n let that = this;\r\n that.$nextTick(() => {\r\n // 初始化编辑器,确保dom已经渲染\r\n that.editor = monaco.editor.create(document.getElementById('container'), {\r\n value: conetnt, //编辑器初始显示文字\r\n language: 'php', //语言支持自行查阅demo\r\n automaticLayout: true, //自动布局\r\n theme: 'vs-dark', //官方自带三种主题vs, hc-black, or vs-dark\r\n foldingStrategy: 'indentation', // 代码可分小段折叠\r\n overviewRulerBorder: false, // 不要滚动条的边框\r\n minimap: { enabled: false },\r\n scrollbar: {\r\n vertical: 'hidden',\r\n horizontal: 'hidden',\r\n },\r\n wordWrap: 'on',\r\n autoIndent: true, // 自动布局\r\n tabSize: 4, // tab缩进长度\r\n autoClosingOvertype: 'always',\r\n readOnly: false,\r\n });\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n },\r\n eventTask() {\r\n eventTask().then((res) => {\r\n this.task = res.data;\r\n });\r\n },\r\n // onCopy(copyData) {\r\n // let data = `$data['${copyData}']`;\r\n // this.$copyText(data)\r\n // .then((message) => {\r\n // this.$message.success('复制成功');\r\n // })\r\n // .catch((err) => {\r\n // this.$message.error('复制失败');\r\n // });\r\n // },\r\n initData(status) {\r\n this.formValidate = {\r\n name: '',\r\n mark: '',\r\n is_open: 0,\r\n content: '',\r\n password: '',\r\n customCode: '',\r\n };\r\n this.copyData = '';\r\n this.modal = false;\r\n },\r\n eventInfo(id) {\r\n if (!id) {\r\n this.modal = true;\r\n this.initEditor(\r\n \"<?php\\n\\n//示例代码\\n//参数使用实例 $data['uid']\\n\\n//直接写入数据库\\n\\\\think\\\\facade\\\\Db::name('cache')->insert(['key' => 'custom_event_' . rand(), 'result' => $data['nickname'] . rand(), 'expire_time' => 0]);\\n\\n//调用系统方法\\napp()->make(\\\\app\\\\services\\\\other\\\\CacheServices::class)->setDbCache('custom_event_' . rand(), $data['nickname']);\",\r\n );\r\n return;\r\n }\r\n eventInfo(id).then((res) => {\r\n this.modal = true;\r\n this.formValidate = res.data;\r\n let taskData = this.task.find((i) => i.value === res.data.mark);\r\n this.copyData = taskData.data;\r\n this.initEditor(res.data.customCode || '');\r\n });\r\n },\r\n // 提交\r\n handleSubmit() {\r\n this.formValidate.customCode = this.editor.getValue();\r\n if (!this.formValidate.mark) {\r\n return this.$message.error({\r\n message: '请选择事件类型',\r\n onClose: () => {\r\n // this.loading = false;\r\n },\r\n });\r\n }\r\n this.eventSave(this.formValidate);\r\n },\r\n eventSave(data) {\r\n eventSave(data)\r\n .then((res) => {\r\n this.$message.success({\r\n message: res.msg,\r\n });\r\n this.$emit('submitAsk');\r\n this.modal = false;\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.form-card {\r\n margin-bottom: 74px;\r\n\r\n ::v-deep .ivu-card-body {\r\n padding: 30px 0;\r\n }\r\n}\r\n\r\n.pb-20 {\r\n padding-bottom: 20px;\r\n}\r\n\r\n.btn-card {\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n left: 200px;\r\n z-index: 2;\r\n text-align: center;\r\n}\r\n\r\n.input-number-wrapper {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n vertical-align: middle;\r\n line-height: normal;\r\n\r\n .ivu-input-number {\r\n width: 100%;\r\n padding-right: 35px;\r\n }\r\n\r\n ::v-deep .ivu-input-number-handler-wrap {\r\n right: 35px;\r\n }\r\n\r\n .suffix {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n z-index: 1;\r\n width: 35px;\r\n height: 100%;\r\n text-align: center;\r\n font-size: 12px;\r\n line-height: 33px;\r\n color: #333333;\r\n }\r\n}\r\n\r\n.trip {\r\n padding-left: 15px;\r\n color: #aaa;\r\n}\r\n\r\n::v-deep .el-input-number__increase,\r\n::v-deep .el-input-number__decrease {\r\n display: none;\r\n}\r\n\r\n.ml30 {\r\n margin-left: 30px;\r\n}\r\n\r\n.copy-tag {\r\n display: flex;\r\n flex-wrap: wrap;\r\n\r\n .item {\r\n margin: 5px;\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.dialog-footer {\r\n // 固定在底部\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n padding: 10px 20px;\r\n background-color: #fff;\r\n border-top: 1px solid #e8e8e8;\r\n display: flex;\r\n justify-content: center;\r\n}\r\n\r\n.monaco-editor {\r\n border: 1px solid var(--prev-border-color-base);\r\n border-radius: 4px;\r\n height: 400px;\r\n overflow: hidden;\r\n}\r\n\r\n.text-area {\r\n white-space: pre-wrap;\r\n word-break: break-word;\r\n}\r\n</style>\r\n"]}]}
|